??? 摘 要:提出了一種邊緣檢測(cè)與改進(jìn)的Mean Shift算法相結(jié)合的紅外目標(biāo)" title="紅外目標(biāo)">紅外目標(biāo)跟蹤方法。利用結(jié)合小波消噪的Canny邊緣檢測(cè)方法對(duì)初始幀進(jìn)行目標(biāo)檢測(cè);在目標(biāo)被遮擋或丟失時(shí),利用Kalman預(yù)測(cè)與形心定位方法修正Mean Shift的迭代跟蹤過(guò)程。
??? 關(guān)鍵詞: 紅外目標(biāo)? 形心定位? 自動(dòng)跟蹤? Kalman預(yù)測(cè)? Mean Shift
?
??? 紅外目標(biāo)跟蹤" title="目標(biāo)跟蹤">目標(biāo)跟蹤是紅外警戒系統(tǒng)、空載下視系統(tǒng)和紅外尋的制導(dǎo)等軍事領(lǐng)域中的關(guān)鍵技術(shù)之一。在紅外目標(biāo)跟蹤中,感應(yīng)器與目標(biāo)運(yùn)動(dòng)的不穩(wěn)定、目標(biāo)狀態(tài)的多變且缺乏先驗(yàn)信息、背景雜波和非目標(biāo)運(yùn)動(dòng)的干擾等均給紅外目標(biāo)跟蹤帶來(lái)困難。
??? Mean Shift算法是由Fukunaga和Hostetler于1975年首先提出的[1],它作為一種高效的模式匹配算法,已被成功地應(yīng)用于實(shí)時(shí)性要求較高的目標(biāo)跟蹤系統(tǒng)中。引入計(jì)算機(jī)視覺(jué)領(lǐng)域后[2], Mean Shift算法在圖像分割和跟蹤中亦得到廣泛應(yīng)用[3]。
??? 本文提出了一種結(jié)合目標(biāo)邊緣檢測(cè)和改進(jìn)Mean Shift算法的自動(dòng)跟蹤方案。一方面,根據(jù)目標(biāo)檢測(cè)結(jié)果提取目標(biāo)形心坐標(biāo)作為Mean Shift的起始位置,進(jìn)行迭代匹配跟蹤;另一方面,在目標(biāo)被遮擋或丟失時(shí),通過(guò)Kalman預(yù)測(cè)和目標(biāo)形心定位修正當(dāng)前幀目標(biāo)初始位置。這種方法可成功地實(shí)現(xiàn)目標(biāo)的實(shí)時(shí)跟蹤,并對(duì)跟蹤偏移有一定的穩(wěn)健性。
1?Mean Shift跟蹤算法
??? Mean Shift目標(biāo)跟蹤算法主要利用目標(biāo)的灰度和紋理特征的統(tǒng)計(jì)分布描述目標(biāo),并通過(guò)均值移位向量的梯度下降搜索達(dá)到目標(biāo)跟蹤。其跟蹤過(guò)程是首先對(duì)目標(biāo)模型的描述,以一定間隔的灰度值為單位,將取值為像素灰度值的特征空間分為m個(gè)特征值" title="特征值">特征值。在紅外視頻序列圖像中跟蹤目標(biāo),由于圖像像素的值域是灰度空間,RGB分量相同。將其分成k個(gè)相等的區(qū)間,每個(gè)區(qū)間稱(chēng)為一個(gè)bin,構(gòu)成特征空間,特征空間中特征值的個(gè)數(shù)(也就是bin的個(gè)數(shù))m=256/k。在初始幀,包含目標(biāo)的搜索窗口中,通過(guò)目標(biāo)模型描述計(jì)算公式得出第u個(gè)特征值的概率。然后建立候選模型,運(yùn)動(dòng)目標(biāo)在第二幀及以后的每幀中可能包含目標(biāo)的區(qū)域稱(chēng)為候選區(qū)域,對(duì)候選區(qū)域的描述稱(chēng)為目標(biāo)候選模型,求出候選模型的特征值u=1,…,m的概率密度。計(jì)算出相似性函數(shù)。為了使相似性函數(shù)最大,在當(dāng)前幀中,以前一幀搜索窗口的位置作為當(dāng)前幀搜索窗口的位置,設(shè)窗口中心為y0,在y0鄰域內(nèi)尋找局部最優(yōu)目標(biāo)位置y1。通過(guò)對(duì)相似性函數(shù)求最大值,可以推導(dǎo)出Mean shift向量。
???
??? Mean Shift方法是以y0為起點(diǎn),向兩個(gè)模型相比灰度變化最大的方向移動(dòng),這優(yōu)于一般算法中的盲目搜索。經(jīng)反復(fù)迭代,最后得到在當(dāng)前幀目標(biāo)的最優(yōu)位置y。詳細(xì)算法介紹在此不予贅述,請(qǐng)參看文獻(xiàn)[4]、[6]。
2 改進(jìn)Mean Shift算法
??? Mean Shift算法在目標(biāo)模型描述上,特征值嚴(yán)格匹配,使得與目標(biāo)中心位置灰度相近的在窗口邊緣的灰度特征值丟失。其次,Mean Shift跟蹤迭代過(guò)程沒(méi)有一個(gè)匹配判斷標(biāo)準(zhǔn),容易錯(cuò)誤迭代跟蹤位置而沒(méi)有糾正過(guò)程。針對(duì)Mean Shift在紅外目標(biāo)跟蹤應(yīng)用中的不足,本文做以下改進(jìn)。
2.1 目標(biāo)模型
??? 由于背景噪聲影響和非剛性目標(biāo)灰度形狀不斷變化甚至被遮擋,目標(biāo)上可能部分灰度級(jí)缺失或者僅分布在離窗口中心較遠(yuǎn)的邊緣位置。而窗口中心附近有大量與其相近灰度級(jí)的像素。這時(shí)可以認(rèn)為該灰度級(jí)為目標(biāo)特征的一部分,其概率密度(權(quán)重)應(yīng)該較大。然而用原Mean Shift目標(biāo)模型計(jì)算得到的該灰度級(jí)像素的概率密度為零或幾近為零,因此丟失了部分目標(biāo)特征。
??? 對(duì)此,本文在考慮像素位置加權(quán)的同時(shí),利用核函數(shù)" title="核函數(shù)">核函數(shù)將像素灰度值匹配也賦予權(quán)值。改進(jìn)后的目標(biāo)模型的概率密度函數(shù)可用式(2)描述:
???
其中,核函數(shù)k1(x)選用二維Epanechikov核函數(shù);k2(x)選用一維Gaussian核函數(shù)。k1(x)、k2(x)定義分別如下:
???
??? 式(2)中的參數(shù)σ表示允許灰度值匹配的最大差值,保證所取相似像素值在特征值u臨近范圍內(nèi),即差值大于σ時(shí),權(quán)值為0,σ值滿(mǎn)足σ≤m。式(2)中h仍舊表示核函數(shù)帶寬。C2為歸一化系數(shù),保證
2.2 相似性度量" title="相似性度量">相似性度量函數(shù)
??? 由于目標(biāo)模型與候選模型相似,二者的特征概率密度估計(jì)均可用式(2)分別定義。設(shè)目標(biāo)模型描述為,候選目標(biāo)模型描述為。
??? 為了度量目標(biāo)模型和候選目標(biāo)的特征概率密度分布的相似性,需要一種距離測(cè)度來(lái)定義兩個(gè)離散分布之間的距離?;贐hattacharyya系數(shù),相似性度量函數(shù)定義如式(3)所示:
???
其中,
是Bhattacharyya系數(shù)的樣本估計(jì)值。相似性度量函數(shù)運(yùn)用離散密度,不受目標(biāo)尺寸變化影響。d值越大說(shuō)明目標(biāo)與候選目標(biāo)直方圖模式差別越大。設(shè)度量值為θ,當(dāng)d<θ時(shí),認(rèn)為目標(biāo)模型沒(méi)有發(fā)生變化,可以跟蹤;反之,當(dāng)d>θ時(shí),判斷為失去跟蹤。
條件d<θ使得初始預(yù)測(cè)位置與目標(biāo)實(shí)際位置距離較小,從而保證了Mean Shift算法每次迭代跟蹤收斂到局部最優(yōu)解。
3 Kalman預(yù)測(cè)起始點(diǎn)
??? 在相似性函數(shù)值較大的情況下,跟蹤嚴(yán)重偏離目標(biāo),為了不影響下一幀初始目標(biāo)模型的計(jì)算,必須對(duì)目標(biāo)位置進(jìn)行修正。在估計(jì)下一幀的跟蹤起始點(diǎn)的步驟中,采用了Kalman濾波器進(jìn)行運(yùn)動(dòng)預(yù)測(cè)。
??? 第1幀到第k-1幀中,Mean Shift計(jì)算的目標(biāo)中心可以形成一個(gè)運(yùn)動(dòng)軌跡,將這些中心位置值作為Kalman濾波器的觀測(cè)值。假設(shè)運(yùn)動(dòng)目標(biāo)中心在X、Y軸上的運(yùn)動(dòng)是一個(gè)受隨機(jī)加速度擾動(dòng)的運(yùn)動(dòng)。令信號(hào)向量S(k)=[x(k) y(k) x′(k) y′(k)]T,其中x(k)、y(k)分別為目標(biāo)中心在x、y軸上的位置分量,x′(k)、y′(k)分別為x、y軸上的速度。觀測(cè)向量X(k)=[xc(k) yc(k)]T,其中xc(k)、yc(k)分別是目標(biāo)中心x、y軸上的位置觀測(cè)值。
??? 這樣,Kalman濾波器算法包含的兩個(gè)模型
??? 信號(hào)模型:S(k)=A(k-1)S(k-1)+B(k)W(k)
??? 觀測(cè)模型:X(k)=C(k)S(k)+V(k)
??? 分別可以表示為式(5)和式(6):
???
其中,w(k)為加速度擾動(dòng)項(xiàng),v(k)為位移擾動(dòng)項(xiàng)。設(shè)定初始值:t=1,X(-1)=[xs ys 0 0]T。
??? 設(shè)定某個(gè)較大的相似度d以檢測(cè)目標(biāo)被遮擋的情況發(fā)生。當(dāng)d>θ時(shí),認(rèn)定目標(biāo)被遮擋,保留目標(biāo)的特征分布,僅利用卡爾曼預(yù)測(cè)來(lái)完成跟蹤,同時(shí)不斷進(jìn)行相似度比較,直到目標(biāo)重新出現(xiàn),d<θ。如果相似度持續(xù)較大的幀數(shù)過(guò)多,則認(rèn)定目標(biāo)跟蹤丟失,轉(zhuǎn)入目標(biāo)檢測(cè)過(guò)程。卡爾曼預(yù)測(cè)在開(kāi)始幾幀的值不太準(zhǔn)確,經(jīng)過(guò)若干幀左右才會(huì)收斂,此時(shí)的預(yù)測(cè)值才具有指導(dǎo)意義,因此設(shè)定一個(gè)較大的閾值去比較預(yù)測(cè)值與實(shí)際跟蹤點(diǎn)的距離,判定是否收斂。
4 邊緣檢測(cè)定位
4.1 基于小波的Canny邊緣檢測(cè)算法[7]
??? 為了確定搜索窗口的初始位置,首先需要檢測(cè)出初始幀所包含的目標(biāo)。設(shè)紅外序列圖像的初始幀為第0幀。利用小波的Canny邊緣檢測(cè)方法,從復(fù)雜背景中提取出小目標(biāo)的邊緣。邊緣提取結(jié)果連續(xù)閉合,符合Canny準(zhǔn)則,為下一步目標(biāo)形心計(jì)算做準(zhǔn)備。算法流程及結(jié)果分別如圖1、圖2所示。
圖1 結(jié)合小波的Canny算法流程圖
?
?
4.2 形心計(jì)算
??? 由目標(biāo)邊緣計(jì)算形心,公式如下:
???
??? 其中,xi、yi分別為目標(biāo)邊緣點(diǎn)第i個(gè)像素的橫、縱坐標(biāo)值,N為目標(biāo)邊緣點(diǎn)的像素個(gè)數(shù)。由式(7)即可得出目標(biāo)形心坐標(biāo)。
5 Mean Shift自動(dòng)跟蹤算法流程設(shè)計(jì)
??? 本文自動(dòng)跟蹤方法主要分以下幾個(gè)部分。其設(shè)計(jì)流程如圖3所示。
?
??? (1)自動(dòng)初始化:首先從視頻流中讀取圖像數(shù)據(jù)。對(duì)讀取的第一幀,通過(guò)基于小波消噪的Canny邊緣檢測(cè)方法進(jìn)行目標(biāo)檢測(cè),得到形心坐標(biāo),初始化Mean Shift算法的目標(biāo)跟蹤中心。設(shè)丟失幀計(jì)數(shù)變量為n,且n=0。
??? (2)Mean Shift迭代跟蹤:用式(2)計(jì)算窗口內(nèi)目標(biāo)初始位置的目標(biāo)概率分布。同樣,計(jì)算下一幀候選目標(biāo)在相同位置的概率分布。其中在特征描述方式上使用了核函數(shù)級(jí)聯(lián)形式。然后用式(1)計(jì)算Mean Shift矢量迭代至收斂點(diǎn)。
??? (3)相似度判斷:在每次的Mean Shift矢量迭代過(guò)程中,利用式(3)計(jì)算相似性度量函數(shù)d。當(dāng)d達(dá)到一個(gè)穩(wěn)定值后進(jìn)行判斷。設(shè)相似性度量為一個(gè)較大的值θ。若d<θ,說(shuō)明目標(biāo)與候選模型匹配,跟蹤有效。得到的收斂點(diǎn)置為初始位置,丟失幀計(jì)數(shù)清零,繼續(xù)計(jì)算目標(biāo)初始分布,更新了目標(biāo)模型,進(jìn)行下一次Mean Shift迭代。若d>θ,說(shuō)明目標(biāo)跟蹤框偏移目標(biāo)較大,失去跟蹤。為了糾正目標(biāo)概率分布的描述,使核函數(shù)作用在目標(biāo)中心上,保留此時(shí)的目標(biāo)特征分布(即不更新目標(biāo)模型),對(duì)丟失幀計(jì)數(shù)變量n進(jìn)行累加計(jì)數(shù)。轉(zhuǎn)用Kalman進(jìn)行跟蹤預(yù)測(cè)。
??? (4)Kalman預(yù)測(cè)起始點(diǎn):記當(dāng)前幀為k。使用Kalman濾波對(duì)k+1的目標(biāo)位置進(jìn)行預(yù)測(cè),然后輸出跟蹤點(diǎn)位置。計(jì)算k+1幀在此點(diǎn)的特征分布,之后與保留的目標(biāo)特征分布進(jìn)行Mean Shift迭代匹配。
??? (5)目標(biāo)重新檢測(cè):當(dāng)Kalman預(yù)測(cè)跟蹤的位置一直不能夠與原目標(biāo)特征分布匹配,所丟失的幀計(jì)數(shù)n超過(guò)設(shè)定值N時(shí),則判斷目標(biāo)丟失,需要重新定位目標(biāo)。此時(shí)返回自動(dòng)初始化步驟,對(duì)目標(biāo)進(jìn)行定位,重新初始化Mean Shift跟蹤。
6 實(shí)驗(yàn)結(jié)果與分析
??? 實(shí)驗(yàn)視頻序列長(zhǎng)度為420幀,每幀圖像的大小為128×128像素,視頻速率為10幀/秒。實(shí)驗(yàn)均在Celeron(R)2.26GHz,256MB內(nèi)存的PC機(jī)上采用Visual C++6.0軟件平臺(tái)進(jìn)行?;叶攘炕燃?jí)為32×32。
??? 原Mean Shift方法對(duì)視頻跟蹤結(jié)果如圖4所示。設(shè)定目標(biāo)模型的大小(核函數(shù)的半徑h)為(h,h)=(5,5)。其中為便于觀看,用白色十字叉絲標(biāo)注目標(biāo)跟蹤的位置。實(shí)驗(yàn)在前30幀對(duì)目標(biāo)跟蹤效果較好。30~100幀,背景干擾較大,目標(biāo)有時(shí)被遮擋,跟蹤框在目標(biāo)附近徘徊漸漸偏離目標(biāo);190幀以后,感應(yīng)器突然抖動(dòng),跟蹤偏離加大;300幀后,背景灰度突變時(shí),跟蹤框偏移更大,并停止跟蹤。實(shí)驗(yàn)說(shuō)明在目標(biāo)遮擋、背景灰度驟變和感應(yīng)器相對(duì)于背景和目標(biāo)的不穩(wěn)定快速運(yùn)動(dòng)下,Mean Shift方法容易丟失目標(biāo)且不能恢復(fù)跟蹤。
??? 采用本文所述Mean Shift紅外目標(biāo)自動(dòng)檢測(cè)跟蹤方法對(duì)視頻序列重新進(jìn)行目標(biāo)跟蹤實(shí)驗(yàn)。本文Mean Shift處理的跟蹤結(jié)果如圖5所示。其中十字叉絲的交點(diǎn)為目標(biāo)跟蹤的位置。
?
??? 實(shí)驗(yàn)在前30幀對(duì)目標(biāo)跟蹤效果如原Mean Shift算法一樣,跟蹤定位準(zhǔn)確。30~100幀,背景干擾較大、目標(biāo)有時(shí)被遮擋的情況下,跟蹤框在目標(biāo)附近有小幅度的波動(dòng),但沒(méi)有遠(yuǎn)離目標(biāo)位置,仍可以實(shí)現(xiàn)對(duì)目標(biāo)的跟蹤;190幀以后,感應(yīng)器突然抖動(dòng),跟蹤框遠(yuǎn)離了目標(biāo)。開(kāi)始目標(biāo)大部分還在核函數(shù)作用范圍內(nèi),而到201幀時(shí)目標(biāo)偏離較大,此時(shí)兩幀目標(biāo)模型的相似程度很小,轉(zhuǎn)為Kalman預(yù)測(cè)目標(biāo)位置。到205幀時(shí),跟蹤框內(nèi)的特征分布依然與丟失前差別較大,目標(biāo)沒(méi)有跟蹤上??梢钥吹?,在206幀時(shí),通過(guò)對(duì)目標(biāo)邊緣檢測(cè),重新定位,恢復(fù)了對(duì)目標(biāo)的有效跟蹤。在300幀以后,序列圖像灰度突變,目標(biāo)的灰度也有所變化,但改進(jìn)的目標(biāo)描述,使其仍能穩(wěn)定準(zhǔn)確地跟蹤目標(biāo)。實(shí)驗(yàn)對(duì)一幀平均處理速率約為72.7ms,實(shí)現(xiàn)了紅外小目標(biāo)的實(shí)時(shí)跟蹤。本文方法有效地修正了跟蹤偏移的情況,能夠?qū)t外目標(biāo)實(shí)現(xiàn)實(shí)時(shí)穩(wěn)健的跟蹤。
??? 本文提出了一種基于改進(jìn)的Mean Shift算法的紅外目標(biāo)自動(dòng)跟蹤方案。通過(guò)結(jié)合小波的Canny邊緣檢測(cè)算法對(duì)初始幀進(jìn)行目標(biāo)檢測(cè)并計(jì)算目標(biāo)的形心坐標(biāo),對(duì)Mean Shift算法進(jìn)行自動(dòng)初始化。使用了級(jí)聯(lián)核函數(shù)的方法改進(jìn)目標(biāo)的描述方式,通過(guò)相似性度量函數(shù),判斷目標(biāo)是否失去跟蹤。在失去跟蹤時(shí),通過(guò)Kalman預(yù)測(cè)跟蹤位置。在目標(biāo)丟失的情況下,重新進(jìn)行目標(biāo)定位來(lái)獲得穩(wěn)定的跟蹤。這種方法在跟蹤偏移的情況下,能夠調(diào)整算法的初始目標(biāo)模型分布,從而修正Mean Shift的跟蹤過(guò)程。實(shí)驗(yàn)結(jié)果表明,本文所提出的方案實(shí)現(xiàn)了對(duì)紅外目標(biāo)的實(shí)時(shí)自動(dòng)檢測(cè)跟蹤,同時(shí)對(duì)于目標(biāo)遮擋、丟失的情況是穩(wěn)健的。
參考文獻(xiàn)
[1] ?FUKUNAGE K, HOSTETLER L D. The estimation of the gradient of a density function with application in pattern recognition [J]. IEEE Trans. on Information Theory, 1975, ?21(1): 32-40.
[2] ?CHENG Y. Mena Shift, mode seeking and clustering [J].IEEE Trans on Pattern Analysis and Machine Intelligence,1995,17(8):790-799.
[3] ?COMANICIU D, MEER P. Mean shift analysis and application[J]. Proceedings of the Seventh IEEE International Conference Computer Vision, 1999, 2: 1197-1203.
[4] ?COMANICIU D, RAMESH V, MEER P. Kernel-Based object tracking. IEEE Trans. on Pattern Analysis and Machine Intelligence, 2003,25(5):564-575.
[5] ?程建,楊杰.一種基于均值移位的紅外目標(biāo)跟蹤新方法[J].紅外與毫米波學(xué)報(bào),2005,24(3):231-235.
[6] ?朱勝利. Mean Shift及相關(guān)算法在視頻跟蹤中的研究[D].浙江:浙江大學(xué)博士學(xué)位論文,2006.
[7]? 連潔,韓傳久,潘路. 基于Canny算法的紅外小目標(biāo)邊緣檢測(cè)方法[J]. 微計(jì)算機(jī)信息,2007,23(18):308-310.