周 維,陳聽海,邱寶鑫
湘潭大學 信息工程學院,湖南 湘潭411105
目標跟蹤是計算機視覺領域的研究熱點之一,在軍事領域、醫學領域、視頻監控、虛擬現實以及人機交互等場景均有著廣泛的應用。
目標跟蹤分為生成式方法和判別式方法。生成式方法對目標外觀特征進行描述學習,獲得模板或字典,再基于最小化誤差的思想搜索候選區域,得到最相近目標的跟蹤結果。生成式算法性能取決于對目標刻畫是否成功,經典生成式方法有均值漂移、粒子濾波等。判別式方法把目標跟蹤看成分類問題,訓練能夠有效區分目標和背景的分類器,來識別復雜背景下的目標,如基于深度學習、相關濾波等的跟蹤方法隸屬于判別式方法。盡管深度學習方法的引入使得目標跟蹤算法的精度迅速提高[1],目標跟蹤領域仍然存在如場景因素(例如光照、天氣以及場景切換等)、攝影機因素(視角、運動以及拍攝質量)、姿態變化(尺度、形變、旋轉、位移等)、遮擋等諸多挑戰[2]。
針對抗遮擋問題的目標跟蹤,文獻[3]提出基于特征融合和遮擋檢測的跟蹤方法,在相關濾波框架下,通過加權策略融合HOG 特征和顏色特征,并根據融合器的響應函數提出一種遮擋檢測的方法。文獻[4]在目標發生遮擋時,采用幀差法檢測目標,并使用卡爾曼濾波器平滑跟蹤的軌跡,在發生遮擋的位置采用最小二乘法自適應擬合目標運動軌跡,完成對目標的跟蹤。文獻[5]提出分塊多示例學習算法。該算法將目標圖像分塊,對每塊圖像片應用多示例學習算法。跟蹤過程中結合樣本所有圖像片的綜合分類器分數和每塊圖像片的分類器分數檢測并判斷跟蹤過程中的光照、位姿變化,及遮擋問題。針對不同的跟蹤狀態,采用分類器學習率自適應調整策略,以避免“過更新”及更新不及時的問題。文獻[6]把遮擋定義為前一幀中部分背景點移動到當前幀中的目標區域,采用背景跟蹤器來研究背景塊,如果檢測到遮擋,目標模板就停止更新。
從文獻中看,解決遮擋有兩種思路:(1)分塊法,即對目標分塊,利用遮擋發生過程中未被遮擋的部分跟蹤。(2)檢測法,即通過檢測機制判斷目標是否發生遮擋,決定是否更新模板,以保證跟蹤的魯棒性。
文獻[7]中提出的TLD算法只需較少先驗信息就可對目標長期在線跟蹤,通過跟蹤器與檢測器的協同處理遮擋,該策略簡單有效,但遮擋結束,重新標定時,TLD的檢測模塊對相似物體的辨別能力不夠魯棒,相似物體錯判為追蹤目標,影響后續跟蹤。
國內外研究者對TLD 算法進行了一定的改進研究。文獻[8]采用基于粒子濾波的跟蹤算法代替內置的TLD 跟蹤模塊進行短期跟蹤,提高算法在遮擋、尺度變化、旋轉等情況下的性能。文獻[9]使用基于像素特征值的OS-ELM 檢測器代替TLD 框架中的集成分類器,它能夠學習不同大小順序的在線數據,具有較好的泛化性能。文獻[10]使用CNN補充TLD算法的學習檢測能力,提高了算法處理速度與目標跟蹤精度。文獻[11]在TLD框架下使用HOG特征與SVM方法進行重檢測,能夠在具有不同光照或遮擋的場景下實現障礙物檢測與跟蹤。文獻[12]采用卡爾曼濾波器對目標區域預估,減少目標檢測范圍,采用L1跟蹤器代替TLD跟蹤器,增強相似物體的鑒別能力。文獻[13]使用雙目標框改進TLD算法,算法在目標變化相對穩定的區域標定另一個矩形框,以指示跟蹤的重點區域。在提取跟蹤點時,采用分配權重的方法使重點區域產生更多的跟蹤點,提高算法對局部變化的適應能力。文獻[14]使用KCF 算法替代TLD 框架下跟蹤模塊所用中值光流法,再使用檢測模塊對跟蹤結果判斷,有選擇性地更新,提高了算法對遮擋、光照變化和運動模糊等場景的適應能力。文獻[15]獲取手勢HOG 特征并投入到卷積神經網絡中加以訓練,再利用TLD 算法對正負樣本估計檢測并實時矯正,同時運用SURF 特征匹配更新跟蹤器,相比經典跟蹤算法具有更高魯棒性。
本文基于TLD 算法,提出基于特征重檢的抗遮擋目標跟蹤方法。通過引入新的特征檢測環節并在特征匹配時使用新定義的正反方向進行雙向匹配,使得遮擋階段結束后,能夠正確地跟蹤原目標,避免發生相似目標的錯判,提高跟蹤準確率。
TLD算法由跟蹤模塊、檢測模塊和學習模塊三個模塊組成,工作流程如圖1。

