葉家林,宋建新
(南京郵電大學(xué) 江蘇省圖像處理與圖像通信重點(diǎn)實(shí)驗(yàn)室,江蘇 南京210003)
運(yùn)動(dòng)物體跟蹤是計(jì)算機(jī)視覺(jué)中非常重要的研究領(lǐng)域,在醫(yī)學(xué)圖像、視頻監(jiān)控等行業(yè)有著重要的應(yīng)用。近年來(lái),連續(xù)自適應(yīng)地均值漂移算法(Camshift)[1]被廣泛地應(yīng)用于目標(biāo)跟蹤場(chǎng)合,可以實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的快速跟蹤。然而,Camshift 與MeanShift[2]一樣,都是基于圖像顏色直方圖的跟蹤算法,前者只是對(duì)后者的自適應(yīng)改進(jìn),可以解決目標(biāo)跟蹤過(guò)程中發(fā)生的尺度縮放、持續(xù)跟蹤等問(wèn)題。但是當(dāng)目標(biāo)顏色與背景顏色相近,或者目標(biāo)遇到旋轉(zhuǎn)時(shí),Camshift 算法容易失效。為了解決這些問(wèn)題,P. Hidayatullah[3]提出了三種不同的方法來(lái)提高Camshift 算法的魯棒性,這三種方法都可以解決因目標(biāo)顏色與背景顏色相近而導(dǎo)致跟蹤失敗的問(wèn)題;有人利用魚(yú)眼鏡頭圖像特點(diǎn)來(lái)改進(jìn)Camshift 算法,使得改進(jìn)后的算法可以有效跟蹤魚(yú)眼鏡頭中物體[4];Liu 等人[5]利用Camshift 與貪婪跟蹤、匹配追蹤相結(jié)合來(lái)對(duì)人的臉部進(jìn)行實(shí)時(shí)跟蹤;Zou 等人[6]提出構(gòu)建運(yùn)動(dòng)模板,將運(yùn)動(dòng)信息與顏色直方圖相結(jié)合,實(shí)現(xiàn)快速跟蹤。
SIFT(Scale Invariant Feature Transform)是一種圖像局部特征的描述子,有很好的旋轉(zhuǎn)不變性和尺度縮放不變性,對(duì)3D 視角和光照變化的適應(yīng)性強(qiáng),對(duì)雜物場(chǎng)景和目標(biāo)遮擋具有很好的魯棒性[7]。在MeanShift 跟蹤結(jié)果的基礎(chǔ)上,文獻(xiàn)[8]利用SIFT 匹配來(lái)尋找SIFT 的匹配點(diǎn)集合,通過(guò)計(jì)算仿射變換參數(shù)來(lái)得到MeanShift 最佳跟蹤結(jié)果。結(jié)合顏色信息與SIFT 特征,文獻(xiàn)[9]利用MeanShift 自適應(yīng)算法和EM 框架來(lái)進(jìn)行目標(biāo)跟蹤。本文提出一種Camshift 與SIFT 線性融合的跟蹤算法,該方法可以有效解決尺度變化、旋轉(zhuǎn)、目標(biāo)顏色與背景顏色相近的跟蹤情況。
Camshift 算法是以MeanShift 算法為核心,對(duì)圖像序列的所有幀進(jìn)行跟蹤,并將前一幀的搜素結(jié)果(搜索窗的大小和質(zhì)心)作為下一次搜索窗的初始值。
具體算法流程如下:
1)將目標(biāo)圖像從RGB 空間轉(zhuǎn)換到HSV 空間,提取H 分量構(gòu)建顏色直方圖。
2)初始化搜索窗口的大小和位置。
3)計(jì)算目標(biāo)區(qū)域內(nèi)的顏色概率分布圖。
4)計(jì)算窗口的質(zhì)心:
零階距為
式中:I(x,y)是概率分布圖中(x,y)處的概率值,那么窗口的質(zhì)心(xc,yc)=(M10/M00,M01/M00)。
5)移動(dòng)搜索窗的中心到目標(biāo)區(qū)域的質(zhì)心位置。如果移動(dòng)距離小于預(yù)設(shè)閾值或迭代次數(shù)大于15,那么該中心就是目標(biāo)的位置,此位置就為下一幀搜索的起始位置;否則,重新調(diào)整窗口大小,并返回步驟4)的計(jì)算,直到滿足條件為止。
6)計(jì)算目標(biāo)的移動(dòng)方向與搜索窗大小,并進(jìn)行下一幀跟蹤處理。
本文提出的算法融合了Camshift 和SIFT。首先利用Camshift 對(duì)視頻流中的運(yùn)動(dòng)物體進(jìn)行跟蹤,得到初始跟蹤結(jié)果,然后再利用SIFT 進(jìn)行特征匹配與校準(zhǔn),最后將這兩部分的跟蹤結(jié)果進(jìn)行線性融合。SIFT 特征匹配與校準(zhǔn)的步驟主要有:1)SIFT 特征提取;2)SIFT 特征匹配;3)特征區(qū)域的重心轉(zhuǎn)移計(jì)算;4)校準(zhǔn)Camshift 的跟蹤結(jié)果;5)將兩部分的結(jié)果進(jìn)行線性融合。算法流程圖如圖1 所示。
圖1 融合算法示意圖
SIFT 是一種檢測(cè)圖像局部特征的算法,在一定程度上既可以對(duì)目標(biāo)的旋轉(zhuǎn)、尺度變化保持不變性,也可以解決顏色干擾、光線變化等問(wèn)題。SIFT 的提取主要有5 個(gè)步驟:
1)構(gòu)建尺度空間。一個(gè)圖像的尺度空間定義為一個(gè)尺度變換的高斯函數(shù)與原圖像的卷積,在實(shí)現(xiàn)時(shí)使用高斯金字塔來(lái)表示。為了能夠檢測(cè)到穩(wěn)定的極值點(diǎn),人們利用不同尺度的高斯差分核與圖像進(jìn)行卷積,構(gòu)建高斯尺度空間(DoG)。
2)極值點(diǎn)檢測(cè)。極值點(diǎn)必須滿足在平面圖像空間與高斯差分尺度空間都具有極值的點(diǎn),所以每一個(gè)像素點(diǎn)都要與它所有的相鄰點(diǎn)進(jìn)行比較,得出極值點(diǎn)。
3)精確定位關(guān)鍵點(diǎn)。以上得到的極值點(diǎn)并不都是需要的關(guān)鍵點(diǎn),還要通過(guò)擬合三維二次函數(shù)來(lái)去除一些不滿足條件的極值點(diǎn)和邊緣點(diǎn),進(jìn)而確定最終的關(guān)鍵點(diǎn)。
4)關(guān)鍵點(diǎn)方向分配。為了使得描述子具有旋轉(zhuǎn)不變性,需要利用梯度方向的方法來(lái)為每一個(gè)關(guān)鍵點(diǎn)分配一個(gè)基準(zhǔn)方向,這樣就可以利用位置、尺度、方向確定一個(gè)SIFT 特征區(qū)域。
5)生成關(guān)鍵點(diǎn)描述子。最后,通過(guò)對(duì)關(guān)鍵點(diǎn)周?chē)鷧^(qū)域分塊,計(jì)算塊內(nèi)的梯度直方圖,生成向量,為每一個(gè)關(guān)鍵點(diǎn)建立一個(gè)描述符。
SIFT 特征匹配的過(guò)程就是兩幅圖像中關(guān)鍵點(diǎn)相似性度量的過(guò)程,一般采用特征向量的歐氏距離來(lái)進(jìn)行描述。假如目標(biāo)區(qū)域的一個(gè)關(guān)鍵點(diǎn)的特征向量為Va,Camshift 跟蹤區(qū)域的兩個(gè)關(guān)鍵點(diǎn)的特征向量為Vb,Vc,且Vb與Va的歐式距離最近,Vc與Va次近。如果滿足公式(6),則說(shuō)明匹配正確,否則排除該匹配點(diǎn)
式中:α 的值定義為0.8。
在上述過(guò)程中實(shí)現(xiàn)了目標(biāo)區(qū)域與跟蹤區(qū)域之間特征點(diǎn)的匹配,這些相匹配的特征點(diǎn)分別為:目標(biāo)區(qū)域的特征點(diǎn)P={(xi,yi),Vi},跟蹤區(qū)域的特征點(diǎn)P'={(x'i,y'i),V'i},其中i=1,2,…,N。那么結(jié)合目標(biāo)區(qū)域與跟蹤區(qū)域,特征點(diǎn)的中心是這兩個(gè)區(qū)域特征點(diǎn)相減后的均值,具體公式為
假設(shè)Camshift 跟蹤結(jié)果為restCS,那么restCS={x0,y0,vRadius,hRadius},其中(x0,y0)是矩形跟蹤區(qū)域的中心位置,vRadius 是區(qū)域的垂直半徑,hRadius 是區(qū)域的水平半徑。若SIFT 的匹配校正結(jié)果為restSIFT,那么
融合兩種算法,得到最終的結(jié)果為式(9)所示
式中:α 是權(quán)重系數(shù),介于0 ~1 之前,而rest 是最終的跟蹤結(jié)果。當(dāng)Camshift 算法中Bhattacharya 系數(shù)越大,Camshift 的跟蹤效果越好,此時(shí)的α 也越大,反之,α 越小。
本次實(shí)驗(yàn)是在Intel(R)Core(TM)2.2 GHz 的CPU、2.96 Gbyte 內(nèi)存計(jì)算機(jī)上運(yùn)行的,在Windows7 系統(tǒng)下使用VS2010+OpenCV 編程得到MeanShift、Camshift 和本文算法的跟蹤結(jié)果圖,再用MATLAB 分析跟蹤誤差,而跟蹤誤差表示的是目標(biāo)的估計(jì)中心與實(shí)際中心之間的距離(用像素表示),距離越小,跟蹤效果越好。本文中選取了3 段視頻來(lái)進(jìn)行實(shí)驗(yàn)展現(xiàn)。
跟蹤效果圖(原圖為彩圖)中,黑色橢圓邊框代表的是MeanShift 算法的跟蹤結(jié)果,紅色橢圓邊框代表的是Camshift算法的跟蹤結(jié)果,橘色矩形邊框代表的是本文算法的跟蹤結(jié)果。
當(dāng)目標(biāo)尺度發(fā)生變化時(shí),3 種算法的跟蹤結(jié)果和誤差分析分別如圖2、圖3 所示。
圖2 目標(biāo)尺度變化時(shí)3 種算法的跟蹤效果圖
圖3 目標(biāo)尺度變化時(shí)3 種算法的跟蹤誤差分析圖
從圖2 和圖3 中可以看出,在目標(biāo)運(yùn)動(dòng)過(guò)程中,目標(biāo)的尺度發(fā)生了變化,此時(shí)Camshift 算法與本文算法都比MeanShift算法好;又因?yàn)樵谠撘曨l中,運(yùn)動(dòng)背景簡(jiǎn)單,且目標(biāo)沒(méi)有發(fā)生復(fù)雜運(yùn)動(dòng),所以本文算法與Camshift 算法性能接近。
當(dāng)目標(biāo)發(fā)生旋轉(zhuǎn)時(shí),3 種算法的跟蹤結(jié)果和誤差分析分別如圖4、圖5 所示。
圖4 目標(biāo)發(fā)生旋轉(zhuǎn)時(shí)3 種算法的跟蹤效果圖
圖5 目標(biāo)發(fā)生旋轉(zhuǎn)時(shí)3 種算法的跟蹤誤差分析圖
從圖4 和圖5 中可以看出,當(dāng)目標(biāo)發(fā)生旋轉(zhuǎn)時(shí),本文的算法性能比Camshift 算法和MeanShift 算法都要好;又因?yàn)镃amshift 與MeanShift 都是僅基于顏色直方圖的跟蹤算法,物體旋轉(zhuǎn)時(shí)的跟蹤效果差,所以二者的性能接近。
當(dāng)目標(biāo)顏色與背景顏色相近時(shí),3 種算法的跟蹤結(jié)果和誤差分析分別如圖6、圖7 所示。
圖6 目標(biāo)顏色與背景顏色相近時(shí)3 種算法的跟蹤效果圖
圖7 目標(biāo)顏色與背景顏色相近時(shí)3 種算法的跟蹤誤差分析圖
從圖6 和圖7 中可以看出,當(dāng)目標(biāo)顏色與背景顏色相近時(shí)(白色汽車(chē)與白色路面的顏色相近),本文的算法的跟蹤結(jié)果比Camshift 算法和MeanShift 算法都要好,而此時(shí)MeanShift算法性能比Camshift 算法差。
均值漂移算法(MeanShift)是基于顏色直方圖的跟蹤算法,它容易在目標(biāo)尺度發(fā)生變化時(shí)跟蹤失敗。Camshift 算法是對(duì)均值漂移算法的一種改進(jìn),它可以在目標(biāo)尺度發(fā)生變化時(shí)自適應(yīng)地進(jìn)行跟蹤。但是,當(dāng)目標(biāo)出現(xiàn)旋轉(zhuǎn)、顏色與背景顏色相近時(shí),Camshift 算法也容易失效。所以本文提出一種融合算法,該算法結(jié)合了Camshift 算法與SIFT 算子。第一個(gè)算法用來(lái)對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行初步跟蹤,第二個(gè)算法是利用SIFT 對(duì)初步跟蹤結(jié)果進(jìn)行匹配,并進(jìn)行一定的校準(zhǔn),最后將這兩種算法的結(jié)果進(jìn)行線性融合,實(shí)現(xiàn)有效跟蹤。實(shí)驗(yàn)表明該融合算法可以解決旋轉(zhuǎn)、目標(biāo)顏色與背景顏色相近時(shí)的跟蹤問(wèn)題,并可以得到較好的跟蹤結(jié)果。
[1]張宏志,張金換,岳卉,等.基于CamShift 的目標(biāo)跟蹤算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(11):2012-2014.
[2]李睿,劉濤,李明.基于Mean-shift 的粒子濾波算法在遮擋目標(biāo)跟蹤中的應(yīng)用[J].科學(xué)技術(shù)與工程,2008,8(14):3957-3960.
[3]HIDAYATULLAH P,KONIK H. CAMSHIFT improvement on multi-h(huán)ue and multi-object tracking[C]//Proc. 2011 International Conference on Electrical Engineering and Informatics(ICEEI).[S.l.]:IEEE Press,2011:1-6.
[4]WU Jianhui,ZHANG Guoyun,GUO Longyuan. Study the improved CAMSHIFT algorithm to detect the moving object in fisheye image[C]//Proc. 2013 International Conference on Mechatronic Sciences,Electric Engineering and Computer(MEC).[S.l.]:IEEE Press,2013:1017-1020.
[5]LIU Q,CAI C,NGAN K N,et al. Camshift based real-time multiple faces match tracking[C]//Proc.International Symposium on Intelligent Signal Processing and Communication Systems,2007.[S.l.]:IEEE Press,2007:726-729.
[6]ZOU T,TANG X,SONG B. Improved Camshift tracking algorithm based on silhouette moving detection[C]//Proc. 2011 Third International Conference on Multimedia Information Networking and Security(MINES).[S.l.]:IEEE Press,2011:11-15.
[7]LOWE D G. Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[8]ZHOU H,YUAN Y,SHI C. Object tracking using SIFT features and mean shift[J].Computer Vision and Image Understanding,2009,113(3):345-352.
[9]CHEN A,ZHU M,WANG Y,et al. Mean shift tracking combining SIFT[C]//Proc.9th International Conference on Signal Processing,2008.[S.l.]:IEEE Press,2008:1532-1535.
[10]朱勝利. MeanShift 及相關(guān)算法在視頻跟蹤中的研究[D].杭州:浙江大學(xué),2006.
[11]李睿,劉濤,李明.基于Mean-shift 的粒子濾波算法在遮擋目標(biāo)跟蹤中的應(yīng)用[J].科學(xué)技術(shù)與工程,2008,8(14):3957-3960.
[12]董蓓,謝勤嵐,賈茜. 基于Camshift 算法的運(yùn)動(dòng)目標(biāo)實(shí)時(shí)跟蹤系統(tǒng)[J].現(xiàn)代電子技術(shù),2008,31(19):116-118.
[13]王新紅,王晶,田敏,等.基于空間邊緣方向直方圖的MeanShift跟蹤算法[J].中國(guó)圖象圖形學(xué)報(bào),2008,13(3):586-592.