葉家林,宋建新
(南京郵電大學 江蘇省圖像處理與圖像通信重點實驗室,江蘇 南京210003)
運動物體跟蹤是計算機視覺中非常重要的研究領(lǐng)域,在醫(yī)學圖像、視頻監(jiān)控等行業(yè)有著重要的應用。近年來,連續(xù)自適應地均值漂移算法(Camshift)[1]被廣泛地應用于目標跟蹤場合,可以實現(xiàn)對運動目標的快速跟蹤。然而,Camshift 與MeanShift[2]一樣,都是基于圖像顏色直方圖的跟蹤算法,前者只是對后者的自適應改進,可以解決目標跟蹤過程中發(fā)生的尺度縮放、持續(xù)跟蹤等問題。但是當目標顏色與背景顏色相近,或者目標遇到旋轉(zhuǎn)時,Camshift 算法容易失效。為了解決這些問題,P. Hidayatullah[3]提出了三種不同的方法來提高Camshift 算法的魯棒性,這三種方法都可以解決因目標顏色與背景顏色相近而導致跟蹤失敗的問題;有人利用魚眼鏡頭圖像特點來改進Camshift 算法,使得改進后的算法可以有效跟蹤魚眼鏡頭中物體[4];Liu 等人[5]利用Camshift 與貪婪跟蹤、匹配追蹤相結(jié)合來對人的臉部進行實時跟蹤;Zou 等人[6]提出構(gòu)建運動模板,將運動信息與顏色直方圖相結(jié)合,實現(xiàn)快速跟蹤。
SIFT(Scale Invariant Feature Transform)是一種圖像局部特征的描述子,有很好的旋轉(zhuǎn)不變性和尺度縮放不變性,對3D 視角和光照變化的適應性強,對雜物場景和目標遮擋具有很好的魯棒性[7]。在MeanShift 跟蹤結(jié)果的基礎上,文獻[8]利用SIFT 匹配來尋找SIFT 的匹配點集合,通過計算仿射變換參數(shù)來得到MeanShift 最佳跟蹤結(jié)果。結(jié)合顏色信息與SIFT 特征,文獻[9]利用MeanShift 自適應算法和EM 框架來進行目標跟蹤。本文提出一種Camshift 與SIFT 線性融合的跟蹤算法,該方法可以有效解決尺度變化、旋轉(zhuǎn)、目標顏色與背景顏色相近的跟蹤情況。
Camshift 算法是以MeanShift 算法為核心,對圖像序列的所有幀進行跟蹤,并將前一幀的搜素結(jié)果(搜索窗的大小和質(zhì)心)作為下一次搜索窗的初始值。
具體算法流程如下:
1)將目標圖像從RGB 空間轉(zhuǎn)換到HSV 空間,提取H 分量構(gòu)建顏色直方圖。
2)初始化搜索窗口的大小和位置。
3)計算目標區(qū)域內(nèi)的顏色概率分布圖。
4)計算窗口的質(zhì)心:
零階距為
式中:I(x,y)是概率分布圖中(x,y)處的概率值,那么窗口的質(zhì)心(xc,yc)=(M10/M00,M01/M00)。
5)移動搜索窗的中心到目標區(qū)域的質(zhì)心位置。如果移動距離小于預設閾值或迭代次數(shù)大于15,那么該中心就是目標的位置,此位置就為下一幀搜索的起始位置;否則,重新調(diào)整窗口大小,并返回步驟4)的計算,直到滿足條件為止。
6)計算目標的移動方向與搜索窗大小,并進行下一幀跟蹤處理。
本文提出的算法融合了Camshift 和SIFT。首先利用Camshift 對視頻流中的運動物體進行跟蹤,得到初始跟蹤結(jié)果,然后再利用SIFT 進行特征匹配與校準,最后將這兩部分的跟蹤結(jié)果進行線性融合。SIFT 特征匹配與校準的步驟主要有:1)SIFT 特征提取;2)SIFT 特征匹配;3)特征區(qū)域的重心轉(zhuǎn)移計算;4)校準Camshift 的跟蹤結(jié)果;5)將兩部分的結(jié)果進行線性融合。算法流程圖如圖1 所示。
圖1 融合算法示意圖
SIFT 是一種檢測圖像局部特征的算法,在一定程度上既可以對目標的旋轉(zhuǎn)、尺度變化保持不變性,也可以解決顏色干擾、光線變化等問題。SIFT 的提取主要有5 個步驟:
1)構(gòu)建尺度空間。一個圖像的尺度空間定義為一個尺度變換的高斯函數(shù)與原圖像的卷積,在實現(xiàn)時使用高斯金字塔來表示。為了能夠檢測到穩(wěn)定的極值點,人們利用不同尺度的高斯差分核與圖像進行卷積,構(gòu)建高斯尺度空間(DoG)。
2)極值點檢測。極值點必須滿足在平面圖像空間與高斯差分尺度空間都具有極值的點,所以每一個像素點都要與它所有的相鄰點進行比較,得出極值點。
3)精確定位關(guān)鍵點。以上得到的極值點并不都是需要的關(guān)鍵點,還要通過擬合三維二次函數(shù)來去除一些不滿足條件的極值點和邊緣點,進而確定最終的關(guān)鍵點。
4)關(guān)鍵點方向分配。為了使得描述子具有旋轉(zhuǎn)不變性,需要利用梯度方向的方法來為每一個關(guān)鍵點分配一個基準方向,這樣就可以利用位置、尺度、方向確定一個SIFT 特征區(qū)域。
5)生成關(guān)鍵點描述子。最后,通過對關(guān)鍵點周圍區(qū)域分塊,計算塊內(nèi)的梯度直方圖,生成向量,為每一個關(guān)鍵點建立一個描述符。
SIFT 特征匹配的過程就是兩幅圖像中關(guān)鍵點相似性度量的過程,一般采用特征向量的歐氏距離來進行描述。假如目標區(qū)域的一個關(guān)鍵點的特征向量為Va,Camshift 跟蹤區(qū)域的兩個關(guān)鍵點的特征向量為Vb,Vc,且Vb與Va的歐式距離最近,Vc與Va次近。如果滿足公式(6),則說明匹配正確,否則排除該匹配點
式中:α 的值定義為0.8。
在上述過程中實現(xiàn)了目標區(qū)域與跟蹤區(qū)域之間特征點的匹配,這些相匹配的特征點分別為:目標區(qū)域的特征點P={(xi,yi),Vi},跟蹤區(qū)域的特征點P'={(x'i,y'i),V'i},其中i=1,2,…,N。那么結(jié)合目標區(qū)域與跟蹤區(qū)域,特征點的中心是這兩個區(qū)域特征點相減后的均值,具體公式為
假設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é)果。當Camshift 算法中Bhattacharya 系數(shù)越大,Camshift 的跟蹤效果越好,此時的α 也越大,反之,α 越小。
本次實驗是在Intel(R)Core(TM)2.2 GHz 的CPU、2.96 Gbyte 內(nèi)存計算機上運行的,在Windows7 系統(tǒng)下使用VS2010+OpenCV 編程得到MeanShift、Camshift 和本文算法的跟蹤結(jié)果圖,再用MATLAB 分析跟蹤誤差,而跟蹤誤差表示的是目標的估計中心與實際中心之間的距離(用像素表示),距離越小,跟蹤效果越好。本文中選取了3 段視頻來進行實驗展現(xiàn)。
跟蹤效果圖(原圖為彩圖)中,黑色橢圓邊框代表的是MeanShift 算法的跟蹤結(jié)果,紅色橢圓邊框代表的是Camshift算法的跟蹤結(jié)果,橘色矩形邊框代表的是本文算法的跟蹤結(jié)果。
當目標尺度發(fā)生變化時,3 種算法的跟蹤結(jié)果和誤差分析分別如圖2、圖3 所示。
圖2 目標尺度變化時3 種算法的跟蹤效果圖
圖3 目標尺度變化時3 種算法的跟蹤誤差分析圖
從圖2 和圖3 中可以看出,在目標運動過程中,目標的尺度發(fā)生了變化,此時Camshift 算法與本文算法都比MeanShift算法好;又因為在該視頻中,運動背景簡單,且目標沒有發(fā)生復雜運動,所以本文算法與Camshift 算法性能接近。
當目標發(fā)生旋轉(zhuǎn)時,3 種算法的跟蹤結(jié)果和誤差分析分別如圖4、圖5 所示。
圖4 目標發(fā)生旋轉(zhuǎn)時3 種算法的跟蹤效果圖
圖5 目標發(fā)生旋轉(zhuǎn)時3 種算法的跟蹤誤差分析圖
從圖4 和圖5 中可以看出,當目標發(fā)生旋轉(zhuǎn)時,本文的算法性能比Camshift 算法和MeanShift 算法都要好;又因為Camshift 與MeanShift 都是僅基于顏色直方圖的跟蹤算法,物體旋轉(zhuǎn)時的跟蹤效果差,所以二者的性能接近。
當目標顏色與背景顏色相近時,3 種算法的跟蹤結(jié)果和誤差分析分別如圖6、圖7 所示。
圖6 目標顏色與背景顏色相近時3 種算法的跟蹤效果圖
圖7 目標顏色與背景顏色相近時3 種算法的跟蹤誤差分析圖
從圖6 和圖7 中可以看出,當目標顏色與背景顏色相近時(白色汽車與白色路面的顏色相近),本文的算法的跟蹤結(jié)果比Camshift 算法和MeanShift 算法都要好,而此時MeanShift算法性能比Camshift 算法差。
均值漂移算法(MeanShift)是基于顏色直方圖的跟蹤算法,它容易在目標尺度發(fā)生變化時跟蹤失敗。Camshift 算法是對均值漂移算法的一種改進,它可以在目標尺度發(fā)生變化時自適應地進行跟蹤。但是,當目標出現(xiàn)旋轉(zhuǎn)、顏色與背景顏色相近時,Camshift 算法也容易失效。所以本文提出一種融合算法,該算法結(jié)合了Camshift 算法與SIFT 算子。第一個算法用來對運動目標進行初步跟蹤,第二個算法是利用SIFT 對初步跟蹤結(jié)果進行匹配,并進行一定的校準,最后將這兩種算法的結(jié)果進行線性融合,實現(xiàn)有效跟蹤。實驗表明該融合算法可以解決旋轉(zhuǎn)、目標顏色與背景顏色相近時的跟蹤問題,并可以得到較好的跟蹤結(jié)果。
[1]張宏志,張金換,岳卉,等.基于CamShift 的目標跟蹤算法[J].計算機工程與設計,2006,27(11):2012-2014.
[2]李睿,劉濤,李明.基于Mean-shift 的粒子濾波算法在遮擋目標跟蹤中的應用[J].科學技術(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].杭州:浙江大學,2006.
[11]李睿,劉濤,李明.基于Mean-shift 的粒子濾波算法在遮擋目標跟蹤中的應用[J].科學技術(shù)與工程,2008,8(14):3957-3960.
[12]董蓓,謝勤嵐,賈茜. 基于Camshift 算法的運動目標實時跟蹤系統(tǒng)[J].現(xiàn)代電子技術(shù),2008,31(19):116-118.
[13]王新紅,王晶,田敏,等.基于空間邊緣方向直方圖的MeanShift跟蹤算法[J].中國圖象圖形學報,2008,13(3):586-592.