圖1 TLD算法的工作流程
追蹤模塊是觀察幀與幀之間的目標的移動量,在中值光流法基礎上增加了跟蹤失敗時的檢測。
定義位移殘差:

di表示單個特征點的位移,dm表示特征點位移的中值。當發生劇烈移動或遮擋時,殘差的值會迅速增加,超過10個像素,認定跟蹤器失效。
檢測模塊是檢測定位每幀圖像中的目標。對當前幀滑動窗口掃描,生成候選樣本通過級聯分類器進行篩選得到最佳候選。檢測過程如圖2所示。

圖2 TLD檢測模塊
第一級是方差分類器,計算候選樣本中像素點亮度值方差,小于原目標圖像方差一半的圖像塊標記為負樣本。
第二級是隨機森林分類器,輸入的候選樣本經過每棵樹的節點對比和計算后,產生一定數目的后驗概率,平均概率小于閾值標記為負樣本。
第三級是最近鄰分類器,待分類樣本的類別由距離最近樣本決定,該距離指待檢測樣本與樣本庫中樣本的相似度。定義樣本p1p2的相似度為:

式中,μ1μ2σ1σ2分別為p1p2的均值與標準差。根據公式(2)(3)可計算待測樣本p 與樣本庫M 中最相似正樣本和負樣本的相似度表示如下:

根據公式(4)(5)定義相關相似度如下:

若Sr≥θNN,把待測掃描窗口圖像塊分類為正樣本,反之分類為負樣本。
TLD學習模塊分為兩個部分,一是PN學習機制[16],P約束利用追蹤結果預測目標下一幀位置,若該樣本被檢測器分類為負樣本,糾正為正樣本,以發現追蹤目標外觀上的變化。N約束把檢測器結果與P約束產生的正樣本進行比較,選出置信度最高的位置作為TLD 跟蹤結果,并重新初始化跟蹤器。另一部分是整合器,整合器利用跟蹤模塊和檢測模塊進行互補,得到跟蹤結果。
TLD 算法一定程度上解決了“消失目標的重新檢測”問題,遮擋發生時,目標丟失,TLD算法不進行標定,遮擋結束后,目標重新出現,該算法能迅速感知并進行重新標定。但TLD 算法的重新標定不夠準確,易導致相似目標及背景聚類的錯判。為此,本文引入特征重檢環節,提出基于特征重檢的抗遮擋目標跟蹤研究方法(TLD-D)。采用跟蹤、檢測、學習、再檢測的策略。跟蹤與檢測相結合,對鎖定目標學習,獲取目標最新特征;且根據跟蹤和檢測模塊對當前幀的計算狀態,判斷是否有遮擋現象。發生遮擋則啟用特征重檢環節,提取遮擋中“遮擋開始”和“遮擋結束”兩個關鍵幀;采用SIFT特征,設計雙向匹配重新檢測,避免相似目標及背景聚類的錯判,保證后續幀跟蹤。
為避免遮擋發生時因目標外觀相似或背景聚類錯判,本文在TLD基礎上引入特征重檢環節,特征重檢環節的設計分為三步:
步驟1 遮擋關鍵幀提取
特征重檢環節應獨立于TLD 追蹤和檢測模塊,融合于學習模塊。結合TLD 學習模塊可知,當遮擋出現目標消失時,跟蹤器與檢測器同時進入失效狀態,此時無標定結果;而當遮擋結束目標重新出現時,跟蹤器與檢測器不再同時失效,此時需要進行重新標定。故本文在TLD 跟蹤器和檢測器同時失效時認定遮擋開始,提取當前幀為“遮擋開始”幀,并啟用特征重檢環節;當TLD 追蹤模塊和檢測模塊不同時失效時,表示遮擋結束,提取當前幀為“遮擋結束”幀,并用特征重檢結果代替原輸出作為“遮擋結束”幀的跟蹤結果,之后關閉特征重檢環節。特征重檢環節的開啟與閉合通過設置標志位來實現。
步驟2 特征提取
重檢特征應有較強魯棒性,本文采用SIFT[17]特征對目標重新檢測,SIFT 特征描述子的生成過程如圖3所示。

