朱福珍,薛 景,張美虎,江兆銀
(揚州市職業(yè)大學,江蘇揚州225009)
目前在多數(shù)跟蹤算法中,遮擋在跟蹤中是一個很難解決的問題[1],由于遮擋的存在,很多跟蹤算法出現(xiàn)漂移。隨著實時RGB-D 傳感器的普及率日益激增[2],利用深度數(shù)據(jù)的成像特性,提升視頻目標跟蹤的性能是本論文的研究重點。
根據(jù)目標初始位置,對相應的深度圖像區(qū)域進行快速分割,并分析相應區(qū)域的直方圖分布,如圖1、圖2 所示。圖1 為正常跟蹤狀態(tài),跟蹤目標像素值集中在160-180 之間,呈高斯分布;圖2 為部分遮擋狀態(tài),遮擋對象離鏡頭更近,遮擋對象像素值在195-210 之間,在部分遮擋時出現(xiàn)雙峰高斯分布,遮擋對象和跟蹤目標區(qū)分明顯。為此,根據(jù)目標初始位置和包圍框,在深度圖對應感興趣區(qū)域進行1 維K-means 聚類。
圖1 目標包圍框內的深度直方圖分布(正常跟蹤狀態(tài))
圖2 目標包圍框內的深度直方圖分布(遮擋狀態(tài))
K-means 聚類屬于無監(jiān)督學習,我們將K-means應用于跟蹤區(qū)域的1 維深度直方圖,從而減少特征數(shù)量和聚類的點數(shù)。K-means 聚類主要缺點是簇K 的數(shù)量必須是先驗已知,其收斂性對初始簇質心非常敏感。用深度直方圖的bin 數(shù)量初始化K,用深度直方圖的最大深度值初始化,這樣,對K-means 算法而言是很好的初始化種子,可以減少算法收斂時間。深度直方圖h(dj)由深度值為dj的j 個bins 組成。聚類中心的更新方法如公式(1)所示:
接著,K-means 輸出聚類[3]形成連通量,通過對連通分量分析,識別出位于相同深度內的目標。
直方圖h(dj)中bin 的寬度影響分割的結果,本論文根據(jù)跟蹤目標的標準方差σobj和Kinect 的噪聲模型[4]對bin 的寬度進行自適應選擇,所提出的方法既滿足了分割的精度,又達到低計算量的需求。
為了處理遮擋,一些傳統(tǒng)的RGB 跟蹤器如TLD使用前向、后向錯誤來指示跟蹤失敗,有些跟蹤器使用基于片段的模型來減少對部分遮擋的敏感性。但是,隨著深度信息的出現(xiàn),主動檢測遮擋和恢復遮擋都變得更加方便。
卡爾曼濾波器[5]是一種可以隨時間迭代計算的線性最優(yōu)濾波器,假設目標的運動方程和觀測方程都是線性高斯過程,每一步所需的計算復雜度不大,實時計算,適合深度圖中的目標跟蹤。
卡爾曼濾波計算出預估區(qū)域,對目標候選區(qū)域給出一個理想的預估值,這在遮擋期間非常有用。將卡爾曼濾波應用到目標的質心,定義卡爾曼濾波器的系統(tǒng)狀態(tài)為x,其中u 和v 是質心位置,d 是跟蹤對象的深度平均值。系統(tǒng)狀態(tài)方程為:
系統(tǒng)觀測方程為:
其中xk為系統(tǒng)狀態(tài)6×1 維狀態(tài)向量;ok為觀測到的系統(tǒng)狀態(tài)的3×1 維向量,這里觀測值由SiamRPN++跟蹤算法給出;Fk|k-1是6×6 維狀態(tài)轉移矩陣。從tk-1時刻到tk時刻,Hk是tk時刻的3×6 維觀測矩陣。ηk-1為系統(tǒng)噪聲,vk為觀測噪聲,為互不相關的零均值正態(tài)白噪聲,令Qk和Rk分別為ηk-1和vk的協(xié)方差矩陣。
這里,由于Fk|k-1和Hk已知,ηk-1和vk滿足一定的假設,設Pk是的協(xié)方差陣,是xk和的誤差協(xié)方差陣,由此得到卡爾曼預測算法的計算公式:
1)在t0時刻,用x 均值向量初始化,求出P0。
2)在tk時刻,系統(tǒng)預測方程為:
系統(tǒng)開發(fā)選用的編程語言為Python 與C++混合編程,使用PyTorch 框架,測試序列來自基準集PTB[6],實驗中將本文算法與其他五種跟蹤方法做了比較,這五種跟蹤算法分別為:SiamRPN++[7]、SAMF[8]、Staple[9]、KCFDP[10]、DS-KCF。其中,SiamRPN++為基于深度學習的跟蹤方法;SAMF 在KCF 基礎上進行了HOG 和Color names 多特征融合以及多尺度改進;Staple 將HOG 特征和顏色直方圖融合;KCFDP 將Edge Boxes方法引入基于相關濾波的跟蹤;DS-KCF 是基于KCF框架的RGB-D 跟蹤方法。
遮擋是跟蹤的難點,當目標進入遮擋狀態(tài)以后,我們不知道目標的位置,也不知道遮擋要持續(xù)多久,所以遮擋場景對算法的挑戰(zhàn)性很大。圖3 中兩行序列分別為bear_front、new_ex_occ4,這兩個圖像序列都出現(xiàn)了間歇性完全遮擋。在bear_front 序列中,一個白色長方體盒子遮擋住了小熊;在new_ex_occ4 序列中,咖啡館前面的高個男生遮擋住了相向而行的女生。圖3 分別顯示了這兩個序列遮擋前、遮擋中和遮擋后的跟蹤狀態(tài)。
圖3 遮擋情況下本文算法跟蹤結果圖
通過實驗為該六種跟蹤算法作了定性比較,分別為SiamRPN++、SAMF、Staple、KCFDP、DS-KCF 和 本論文方法。以bear_front 序列為例,小熊玩具的顏色與后面背景柜子顏色類似,第35 幀Staple 和KCFDP 跟蹤丟失(第一次遮擋結束);第191 幀目標運動模糊,SiamRPN++和本文算法跟蹤較為魯棒,其他算法跟蹤丟失。以new_ex_occ4 序列為例,第22 幀六種算法跟蹤都很穩(wěn)定,遮擋發(fā)生后,在第34 幀Staple 和SiamRPN++跟蹤丟失,在第38 幀,相比KCFDP 和SAMF 算法,DS-KCF 和本論文方法以更好的尺度和寬高比對目標進行了跟蹤。
本論文利用RGB-D 視頻中的深度圖像主動檢測遮擋物,在遮擋期間對遮擋物進行跟蹤,目標跟蹤恢復后,繼續(xù)原目標的跟蹤,期間使用卡爾曼濾波進行目標運動模型預測。實驗結果表明,本文提出的目標跟蹤算法可以在目標之間發(fā)生嚴重遮擋、快速運動等變化時,亦可進行魯棒跟蹤。