周 明,李素珍,霍家道
(1.中國船舶重工集團(tuán)公司江蘇自動化研究所,江蘇 連云港 222006;2.解放軍91033部隊,山東 青島 266071)
運(yùn)動目標(biāo)的提取與跟蹤是應(yīng)用視覺研究領(lǐng)域一個重要課題,在軍事工業(yè)和民用生活等領(lǐng)域如目標(biāo)跟蹤、交通自動導(dǎo)航、視頻信號傳輸和機(jī)器人視覺等領(lǐng)域應(yīng)用廣泛。目前,隨著圖像處理技術(shù)以及一些相關(guān)領(lǐng)域技術(shù)的發(fā)展,目標(biāo)提取與跟蹤技術(shù)得到了飛快的發(fā)展。在硬件方面,隨著高速數(shù)字信號處理器的誕生,對運(yùn)動目標(biāo)的提取與實(shí)時跟蹤成為可能。但是,目前對目標(biāo)提取和跟蹤算法的研究還存在局限性。對某些運(yùn)動目標(biāo)的提取和跟蹤測試,在實(shí)驗(yàn)室中的效果很好,但在實(shí)際應(yīng)用中,由于許多不可預(yù)知的環(huán)境條件(光照、氣候、能見度等)的影響,使目標(biāo)圖像提取難度加大,進(jìn)而影響到目標(biāo)跟蹤的穩(wěn)定性。所以,對運(yùn)動目標(biāo)跟蹤系統(tǒng)進(jìn)行深入研究,具有很重要的學(xué)術(shù)意義和實(shí)用價值[2]。
目標(biāo)提取與跟蹤系統(tǒng)可以劃分為目標(biāo)提取系統(tǒng)和目標(biāo)跟蹤系統(tǒng)。跟蹤算法主要解決圖像序列中某一目標(biāo)的連續(xù)識別和跟蹤問題,算法要建立在目標(biāo)提取的基礎(chǔ)上,涉及跟蹤目標(biāo)的特征分析、運(yùn)動軌跡估計及保證跟蹤穩(wěn)定性的穩(wěn)定跟蹤策略等內(nèi)容。文章提出了一種基于HSV顏色空間的閾值分割法,對目標(biāo)進(jìn)行提取。根據(jù)提取到的目標(biāo)的位置信息,采用卡爾曼預(yù)測濾波算法,高效地實(shí)現(xiàn)了對目標(biāo)的跟蹤。
視頻信號經(jīng)采集、數(shù)字化后,送往計算機(jī)進(jìn)行圖像處理,提取出目標(biāo)信號,通過對視頻圖像序列相鄰幀的計算,得到目標(biāo)的運(yùn)動信息,包括位置信息和速度信息,將這些信息提供給伺服系統(tǒng)。伺服系統(tǒng)接收來自圖像處理子系統(tǒng)的信息,計算運(yùn)動向量,將這些數(shù)字信號經(jīng)數(shù)/模轉(zhuǎn)換后通過驅(qū)動電路帶動攝像頭發(fā)生轉(zhuǎn)動,使運(yùn)動目標(biāo)一直鎖定在攝像頭的視野中[3],如圖1所示。
圖1 運(yùn)動目標(biāo)跟蹤系統(tǒng)組成框圖
圖像處理是目標(biāo)跟蹤系統(tǒng)的核心,處理效果的好壞直接決定著系統(tǒng)能否有效跟蹤目標(biāo)。圖像處理主要包括圖像的獲取,圖像的預(yù)處理(濾波),特征分析,目標(biāo)提取,目標(biāo)的位置預(yù)測等過程,如圖2所示。其中,目標(biāo)提取是圖像處理子模塊的核心部分,圖像處理的目的是為了獲取圖像中的目標(biāo)信息,而忽略其它的部分。因此,需要將目標(biāo)和背景進(jìn)行區(qū)分。
目前,對序列圖像目標(biāo)提取主要采用基于特征的序列圖像分析方法[5],它從圖像中抽取一些與物體的某些三維特征相對應(yīng)的二維特征,然后建立起相鄰幀間圖像特征的對應(yīng)關(guān)系,以確定目標(biāo)的位移。根據(jù)這些信息可以計算出實(shí)際目標(biāo)的運(yùn)動參數(shù)和運(yùn)動軌跡。這種方法穩(wěn)定性較好,計算量相對較低,技術(shù)成熟。利用視頻圖像的特征點(diǎn)的色彩信息可以很方便的對圖像目標(biāo)進(jìn)行提取,它是基于特征的序列圖形分析方法之一。
圖2 圖像處理子模塊框圖
視覺系統(tǒng)中,常用的顏色空間模型包括 RGB,HIS,HSV,YUV等。其中,RGB是最流行的、與設(shè)備相關(guān)的顏色空間,主要用在顯示器上。HSV是從人的視覺系統(tǒng)出發(fā),用色調(diào)、飽和度和亮度來描述色彩,比RGB色彩空間更符合人的視覺特性。較選用HSV顏色模型對目標(biāo)的特性進(jìn)行分析。這種模型把圖像按視覺特性分為三個分量,將亮度從顏色信息中分離出來,這種分離在圖像處理中有很大的優(yōu)勢,非常直觀,稍微調(diào)整它的飽和度和亮度就可改變顏色,因此比較靈敏,并且RGB信號轉(zhuǎn)換為HSV信號有簡單快捷的算法[6]。
色調(diào)H:用角度度量,取值范圍為0°到360°。從紅色開始逆時針方向計算,紅色為0°,綠色為120°,藍(lán)色為 240°。它們的補(bǔ)色是:黃色為60°,青色為180°,品紅為300°。
飽和度S:取值范圍為0.0~1.0。
亮度值V:取值范圍為0.0(黑色)~1.0(白色)。
視頻采集卡采集后的數(shù)字化視頻輸入到計算機(jī),由于視頻是一幀一幀傳送的,我們可以把每一幀看作是一幅單獨(dú)的圖像進(jìn)行分析和處理。提取到的第一幀圖像如圖3所示。
圖3 視頻圖像第一幀
其中,汽車為跟蹤目標(biāo)。在Matlab環(huán)境下,可以通過Aviread命令讀取視頻圖像。并通過Frame2im將獲取的第一幀圖像轉(zhuǎn)換為索引圖像,以便后面處理。
對于圖像采集卡采集到的圖像,由于光照不均勻以及攝像頭等硬件的精度、缺陷等問題,不可避免地含有各種噪聲和失真。因此,需要對波門內(nèi)的圖像進(jìn)行濾波。圖像濾波是在提取圖像特征之前的必要步驟,通過濾波可以降低圖像噪聲和失真程度,增強(qiáng)圖像中的有用信號,改善圖像的質(zhì)量,有利于圖像的后續(xù)處理。
圖像濾波有均值濾波、中值濾波等多種方法,本文采用了中值濾波方法。中值濾波是一種非線性的空間濾波器。它一般是采用一個含有奇數(shù)點(diǎn)的滑動窗口,用窗口中各點(diǎn)的中值來代替中心點(diǎn)的值。
傳統(tǒng)的中值算法對N個數(shù)據(jù)進(jìn)行排序,需要N( N - 1 )/2次比較操作,由于每移動一次窗口,都需要對窗口內(nèi)的數(shù)據(jù)排序,因此,軟件的開銷會很大,計算速度較慢。
本文采用了一種改進(jìn)的算法,即利用相鄰窗口數(shù)據(jù)的重疊性,保留重疊部分?jǐn)?shù)據(jù)的排序,加入新數(shù)據(jù),并對這部分?jǐn)?shù)據(jù)進(jìn)行排序。平均每個窗口需要N( N - 1 )/4 + S ( 2 N - S - 1 )/4次比較操作,其中N、S均為偶數(shù)。這種方法的復(fù)雜度在窗口較小時下降明顯。
設(shè)計中采用了一個3*3的中值濾波器,可明顯地降低噪聲。
圖像濾波后,需要對目標(biāo)的特征進(jìn)行提取和分析,對得到的圖像進(jìn)行 HSV轉(zhuǎn)換。目前,已經(jīng)出現(xiàn)多種RGB和HSV顏色空間之間的轉(zhuǎn)換算法,包括Travis算法、Foley and VanDam算法等,其中,F(xiàn)oley and VanDam算法描述為[5]:
1)R、G、B的取值范圍為[0,1],找出每個像素點(diǎn)RGB的最大值max和最小值min;
2)V=max,S=(max-min)/max;
3)令delta=max-min,若R=max,H=(G-B)/delta;B=max,H=(R-G)/delta;
4)H=H*60,如果H<0,則H=H+360。
由以上算法轉(zhuǎn)換后得到三個二維矩陣,分別是H、S、V。通過對波門內(nèi)圖像(濾波后的圖像)進(jìn)行統(tǒng)計,得到H、S、V各自的分布范圍。為了便于統(tǒng)計分析,將S、V分量的閾值范圍擴(kuò)大為[0,255]。
圖4、圖5、圖6分別為本設(shè)計中采用的圖3中目標(biāo)(汽車)的H、S、V直方圖分布。
由圖4、5、6中可以看出,波門內(nèi)的像素直方圖分布在一定的范圍之內(nèi),包含背景的顏色分量直方圖和目標(biāo)的顏色直方圖。
圖4 目標(biāo)H分量直方圖
圖5 目標(biāo)S分量直方圖
圖6 目標(biāo)V分量直方圖
為了使目標(biāo)從圖像背景中分離出來,尋找目標(biāo)與非目標(biāo)的差異的過程稱為目標(biāo)提取,而根據(jù)所提取的不同目標(biāo)之間的某些特征差異對圖像進(jìn)行區(qū)域劃分則稱為圖像分割。在視覺系統(tǒng)中,常用的圖像分割方法主要是區(qū)域增長法和閾值法兩大類。區(qū)域增長法由于采用遞歸方式,所以速度較慢,因而在實(shí)時較高的系統(tǒng)中應(yīng)用逐漸減少,本文中使用閾值法分割圖像。利用像素值的直方圖來確定分割閾值。如圖7所示,在HSV顏色空間中,每個顏色類由6個閾值描述,每一維兩個閾值,分別表示該顏色類在該維中的最大值和最小值。如圖7所示,3個色彩向量(H,S,V)就在色彩空間中確定了一個長方體。當(dāng)一個待識別的像素在色彩空間中的位置落在這個長方體中時,就認(rèn)為該像素屬于要跟蹤的目標(biāo)。屬于目標(biāo)的像素標(biāo)記為 1,其他標(biāo)記為0。
圖7 閾值分割
為有效地去處背景干擾,適應(yīng)不同光照條件下對目標(biāo)進(jìn)行提取。本文提出了一種半自動方式實(shí)現(xiàn)目標(biāo)提取的方法:
1)當(dāng)目標(biāo)出現(xiàn)時,人工用鼠標(biāo)或跟蹤球點(diǎn)取目標(biāo)顏色特征較有代表性的一點(diǎn),程序以這一點(diǎn)為中心,產(chǎn)生一個大小為 96*72(像素)的波門(這里稱為大波門),大波門內(nèi)的圖像有背景和目標(biāo),后續(xù)的提取處理都是在大波門內(nèi)進(jìn)行的,這樣處理是為了提高系統(tǒng)處理速度,節(jié)約系統(tǒng)資源;
2)程序?qū)⑦x取的這一點(diǎn)作為后續(xù)目標(biāo)位置預(yù)測的初始值,并以這一點(diǎn)為中心,取與其臨近的12*9像素圖像(這里稱為小波門);分析小波門內(nèi)像素的顏色特征的分布范圍,并進(jìn)行直方圖統(tǒng)計,將直方圖累計分布概率大于70%的像素值范圍確定為目標(biāo)的閾值范圍,并以這些閾值對大波門內(nèi)的圖像進(jìn)行整個目標(biāo)的提取,以計算和預(yù)測目標(biāo)的位置信息;
3)完成計算后,根據(jù)目標(biāo)坐標(biāo)的預(yù)測值(在2.7節(jié)和2.8節(jié)將做詳細(xì)介紹),進(jìn)入下一幀計算,兩個波門的中心也移到下一幀目標(biāo)的預(yù)測位置處,再從2)開始處理,并更新閾值。
如果目標(biāo)的速度較快,操作人員來不及點(diǎn)取目標(biāo),此時可以提取出一幀圖像,點(diǎn)取這一幀圖像中目標(biāo)的特征點(diǎn),對其小波門內(nèi)區(qū)域進(jìn)行分析,獲得閾值范圍后,將其作為后續(xù)目標(biāo)位置預(yù)測的初始值,這一操作是在短時間內(nèi)進(jìn)行的,可以假定目標(biāo)的顏色狀態(tài)是穩(wěn)定的。
按照以上方法,經(jīng)過提取后的第一幀圖像如圖 8所示,為了驗(yàn)證算法分割目標(biāo)性能的好壞,選取了整幅圖像進(jìn)行分析。
圖8 提取的目標(biāo)
由圖8可見,經(jīng)過分割后,目標(biāo)的形狀位置信息基本得到保持,背景等其它部分的不相關(guān)信息被完全濾掉。經(jīng)分析,處理一幅圖像耗時3.2ms(P-IV 3GHz,1G內(nèi)存,windows XP2),按照電視圖像每秒25幀計算,每幀之間時間間隔為 40ms,處理時占用內(nèi)存3%。本文因?yàn)檫x取的目標(biāo)為地面目標(biāo),且距離較近,所以選取的波門較大,在跟蹤空中目標(biāo)時,由于目標(biāo)較小,可以選取較小的大波門(一般 30*30),以提高系統(tǒng)處理速度,而小波門也相應(yīng)地減小。用戶需要根據(jù)實(shí)際應(yīng)用環(huán)境,設(shè)定波門大小。
圖像的特征提取是在以上幾個步驟完成后,提取運(yùn)動目標(biāo)的位置信息和速度信息的過程。本系統(tǒng)通過目標(biāo)提取時標(biāo)記的值,計算目標(biāo)的中心點(diǎn)坐標(biāo)。即目標(biāo)的尺寸可以通過下式計算。
其中, B [i, j ]為該位置的目標(biāo)提取時標(biāo)記值,跟蹤目標(biāo)的中心坐標(biāo)為:
由于圖像采集系統(tǒng)存在一定的采樣延遲,造成了圖像采樣點(diǎn)滯后于目標(biāo)實(shí)際的運(yùn)動位置;同時又由于伺服機(jī)構(gòu)也存在一定的延遲性,因此,若僅以圖像處理的結(jié)果進(jìn)行跟蹤必然會使跟蹤系統(tǒng)的運(yùn)動滯后于目標(biāo)的運(yùn)動,所以必須進(jìn)行目標(biāo)的預(yù)測。
本文采用卡爾曼預(yù)測濾波算法對目標(biāo)位置進(jìn)行預(yù)測,其基本思想是:假定目標(biāo)的初始狀態(tài)已知,根據(jù)狀態(tài)方程、測量方程以及過程噪聲、測量噪聲的統(tǒng)計知識,估計下一時刻的目標(biāo)位置。在每一個采樣周期收到測量值后遞歸執(zhí)行[1]??柭鼮V波預(yù)測為遞推過程,速度很快,能滿足實(shí)時跟蹤的要求。
卡爾曼預(yù)測濾波器算法過程為[4]:
根據(jù)文獻(xiàn)資料和工程經(jīng)驗(yàn),一般選取 p ( 0)值較大,有利于系統(tǒng)的快速初始對準(zhǔn),Q值選取寧小勿大,R過小噪聲變大,過大收斂速度變慢。本文通過分析,選取 p ( 0)=8,Q=0.01, R=0.5,a=1,c=1。
根據(jù)以上公式和初始參數(shù)值以及每一幀提取到的目標(biāo)位置信息,可以預(yù)測目標(biāo)位置信息,將預(yù)測的目標(biāo)運(yùn)動曲線與實(shí)際目標(biāo)運(yùn)動曲線作對比如圖9所示。其中虛線‘-’為實(shí)際運(yùn)動曲線,‘+’為預(yù)測運(yùn)動曲線。
由圖9可見,其曲線基本吻合,預(yù)測位置較好地滿足了要求。
這種算法在P-IV 3.0G處理器下處理每個目標(biāo)點(diǎn)僅耗時80us,速度很快。加上圖像處理的時間3.2ms,也完全滿足小于40ms的處理時間要求。
圖9 實(shí)際運(yùn)動曲線與預(yù)測運(yùn)動曲線
正常情況下,上述跟蹤算法能夠穩(wěn)定地跟蹤目標(biāo)。但當(dāng)目標(biāo)做特殊運(yùn)動或者目標(biāo)的背景急劇變化時,目標(biāo)有可能丟失。此時,需要重新搜索目標(biāo)。一般常采用這種方法:在丟失時的位置設(shè)置一定大小的窗口,在窗口內(nèi)進(jìn)行搜索,如果未能搜索到目標(biāo),則將區(qū)域擴(kuò)大一倍,在一個更大的范圍內(nèi)搜索,一旦搜索到目標(biāo),就跳出搜索,轉(zhuǎn)入正常的跟蹤過程,否則一直搜索到整個視場[3]。
本文對基于HSV模型的運(yùn)動目標(biāo)提取與跟蹤算法進(jìn)行了理論分析和探討,并通過編程實(shí)現(xiàn)算法,分析閾值分割后圖像可以看出,這種分割算法能較好地將背景與目標(biāo)區(qū)分開來,有效地降低了背景干擾,速度快、反應(yīng)靈敏、資源消耗低、抗干擾能力強(qiáng)。采用卡爾曼跟蹤算法,高效地實(shí)現(xiàn)了目標(biāo)的跟蹤,具有穩(wěn)定性高,占用資源低等特點(diǎn)。將基于HSV模型的目標(biāo)提取算法和卡爾曼濾波算法結(jié)合使用,能達(dá)到很高的性價比,比較適合于工程中的應(yīng)用。
[1]Mohinder S. Grewal, and Angus P. Andrews, Kalman Filtering: Theory and Practice Using MATLAB(Second Edition)[M]. A Wiley-Interscience Publication,2001.
[2]張玲. 基于 DSP的空中目標(biāo)跟蹤系統(tǒng)[D].重慶:重慶大學(xué)碩士論文,2007.
[3]李尊民. 電視自動圖像跟蹤的基本原理[M].北京:國防工業(yè)出版社,1998.
[4]戴禮榮. 數(shù)字信號處理 II[EB/OL].合肥:中國科技大學(xué),2007.
[5]李慶忠,劉懷強(qiáng),侯永海,褚東升. 視頻序列中運(yùn)動目標(biāo)自動提取的研究[J].微計算機(jī)信息,2006(5):246-248.
[6]林福宗. 多媒體技術(shù)基礎(chǔ)[M]. 第2版.北京:清華大學(xué)出版社,2002.
[7]張志涌,徐彥琴,等. MATLAB 教程——基于 6.X 版本[M].北京:北京航空航天大學(xué)出版社,2004.