圖3 SIFT算法流程
第一步尺度空間與極值檢測,構建高斯差分金字塔并進行極值點的檢測;第二步關鍵點定位,在候選點位置上通過擬合精細模型,去除低對比度和邊緣處不穩定的特征點;第三步關鍵點方向分配,計算關鍵點圖像梯度的主方向和輔助方向;第四步生成特征描述子得到SIFT 特征向量。本文對初始幀A0,“遮擋開始”幀B1的前兩幀A1,A2以及“遮擋結束”幀B2進行SIFT特征描述得到特征點集,通過雙向匹配得到匹配點集,取兩個方向匹配點集的交集作為目標區域。
步驟3 特征匹配
在進行特征重檢時,受到TLD 算法跟蹤模塊中前向后向跟蹤思想啟發,采用雙向匹配的思路進行SIFT特征匹配。
正向匹配:將A0幀中目標框內提取的SIFT特征點向“遮擋結束”幀B2中的特征點進行匹配,得到SIFT特征匹配點集,再把它們與A1目標框中的SIFT特征點集進行匹配,能夠與之匹配且落在目標框內的特征點才會作為正向匹配的結果。
反向匹配:把A2幀中已標定的目標框內生成的SIFT算子向“遮擋結束”幀B2去匹配,得到SIFT匹配點集,再與A0幀的目標框內的特征點進行匹配,篩選后得到反方向的結果。
正反兩個方向的特征匹配充分利用初始幀A0和遮擋開始前兩幀A1與A2的信息,綜合正反方向信息得出特征重檢結果,利用該結果取代TLD 算法當前幀的標定結果,更為準確。
本文將加入的特征重檢環節分為預處理和FeaDec算法兩部分,具體步驟如下:
特征重檢預處理:提取當前幀為“開始遮擋”幀B1。同時對B1幀前兩幀A1、A2進行生成SIFT 特征描述得到特征描述點集S1、S2。
特征重檢算法(FeaDec):
輸入:初始幀A0,當前幀Ax。
(1)當前幀Ax定義為“遮擋結束”幀B2。
(2)對A0、B2生成SIFT特征描述點集S0、Sx。
(3)正向匹配:將S0與Sx進行匹配篩選后得到特征匹配點集Ra,Ra與S1再進行匹配篩選后得到特征匹配點集R1。
(4)反向匹配:將S2與Sx進行匹配篩選后,得到特征匹配點集Rb,Rb與S0進行匹配篩選后得到特征匹配點集R2。
(5)取R1與R2的交集為特征點集S,以S 點集的中點為目標中心,以A1幀和A2幀長寬中值為目標框的長寬,得到新的目標框。
(6)用該目標框作為“遮擋結束”幀B2的標定結果。
輸出:當前幀B2的標定結果。
本文在TLD算法上,引入特征重檢環節提出TLD-D算法,在初始幀指定跟蹤目標后,每一幀的正常處理采用跟蹤、檢測、學習、再檢測的策略。跟蹤部分采用中值光流法對跟蹤目標在當前幀的位置進行跟蹤和預測;檢測部分通過級聯分類器定位每幀圖像中的目標;學習部分綜合前兩部分,更新目標外觀特征及獲取當前幀的目標位置,且根據跟蹤模塊和檢測模塊對當前幀的計算狀態,判斷是否有遮擋現象,若有遮擋,進行遮擋重檢測處理,給出跟蹤結果。
學習模塊的整合策略如下:若僅跟蹤模塊或檢測模塊生效,使用該模塊結果作為當前幀輸出并更新另一模塊;若跟蹤模塊與檢測模塊結果并存,通過計算置信度進行加權平均得到當前幀跟蹤結果。
若跟蹤模塊和檢測模塊同時失效,認定遮擋發生,按時序分為“遮擋開始”幀、“維持遮擋”過程、“遮擋結束”幀,當跟蹤模塊和檢測模塊第一次同時失效時,提取當前幀作為“遮擋開始”幀,并進行特征重檢預處理。之后正常處理后續幀并檢查跟蹤模塊和檢測模塊對當前幀的定位結果,若兩模塊仍同時失效,認為處于“維持遮擋”過程,不進行特征重檢,直到某一幀正常跟蹤后跟蹤模塊和檢測模塊中存在一個模塊生效,提取當前幀為“遮擋結束”幀,并進行特征重檢,利用SIFT特征進行雙向匹配檢測目標,確保重新標定的目標為原跟蹤目標,使用重檢結果作為“遮擋結束”幀的跟蹤結果,并用該結果去更新跟蹤模塊與檢測模塊,即“再檢測”,關閉特征重檢環節繼續下一幀正常處理過程。
結合本文3.1 節中提出的特征重檢預處理過程和FeaDec 算法,給出本文提出的TLD-D 算法工作原理流程如圖4。

