喬國(guó)娜
(陜西工業(yè)職業(yè)技術(shù)學(xué)院信息工程學(xué)院 咸陽(yáng) 712000)
基于CamShift與混合高斯模型的目標(biāo)跟蹤與提取算法
喬國(guó)娜
(陜西工業(yè)職業(yè)技術(shù)學(xué)院信息工程學(xué)院咸陽(yáng)712000)
摘要為了解決當(dāng)前在復(fù)雜背景下視頻目標(biāo)存在跟蹤提取不準(zhǔn)確與不穩(wěn)定等不足,論文設(shè)計(jì)了基于CamShift與混合高斯模型的目標(biāo)跟蹤與提取算法。首先,耦合MeanShift與CamShift算法,定義了目標(biāo)跟蹤算子,完成對(duì)目標(biāo)的精確定位;然后計(jì)算圖像像素灰度的均值與方差,設(shè)計(jì)混合高斯模型,實(shí)現(xiàn)定位目標(biāo)與背景的分離;最后基于OpenCV開源函數(shù),利用C++編程實(shí)現(xiàn)算法跟蹤與提取功能。實(shí)驗(yàn)數(shù)據(jù)顯示:與當(dāng)前目標(biāo)跟蹤算法相比,在面對(duì)復(fù)雜背景條件下的運(yùn)動(dòng)目標(biāo)跟蹤提取時(shí),論文技術(shù)擁有更高的追蹤精度與穩(wěn)定性。
關(guān)鍵詞視頻目標(biāo)跟蹤; CamShift算法; MeanShift算法; 混合高斯; 目標(biāo)提取
Class NumberTP391
1引言
近年來(lái),視頻目標(biāo)跟蹤技術(shù)不斷發(fā)展,已經(jīng)廣泛地應(yīng)用到各個(gè)領(lǐng)域,如智慧城市中的智能監(jiān)控、智能醫(yī)療中的細(xì)胞活性測(cè)量、國(guó)防武器中的目標(biāo)定位跟蹤等。視頻圖像處理與普通靜態(tài)圖像處理的區(qū)別在于,視頻是由一系列序列圖像組成,不僅需要對(duì)單幀圖像處理,還需對(duì)一系列序列圖像進(jìn)行逐一處理,并找出其中規(guī)律,整合后實(shí)現(xiàn)視頻處理,達(dá)到運(yùn)動(dòng)目標(biāo)跟蹤與提取的目標(biāo)。
對(duì)此,國(guó)內(nèi)專家學(xué)者設(shè)計(jì)了諸多運(yùn)動(dòng)目標(biāo)跟蹤提取算法。如翟衛(wèi)欣等[1]設(shè)計(jì)實(shí)現(xiàn)了基于Kalman濾波的Camshift運(yùn)動(dòng)跟蹤系統(tǒng),采用Camshift與Kalman濾波相結(jié)合的方法,保證實(shí)時(shí)跟蹤,達(dá)到了有效跟蹤目標(biāo)的目的。如王熙[2]等設(shè)計(jì)了基于軌跡聚類的超市顧客運(yùn)動(dòng)跟蹤系統(tǒng),將軌跡聚類運(yùn)用于目標(biāo)跟蹤中,濾除背景和短時(shí)特征點(diǎn),以分離出運(yùn)動(dòng)目標(biāo)所在區(qū)域的關(guān)鍵特征點(diǎn),有效解決了單幀靜態(tài)特征點(diǎn)聚類時(shí)的目標(biāo)遮擋問題。李敏[3]等設(shè)計(jì)了基于Beowulf機(jī)群中改進(jìn)粒子濾波的人體運(yùn)動(dòng)跟蹤系統(tǒng),達(dá)到了穩(wěn)定跟蹤人體運(yùn)動(dòng)的目的。
雖然以上方法可以實(shí)現(xiàn)普通背景下的運(yùn)動(dòng)目標(biāo)跟蹤與提取,但是當(dāng)背景復(fù)雜(比如當(dāng)背景中有很多飄動(dòng)的樹葉、運(yùn)動(dòng)物體與背景顏色相近等情況),且目標(biāo)形狀不規(guī)則時(shí),往往出現(xiàn)誤跟蹤或提取不全的問題。
本文解決這些問題的方法是:首先,深入研究了MeanShift、CamShift兩種算法,并編程實(shí)現(xiàn),進(jìn)行反復(fù)實(shí)驗(yàn)驗(yàn)證,形成穩(wěn)定的目標(biāo)跟蹤算子。然后對(duì)序列圖像中目標(biāo)特征的灰度均值與方差進(jìn)行提取分析,建立混合高斯模型,作為背景與目標(biāo)的分離基準(zhǔn)。最后從算法的準(zhǔn)確性與穩(wěn)定性兩方面驗(yàn)證了本文算法性能。
2本文跟蹤與提取算法
本文目的是對(duì)復(fù)雜背景下的運(yùn)動(dòng)物體進(jìn)行跟蹤與提取,解決以往方法跟蹤不準(zhǔn)確、提取不充分的問題。本文硬件系統(tǒng)為一臺(tái)固定攝像機(jī)與PC相連,在PC端開發(fā)視頻跟蹤提取軟件,硬件非本系統(tǒng)核心,在此不贅述。
圖1 本文機(jī)制架構(gòu)
該算法主要分為兩部分:運(yùn)動(dòng)目標(biāo)跟蹤、運(yùn)動(dòng)目標(biāo)提取。首先,對(duì)場(chǎng)景進(jìn)行攝像拍攝,將視頻逐幀讀入軟件,待跟蹤提取處理。在對(duì)跟蹤算法進(jìn)行研究后,采用Meanshift、Camshift相結(jié)合的跟蹤因子,對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)后,標(biāo)注出目標(biāo)特征,并顯示在軟件界面上。在完成跟蹤后,建立混合高斯模型,分離背景與目標(biāo),提取出目標(biāo)。本文算法過程如圖1所示。
3基于CamShift的目標(biāo)跟蹤
MeanShift算法是一種在一組數(shù)據(jù)的密度分布中尋找局部極值的穩(wěn)定方法,如圖像像素灰度值,即查找灰度直方圖的局部峰值,若分布連續(xù),處理過程容易,然而對(duì)于離散數(shù)據(jù)集,MeanShift忽略數(shù)據(jù)中outliers,即遠(yuǎn)離數(shù)據(jù)峰值的點(diǎn),MeanShift僅對(duì)數(shù)據(jù)局部窗口中點(diǎn)進(jìn)行處理,處理完后移動(dòng)窗口[4],當(dāng)目標(biāo)出現(xiàn)在遠(yuǎn)離峰值點(diǎn)時(shí),算法不能準(zhǔn)確地跟蹤目標(biāo)。對(duì)此,本文引入另一種算法,即CamShift,將其MeanShift算法相融合,以共同處理圖像幀。CamShift是一種跟蹤器,與MeanShift不同的是:CamShift的搜索窗口會(huì)自我調(diào)整尺寸,可以針對(duì)離散點(diǎn)的偏離程度進(jìn)行自動(dòng)調(diào)整窗口,覆蓋離散點(diǎn),達(dá)到對(duì)視頻全局內(nèi)運(yùn)動(dòng)目標(biāo)的鎖定跟蹤[5~6]。本文對(duì)兩種算法進(jìn)行整合,形成跟蹤算子,具體步驟如下:
1) 窗口位置初始化(圖像左上角、矩形)。
2) 計(jì)算窗口重心,窗口中心設(shè)置于重心處。
3) 返回2),直到窗口位置不再變化。
4) 引入CamShift,計(jì)算窗口一階矩,自動(dòng)調(diào)整窗口,作為下一幀圖像的窗口。
X、Y方向一階矩、零階矩如式(1~3)所示:
(1)
(2)
(3)
式中,M10是X方向一階矩,M01是Y方向一階矩,M00是零階矩;I(x,y)為坐標(biāo)(x,y)處圖像像素值。據(jù)此,求出窗口重心位置:
(4)
(5)
其中,Xc、Yc為窗口X、Y方向重心。
以圖2為待跟蹤圖像為例,視頻中有兩人為運(yùn)動(dòng)目標(biāo)。依圖可知,本文設(shè)計(jì)的跟蹤算子具有很高的精度,大多數(shù)白色跟蹤標(biāo)注點(diǎn)始終圍繞著運(yùn)動(dòng)目標(biāo),見圖3,且隨運(yùn)動(dòng)目標(biāo)移動(dòng)而移動(dòng),見圖4??梢?本文定義的新型跟蹤算子具有很高的跟蹤準(zhǔn)確度。
圖2 原圖
圖3 跟蹤效果
圖4 跟蹤效果
部分關(guān)鍵代碼:
int getCodec() {
if (images.size()!=0) return -1;
union {int value;} returned;
returned.value=static_cast〈int〉(capture.get(CV_CAP_PROP_FOURCC));
return returned.value;}
bool setFrameNumber(long pos) {
if (images.size()!=0) {
itImg= images.begin() + pos;
if (pos < images.size())
return true;
else
return false;} else {
return capture.set(CV_CAP_PROP_POS_FRAMES, pos);}
bool setPositionMS(double pos) {
if (images.size()!=0)
return false;
elsereturn capture.set(CV_CAP_PROP_POS_MSEC, pos);}
4基于高斯混合模型的目標(biāo)提取
完成了對(duì)運(yùn)動(dòng)目標(biāo)的跟蹤,下一步就是目標(biāo)提取。為了精確提取目標(biāo),需要先對(duì)背景進(jìn)行建模,然后將當(dāng)前幀的模型與背景模型進(jìn)行比較,以檢測(cè)出前景物體即運(yùn)動(dòng)目標(biāo)[7~8]。本文將差異足夠大的像素視為前景像素,為了確保不誤提取出其他前景目標(biāo),需動(dòng)態(tài)創(chuàng)建背景模型,如定期更新背景模型,這可以通過計(jì)算滑動(dòng)平均值,即對(duì)時(shí)序信號(hào)進(jìn)行均值計(jì)算[9~11]。
本文分離背景與目標(biāo)的方法是混合高斯模型,首先取兩個(gè)滑動(dòng)平均值,圖像像素灰度值在這兩值間,則認(rèn)為是背景像素,當(dāng)新像素在兩值間,則認(rèn)為是目標(biāo)像素。其次,同時(shí)保存滑動(dòng)平均值與方差,公式如下:
δ2=(1-δ)δt-12+δ(1-u)2
(6)
式中,δ為方差,u為均值,得均值與方差構(gòu)成高斯模型。最后,當(dāng)高斯模型的擊中頻率不夠頻繁,它會(huì)從模型中移除;反之,如果像素值位于當(dāng)前背景模型之外,那么新的高斯模型將被創(chuàng)建。
圖5是對(duì)圖2進(jìn)行的目標(biāo)提取效果圖,背景為白色,而運(yùn)動(dòng)目標(biāo)為黑色。依圖可知,本文技術(shù)清晰準(zhǔn)確地提取出了運(yùn)動(dòng)目標(biāo)。
關(guān)鍵代碼:
bool setRelativePosition(double pos) {
if (images.size()!=0) {
long posI= static_cast〈long〉(pos*images.size()+0.5);
itImg= images.begin() + posI;
if (posI < images.size())
return true;
else
return false;
} else {
return capture.set(CV_CAP_PROP_POS_AVI_RATIO, pos);}}
void stopIt() {stop= true;}
bool isStopped() {
return stop;}
bool isOpened() {
return capture.isOpened() || !images.empty();}
void run() {cv::Mat frame;
cv::Mat output;
if (!isOpened())
return;
stop= false;
while (!isStopped()) {
if (!readNextFrame(frame))
break;
if (windowNameInput.length()!=0)
cv::imshow(windowNameInput,frame);
if (callIt) {if (process)
process(frame, output);
else if (frameProcessor)
frameProcessor->process(frame,output);
fnumber++;} else {
output= frame;}
if (outputFile.length()!=0)
writeNextFrame(output); }}
圖5 提取效果圖
5實(shí)驗(yàn)與討論
本文編程實(shí)現(xiàn)了視頻運(yùn)動(dòng)目標(biāo)跟蹤與提取系統(tǒng),軟件界面如圖6所示,該開發(fā)軟件具有“視頻讀取”、“圖像幀保存”、“目標(biāo)跟蹤”、“目標(biāo)提取”,及其他狀態(tài)顯示功能。打開視頻,如圖7所示,即待跟蹤提取場(chǎng)景,圖中騎手即為運(yùn)動(dòng)跟蹤目標(biāo)。
再利用本文算法與對(duì)照組算法(文獻(xiàn)[1~2])對(duì)同一視頻運(yùn)動(dòng)目標(biāo)(圖7中的騎手)進(jìn)行處理,然后測(cè)試其跟蹤與提取的準(zhǔn)確度。依圖可知,本文算法擁有更高的追蹤精度與提取準(zhǔn)確度,如圖12所示,騎手被精確跟蹤,沒有偏差,且目標(biāo)被完整地提取出來(lái),見圖13。而文獻(xiàn)[1~2]的追蹤與提取質(zhì)量都不佳,出現(xiàn)較大的偏差,見圖8~圖11。原因是本文采用Meanshift與camshift相結(jié)合的跟蹤算子,既考慮了X,Y方向灰度變化性,區(qū)分運(yùn)動(dòng)物,又引入搜索窗口自動(dòng)變化的Camshift,兩者相耦合,準(zhǔn)確的跟蹤運(yùn)動(dòng)目標(biāo),且本文建立以均值與方差為基礎(chǔ)多模型的高斯混合模型,對(duì)前后幀進(jìn)行計(jì)算,減去背景,準(zhǔn)確提取出目標(biāo);而文獻(xiàn)[1]是采用單純的Camshift與Kalman濾波,濾波效果受場(chǎng)景粒子離散性影響,出現(xiàn)誤跟蹤的問題,繼而導(dǎo)致其提取不準(zhǔn)確。文獻(xiàn)[2]是將軌跡聚類運(yùn)用于目標(biāo)跟蹤和濾除背景中,聚類本身計(jì)算量大,往往不能充分計(jì)算出運(yùn)動(dòng)目標(biāo)像素,導(dǎo)致其追蹤與提取精度不佳。
圖6 軟件界面
圖7 實(shí)時(shí)顯示
圖8 文獻(xiàn)[1]跟蹤結(jié)果
圖9 文獻(xiàn)[1]提取結(jié)果
圖10 文獻(xiàn)[2]跟蹤結(jié)果
圖11 文獻(xiàn)[2]提取結(jié)果
圖12 本文跟蹤效果圖
圖13 本文提取效果圖
6結(jié)語(yǔ)
本文解決的問題:目標(biāo)跟蹤不精確、目標(biāo)提取不充分,只提取出目標(biāo)的部分區(qū)域,影響后續(xù)研究處理。本文提出了一個(gè)基于Camshift與混合高斯模型的運(yùn)動(dòng)目標(biāo)跟蹤與提取系統(tǒng),并在軟硬件上進(jìn)行整合實(shí)現(xiàn)。首先建立跟蹤算子,實(shí)現(xiàn)了對(duì)目標(biāo)的穩(wěn)定跟蹤,不受背景復(fù)雜程度影響。然后設(shè)計(jì)基于背景與目標(biāo)分離器,充分分離出運(yùn)動(dòng)目標(biāo)。最后編程實(shí)現(xiàn),并進(jìn)行對(duì)比實(shí)驗(yàn)評(píng)價(jià),與當(dāng)前追蹤提取技術(shù)相比,本文算法擁有更高的跟蹤與提取準(zhǔn)確性與穩(wěn)定性。
參 考 文 獻(xiàn)
[1] 翟衛(wèi)欣.基于Kalman濾波的Camshift運(yùn)動(dòng)跟蹤算法[J].北京大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,23(2):31-36.
ZE Weixin. motion tracking algorithm Based on Kalman filter and Camshift[J]. Journal of Peking University(Natural Science Edition),2015,23(2):31-36.
[2] 王熙.基于軌跡聚類的超市顧客運(yùn)動(dòng)跟蹤[J].智能系統(tǒng)學(xué)報(bào),2015,18(25):142-147.
WANG Xi. Supermarket customer motion tracking based on trajectory clustering[J]. Journal of Intelligent Systems,2015,18(25):142-147.
[3] 李敏.基于Beowulf機(jī)群中改進(jìn)粒子濾波的3D人體運(yùn)動(dòng)跟蹤[J].計(jì)算機(jī)工程與應(yīng)用,2015,12(2):47-50.
LI Min. 3D human body motion tracking based on improved particle filter in Beowulf cluster[J]. Computer Engineering and Applications,2015,12(2):47-50.
[4] Zheng You, Jian Sun, Fei Xing. A Novel Multi-Aperture Based Sun Sensor Based on a Fast Multi-Point MEANSHIFT(FMMS) Algorithm[J]. Sensors,2011,11(3):2852-2857.
[5] Zouguo Yan, Weiguo Liang, Haidong lv. A Target Tracking Algorithm Based on Improved Camshift and UKF[J]. Journal of Software Engineering and Applications,2014,7(13):1065-1073.
[6] 王法勝.基于Hamiltonian馬氏鏈蒙特卡羅方法的突變運(yùn)動(dòng)跟蹤[J].軟件學(xué)報(bào),2014,23(7):96-99.
WANG Fasheng. Mutation motion tracking based on Hamiltonian Markov chain Monte Carlo method[J]. Journal of Software,2014,23(7):96-99.
[7] Chunsheng Guo, Dan Liu, YunFei Guo. An adaptive graph cut algorithm for video moving objects detection[J]. Multimedia Tools and Applications,2014,72(3):2633-2652.
[8] 李穎.帶寬自適應(yīng)的人體運(yùn)動(dòng)跟蹤均值漂移算法[J].小型微型計(jì)算機(jī)系統(tǒng),2013,16(4):11-15.
LI Yin. A bandwidth adaptive mean shift algorithm for human motion tracking[J]. Small and Micro Computer System,2013,16(4):11-15.
[9] Chu He, Yu Zhang, Bo Shi. Weakly supervised object extraction with iterative contour prior for remote sensing images[J]. EURASIP Journal on Advances in Signal Processing,2013,12(1):1-8.
[10] Qing Ye, Rentao Gu, Yuefeng Ji. Human detection based on motion object extraction and head-shoulder feature[J]. Optik-International Journal for Light and Electron Optics,2013,124(19):3880-3885.
[11] Xiao Yu, Dongmei Fu. Target extraction from blurred trace infrared images with a superstring galaxy template algorithm[J]. Infrared Physics and Technology,2014,64(2):9-16.
Target Tracking and Extraction Algorithm Based on CamShift and Gaussian Mixture Model
QIAO Guona
(College of Information Engineering, Shaanxi Polytechnic Institute, Xianyang712000)
AbstractIn order to solve the current inaccurate and unstable deficiencies under the background of complex video target tracking extraction, the CamShift and target tracking of the gaussian mixture model and extract algorithm is designed. First of all, coupled with MeanShift and CamShift algorithm, the target tracking operator is defined, the accurate positioning of target is completed. Then based on pixel gray mean and variance of the image, the gaussian mixture model is designed and localization of target and background separation is realized. Finally, based on OpenCV open-source function C++ programming is used to realize algorithm tracking and extracting features. Experimental data shows that, compared with the current target tracking algorithm, in the face of the moving target tracking under complex background extraction, the technology in this paper has higher tracking accuracy and stability.
Key Wordsvideo object tracking, CamShift algorithm, MeanShift algorithm, hybrid gauss, target extraction
收稿日期:2015年12月7日,修回日期:2016年1月27日
作者簡(jiǎn)介:喬國(guó)娜,女,碩士,講師,研究方向:計(jì)算機(jī)圖形圖像學(xué)。
中圖分類號(hào)TP391
DOI:10.3969/j.issn.1672-9722.2016.06.015