劉亞偉, 李小民
(軍械工程學院無人機工程系,石家莊 050003)
基于BRISK和CamShift的魯棒目標跟蹤研究
劉亞偉, 李小民
(軍械工程學院無人機工程系,石家莊 050003)
在CamShift目標跟蹤的框架下,提出了基于BRISK特征匹配和CamShift的目標跟蹤方法,該方法通過顏色特征和局部特征共同定位目標,從而實現(xiàn)目標準確跟蹤。在保證跟蹤實時性的前提下,該方法改善了CamShift算法在目標跟蹤過程中對背景、尺度、旋轉(zhuǎn)和遮擋變化的敏感性和目標跟蹤的特征單一性。實驗對比結(jié)果表明,該改進方法較單獨基于特征匹配的目標跟蹤方法,其快速性有很大提高,較CamShift跟蹤方法在目標尺度變化、旋轉(zhuǎn)變化、光照變化、背景變化和遮擋變化條件下的魯棒性更強,同時增強了兩種算法的跟蹤準確性。
目標跟蹤; 魯棒性; CamShift; BRISK
目標跟蹤技術(shù)作為計算機視覺領(lǐng)域的一個重要分支,一直以來都受到各個相關(guān)領(lǐng)域的關(guān)注。但是跟蹤過程中目標的多動性和環(huán)境的多變性,使得目標跟蹤受到各種干擾,所以提高跟蹤算法的魯棒性已成為一項非常重要的工作。目前常見的目標跟蹤算法有:均值漂移法、粒子濾波法、卡爾曼濾波法和特征點匹配法等。由于均值漂移(MeanShift)的目標跟蹤算法[1]具有計算簡單、實時性好、易于實現(xiàn)等特點,因此在現(xiàn)實生活中應(yīng)用最為廣泛;文獻[2]將CamShift算法應(yīng)用于基于單目標視覺的手勢識別過程;文獻[3]將CamShift應(yīng)用于運動目標跟蹤過程。但是,CamShift的缺點也非常明顯,其在進行匹配過程中,只考慮了單一的目標顏色信息,所以導(dǎo)致其魯棒性較弱,尤其是在目標發(fā)生較大的尺度變化、旋轉(zhuǎn)變化、光照變化、背景顏色變化和遮擋的條件下,使得目標區(qū)域顏色直方圖發(fā)生較大改變,導(dǎo)致跟蹤不穩(wěn)定甚至跟蹤失敗[4]。
針對上述問題,各領(lǐng)域?qū)<覍W者也做了大量改進,文獻[5]針對CamShift在光照和相似顏色背景下跟蹤效果差的問題,提出了一種利用HSV空間中色調(diào)信息、飽和度信息和邊緣梯度信息來構(gòu)建目標的三維直方圖特征的CamShift改進方法;文獻[6]針對單一特征無法準確描述目標的問題,將輪廓和角點特征引入到了CamShift算法中。
基于特征匹配的目標跟蹤[7]是采用目標的局部特征信息,通過特征匹配來進行跟蹤的算法。目前常用的特征匹配算法有SIFT,SURF,ORB和BRISK等。BRISK算法是由文獻[8]提出的一種新的角點檢測和描述算法。BRISK與SIFT,SURF等算法相比,由于其采用二進制描述子和漢明距離匹配,使得計算速度和內(nèi)存占有量都有了顯著提高;與ORB相比由于其采用了鄰域采樣模式,使得其檢測到的特征點更加精確。文獻[9]將BRISK算法應(yīng)用于超分辨率圖像重建中的高精度快速圖像配準;文獻[10]將BRISK算法應(yīng)用于局部特征描述的目標定位過程。
本文提出了一種基于BRISK算法和CamShift算法的魯棒目標跟蹤方法,該方法能夠顯著增強CamShift跟蹤對尺度、旋轉(zhuǎn)、光照、遮擋和背景變化的敏感性,并且對單獨基于特征點匹配的目標跟蹤算法的快速性有顯著改善。本文算法在保證跟蹤實時性的前提下,提高了目標跟蹤精度和魯棒性。
由于CamShift的原理是將MeanShift運用于連續(xù)圖像序列,是對MeanShift算法的擴展,所以下面著重對MeanShift算法的基本原理進行介紹。
MeanShift算法是一種基于核密度估計的非參數(shù)模式匹配算法。首先手動選取待跟蹤目標區(qū)域,使用MeanShift顏色直方圖信息作為模板,再提取下一幀圖像的顏色直方圖,進行直方圖匹配,通過計算相似度獲得相似度密度分布圖,圖中的極值位置即為目標的位置。
MeanShift的跟蹤特征是目標的顏色直方圖,其模型為
(1)
式中:qu代表目標顏色直方圖的第u個分量;C是歸一化常數(shù);{xi}表示像素的位置;δ是Kronecker函數(shù);k是核函數(shù)K的輪廓函數(shù)。MeanShift采用Bhattacharyya系數(shù)[11]表示候選模型pu(y)與目標模型qu的相似性,即
(2)
MeanShift迭代的目標中心位置是通過Bhattacha-ryya[11]的泰勒展開得到的,如式(3)所示。
(3)
式中:
g(x)=-k′(x)
(4)
(5)
BRISK算法具有縮放、傾斜、旋轉(zhuǎn)、光照等不變性,使得該算法具有較強的魯棒性。BRISK算法采用如圖1所示的自定義鄰域采樣模式,采樣點等距離分布在以特征點為中心的40×40像素塊內(nèi)構(gòu)建多個同心圓,共60個采樣點。
圖1 BRISK鄰域采樣模式Fig.1 Neighborhood sampling mode of BRISK
用A表示采樣點集合
A={(pi,pj)∈R2×R2|i (6) 記任意一對采樣點為(pi,pj),S表示短距離采樣點集合,L表示長距離采樣點集合,即 S={(pi-pj)∈Ω|‖pi-pj‖<δmax}?Ω (7) P={(pi-pj)∈Ω|‖pi-pj‖>δmin}?Ω。 (8) 通常取閾值δmax=9.75t,δmin=13.67t,α=arctan 2(gy,gx)表示點對(pi,pj)的梯度,角點的特征方向定義為 (9) (10) BRISK采用漢明距離進行特征匹配,用S1和S2代表兩個描述子,其中,S1=x1x2…x512,S2=y1y2…y512,x和y為二值數(shù)0或1,則S1和S2的漢明距離可定義為 (11) 式中:⊕表示異或運算;Dkd的值越小表示匹配程度越高。 CamShift目標跟蹤算法存在以下問題:1) 當背景顏色與目標相似時,容易導(dǎo)致跟蹤不穩(wěn)定,甚至導(dǎo)致跟蹤目標丟失;2) 如果目標發(fā)生大尺度縮放或者旋轉(zhuǎn)變換,會造成目標區(qū)域的顏色直方圖發(fā)生變化,無法實現(xiàn)有效跟蹤;3) 如果目標被部分遮擋或者全部遮擋,當目標再次出現(xiàn)時不能繼續(xù)跟蹤。 針對以上問題,本文采用CamShift與BRISK相融合的方法進行目標跟蹤。該算法在CamShift跟蹤正常的情況下,BRISK算法不介入,一旦CamShift跟蹤失敗,即前后兩幀目標區(qū)域顏色直方圖相差較大,BRISK算法馬上介入。在匹配過程中,采用RANSAC算法來進行誤匹配點剔除處理從而獲得正確匹配點對。當匹配成功時,標出目標區(qū)域,這時再次啟動CamShift跟蹤算法,提取該區(qū)域顏色直方圖并繼續(xù)進行跟蹤。 改進算法的流程如圖2所示。 圖2 改進算法流程圖Fig.2 Flow chart of the improved algorithm 分別設(shè)置前后兩幀的顏色直方圖信息Hi-1和Hi利用Bhattacharyya距離[11]進行相似程度判斷,距離越大越相似。若dBhttacharyya(Hi-1,Hi)≤0.6,則說明CamShift跟蹤失敗,一旦跟蹤失敗,就把前一幀圖像目標區(qū)域作為模板,通過BRISK算法在后續(xù)視頻幀中進行目標匹配操作,直到匹配成功,并找到目標區(qū)域。 3.3.1 特征點重心偏移 (12) 3.3.2 BRISK跟蹤結(jié)果 當前跟蹤區(qū)域為r={x0,y0,v,h},(x0,y0)為跟蹤矩形框的中心坐標,h和v分別表示矩形框的水平和垂直方向半徑。用r′表示BRISK跟蹤區(qū)域,則 r′=r+(Δx,Δy)=(x0+Δx,y0+Δy,v,h) 。 (13) 3.3.3 融合 融合BRISK和CamShift的跟蹤區(qū)域用r″表示,則 r″=α×r+(1-α)×r′ (14) 式中,權(quán)系數(shù)α介于0~1之間。 實驗選用HERO運動相機拍攝視頻,分別用CamShift算法、BRISK算法和改進算法(基于BRISK和CamShift的魯棒目標跟蹤算法)進行對比測試,視頻幀頻率為25幀/s,分辨率為1920×1080。 實驗是在VS2010開發(fā)平臺上,利用VC++語言和開源代碼OpenCV聯(lián)合編程實現(xiàn)。其中硬件系統(tǒng):處理器為Inter(R)Core(TM) i3 CPU M390@2.67 GHz,內(nèi)存為4.00 GB,硬盤為500 GB,操作系統(tǒng)為Windows 7。實驗分別在尺度變化、旋轉(zhuǎn)變化、背景變化和遮擋等外界干擾條件下進行。 在目標尺度發(fā)生變化的情況下,3種算法對目標的跟蹤效果如圖3所示。 圖3 尺度變化條件下的跟蹤結(jié)果Fig.3 Tracking results when target scale changes 圖3考慮了第110幀(目標縮小0.8倍)、第158幀(目標縮小0.6倍)、第310幀(正常尺度)和第413幀(目標擴大1倍)4種情況下3種方法的跟蹤效果。結(jié)果顯示,CamShift算法和BRISK特征匹配算法對尺度均較為敏感,尤其是大尺度變化下(如縮小0.6倍和擴大一倍)跟蹤不穩(wěn)定。雖然改進算法的跟蹤效果有所提升,但是在大尺度變化下仍達不到滿意的效果。 在目標發(fā)生旋轉(zhuǎn)變化的情況下,3種算法對目標的跟蹤效果如圖4所示。 圖4考慮了第90幀(正常)、第270幀(目標旋轉(zhuǎn)10°)、第352幀(目標旋轉(zhuǎn)30°)和第420幀(目標旋轉(zhuǎn)45°) 4種情況下3種方法的跟蹤效果。結(jié)果顯示,CamShift算法在大旋轉(zhuǎn)條件下跟蹤效果不理想(如第352幀和第420幀),但是BRISK特征匹配跟蹤算法對目標旋轉(zhuǎn)具有較好的魯棒性,所以,該改進算法對目標的旋轉(zhuǎn)變化具有較好的魯棒性。 圖4 旋轉(zhuǎn)變化條件下的跟蹤結(jié)果Fig.4 Tracking results when rotating angle changes 在目標背景發(fā)生變化的情況下,3種算法對目標的跟蹤效果如圖5所示。 圖5 背景變化條件下的跟蹤結(jié)果Fig.5 Tracking results when background changes 圖5考慮了第189幀(正常)、第363幀(目標剛剛進入背景變化區(qū)域)、第456幀(目標完全進入背景變化區(qū)域)和第541幀(目標將駛出背景變化區(qū)域)4種情況下3種方法的跟蹤效果。結(jié)果顯示,當背景與目標的顏色相近時,對CamShift的跟蹤效果影響較大。而BRISK特征匹配的跟蹤方法對背景變化具有一定的抗干擾性,所以當跟蹤過程中背景發(fā)生變化時,改進算法能夠保持較好的跟蹤效果。 在目標發(fā)生遮擋變化的情況下,3種算法對目標的跟蹤效果如圖6所示。 圖6 遮擋變化條件下的跟蹤結(jié)果Fig.6 Tracking results when shading changes 圖6考慮了第447幀(目標小部分進入遮擋區(qū)域)、第460幀(目標大部分進入遮擋區(qū)域)、第484幀(目標小部分駛出遮擋區(qū)域)和第491幀(目標大部分駛出遮擋區(qū)域)4種情況下3種方法的跟蹤效果。結(jié)果顯示,當目標進入遮擋區(qū)域一半時,CamShift算法失效,跟蹤中斷且無法繼續(xù)跟蹤,而BRISK特征匹配的跟蹤算法對遮擋問題具有較好的魯棒性,只有當目標全部遮擋才會跟蹤失效,但是當目標駛出遮擋區(qū)域時,該算法可以再次實現(xiàn)自動跟蹤。所以,改進算法能夠?qū)崿F(xiàn)目標遮擋問題的有效跟蹤。 以相似背景對目標的干擾測試視頻為例,用目標模板與候選模板的相似度(即Bhattacharry系數(shù))[11]作為目標跟蹤準確度的衡量標準。Bhattacharry系數(shù)為0~1之間的一個數(shù)值,該數(shù)值越大,表示目標模板與候選模板的相似程度越高,即跟蹤準確性越高。測試結(jié)果如圖7所示。 圖7 Bhattacharry系數(shù)對比結(jié)果Fig.7 Contrast results of Bhattacharry 測試結(jié)果表明,跟蹤目標進入與目標相似的背景環(huán)境時,Bhattacharry系數(shù)都有所下降,跟蹤準確性下降。圖7中第350幀目標進入背景干擾環(huán)境,第450幀駛出干擾環(huán)境。由此可見,當目標進入相似背景環(huán)境時,3種方法的跟蹤精度都出現(xiàn)了一定程度的下降,尤其是CamShift算法明顯下降。由于BRISK特征匹配跟蹤算法對外界干擾具有較好的魯棒性,所以Bhattacharry系數(shù)下降較小,但是由于BRISK特征匹配跟蹤算法模板不能實時更新,所以其跟蹤準確性整體處于下降趨勢。本文改進算法,由于對背景的變化敏感性較弱,所以對目標的跟蹤具有較好的準確性。 通過處理視頻中一幀圖像所用時間的平均值對算法的實時性進行測試,測試結(jié)果如表1所示。 表1 實時性測試表 由表1可知,CamShift雖然對跟蹤目標的尺度、旋轉(zhuǎn)、背景和遮擋變化較敏感,但是該跟蹤算法具有較好的實時性;BRISK特征匹配跟蹤算法對外界變化具有較強的魯棒性,但是實時性較差;而本文融合CamShift和BRISK算法的改進算法能基本滿足實時性要求并且對外界干擾具有較好的魯棒性。 針對CamShift目標跟蹤算法對跟蹤過程中背景變化、尺度變化、旋轉(zhuǎn)變化和目標被遮擋條件下跟蹤效果較差的問題,提出了一種基于BRISK特征匹配和CamShift相融合的改進目標跟蹤算法,并分別對CamShift算法、BRISK算法和本文改進算法的性能進行了測試。 實驗結(jié)果表明,改進算法顯著增強了CamShift算法對于背景變化、目標尺度變化、目標旋轉(zhuǎn)變化和目標被遮擋條件下跟蹤的魯棒性和基于特征匹配目標跟蹤算法的實時性,并提高了CamShift和BRISK跟蹤算法的跟蹤準確性。 [1] 楊輝,劉軍,阮松.基于MeanShift算法視頻跟蹤研究[J].計算機工程與設(shè)計,2013,34(6):2062-2066. [2] 程文山.基于膚色分割和CamShift的手勢識別研究[D].武漢:華中師范大學,2009. [3] 趙文倩,匡遜君,李明富.基于改進的CamShift運動目標跟蹤算法的研究[J].信息技術(shù),2012(7):164-169. [4] 李明鎖,井亮,鄒杰,等.結(jié)合擴展卡爾曼濾波的CamShift移動目標跟蹤算法[J].電光與控制,2011,18(4):1-3. [5] 覃躍虎,支琤,徐奕.基于三維直方圖的改進CamShift目標跟蹤算法[J].現(xiàn)代電子技術(shù),2013,37(2):29-33.[6] 王巍,孟朝暉.一種改進的CamShift目標跟蹤方法[J].信息技術(shù),2015(1):85-88. [7] 藺海峰,馬宇峰,宋濤.基于SIFT特征目標跟蹤算法研究[J].自動化學報,2010,36(8):1204-1208. [8] LEUTENEGGER S,CHLI M,SIEGWART R.BRISK:binary robust invariant scalable keypoints[C]//Proceedings of the IEEE International Conference on Computer Vision(ICCV),2011:2548-2555. [9] 何林陽,劉晶紅,李剛,等.改進BRISK特征的快速圖像配準算法[J].紅外與激光工程,2014,43(8):2722-2727. [10] 鄧集洪,魏宇星.基于局部特征描述的目標定位[J].光電工程,2015,41(1):58-63. [11] 劉玉.基于特征點的運動目標跟蹤技術(shù)研究[D].南京:南京航空航天大學,2011. ARobustTargetTrackingMethodBasedonBRISKandCamShift LIU Ya-wei, LI Xiao-min (Department of UAV Engineering,Ordnance Engineering College,Shijiazhuang 050003,China) A target tracking method based on BRISK feature matching and CamShift is proposed under the framework of CamShift target tracking.In this method,both the color features and local features are used to locate the targets for realizing accurate target tracking.Compared with traditional CamShift,this method can keep the real-time performance,while improving the sensitivity to the changes of background,dimensions,rotating and shading,and the oneness of the characteristics of the target tracking.The contrast experimental results show that: 1) The tracking method proposed is faster than the method based only on the feature matching; 2) Compared with CamShift,it has higher robustness to the changes of background,dimensions,rotating and shading; and 3) The precision of tracking is improved. target tracking; robustness; CamShift; BRISK TP391 A 1671-637X(2017)03-0041-05 2016-03-01 2016-04-16 “十二五”裝備預(yù)先研究項目(51325050101) 劉亞偉(1991 —),男,河北唐山人,碩士生,研究方向為無人機目標識別與跟蹤技術(shù)。3 基于BRISK和CamShift的魯棒目標跟蹤算法
3.1 CamShift存在問題及改進方法
3.2 改進算法的實現(xiàn)
3.3 改進算法關(guān)鍵技術(shù)簡介
4 實驗結(jié)果及分析
4.1 目標發(fā)生尺度變化的情況下CamShift算法、BRISK算法和改進算法的跟蹤效果
4.2 目標發(fā)生旋轉(zhuǎn)變化的情況下CamShift算法、BRISK算法和改進算法的跟蹤效果
4.3 目標發(fā)生背景變化的情況下CamShift算法、BRISK算法和改進算法的跟蹤效果
4.4 目標發(fā)生遮擋變化的情況下CamShift算法、BRISK算法和改進算法的跟蹤效果
4.5 改進算法跟蹤準確性測試
4.6 算法實時性測試
5 結(jié)論