高飛
摘要:在互動投影系統(tǒng)中,針對Kinect自帶的機器學(xué)習(xí)的目標(biāo)跟蹤算法精確度不高,而Camshift算法在背景顏色與目標(biāo)物顏色相近時,容易出現(xiàn)誤差而無法預(yù)測運動方向,提出將Kinect的深度信息與Camshift算法顏色直方圖相融合;為克服Camshift算法在目標(biāo)物體速度發(fā)生突變而引起目標(biāo)跟蹤丟失的現(xiàn)象,加入了目標(biāo)運動軌跡預(yù)測機制,提出了一種動態(tài)目標(biāo)自適應(yīng)跟蹤算法。實驗結(jié)果表明,該算法在背景顏色與目標(biāo)物顏色相近,且運動速度發(fā)生突變的條件下,相比傳統(tǒng)的Camshift算法更具魯棒性,跟蹤準(zhǔn)確率提高5.0%。
關(guān)鍵詞:Camshift算法;目標(biāo)自適應(yīng)跟蹤算法;Kinect
中圖分類號:TP311? ? ? 文獻標(biāo)識碼:A
文章編號:1009-3044(2021)11-0193-03
傳統(tǒng)的目標(biāo)跟蹤算法包括:尺度不變特征 (Scale invariant feature transform,SIFT)跟蹤算法[1],該算法依據(jù)關(guān)鍵點周圍的梯度信息來定位運動目標(biāo)的位置;基于梯度直方圖特征(Histogram of oriented gradient, HOG)的算法[2],該算法有效解決了靜態(tài)圖像中監(jiān)測行人位置的問題;連續(xù)自適應(yīng)均值漂移(Continuous adaptive Mean shift,簡稱Camshift)算法[3] ,該算法的原理是以目標(biāo)物體的顏色概率分布圖為基準(zhǔn),可有效降低目標(biāo)跟蹤過程中由于姿態(tài)發(fā)生改變以及光照發(fā)生變化時對目標(biāo)對象跟蹤的影響。他的缺點是,當(dāng)目標(biāo)物顏色與背景顏色相似時,極易發(fā)生跟蹤錯誤的現(xiàn)象。當(dāng)目標(biāo)運動的速度過快時,Camshift算法依據(jù)上一幀圖像計算出來的結(jié)果得到的搜索區(qū)域,不能與運動目標(biāo)正確連接,導(dǎo)致目標(biāo)跟蹤丟失。
針對Camshift的不足之處,研究者提出了許多改進方法,例如文獻[4]針對目標(biāo)運動速度過快的情況提出了改進的Camshift算法,對預(yù)測的速度、加速度及誤差采用IIR濾波器進行修理和改正,但是當(dāng)加速度突然增大時卻不能準(zhǔn)確進行目標(biāo)跟蹤。Li等[5]提出將Surf算法與Camshift算法相結(jié)合實現(xiàn)目標(biāo)跟蹤。還有研究者[6]將其與粒子濾波、Kalman濾波、邊緣信息和紋理信息等進行融合,
在一定程度上算法的魯棒性得到了進一步提高。文獻[7]將Kalman濾波方法、粒子濾波算法與Camshift算法相結(jié)合,實現(xiàn)了當(dāng)目標(biāo)被長時間遮擋情況下,仍可對目標(biāo)物體高效跟蹤。但是該算法在目標(biāo)物體加速度突變時,跟蹤效果不理想。
本文在以上算法的基礎(chǔ)上,利用Kinect采集人物信息,將Kinect采集到的深度圖像顏色信息與Camshift的顏色直方圖信息進行融合,可有效的解決目標(biāo)物體與背景顏色相近時目標(biāo)物體丟失、跟蹤偏移等問題。同時,加入目標(biāo)運動軌跡預(yù)測機制,設(shè)計了一種動態(tài)目標(biāo)自適應(yīng)跟蹤算法,該方法可有效避免因目標(biāo)物體速度發(fā)生突變而引起目標(biāo)跟蹤丟失的現(xiàn)象。
1 傳統(tǒng)Camshift算法
Camshift算法的參考對象是跟蹤目標(biāo)的顏色信息,根據(jù)參考對象的幾何大小,可自動生成用于定位跟蹤目標(biāo)的搜索窗口,此窗口的大小依據(jù)目標(biāo)對象的大小進行自適應(yīng)調(diào)整,進而實現(xiàn)當(dāng)前圖像中目標(biāo)物體的定位,避免了因目標(biāo)物體形狀發(fā)生變化而造成目標(biāo)跟蹤錯誤的情況。
1.1 色彩投影
為避免RGB顏色空間的低抗敏感度,用HSV顏色空間代替RGB,將紅(red, R)、綠(green, G)及藍(blue, B)顏色空間變換為色調(diào)(hue,H)、飽和度( saturation,S)及明度(value,V)顏色空間,通過將被跟蹤物體圖像中的H值進行統(tǒng)計,進而得到目標(biāo)物體顏色的目標(biāo)直方圖,通過將其映射到[0,255]像素值范圍內(nèi),進而得到顏色概率分布圖。
1.2 Mean-Shift算法
根據(jù)某一幀圖像的樣本點反復(fù)迭代尋找目標(biāo)圖像空間中的最優(yōu)概率分布來確定目標(biāo)的位置,通過不斷計算搜索窗的重心,并將搜索窗的中心設(shè)在重心處,再通過不斷迭代將搜索框的重心移動到質(zhì)心處,直至搜索框質(zhì)心移動的距離不大于設(shè)定的移動閾值,進而確定搜索框的大小。
1.3 自適應(yīng)迭代過程
將上述Meanshift算法擴展到所有的幀序列中,則為Camshift算法。將上一幀的迭代結(jié)果作為下一幀的初始值,通過反復(fù)迭代來實現(xiàn)目標(biāo)圖像的準(zhǔn)確跟蹤。
2 Kinect深度信息與顏色信息融合算法
融合深度信息的顏色直方圖,即將原彩色圖像進行反向投影,在反向投影圖的基礎(chǔ)上,將深度值作為權(quán)重,進而達到濾波的目的。詳細(xì)融合過程為:通過連續(xù)采集兩幀圖像f1、f2,兩幀圖像上目標(biāo)的深度數(shù)據(jù)分別設(shè)定為d1、d2,在兩幀圖像之間跟蹤目標(biāo)的移動距離設(shè)為:m= |d1- d2|,若當(dāng)前幀圖像f0內(nèi)攝像機與跟蹤目標(biāo)的質(zhì)心之間的距離為d。則把當(dāng)前幀圖像f0的深度圖在(d-m,d+m) 數(shù)值區(qū)間的像素點一一映射到對應(yīng)的反向投影圖上,并將權(quán)重系數(shù)值設(shè)置為0.8。即若原來的值為t1,則映射后的值為t1*0.8;將在(d-2m,d-m)U(m+d,m+2d)數(shù)值區(qū)間的像素點一一映射到對應(yīng)反向投影圖中,并將權(quán)重系數(shù)值設(shè)置為0.6,即若原來的值為t2,則處映射后的值為t2*0.6,將在其他區(qū)間像素點的數(shù)值全部設(shè)為0。依據(jù)此原理,通過深度值偏移的大小設(shè)置對應(yīng)的權(quán)重系數(shù),當(dāng)然,權(quán)重系數(shù)可根據(jù)具體實際情況進行修改。最后在融合了深度信息的顏色反向投影概率分布直方圖上通過利用Camshift算法進行目標(biāo)跟蹤。
3 動態(tài)目標(biāo)自適應(yīng)跟蹤算法
傳統(tǒng)的Camshift算法沒有對目標(biāo)特征進行更新的機制,也沒有目標(biāo)物體運動預(yù)測模塊,當(dāng)跟蹤目標(biāo)發(fā)生速度突變時,得出的目標(biāo)區(qū)域會增大,搜索窗口的大小亦會增加。所以,在對目標(biāo)物體進行定位跟蹤時,通過采用動態(tài)目標(biāo)自適應(yīng)跟蹤算法對后一幀的目標(biāo)位置進行估計并將目標(biāo)搜索范圍進行縮小就非常重要。常用的目標(biāo)物體運動預(yù)測算法有Kalman濾波[8]、擴展Kalman濾波[9]等。
通過運動目標(biāo)在前幾幀中的加速度、速度及位置坐標(biāo)的數(shù)據(jù)來預(yù)測當(dāng)前幀內(nèi)運動目標(biāo)的位置。對運動目標(biāo)下一幀位置進行預(yù)測,即首先根據(jù)運動目標(biāo)形成該目標(biāo)的運動模型,再依據(jù)目標(biāo)在前三幀圖像中的運動軌跡來預(yù)測目標(biāo)在當(dāng)前幀中的出現(xiàn)的位置。然后,將此估測的位置設(shè)置為目標(biāo)搜索窗口的起始位置,利用Camshift跟蹤算法搜索目標(biāo)在當(dāng)前幀中的位置。當(dāng)目標(biāo)運動速度突變時,在5幀圖像的時間內(nèi)將跟蹤目標(biāo)假設(shè)為分別在x軸、y軸上分別做勻加速直線運動,然后,通過跟蹤目標(biāo)運動的加速度位移公式來預(yù)測并估算下一幀目標(biāo)的大概位置區(qū)域。運用得到的估算位置對目標(biāo)區(qū)域搜索窗口進行平移,增大運動目標(biāo)與搜索窗口的關(guān)聯(lián)性,以此來提高Camshift算法運動目標(biāo)跟蹤的魯棒性。具體的計算方法如下式:
以x軸的運動分量為例:
[ x'k=xk-1+vxk-1t+1/2ax(k-1)t2]? ? ?(1)
其中:x'(k)表示第k幀圖像的中心在x軸的預(yù)測值,vx(k-1)表示在第k-1幀時在x軸方向上的速度值,ax(k- 1)表示在第k-1幀時x方向上的加速度值,t為每兩幀的時間間隔。公式(1)以x(k-1)、vx(k-1)、ax(k- 1)和t四個數(shù)值來計算被跟蹤目標(biāo)的圖形中心在第k幀時x軸的預(yù)測值。式中:
[ vxk-1=xk-1-xk-2-x(k-3)t]? ? ? ? ? ? ? ? (2)
[axk-1=vxk-1-vxk-2-vxk-3t]? ? ? ? ? ? (3)
將(2)(3)式代人(1)式得:
[x'k=52xk-1-2xk-2-32xk-3+xk-4+12x(k-5)]? ? ? ? ? ? ? ? ? ? ? (4)
利用同樣的方法得y軸的中心坐標(biāo)預(yù)測值為:
[y'k=52yk-1-2yk-2-32yk-3+yk-4+12y(k-5)]? ? ? ? ? ? ? (5)
目標(biāo)跟蹤示意圖如圖1所示:
如圖1所示,跟蹤目標(biāo)在當(dāng)前幀中的預(yù)測位置是根據(jù)它在前五幀中的位置計算得來的。由圖知,通過傳統(tǒng)的Camshift算法來搜索當(dāng)前幀中目標(biāo)位置的搜索路徑為R2,而通過在Camshift算法內(nèi)加入目標(biāo)運動軌跡預(yù)測機制,利用動態(tài)目標(biāo)自適應(yīng)跟蹤算法的搜索路徑為R1。很明顯,R1短于R2,改進后的Camshift算法可有效減小搜索路徑,可以提高跟蹤速度和精度。
4 實驗結(jié)果
為了驗證改進Camshift 算法在目標(biāo)顏色與背景顏色相似條件下的魯棒性,將改進的Camshift 算法與傳統(tǒng)的Camshift 算法進行跟蹤實驗;為了驗證Camshift 算法在目標(biāo)物體運動速度突變情況下的準(zhǔn)確率,將改進的Camshift 算法與傳統(tǒng)的Camshift 算法進行跟蹤實驗。測試本文算法的有效性。
4.1 目標(biāo)與背景顏色相近跟蹤實驗
本實驗主要驗證改進Camshift 算法在目標(biāo)顏色與背景顏色相似條件下相對于傳統(tǒng)的Camshift 算法具有較強的魯棒性。本實驗采用一段視頻幀數(shù)為450的視頻影像作為實驗輸入,對視頻中人物衣服顏色相似的跟蹤結(jié)果對比,實驗效果圖如圖2和圖3所示。
從圖2可以看出,傳統(tǒng)的Camshift 算法對目標(biāo)顏色與背景顏色相似的情況下,出現(xiàn)了錯誤跟蹤的現(xiàn)象。由圖3可以看出,當(dāng)目標(biāo)人物的旁邊出現(xiàn)與其衣服顏色相似的人物時,傳統(tǒng)的Camshift 算法跟蹤到了錯誤目標(biāo)。由圖3可以看出,改進的Camshift 算法在同條件下進行目標(biāo)跟蹤時,可以準(zhǔn)確地跟蹤到目標(biāo)。由表1可以看出,改進的Camshift 算法相比于傳統(tǒng)的Camshift 算法的跟蹤準(zhǔn)確率提高了5.0%。
4.2 運動目標(biāo)的運動速度突變跟蹤實驗
本實驗主要驗證動態(tài)目標(biāo)自適應(yīng)跟蹤算法與傳統(tǒng)的Camshift算法在運動目標(biāo)的運動速度發(fā)生突變情況下的目標(biāo)跟蹤對比情況,本實驗采用一段排球球運動的視頻畫面進行跟蹤,對比效果圖如圖4和圖5所示。
從圖4可以看出,傳統(tǒng)的Camshift算法在排球運動速度突變加快時,出現(xiàn)了跟蹤丟失的現(xiàn)象。由圖5可以看出,利用動態(tài)目標(biāo)自適應(yīng)跟蹤算法對速度發(fā)生突變的排球進行位置跟蹤時,跟蹤準(zhǔn)確率明顯提升,跟蹤性能更優(yōu)。
5 結(jié)束語
本文針對傳統(tǒng)Camshift算法在目標(biāo)顏色與背景顏色相似情況下,容易出現(xiàn)目標(biāo)跟蹤錯誤的現(xiàn)象,提出了一種將Kinect深度信息與Camshift顏色直方圖相融合的算法,通過實驗證明,該算法提高了跟蹤的魯棒性。針對傳統(tǒng)Camshift算法在目標(biāo)物體速度發(fā)生突變而出現(xiàn)跟蹤丟失的問題,本文提出了一種動態(tài)目標(biāo)自適應(yīng)跟蹤算法,在傳統(tǒng)的Camshift算法中加入目標(biāo)運動軌跡預(yù)測機制,通過實驗表明,該算法可有效提高互動投影系統(tǒng)中移動目標(biāo)跟蹤的準(zhǔn)確性和魯棒性。但運算量也會增大。
參考文獻:
[1] Lindeberg T.Scale invariant feature transform[J].Scholarpedia,2012,7(5):10491.
[2] Dalal N,Triggs B.Histograms of oriented gradients for human detection[C]//2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05).June 20-25,2005,San Diego,CA,USA.IEEE,2005:886-893.
[3] Xiao J J,Stolkin R,Oussalah M,et al.Continuously adaptive data fusion and model relearning for particle filter tracking with multiple features[J].IEEE Sensors Journal,2016,16(8):2639-2649.
[4] 吳慧敏,鄭曉勢.改進的高效Camshift跟蹤算法[J].計算機工程與應(yīng)用,2009,45(27):178-180.
[5] Li J H,Zhang J,Zhou Z H,et al.Object tracking using improved Camshift with SURF method[C]//2011 IEEE International Workshop on Open-source Software for Scientific Computation.October 12-14,2011,Beijing,China.IEEE,2011:136-141.
[6] Yan J H, Chen S H, Shu-Fang A I, et al. Target trac king with improved C amshift based on K alman predictor[J]. Journal of Chinese Inertial Technology,2014,22(4):536-542.
[7] 王偉程.Camshift目標(biāo)跟蹤算法改進研究[J].石油化工自動化,2019,55(1):35-38,65.
[8] 鐘必能.復(fù)雜動態(tài)場景中運動目標(biāo)檢測與跟蹤算法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[9] Sepasi S,Ghorbani R,Liaw B Y.Improved extended Kalman filter for state of charge estimation of battery pack[J].Journal of Power Sources,2014,255:368-376.
【通聯(lián)編輯:李雅琪】