摘 要:將梯度信息引入到Camshift算法之中,定義Camshift算法的梯度模型。依據(jù)運(yùn)動(dòng)目標(biāo)和背景圖像直方圖的Bhattacharyya距離來(lái)動(dòng)態(tài)決定梯度模型在查找算法中的決定權(quán)重,減小加入梯度后對(duì)算法時(shí)效性的影響;在Camshift算法求運(yùn)動(dòng)目標(biāo)色調(diào)分量的過(guò)程中,改進(jìn)由RGB空間到HSV空間轉(zhuǎn)換計(jì)算的方法,減少反余弦和開(kāi)方運(yùn)算。在色調(diào)分量Hue基礎(chǔ)上定義一種Hue分量,提高顏色空間之間的轉(zhuǎn)換效率;在對(duì)目標(biāo)跟蹤框內(nèi)顏色直方圖進(jìn)行計(jì)算時(shí),以選取框重心位置為中心,距離中心越遠(yuǎn)的像素在顏色直方圖中的比重越小.減小在選取運(yùn)動(dòng)物體初始位置時(shí)引入的背景噪聲,提高跟蹤算法的穩(wěn)定性。實(shí)驗(yàn)證明:經(jīng)過(guò)上述的改進(jìn),使得傳統(tǒng)的Camshift算法在背景顏色與運(yùn)動(dòng)目標(biāo)和有相似顏色物體對(duì)運(yùn)動(dòng)目標(biāo)造成干擾的情況下的跟蹤魯棒性得到提高。
關(guān)鍵詞:Camshfit;梯度模型;動(dòng)態(tài)融合;空間轉(zhuǎn)換計(jì)算簡(jiǎn)化;加權(quán)像素值
Abstract:Introducing gradient information into the Camshift arithmetic, and defining the model of Camshift algorithm. Based on a moving target and the background image histogram Bhattacharyya distance determine the weight of gradient model in the search algorithm determines dynamically, decreasing bad influence of timeliness after adding gradient information; In the process of Camshift algorithm solve hue component for moving target, improving conversion method of calculation from RGB space to HSV space, reducing anti-cosine and square root operation. Based on the hue component,defining a new hue component to improve the conversion efficiency between color spaces; In the color histogram of the target tracking box to perform a calculation, in the center of gravity center of marquee, the farther from the center of the pixel the smaller in proportion of the color histogram. Reducing the background noise when selecting the moving object and the initial position and improving the stability of the tracking algorithm. Experimental certifies: After the above improvements make the traditional Camshift algorithm tracking robustness improved in the case of color of the background and color on the moving target is similar.
Key words:Gradient model;Dynamic integration;Simplify the calculation of space conversion;Weighted pixel values
1 引言
Camshift算法是一種基于圖像顏色特征的目標(biāo)跟蹤算法,它是MeanShift算法的改進(jìn),Camshift算法的全稱是\"Continuously Adaptive Mean-SHIFT\",稱為連續(xù)自適應(yīng)的MeanShift算法,它的基本思想是視頻圖像的所有幀作MeanShift運(yùn)算,并將上一幀的結(jié)果(即Search Window的中心和大?。?/p>
作為下一幀Meanshift算法的Search Window的初始值,如此迭代下去。由于具有對(duì)目標(biāo)形變不敏感,進(jìn)過(guò)優(yōu)化后實(shí)時(shí)性好[1][2]等特點(diǎn)近年來(lái)備受親睞。但傳統(tǒng)的Camshift算法是一種半自動(dòng)算法,算法執(zhí)行前,需要人工選定跟蹤物體的區(qū)域。國(guó)內(nèi)外很多文獻(xiàn)中對(duì)Camshift算法的半自動(dòng)改進(jìn)做了大量研究,具有典型代表性的有幀差法[3]和背景差分[4]法提取進(jìn)入視頻監(jiān)控區(qū)域的運(yùn)動(dòng)物體。Camshift是基于顏色核的算法,針對(duì)運(yùn)動(dòng)目標(biāo)的直方圖進(jìn)行分析[5],優(yōu)點(diǎn)是使得算法對(duì)目標(biāo)形變不敏感,但Camshift算法丟失了運(yùn)動(dòng)目標(biāo)空間以及輪廓信息,使得在光線變化明顯或目標(biāo)與背景顏色相近的復(fù)雜場(chǎng)景下易受干擾[6]。作為跟蹤環(huán)境的另一重要部分的背景,對(duì)于算法的穩(wěn)定跟蹤具有重要意義,可以采用動(dòng)態(tài)的更新減少噪聲和光照變化對(duì)于跟蹤魯棒性的影響[7]。部分文獻(xiàn)中,采用顏色、邊緣梯度、紋理等多個(gè)特征自適應(yīng)融合的方式改進(jìn)算法[8],提高算法應(yīng)對(duì)光線變化的能力; 并通過(guò)修正特征直方圖、設(shè)置合理搜索范圍對(duì)算法進(jìn)行進(jìn)一步改進(jìn),解決相似背景的干擾問(wèn)題。有些改進(jìn)方法,通過(guò)將一些成熟的濾波算法引進(jìn)到Camshift的視頻跟蹤之中,比如卡爾曼濾波,也起到了很好的效果[9]。針對(duì)快速運(yùn)動(dòng)的目標(biāo),由于運(yùn)動(dòng)方向的不確定性,Camshift不能準(zhǔn)確跟蹤目標(biāo),導(dǎo)致跟蹤丟失.有文獻(xiàn)研究將目標(biāo)運(yùn)動(dòng)軌跡預(yù)測(cè)思想引入Camshift算法,提出了一種能有效跟蹤運(yùn)動(dòng)目標(biāo)的新方法.該方法能準(zhǔn)確預(yù)測(cè)運(yùn)動(dòng)目標(biāo)的位置,減少在算法中搜索目標(biāo)的次數(shù),進(jìn)而提高目標(biāo)跟蹤的準(zhǔn)確性和速度[10]。同時(shí),Camshift也是一種能夠擴(kuò)展跟蹤運(yùn)動(dòng)目標(biāo)數(shù)目的算法,進(jìn)過(guò)改進(jìn)的算法可以同時(shí)對(duì)多目標(biāo)進(jìn)行跟蹤[11],使其在實(shí)際運(yùn)用中更有意義。
2 Camshift算法的大致實(shí)現(xiàn)流程介紹
Camshift利用目標(biāo)的顏色直方圖模型將圖像轉(zhuǎn)換為顏色概率分布圖,初始化一個(gè)搜索窗的大小和位置,并根據(jù)上一幀得到的結(jié)果自適應(yīng)調(diào)整搜索窗口的位置和大小,從而定位出當(dāng)前圖像中目標(biāo)的中心位置。算法的主要流程分為以下幾大部分:
⑴初始化運(yùn)動(dòng)目標(biāo)模型、候選區(qū)域和二維概率分布中心位置。由于Camshift算法是一個(gè)半自動(dòng)算法,無(wú)法自動(dòng)查找到進(jìn)入視野里的運(yùn)動(dòng)目標(biāo),需要人工選定運(yùn)動(dòng)物體。選擇運(yùn)動(dòng)物體的同時(shí)確定了候選區(qū)域。
目標(biāo)模型的表示:(公式和過(guò)程如果參考了其他文獻(xiàn),請(qǐng)標(biāo)注出來(lái),下同。)
其中C位歸一化常數(shù)。
選用Bhattacharrya系數(shù)相似性函數(shù)ρ(y)來(lái)表示選定和目標(biāo)候選模型的相似程度。
則初始窗口到目標(biāo)模型的移動(dòng)距離應(yīng)為:
⑶在視頻相鄰兩幀之間對(duì)以上兩個(gè)步驟反復(fù)迭代,就實(shí)現(xiàn)了Camshift算法。
3 動(dòng)態(tài)梯度與色調(diào)的融合及Camshift改進(jìn)研究
3.1 動(dòng)態(tài)梯度與色調(diào)信息的融合
傳統(tǒng)的Camshift算法中,對(duì)物體進(jìn)行跟蹤的主要依據(jù)是將運(yùn)動(dòng)目標(biāo)的顏色直方圖反向投影到候選區(qū)域,按照像素點(diǎn)出現(xiàn)的密度來(lái)移動(dòng)跟蹤框到下一幀圖像中最可能出現(xiàn)的位置。這樣做的好處是算法實(shí)時(shí)性好,迭代算法輕量而高效。
由于算法是在HSV空間下對(duì)顏色信息進(jìn)行概率計(jì)算,相對(duì)于RGB空間下的跟蹤,HSV空間的信息和光照沒(méi)有直接聯(lián)系,因此,Camshift算法對(duì)光線變化對(duì)跟蹤的影響具有較好的魯棒性。但由于顏色核是算法唯一跟蹤的唯一依據(jù),不足是顯而易見(jiàn)的,論文旨在將梯度模型合理最優(yōu)的引入到跟蹤算法中,增強(qiáng)算法在有顏色相近物體干擾時(shí)跟蹤的魯棒性,不至于對(duì)運(yùn)動(dòng)物體跟蹤丟失。
論文采用OpenCV2.4.1開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)在VS2010搭建的平臺(tái)進(jìn)行開(kāi)發(fā)。在新版本的OpenCV中,大量使用了Mat圖像容器類,同時(shí)它也是一般矩陣類,因此,利用Mat創(chuàng)建和操作多維矩陣是簡(jiǎn)潔高效的[14]。這就為梯度模型和色調(diào)模型的融合創(chuàng)造了條件。
在這里,利用圖像容器類Mat構(gòu)造色調(diào)和梯度的二維二通道矩陣:
其中n,m分別是圖像矩陣的行數(shù)和列數(shù)。j是一個(gè)動(dòng)態(tài)值,由選定的目標(biāo)區(qū)域和候選區(qū)域的概率模型的巴氏距離大小來(lái)動(dòng)態(tài)決定,j在數(shù)值上不大于m。j的數(shù)值越大,梯度模型在整個(gè)二維二通道矩陣中所占的比重越大,改進(jìn)跟蹤算法的抗顏色相近物體干擾能力越好,同時(shí),計(jì)算量也越大。
經(jīng)過(guò)大量實(shí)驗(yàn)統(tǒng)計(jì),將巴氏距離四等分,不同距離下的j/m值為以下值時(shí),跟蹤效果最佳:
然后求混合二通道矩陣的直方圖,將直方圖反向投影,進(jìn)行迭代計(jì)算找出運(yùn)動(dòng)目標(biāo)在下一幀中最有可能出現(xiàn)的位置。這樣就實(shí)現(xiàn)了將梯度信息動(dòng)態(tài)的融入到Camshift算法。
3.2 RGB空間到HSV空間轉(zhuǎn)換色調(diào)通道計(jì)算的化簡(jiǎn)
考慮到引入梯度信息后,會(huì)增加算法的復(fù)雜度,可能會(huì)導(dǎo)致實(shí)時(shí)性的降低,達(dá)不到跟蹤的要求,對(duì)Camshift算法中從RGB空間到HSV空間轉(zhuǎn)換過(guò)程進(jìn)行簡(jiǎn)化,減小計(jì)算量。
3.2.1 RBG空間到HSV空間的轉(zhuǎn)換方法
用RGB來(lái)表示顏色雖然方便,但是兩個(gè)相近的顏色的RGB值可能有很大差別,不利于計(jì)算。用HSV(Hue色相、Saturation飽和度、Value(Brightness)明度,也叫HSB)來(lái)表示顏色就比較符計(jì)算機(jī)表達(dá)方式,對(duì)光線變化的數(shù)據(jù)穩(wěn)定性也更好。
Camshift算法就在HSV空間小進(jìn)行,由RGB到HSV空間的轉(zhuǎn)化公式如下[15]。
式中R,G,B與H,S,V分別代表個(gè)顏色分量的值。
3.2.2 顏色空間模型
由式(1)可以看到,HSV空間中的H分量計(jì)算相對(duì)復(fù)雜,涉及到求算術(shù)平方根和反余弦運(yùn)算,這一部分可以優(yōu)化以減少跟蹤算法整體運(yùn)算時(shí)間。
在保持H分量色調(diào)通道特性的基礎(chǔ)上,取:
,其中H為HSV空間的色調(diào)分量值。
繼續(xù)化簡(jiǎn)可得:
這樣得到的分量 的表達(dá)式中,只存在基本的四則運(yùn)算,縮短了每一幀圖像從RGB空間向 空間轉(zhuǎn)化所需要的時(shí)間。
3.3 基于反距離加權(quán)插值的ROI噪聲減除方法
在給Camshift算法初始化要跟蹤的目標(biāo)時(shí),需要人工選定跟蹤框的位置,在選取的過(guò)程中,如果待跟蹤的目標(biāo)不是規(guī)則且平行于坐標(biāo)軸的矩形,采用的矩形跟蹤框會(huì)引入不屬于目標(biāo)的背景噪聲,背景噪聲會(huì)影響迭代計(jì)算的穩(wěn)定性,甚至造成目標(biāo)的丟失。因此,加入反距離加權(quán)插值使得離選定區(qū)域重心越遠(yuǎn)的像素點(diǎn)值越小的方式,弱化邊緣像素在整個(gè)目標(biāo)區(qū)域的權(quán)重,盡可能的減少屬于背景像素點(diǎn)對(duì)跟蹤的影響。
反距離加權(quán)插值以插值點(diǎn)與樣本點(diǎn)間的距離為權(quán)重進(jìn)行加權(quán)平均,離插值點(diǎn)越近的樣本點(diǎn)賦予的權(quán)重越大。
插值權(quán)重系數(shù)計(jì)算表達(dá)式為:
其中,P為指數(shù)值;
dio是預(yù)測(cè)點(diǎn)S0與選擇區(qū)域重心Si之間的距離。
計(jì)算過(guò)程中參數(shù)p影響樣點(diǎn)在預(yù)測(cè)點(diǎn)值所占權(quán)重的大小,選擇區(qū)域重心與預(yù)測(cè)點(diǎn)距離影響的權(quán)重按指數(shù)規(guī)律變化,但這些權(quán)重值的總和為1。
得出反距離加權(quán)插值法的一般公式:
其中,Z(S0)為S0處的加權(quán)后的像素值;
λi為預(yù)測(cè)計(jì)算過(guò)程中使用的各樣點(diǎn)的權(quán)重,Z(S0)是在Si處的像素值;N是預(yù)測(cè)計(jì)算過(guò)程中要使用的像素點(diǎn)周?chē)鷺狱c(diǎn)的數(shù)量。
通過(guò)插值計(jì)算,圖像遠(yuǎn)離重心的像素值在整幅圖像像素值得以減小,相對(duì)將所有像素點(diǎn)同等看待的方法,對(duì)矩形ROI進(jìn)行反距離加權(quán)插值后的數(shù)值更加忠于實(shí)際情況。
4 實(shí)驗(yàn)結(jié)果
為了驗(yàn)證算法,使用VS2010和OpenCV搭建實(shí)驗(yàn)平臺(tái)。在室內(nèi)日光燈照射下,使用200萬(wàn)像素的攝像頭進(jìn)行視頻圖像的采集。主要過(guò)程包括:程序編譯,視頻設(shè)備硬件初始化,選定目標(biāo)跟蹤以及后續(xù)跟蹤過(guò)程。改進(jìn)的算法在Core I5 M480處理器,4GB內(nèi)存計(jì)算機(jī)上達(dá)到30幀/秒以上的處理速度。符合實(shí)時(shí)性的要求。
圖1中.圖1(a)展示了跟蹤算法改進(jìn)前初始化目標(biāo)生成的單純色調(diào)直方圖圖像,圖1(b)是經(jīng)過(guò)論文中方法改進(jìn)的Camshift算法得到的初始化目標(biāo)的梯度和色調(diào)混合直方圖圖像。可以明顯看到圖1(b)所得到的信息要比圖1(a)豐富,也就說(shuō)明了改進(jìn)方法進(jìn)行跟蹤依據(jù)的要素要比為改進(jìn)前多,從而提高了算法穩(wěn)定性。
圖1(a)傳統(tǒng)Camshift算法得到的初始目標(biāo)色調(diào)直方圖X:直方圖bins;Y:相應(yīng)bins出現(xiàn)頻率
圖1(b) 改進(jìn)Camshift算法得到的初始目標(biāo)的梯度和色調(diào)混合直方圖X:直方圖bins;Y:相應(yīng)bins出現(xiàn)頻率
傳統(tǒng)算法在實(shí)際的跟蹤效果圖2所示。可以明顯看到,在手掌接近面部的時(shí)候,跟蹤框擴(kuò)大,這是因?yàn)槭终祁伾c面部顏色相近,影響了算法的穩(wěn)定跟蹤。動(dòng)態(tài)融合梯度信息的Camshift算法實(shí)際跟蹤效果如圖3。圖3中算法在相近顏色物體干擾情況下對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行跟蹤測(cè)試。對(duì)于相近色物體的干擾,因?yàn)橐肓四繕?biāo)的梯度信息,算法增強(qiáng)了跟蹤過(guò)程的穩(wěn)定性,跟蹤框沒(méi)有發(fā)生跳變和將手掌歸入實(shí)際目標(biāo)的情況。
5 總結(jié)
本文重點(diǎn)研究了針對(duì)Camshfit算法不足所采取的幾種改進(jìn)方案,主要有以下幾點(diǎn):論文中采用的是根據(jù)巴氏距離動(dòng)態(tài)地將梯度信息和色調(diào)信息融合的方法,使得Camshift算法不再單單依賴顏色信息。為了彌補(bǔ)加入梯度信息的跟蹤以后對(duì)原始算法時(shí)效性的影響,重新定義算法中每一幀必須使用的RGB空間向HSV空間轉(zhuǎn)換過(guò)程,保持色調(diào)特征基礎(chǔ)上優(yōu)化了得到色調(diào)信息的計(jì)算步驟。使得再加入梯度信息之后算法依然具有較好的實(shí)時(shí)性??紤]到手工選定矩形跟蹤框時(shí),會(huì)引入背景成為跟蹤的噪聲,論文中從一般情況出發(fā),弱化初始跟蹤框邊緣部分像素值在整個(gè)圖像中的比重,得到了很好的效果。
[參考文獻(xiàn)]
[1]Yi-bo Li,Xiao-ling Shen,Shan-shan Bei.Real-time Tracking Method for Moving Target Based on an Improved Camshift Algorithm[D].Shenyang Aerospace University,Shenyang,110000.2011.
[2]張學(xué)賀,張學(xué)東,丁寧.遼寧鞍山:基于OpenCV的運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤[J].遼寧科技大學(xué),114051.2010.
[3]趙文倩,匡遜君,李明富.基于改進(jìn)的Camshift運(yùn)動(dòng)目標(biāo)跟蹤算法的研究[J].湘潭:湘潭大學(xué).411100 2012.
[4]鞏艷華,朱愛(ài)紅,代凌云.基于顏色直方圖的顏色特征提取[J]. 1. 山東煙臺(tái):海軍航空工程學(xué)院.山東日照:曲阜師范大學(xué)日照校區(qū)信息技術(shù)傳播學(xué)院.
[5]Mohd Asyraf Zulkifley,Mohd Marzuki Mustafa and Aini Hussain.Improving CAMSHIFT Performance Through Colour Constancy Approach[D].Universiti Kebangsaan Malaysia, Malaysia 43600.2012.
[6]Gang XU,Dong ZHAO,Qi ZHOU,Ding HUANG.Moving Target Tracking based on Adaptive Background Subtraction and Improved Camshift Algorithm[D].North China Electric PowerUniversity,Beijing,100000.2010.
[7]林建華,劉黨輝.邵顯奎.多特征融合的Camshift算法及其進(jìn)一步改進(jìn)[J].北京:裝備學(xué)院101416.2012.
[8]張?zhí)穑钤露?一種基于改進(jìn)卡爾曼濾波的camshift目標(biāo)跟蹤算法[J]. 太原:山西大學(xué).2012.
[9]王忠義,孫曉靜,周宏.一種基于Camshift的快速目標(biāo)識(shí)別算法[J].鄭州:河南中醫(yī)學(xué)院,450000.2012.
[10]P.Hidayatullah,H.Konik.Camshift Improvement On Multi-hue Object And Multi-Object Tracking[D].Bandung State Polytechnic,Bandung, Indonesia.Université Jean Monnet, 42000 Saint-Etienne,F(xiàn)rance.2012.
[11]陳禹,梁寶生.基于改進(jìn)的CAMSHIFT算法的視頻目標(biāo)跟蹤系統(tǒng)的研究與設(shè)計(jì)[D] .山西太原:太原理工大學(xué). 030024 2012.
[10]多特征融合的Camshift算法及其進(jìn)一步改進(jìn)[J].裝備學(xué)院航天裝備系.北京.
[11]王展青,凡友福,張桂林.跟蹤遮擋目標(biāo)的一種魯棒算法[J].武漢:華中科技大學(xué)圖像信息處理與智能控制教育部重點(diǎn)實(shí)驗(yàn)室.武漢:武漢理工大學(xué)理學(xué)院,2007.
[12]Robert Laganiere,著,張靜,譯.OpenCV2計(jì)算機(jī)視覺(jué)編程手冊(cè)[M].科學(xué)出版社.2013.
[13]曹宇,趙杰,閆繼宏.基于自定義顏色空間的快速圖像分割算法[J]. 哈爾濱:哈爾濱工業(yè)大學(xué)機(jī)器人研究所,2009.