圖4 TLD-D算法流程
將本文提出的TLD-D 算法與TLD 算法、同類改進算法[14](TLD-A)以及經典跟蹤算法進行實驗比較,重點分析在發生遮擋的情形下跟蹤性能。
軟硬件環境:處理器Intel 酷睿i7-7500U,CPU主頻2.70 GHz,操作系統64位Windows,編程環境Matlab2014a及Opencv2.4.10。
數據集:目標跟蹤基準數據集OTB[18](Object Tracking Benchmark),OTB-2013 有50 段不同視頻序列組成,每個視頻序列都具有一種或多種標記屬性,總計11種,分別是遮擋、形變、運動模糊、快速運動、平面內旋轉、平面外旋轉、移出視野外、背景雜亂、低分辨率、光照變化、尺度變化等。OTB-2015[19]在OTB-2013上進行擴展,視頻序列總量達到100個,本文在該數據集上以中心坐標誤差與目標框的重疊率為評價基準做了對比實驗。
本文在OTB 標準集上進行了實驗,在具有遮擋屬性的視頻序列上TLD-D 算法都明顯優于TLD 算法,下面給出兩個具有遮擋屬性的典型視頻實驗結果。

圖5 遮擋環境下的跟蹤算法結果
實驗1 OTB 中的walking2 視頻序列,描述一名女子離去的畫面,側面走出的行人會遮擋該女子的跟蹤。跟蹤結果如圖5(a),前176 幀不存在遮擋情況,三種算法都能保持對原目標的追蹤,第176幀一名男子從側面進入,在第190幀時TLD算法最先受到遮擋影響發生漂移,而TLD-A 使用KCF 取代TLD 光流跟蹤器,TLD-D啟用特征重檢機制,該兩種算法具有一定抗遮擋性能,仍保持對原目標的跟蹤。這樣直到第199 幀TLD-A 也因遮擋面積過大漂移到相似目標上,到第236幀遮擋基本結束,但TLD-A及TLD算法沒有從遮擋中恢復,仍然對相似目標進行追蹤。直到380幀男子開始離開場景,相似目標的干擾能力減弱,TLD-A才恢復了對初始跟蹤目標的追蹤。從上述分析可知,遮擋發生后,TLD 算法錯誤地對遮擋結束處距離最近的相似目標跟蹤,TLD-D與TLD-A 因為引入不同的抵抗遮擋機制,能夠從相似目標的錯判中恢復并重新跟蹤原目標,但TLD-A 對相似目標的鑒別能力較TLD-D 偏弱,在部分幀與TLD 算法同樣陷入遮擋錯判問題。
實驗2 OTB 基準集中的subway 視頻序列,該視頻描述的是在人行道上人來人往的場景,跟蹤如圖5(b)。對于該視頻序列,前37幀都能正常跟蹤該行人,跟蹤效果較好。從第38 幀開始,所跟蹤的行人與過往的行人有所交疊,發生遮擋。第42 幀起TLD 算法錯把過往行人認定為跟蹤目標,另兩種算法未受到相似目標影響,第76 幀再次與過往行人發生遮擋,TLD-A 與TLD-D 仍能跟蹤原目標,但TLD-A算法的位置不夠精確,在79幀最明顯,84幀遮擋結束,TLD-A恢復對原目標的準確跟蹤,TLD陷入相似目標追蹤無法恢復,TLD-D位置精度較好且無錯判現象。
進一步進行定量分析,TLD、TLD-D、TLD-A三種算法在處理遮擋情況的跟蹤精度對比曲線如圖6所示,引入抗遮擋機制后,跟蹤算法的精度有明顯提升。圖6(a)中walking2序列下TLD-A由于跟蹤模塊使用優于光流法的KCF 跟蹤器,從TLD的0.762上升至0.853,TLD-D引入的特征重檢機制要優于TLD-A 的抗遮擋機制,平均精度在walking2 序列下達到0.928。subway 序列下,TLD-A(0.862)較TLD(0.732)提升0.130。TLD-D算法表現更佳,精度達到0.915。walking2 和subway 兩個視頻序列存在遮擋過程,TLD-D加入特征重檢機制后,對遮擋恢復后的重新標定更為準確,確保后續跟蹤的目標為原目標,使跟蹤平均精度明顯提升,抗遮擋性能更好。

