黃柏華,黃 新
(桂林電子科技大學電子工程與自動化學院,廣西桂林 541004)
基于ARM-Linux的改進Camshift算法目標跟蹤系統
黃柏華,黃 新
(桂林電子科技大學電子工程與自動化學院,廣西桂林 541004)
為了使ARM-Linux目標跟蹤系統在復雜場景中準確跟蹤目標并實現遠程監控,提出基于ARM-Linux的改進Camshift算法目標跟蹤系統。利用攝像機成像原理設置搜索窗口的閾值,防止Camshift算法錯誤地把相近色歸為目標。利用Kalman濾波器觀測數據對系統狀態進行最優估計的特點,彌補Camshift算法在目標被遮擋或變速運動時收斂位置偏離目標的不足。利用TCP協議使ARM-Linux系統與遠程計算機建立連接,實現跟蹤結果遠程顯示。實驗結果表明,該系統在相近色干擾、目標被遮擋、變速運動時能穩定跟蹤目標。
ARM-Linux;TCP協議;Camshift;Kalman濾波
嵌入式系統是一種為特定應用而設計的專用計算機系統,具有軟硬件可裁剪、功耗低、體積小等特點。近年來,隨著嵌入式技術的飛速發展,嵌入式系統在許多應用場合代替了通用計算機,降低了產品的成本,充分發揮了嵌入式系統的優越性。在社會公共安全亟需得到充分保障的大環境下,基于嵌入式系統的圖像處理技術日益成為研究熱點。程子倫[1]基于ARM嵌入式的目標跟蹤系統,實現了對目標的識別與跟蹤。吳祿慎等[2]基于ARM9,利用自適應背景差法,實現遠程監控運動目標和GPRS報警。顏科斐[3]在ARM嵌入式系統上,使用一種攝像頭位移自動判別方法,解決了亮度影響識別入侵精度的問題。在眾多目標跟蹤算法中,Meanshift算法以其無需參數、快速模式匹配的特性得到廣泛應用[4]。胡波等[5]提出一種基于Kalman和Meanshift的組合算法,在狀態向量中包含搜索窗口寬度的動態信息以及中心位置,預測搜索窗口位置,動態調整窗口大小。孫凱等[6]采用Camshift、Kalman濾波器組合算法,解決了勻速運動目標交錯、重疊、分離的問題。傳統的Kalman、Camshift組合算法只適合勻速運動目標的預測,當短時間內目標發生強機動轉彎時,則跟蹤精度會大幅下降[7]。鑒于此,提出基于ARM-Linux的改進Camshift算法目標跟蹤系統,通過Kalman濾波器改進Camshift算法,解決Camshift算法在受遮擋、高速運動、相近色干擾下容易丟失目標的問題,通過TCP協議傳輸跟蹤視頻序列到遠程上位機,實現目標跟蹤結果的遠程顯示。
Camshift算法與Meanshift算法的不同在于其能夠自動調整搜索窗口。在Meanshift算法中,設二維平面上的點{xi}i=1,2,…,n是二維圖像上各個像素點,設核函數

h為帶寬;c為常數;x為迭代起始位置;m(x)-x為迭代方向。迭代方向總是指向概率密度增大最快的方向,通過多次迭代最終可獲得收斂點,從而得到局部最大值(局部的重心)[6]。根據文獻[5]的假設條件,令?P(x)=0,可得到Meanshift算法的迭代算式m(x)。
2.1 灰度處理及反向投影
目標跟蹤過程中,目標亮度會隨著位置和背景亮度變化,若基于RGB顏色空間進行跟蹤,會因為亮度的劇烈變化造成目標丟失,因此,圖像應轉換成HSV圖像。OpenCV提供了轉換函數cvCvtColor(image,hsv,CV_BGR2HSV),轉換后函數中的hsv指針變量指向的是HSV圖像。平滑處理hsv指向的HSV圖像后,通過cvSplit(hsv,hue,NULL,NULL,NULL)獲取hue單通道圖像,從而完成灰度處理。
2.2 根據跟蹤目標調整搜索窗
Camshift算法根據目標大小自動調整搜索窗口,在相近色干擾時Camshift算法會錯誤地把相近色物體歸為目標的一部分,當目標與相近色物體分離時,搜索框可能停留在相近色物體上,無法繼續跟蹤目標。對于這種情況,由于Meanshift算法不具備自動調整搜索窗口的功能,不會把相近色物體歸為跟蹤目標的一部分,從而在相近色物體干擾下仍能繼續跟蹤目標。
在實際場合中,目標在攝像機成像的尺寸與目標到攝像機的距離、物體的真實尺寸有關:當目標到攝像機距離一定時,目標尺寸與其成像尺寸成正比;當目標尺寸一定時,目標到攝像機的距離與目標的成像大小成正比。據此,考慮攝像機到目標的距離比較固定,不同目標的尺寸相差不大,設搜索窗口的閾值為目標自身面積的1.6倍,當跟蹤目標受到背景色干擾導致搜索窗口自動增大達到閾值時,搜索窗口不再增大,不會將相近色物體歸為目標,經過多次迭代后收斂位置為目標的重心,從而解決Camshift算法受相近色干擾的問題。Camshift搜索窗口設置閾值效果如圖1所示。

