黃柏華,黃 新
(桂林電子科技大學(xué)電子工程與自動(dòng)化學(xué)院,廣西桂林 541004)
基于ARM-Linux的改進(jìn)Camshift算法目標(biāo)跟蹤系統(tǒng)
黃柏華,黃 新
(桂林電子科技大學(xué)電子工程與自動(dòng)化學(xué)院,廣西桂林 541004)
為了使ARM-Linux目標(biāo)跟蹤系統(tǒng)在復(fù)雜場(chǎng)景中準(zhǔn)確跟蹤目標(biāo)并實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,提出基于ARM-Linux的改進(jìn)Camshift算法目標(biāo)跟蹤系統(tǒng)。利用攝像機(jī)成像原理設(shè)置搜索窗口的閾值,防止Camshift算法錯(cuò)誤地把相近色歸為目標(biāo)。利用Kalman濾波器觀測(cè)數(shù)據(jù)對(duì)系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計(jì)的特點(diǎn),彌補(bǔ)Camshift算法在目標(biāo)被遮擋或變速運(yùn)動(dòng)時(shí)收斂位置偏離目標(biāo)的不足。利用TCP協(xié)議使ARM-Linux系統(tǒng)與遠(yuǎn)程計(jì)算機(jī)建立連接,實(shí)現(xiàn)跟蹤結(jié)果遠(yuǎn)程顯示。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)在相近色干擾、目標(biāo)被遮擋、變速運(yùn)動(dòng)時(shí)能穩(wěn)定跟蹤目標(biāo)。
ARM-Linux;TCP協(xié)議;Camshift;Kalman濾波
嵌入式系統(tǒng)是一種為特定應(yīng)用而設(shè)計(jì)的專用計(jì)算機(jī)系統(tǒng),具有軟硬件可裁剪、功耗低、體積小等特點(diǎn)。近年來(lái),隨著嵌入式技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)在許多應(yīng)用場(chǎng)合代替了通用計(jì)算機(jī),降低了產(chǎn)品的成本,充分發(fā)揮了嵌入式系統(tǒng)的優(yōu)越性。在社會(huì)公共安全亟需得到充分保障的大環(huán)境下,基于嵌入式系統(tǒng)的圖像處理技術(shù)日益成為研究熱點(diǎn)。程子倫[1]基于ARM嵌入式的目標(biāo)跟蹤系統(tǒng),實(shí)現(xiàn)了對(duì)目標(biāo)的識(shí)別與跟蹤。吳祿慎等[2]基于ARM9,利用自適應(yīng)背景差法,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控運(yùn)動(dòng)目標(biāo)和GPRS報(bào)警。顏科斐[3]在ARM嵌入式系統(tǒng)上,使用一種攝像頭位移自動(dòng)判別方法,解決了亮度影響識(shí)別入侵精度的問(wèn)題。在眾多目標(biāo)跟蹤算法中,Meanshift算法以其無(wú)需參數(shù)、快速模式匹配的特性得到廣泛應(yīng)用[4]。胡波等[5]提出一種基于Kalman和Meanshift的組合算法,在狀態(tài)向量中包含搜索窗口寬度的動(dòng)態(tài)信息以及中心位置,預(yù)測(cè)搜索窗口位置,動(dòng)態(tài)調(diào)整窗口大小。孫凱等[6]采用Camshift、Kalman濾波器組合算法,解決了勻速運(yùn)動(dòng)目標(biāo)交錯(cuò)、重疊、分離的問(wèn)題。傳統(tǒng)的Kalman、Camshift組合算法只適合勻速運(yùn)動(dòng)目標(biāo)的預(yù)測(cè),當(dāng)短時(shí)間內(nèi)目標(biāo)發(fā)生強(qiáng)機(jī)動(dòng)轉(zhuǎn)彎時(shí),則跟蹤精度會(huì)大幅下降[7]。鑒于此,提出基于ARM-Linux的改進(jìn)Camshift算法目標(biāo)跟蹤系統(tǒng),通過(guò)Kalman濾波器改進(jìn)Camshift算法,解決Camshift算法在受遮擋、高速運(yùn)動(dòng)、相近色干擾下容易丟失目標(biāo)的問(wèn)題,通過(guò)TCP協(xié)議傳輸跟蹤視頻序列到遠(yuǎn)程上位機(jī),實(shí)現(xiàn)目標(biāo)跟蹤結(jié)果的遠(yuǎn)程顯示。
Camshift算法與Meanshift算法的不同在于其能夠自動(dòng)調(diào)整搜索窗口。在Meanshift算法中,設(shè)二維平面上的點(diǎn){xi}i=1,2,…,n是二維圖像上各個(gè)像素點(diǎn),設(shè)核函數(shù)
h為帶寬;c為常數(shù);x為迭代起始位置;m(x)-x為迭代方向。迭代方向總是指向概率密度增大最快的方向,通過(guò)多次迭代最終可獲得收斂點(diǎn),從而得到局部最大值(局部的重心)[6]。根據(jù)文獻(xiàn)[5]的假設(shè)條件,令?P(x)=0,可得到Meanshift算法的迭代算式m(x)。
2.1 灰度處理及反向投影
目標(biāo)跟蹤過(guò)程中,目標(biāo)亮度會(huì)隨著位置和背景亮度變化,若基于RGB顏色空間進(jìn)行跟蹤,會(huì)因?yàn)榱炼鹊膭×易兓斐赡繕?biāo)丟失,因此,圖像應(yīng)轉(zhuǎn)換成HSV圖像。OpenCV提供了轉(zhuǎn)換函數(shù)cvCvtColor(image,hsv,CV_BGR2HSV),轉(zhuǎn)換后函數(shù)中的hsv指針變量指向的是HSV圖像。平滑處理hsv指向的HSV圖像后,通過(guò)cvSplit(hsv,hue,NULL,NULL,NULL)獲取hue單通道圖像,從而完成灰度處理。
2.2 根據(jù)跟蹤目標(biāo)調(diào)整搜索窗
Camshift算法根據(jù)目標(biāo)大小自動(dòng)調(diào)整搜索窗口,在相近色干擾時(shí)Camshift算法會(huì)錯(cuò)誤地把相近色物體歸為目標(biāo)的一部分,當(dāng)目標(biāo)與相近色物體分離時(shí),搜索框可能停留在相近色物體上,無(wú)法繼續(xù)跟蹤目標(biāo)。對(duì)于這種情況,由于Meanshift算法不具備自動(dòng)調(diào)整搜索窗口的功能,不會(huì)把相近色物體歸為跟蹤目標(biāo)的一部分,從而在相近色物體干擾下仍能繼續(xù)跟蹤目標(biāo)。
在實(shí)際場(chǎng)合中,目標(biāo)在攝像機(jī)成像的尺寸與目標(biāo)到攝像機(jī)的距離、物體的真實(shí)尺寸有關(guān):當(dāng)目標(biāo)到攝像機(jī)距離一定時(shí),目標(biāo)尺寸與其成像尺寸成正比;當(dāng)目標(biāo)尺寸一定時(shí),目標(biāo)到攝像機(jī)的距離與目標(biāo)的成像大小成正比。據(jù)此,考慮攝像機(jī)到目標(biāo)的距離比較固定,不同目標(biāo)的尺寸相差不大,設(shè)搜索窗口的閾值為目標(biāo)自身面積的1.6倍,當(dāng)跟蹤目標(biāo)受到背景色干擾導(dǎo)致搜索窗口自動(dòng)增大達(dá)到閾值時(shí),搜索窗口不再增大,不會(huì)將相近色物體歸為目標(biāo),經(jīng)過(guò)多次迭代后收斂位置為目標(biāo)的重心,從而解決Camshift算法受相近色干擾的問(wèn)題。Camshift搜索窗口設(shè)置閾值效果如圖1所示。
圖1 Camshift搜索窗口設(shè)置閾值效果Fig.1 Effect of Camshift search window with threshold
2.3 Camshift與Kalman濾波組合算法
Camshift算法結(jié)構(gòu)如圖2所示。該算法以上一幀收斂點(diǎn)為中心初始化搜索窗口,通過(guò)多次迭代的方法獲取與起始點(diǎn)的Bhattacharyya系數(shù)最大的位置作為輸出,若目標(biāo)被遮擋或做變速運(yùn)動(dòng)導(dǎo)致搜索窗口不包含目標(biāo),不能保證輸出的位置就是目標(biāo)的真實(shí)位置[2]。
圖2 Camshift算法結(jié)構(gòu)Fig.2 Structure of Camshift algorithm
文獻(xiàn)[8]中的無(wú)跡卡爾曼濾波器(scaled unscented Kalman filter,簡(jiǎn)稱SUKF)與Meanshift組合算法,借助SUKF獲取目標(biāo)的尺度變化,自適應(yīng)調(diào)節(jié)Meanshift算法中核函數(shù)帶寬,實(shí)現(xiàn)根據(jù)目標(biāo)尺寸自動(dòng)調(diào)整搜索窗口。SUKF與Meanshift組合算法相對(duì)Meanshift算法提高了跟蹤成功率,但SUKF維數(shù)的增加會(huì)增加算法復(fù)雜度,不利于在嵌入式系統(tǒng)實(shí)現(xiàn)實(shí)時(shí)目標(biāo)跟蹤。Camshift是改進(jìn)的Meanshift算法,計(jì)算量小并能自動(dòng)調(diào)節(jié)搜索窗口適應(yīng)目標(biāo)尺寸的變化,與Kalman濾波組合能在嵌入式系統(tǒng)上獲得良好的實(shí)時(shí)跟蹤效果。因此,采用Camshift與Kalman組合算法,組合算法框圖如圖3所示。
圖3 Kalman與Camshift組合算法Fig.3 Kalman algorithm in combination with Camshift
Kalman濾波器是一種狀態(tài)預(yù)測(cè)器,能彌補(bǔ)Camshift算法在目標(biāo)被遮擋、變速運(yùn)動(dòng)的不足。Kalman濾波與Camshift組合算法搜索目標(biāo)步驟:
1)以Camshift算法輸出的目標(biāo)重心更新Kalman濾波器狀態(tài)的初始值;
2)Kalman濾波器根據(jù)更新的狀態(tài),預(yù)測(cè)目標(biāo)在下一幀的位置;
3)Camshift算法利用Kalman濾波器預(yù)測(cè)的位置作為初始搜索窗口中心,輸出收斂的位置。
Kalman濾波器一般假設(shè)跟蹤物體做勻速線性運(yùn)動(dòng),能夠在目標(biāo)遮擋后繼續(xù)跟蹤目標(biāo),但運(yùn)動(dòng)目標(biāo)在跟蹤過(guò)程中突然停止或者速度變化,Kalman濾波器無(wú)法根據(jù)假設(shè)的勻速條件做出正確預(yù)測(cè),導(dǎo)致目標(biāo)跟蹤失敗。Kalman算法將目標(biāo)的位置、速度以及加速度作為預(yù)測(cè)對(duì)象,使得組合算法適應(yīng)目標(biāo)變速運(yùn)動(dòng)。算法將Kalman濾波器的狀態(tài)設(shè)為xk=[x(k),vx,ax,y(k),vy,ay]T,相應(yīng)的狀態(tài)轉(zhuǎn)移矩陣為,其中
0為3階0方陣。引入平面軸方向加速度ax、ay,此時(shí)x軸的位移為,x方向的速度vx=axT,y方向的計(jì)算與x方向相同,常數(shù)T為前后兩幀視頻圖像的時(shí)間差。相應(yīng)的觀測(cè)矩陣
Camshift算法總是在局部區(qū)域內(nèi)尋找與跟蹤目標(biāo)的巴氏距離最近的點(diǎn)作為目標(biāo)在某一幀圖像中的位置。當(dāng)被跟蹤目標(biāo)受到遮擋或變速運(yùn)動(dòng)時(shí),Camshift算法在不包含目標(biāo)的區(qū)域內(nèi)無(wú)法找到與目標(biāo)巴氏距離最近的點(diǎn)。Kalman濾波器根據(jù)目標(biāo)歷史的觀測(cè)數(shù)據(jù)對(duì)系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計(jì),獲得目標(biāo)位置的預(yù)測(cè)值,修正Camshift算法的輸出,彌補(bǔ)Camshift算法存在的不足。2種算法目標(biāo)跟蹤效果如圖4、5所示。
圖4 被遮擋目標(biāo)跟蹤效果Fig.4 Tracking effect of blocked target
圖5 變速運(yùn)動(dòng)的跟蹤效果Fig.5 Tracking effect of variable motion
3.1 系統(tǒng)組建
系統(tǒng)的軟件框圖如圖6所示。遠(yuǎn)程嵌入式系統(tǒng)主要通過(guò)OpenCV提供的各類函數(shù)接口完成圖像數(shù)據(jù)的采集、目標(biāo)檢測(cè)與跟蹤,通過(guò)Socket提供的函數(shù)實(shí)現(xiàn)網(wǎng)絡(luò)向上位機(jī)實(shí)時(shí)傳輸圖像。
圖6 嵌入式系統(tǒng)軟件框圖Fig.6 Diagram of embedded system software
上位機(jī)軟件使用Qt編寫(xiě),Qt提供了QTcpServer類,還有很多Socket編程接口,能很方便地實(shí)現(xiàn)網(wǎng)絡(luò)通信。軟件主要實(shí)現(xiàn)接收遠(yuǎn)程發(fā)送的視頻圖像數(shù)據(jù),并實(shí)時(shí)顯示跟蹤結(jié)果。圖7為上位機(jī)的軟件框圖。
圖7 上位機(jī)軟件框圖Fig.7 Diagram of PC software
3.2 系統(tǒng)測(cè)試與結(jié)果分析
3.2.1 系統(tǒng)測(cè)試
測(cè)試ARM-Linux系統(tǒng)的硬件為搭載contex-A7雙核處理器的BananaPi開(kāi)發(fā)板。開(kāi)發(fā)板以USB接口的攝像頭采集視頻,通過(guò)網(wǎng)線傳輸視頻到遠(yuǎn)程計(jì)算機(jī)顯示。硬件連接完成后,給開(kāi)發(fā)板上電,確保開(kāi)發(fā)板與遠(yuǎn)程計(jì)算機(jī)的網(wǎng)絡(luò)連接正常。遠(yuǎn)程計(jì)算機(jī)運(yùn)行服務(wù)器程序,監(jiān)聽(tīng)網(wǎng)絡(luò)端口。開(kāi)發(fā)板上運(yùn)行跟蹤程序,當(dāng)串口終端打印“Camera is sending video stream…”時(shí),服務(wù)器上Qt編寫(xiě)的上位機(jī)軟件顯示監(jiān)控場(chǎng)景的畫(huà)面。當(dāng)目標(biāo)進(jìn)入監(jiān)控場(chǎng)景,組合算法對(duì)目標(biāo)實(shí)施跟蹤,圖8~10矩形框表示跟蹤目標(biāo)的位置。
3.2.2 結(jié)果分析
1)相近色干擾實(shí)驗(yàn)主要驗(yàn)證系統(tǒng)在相近色干擾下對(duì)目標(biāo)跟蹤的穩(wěn)定性。圖8為系統(tǒng)的攝像機(jī)在某實(shí)驗(yàn)室內(nèi)采集的一段視頻中的3幀畫(huà)面。第119幀,身穿黃色外套的目標(biāo)經(jīng)過(guò)貼著黃色紙的墻,矩形框尺寸不變且包含目標(biāo);第207幀,目標(biāo)到達(dá)黃色紙的邊緣,矩形框保持尺寸不變;第236幀,目標(biāo)與墻上的黃色紙分離,矩形框跟隨目標(biāo)。實(shí)驗(yàn)表明,系統(tǒng)解決了相近色干擾導(dǎo)致的目標(biāo)丟失問(wèn)題。
圖8 相近色干擾實(shí)驗(yàn)Fig.8 Experiment of similar color interference
2)遮擋實(shí)驗(yàn)主要驗(yàn)證系統(tǒng)在受遮擋目標(biāo)重新出現(xiàn)時(shí)能否繼續(xù)正確跟蹤目標(biāo)。圖9為系統(tǒng)攝像機(jī)拍攝的一段視頻中的3幀畫(huà)面。在第1515幀中選擇跟蹤的目標(biāo)區(qū)域;第1527幀由于目標(biāo)在背包后面,導(dǎo)致目標(biāo)暫時(shí)丟失;在1536幀,目標(biāo)重新出現(xiàn),系統(tǒng)繼續(xù)跟蹤丟失的目標(biāo)。實(shí)驗(yàn)表明,系統(tǒng)解決了目標(biāo)被遮擋導(dǎo)致的目標(biāo)丟失問(wèn)題。
圖9 遮擋實(shí)驗(yàn)Fig.9 Occlusion test
3)變速運(yùn)動(dòng)實(shí)驗(yàn)主要驗(yàn)證系統(tǒng)在目標(biāo)變速運(yùn)動(dòng)時(shí)能否正常跟蹤目標(biāo)。圖10為系統(tǒng)攝像機(jī)拍攝的一段視頻中的3幀畫(huà)面。在第33幀中選擇跟蹤目標(biāo),此時(shí)目標(biāo)靜止;第41幀目標(biāo)突然加速起步行走,矩形框正確包含目標(biāo);第82幀目標(biāo)突然放慢行走速度,整個(gè)過(guò)程矩形框緊跟目標(biāo)。實(shí)驗(yàn)表明,系統(tǒng)在目標(biāo)變速運(yùn)動(dòng)時(shí)能連續(xù)跟蹤目標(biāo)。
圖10 變速運(yùn)動(dòng)實(shí)驗(yàn)Fig.10 Experiment of variable motion
設(shè)計(jì)了基于ARM-Linux的改進(jìn)Camshift算法目標(biāo)跟蹤系統(tǒng),在ARM-Linux系統(tǒng)上實(shí)現(xiàn)目標(biāo)的跟蹤,并通過(guò)網(wǎng)絡(luò)將跟蹤畫(huà)面?zhèn)鬏數(shù)竭h(yuǎn)程計(jì)算機(jī)上顯示。目標(biāo)跟蹤算法是研究的主要內(nèi)容,針對(duì)Camshift算法存在的不足,對(duì)Camshift的搜索窗口設(shè)置了閾值,并提出Kalman濾波與Camshift的組合算法,解決了目標(biāo)跟蹤存在的目標(biāo)被遮擋、相近色干擾、目標(biāo)變速運(yùn)動(dòng)導(dǎo)致目標(biāo)丟失的問(wèn)題。然而各測(cè)試實(shí)驗(yàn)代表性不強(qiáng),需要更多的測(cè)試、更長(zhǎng)的測(cè)試時(shí)間,才能證明系統(tǒng)具有較好的穩(wěn)定性。基于ARM-Linux遠(yuǎn)程目標(biāo)跟蹤系統(tǒng)是無(wú)重疊視域多攝像機(jī)目標(biāo)跟蹤的重要部分,為多攝像機(jī)的目標(biāo)跟蹤做了研究準(zhǔn)備。
[1] 程子倫.基于ARM嵌入式平臺(tái)的視頻目標(biāo)識(shí)別與跟蹤系統(tǒng)的研究與實(shí)現(xiàn)[D].石家莊:河北科技大學(xué),2015:1-57.
[2] 吳祿慎,吳益根.基于ARM9的自適應(yīng)背景差法智能遠(yuǎn)程視頻監(jiān)控系統(tǒng)[J].儀表技術(shù)與傳感器,2015(11):81-84.
[3] 顏科斐.嵌入式智能視頻監(jiān)控報(bào)警系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2014,31(2):69-73.
[4] COMANICIU D,RAMESH V,MEER P.Real-time tracking of non-rigid objects using mean shift[C]//Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Los Alamitos,CA,USA:IEEE Computer Society,2000:142-149.
[5] 胡波,陳懇,徐建瑜,等.基于Kalman預(yù)測(cè)和Mean-2shift算法的視頻目標(biāo)跟蹤[J].光電子·激光,2009,20(11):1517-1522.
[6] 孫凱,劉士榮.多目標(biāo)跟蹤的改進(jìn)Camshift/卡爾曼濾波組合算法[J].信息與控制,2009,38(1):9-14.
[7] AI-MAHMOUD M,ZOLTOWSKI M D.A novel approach to space-time-frequency coded MIMO-OFDM over frequency selective fading channels[C]//2010IEEE International Conference on Acoustics Speech and Signal Processing,2010:2554-2557.
[8] 劉獻(xiàn)如,蔡自興.UKF與Mean shift算法相結(jié)合的實(shí)時(shí)目標(biāo)跟蹤[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,42(5):1338-1343.
編輯:翁史振
Target tracking system with improved Camshift algorithm based on ARM-Linux
HUANG Baihua,HUANG Xin
(School of Electronic Engineering and Automation,Guilin University of Electronic Technology,Guilin 541004,China)
In order to make ARM-Linux accurately track target in a complex scene and realize remote monitoring,target tracking system with improved camshift algorithm based on ARM-Linux is proposed.Camera imaging principle is used to set a threshold for the search window for preventing Camshift algorithm wrongly classifies similar background color as the target.Kalman filter optimal estimation of the system state is used to make up for the lack of Camshift convergence location that deviates from the target location while the target is blocked or variable motion.TCP protocol is used to connect ARMLinux system and the remote computer,the tracking results are displayed on the remote computer.Experimental results show that the system can stably track the target in the case of similar color interference,obscured target and variable motion.
ARM-Linux;TCP protocol;Camshift;Kalman filter
TP391.4
:A
:1673-808X(2016)05-0396-05
2016-02-26
廣西科學(xué)研究與技術(shù)開(kāi)發(fā)計(jì)劃(桂科攻11107001-40)
黃新(1978-),男,湖北黃岡人,副教授,研究方向?yàn)榭蓽y(cè)性設(shè)計(jì)、圖像處理。E-mail:hxgl@guet.edu.cn
黃柏華,黃新.基于ARM-Linux的改進(jìn)Camshift算法目標(biāo)跟蹤系統(tǒng)[J].桂林電子科技大學(xué)學(xué)報(bào),2016,36(5):396-400.