圖6 視頻序列上的跟蹤精度曲線
OTB 基準集中100 個視頻全部運行后的平均實驗精度曲線如圖7(a),考慮到OTB 基準集作為目標跟蹤數據集的全面性,以及多種因素的共同作用,100個視頻中以遮擋因素為主要屬性的視頻序列效果提升明顯,而以其他因素為主的視頻序列性能提升不多。由平均精度可知,TLD-A算法(0.596)在TLD算法(0.573)基礎上提升了0.023。本文所提TLD-D(0.635)算法比改進算法TLD-A算法精度提升0.039,較TLD算法提升0.062。

圖7 跟蹤對比結果
在OTB中具有遮擋屬性序列的視頻上,本文TLD-D算法與經典跟蹤算法相比較,跟蹤精度曲線如圖7(b)所示,TLD-D算法在這些視頻序列上表現良好,跟蹤精度從TLD算法的0.696提升至0.886,也優于同類改進TLD的TLD-A(0.753)算法,與經典算法的對比中也展現出良好抗遮擋性能。
實驗表明,特征重檢環節增強了遮擋情形下算法對場景中相似目標的辨識能力,在存在遮擋的場景下,對目標長時間跟蹤表現出強魯棒性。
本文針對視覺目標跟蹤的遮擋問題進行了深入研究,在TLD算法框架基礎上,設計了一種基于特征重檢的抗遮擋目標跟蹤方法TLD-D,首先根據跟蹤模塊和檢測模塊對當前幀的計算狀態,判別是否有遮擋現象。若出現遮擋,提取出遮擋過程中“遮擋開始”和“遮擋結束”兩個關鍵幀,對“遮擋開始”幀進行特征重檢預處理,對“遮擋結束”幀進行特征重檢,使用SIFT 作為特征重檢所使用的特征,在特征匹配上新定義了正反兩個方向進行雙向匹配,提高重檢的準度。
對于OTB 基準集中具有遮擋因素的視頻序列,改進后的TLD-D 算法都明顯優于TLD 算法,同時在OTB基準集100 個視頻上的平均性能也有所提升。實驗可知,遮擋因素僅是跟蹤一個側面,對目標跟蹤的其他影響因素也進行改進才能讓總的平均性能得到比較高的提升。未來工作會在本文基礎上進行改進。