圖1 Camshift搜索窗口設置閾值效果Fig.1 Effect of Camshift search window with threshold
2.3 Camshift與Kalman濾波組合算法
Camshift算法結構如圖2所示。該算法以上一幀收斂點為中心初始化搜索窗口,通過多次迭代的方法獲取與起始點的Bhattacharyya系數最大的位置作為輸出,若目標被遮擋或做變速運動導致搜索窗口不包含目標,不能保證輸出的位置就是目標的真實位置[2]。

圖2 Camshift算法結構Fig.2 Structure of Camshift algorithm
文獻[8]中的無跡卡爾曼濾波器(scaled unscented Kalman filter,簡稱SUKF)與Meanshift組合算法,借助SUKF獲取目標的尺度變化,自適應調節Meanshift算法中核函數帶寬,實現根據目標尺寸自動調整搜索窗口。SUKF與Meanshift組合算法相對Meanshift算法提高了跟蹤成功率,但SUKF維數的增加會增加算法復雜度,不利于在嵌入式系統實現實時目標跟蹤。Camshift是改進的Meanshift算法,計算量小并能自動調節搜索窗口適應目標尺寸的變化,與Kalman濾波組合能在嵌入式系統上獲得良好的實時跟蹤效果。因此,采用Camshift與Kalman組合算法,組合算法框圖如圖3所示。

圖3 Kalman與Camshift組合算法Fig.3 Kalman algorithm in combination with Camshift
Kalman濾波器是一種狀態預測器,能彌補Camshift算法在目標被遮擋、變速運動的不足。Kalman濾波與Camshift組合算法搜索目標步驟:
1)以Camshift算法輸出的目標重心更新Kalman濾波器狀態的初始值;
2)Kalman濾波器根據更新的狀態,預測目標在下一幀的位置;
3)Camshift算法利用Kalman濾波器預測的位置作為初始搜索窗口中心,輸出收斂的位置。
Kalman濾波器一般假設跟蹤物體做勻速線性運動,能夠在目標遮擋后繼續跟蹤目標,但運動目標在跟蹤過程中突然停止或者速度變化,Kalman濾波器無法根據假設的勻速條件做出正確預測,導致目標跟蹤失敗。Kalman算法將目標的位置、速度以及加速度作為預測對象,使得組合算法適應目標變速運動。算法將Kalman濾波器的狀態設為xk=[x(k),vx,ax,y(k),vy,ay]T,相應的狀態轉移矩陣為,其中

0為3階0方陣。引入平面軸方向加速度ax、ay,此時x軸的位移為,x方向的速度vx=axT,y方向的計算與x方向相同,常數T為前后兩幀視頻圖像的時間差。相應的觀測矩陣

Camshift算法總是在局部區域內尋找與跟蹤目標的巴氏距離最近的點作為目標在某一幀圖像中的位置。當被跟蹤目標受到遮擋或變速運動時,Camshift算法在不包含目標的區域內無法找到與目標巴氏距離最近的點。Kalman濾波器根據目標歷史的觀測數據對系統狀態進行最優估計,獲得目標位置的預測值,修正Camshift算法的輸出,彌補Camshift算法存在的不足。2種算法目標跟蹤效果如圖4、5所示。

圖4 被遮擋目標跟蹤效果Fig.4 Tracking effect of blocked target

圖5 變速運動的跟蹤效果Fig.5 Tracking effect of variable motion
3.1 系統組建
系統的軟件框圖如圖6所示。遠程嵌入式系統主要通過OpenCV提供的各類函數接口完成圖像數據的采集、目標檢測與跟蹤,通過Socket提供的函數實現網絡向上位機實時傳輸圖像。

圖6 嵌入式系統軟件框圖Fig.6 Diagram of embedded system software
上位機軟件使用Qt編寫,Qt提供了QTcpServer類,還有很多Socket編程接口,能很方便地實現網絡通信。軟件主要實現接收遠程發送的視頻圖像數據,并實時顯示跟蹤結果。圖7為上位機的軟件框圖。

圖7 上位機軟件框圖Fig.7 Diagram of PC software
3.2 系統測試與結果分析
3.2.1 系統測試
測試ARM-Linux系統的硬件為搭載contex-A7雙核處理器的BananaPi開發板。開發板以USB接口的攝像頭采集視頻,通過網線傳輸視頻到遠程計算機顯示。硬件連接完成后,給開發板上電,確保開發板與遠程計算機的網絡連接正常。遠程計算機運行服務器程序,監聽網絡端口。開發板上運行跟蹤程序,當串口終端打印“Camera is sending video stream…”時,服務器上Qt編寫的上位機軟件顯示監控場景的畫面。當目標進入監控場景,組合算法對目標實施跟蹤,圖8~10矩形框表示跟蹤目標的位置。
3.2.2 結果分析
1)相近色干擾實驗主要驗證系統在相近色干擾下對目標跟蹤的穩定性。圖8為系統的攝像機在某實驗室內采集的一段視頻中的3幀畫面。第119幀,身穿黃色外套的目標經過貼著黃色紙的墻,矩形框尺寸不變且包含目標;第207幀,目標到達黃色紙的邊緣,矩形框保持尺寸不變;第236幀,目標與墻上的黃色紙分離,矩形框跟隨目標。實驗表明,系統解決了相近色干擾導致的目標丟失問題。

圖8 相近色干擾實驗Fig.8 Experiment of similar color interference
2)遮擋實驗主要驗證系統在受遮擋目標重新出現時能否繼續正確跟蹤目標。圖9為系統攝像機拍攝的一段視頻中的3幀畫面。在第1515幀中選擇跟蹤的目標區域;第1527幀由于目標在背包后面,導致目標暫時丟失;在1536幀,目標重新出現,系統繼續跟蹤丟失的目標。實驗表明,系統解決了目標被遮擋導致的目標丟失問題。

圖9 遮擋實驗Fig.9 Occlusion test
3)變速運動實驗主要驗證系統在目標變速運動時能否正常跟蹤目標。圖10為系統攝像機拍攝的一段視頻中的3幀畫面。在第33幀中選擇跟蹤目標,此時目標靜止;第41幀目標突然加速起步行走,矩形框正確包含目標;第82幀目標突然放慢行走速度,整個過程矩形框緊跟目標。實驗表明,系統在目標變速運動時能連續跟蹤目標。

圖10 變速運動實驗Fig.10 Experiment of variable motion
設計了基于ARM-Linux的改進Camshift算法目標跟蹤系統,在ARM-Linux系統上實現目標的跟蹤,并通過網絡將跟蹤畫面傳輸到遠程計算機上顯示。目標跟蹤算法是研究的主要內容,針對Camshift算法存在的不足,對Camshift的搜索窗口設置了閾值,并提出Kalman濾波與Camshift的組合算法,解決了目標跟蹤存在的目標被遮擋、相近色干擾、目標變速運動導致目標丟失的問題。然而各測試實驗代表性不強,需要更多的測試、更長的測試時間,才能證明系統具有較好的穩定性。基于ARM-Linux遠程目標跟蹤系統是無重疊視域多攝像機目標跟蹤的重要部分,為多攝像機的目標跟蹤做了研究準備。
[1] 程子倫.基于ARM嵌入式平臺的視頻目標識別與跟蹤系統的研究與實現[D].石家莊:河北科技大學,2015:1-57.
[2] 吳祿慎,吳益根.基于ARM9的自適應背景差法智能遠程視頻監控系統[J].儀表技術與傳感器,2015(11):81-84.
[3] 顏科斐.嵌入式智能視頻監控報警系統設計[J].實驗技術與管理,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預測和Mean-2shift算法的視頻目標跟蹤[J].光電子·激光,2009,20(11):1517-1522.
[6] 孫凱,劉士榮.多目標跟蹤的改進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] 劉獻如,蔡自興.UKF與Mean shift算法相結合的實時目標跟蹤[J].中南大學學報(自然科學版),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
廣西科學研究與技術開發計劃(桂科攻11107001-40)
黃新(1978-),男,湖北黃岡人,副教授,研究方向為可測性設計、圖像處理。E-mail:hxgl@guet.edu.cn
黃柏華,黃新.基于ARM-Linux的改進Camshift算法目標跟蹤系統[J].桂林電子科技大學學報,2016,36(5):396-400.