李海彪, 黃 山
(四川大學(xué),a.電氣信息學(xué)院; b.計算機(jī)學(xué)院,成都 610065)
基于哈希算法的圖像處理技術(shù)是最近幾年研究的熱門話題。哈希算法具有魯棒性強(qiáng)、實(shí)時性好、原理通俗易懂、運(yùn)算量少、適用于大多數(shù)場景等優(yōu)勢,逐漸在內(nèi)容搜索、圖片搜索、數(shù)字水印、模式識別等領(lǐng)域被廣泛應(yīng)用[1-2]。壓縮感知哈希算法是哈希算法中最經(jīng)典、最實(shí)用的算法之一。由于壓縮感知哈希算法生成的哈希序列具有唯一性、安全性、快速性、魯棒性等優(yōu)勢,從而被廣泛應(yīng)用于圖片搜索領(lǐng)域。最近,一部分學(xué)者鑒于感知哈希算法的優(yōu)勢,提出將此算法運(yùn)用于目標(biāo)跟蹤領(lǐng)域。例如文獻(xiàn)[3]提出了基于均值圖像塊的感知哈希算法來克服跟蹤過程中的光照變化、遮擋問題,但是由于沒有模板更新策略,跟蹤時間稍長就會發(fā)生目標(biāo)漂移和跟蹤失敗的現(xiàn)象;文獻(xiàn)[4]提出基于前景學(xué)習(xí)的感知哈希目標(biāo)跟蹤算法,能夠一定程度上解決跟蹤目標(biāo)漂移后的目標(biāo)重定位問題,但是在光照發(fā)生變化、背景與目標(biāo)顏色相近時,就會跟蹤失誤;文獻(xiàn)[5]提出了基于改進(jìn)Adaboost特征檢測的感知哈希跟蹤算法,對于克服目標(biāo)跟蹤過程中出現(xiàn)的漂移問題、目標(biāo)丟失后重定位和恢復(fù)跟蹤等問題有效,但是對于目標(biāo)發(fā)生形變、遮擋等問題,實(shí)時跟蹤準(zhǔn)確性較差。針對跟蹤時間較長、目標(biāo)形變、光照變化、局部遮擋導(dǎo)致難以跟蹤的問題,本文提出了一種基于類間方差和離散余弦變換的模板匹配的增強(qiáng)哈希目標(biāo)跟蹤算法。利用類間方差閾值分割和離散余弦變化進(jìn)行特征提取,根據(jù)漢明距離的大小來決定是否更新目標(biāo)模板,運(yùn)用抽屜原理來縮短搜索匹配模板的時間,加快匹配速度,從而達(dá)到實(shí)時跟蹤目標(biāo)的目的。該算法與壓縮感知哈希目標(biāo)跟蹤算法相比,魯棒性更強(qiáng),提高了目標(biāo)跟蹤成功率。
基于DCT的壓縮感知哈希算法[6-10]是在哈希算法中加入了離散余弦變換函數(shù)。離散余弦變換(DCT)是一種圖像壓縮算法,它將圖像從像素域變換到頻率域。一般圖像都存在很多冗余和相關(guān)性,所以轉(zhuǎn)換到頻率域之后,系數(shù)的特點(diǎn)是:從左上角到右下角,從低頻到中頻,再到高頻,系數(shù)的絕對值逐漸變小,能量集中在低頻部分,如圖1所示。
圖1 DCT函數(shù)運(yùn)行結(jié)果圖Fig.1 Results of DCT function
基于DCT的壓縮感知哈希算法的工作過程如下:1) 將目標(biāo)附近的圖像進(jìn)行壓縮,濾掉高頻部分,得到圖像的大概輪廓,將圖像像素壓縮成32×32;2) 灰度化,進(jìn)一步簡化計算;3) 通過DCT變換壓縮,得到像素大小為32×32的DCT系數(shù)矩陣,只保留左上角8×8的矩陣;4) 比較灰度值,將每一個像素的灰度值與平均值進(jìn)行比較,小于均值記0,大于均值記1,得到哈希序列;5) 將得到的哈希碼與模板的哈希碼進(jìn)行與運(yùn)算,計算不同位的個數(shù),即漢明距離;6) 循環(huán)比較,得到最小的漢明距離,此時的窗口即為目標(biāo)所在位置。
本文在基于DCT的壓縮感知哈希算法的基礎(chǔ)上加入了類間方差閾值分割算法,利用使圖像中目標(biāo)物和背景分割錯誤最小的像素閾值自動將背景與目標(biāo)分割出來,增加目標(biāo)特征的權(quán)重,濾掉環(huán)境因素的影響,從而降低環(huán)境因素對算法目標(biāo)跟蹤的影響。其原理如下。
設(shè)原始灰度圖像灰度級為L,灰度級為i的像素點(diǎn)數(shù)為n,則圖像的全部像素數(shù)為N=n0+n1+…+nL-1,歸一化直方圖,則
(1)
按灰度級將閾值t劃分為兩類,即C0=(0,1,2,…,t)和C1=(t+1,t+2,…,L-1)。
(2)
(3)
(4)
(5)
定義類內(nèi)方差為
(6)
類間方差為
(7)
總體方差為
(8)
(9)
利用圖像均值來求哈希序列對目標(biāo)跟蹤有一定實(shí)際作用,但是當(dāng)目標(biāo)物受到不均勻的光照時,采用圖像均值的辦法來跟蹤會造成跟蹤精度下降,所以需要避免圖像均值帶來的不利影響。本文采用快速增強(qiáng)差異的方法:計算相鄰兩列像素的差值,設(shè)定一個閾值,若超過此值,將左邊像素設(shè)為0,反之設(shè)為1。按此方法將像素大小為16×16的圖像化簡為16×15的矩陣??紤]到圖像每一行的像素與整體像素的相關(guān)性,對于最后一列,采用行均值與整體均值的差值,若超過設(shè)定閾值,賦值為1,否則為0,得到了像素大小為16×16矩陣的哈希序列。
在第1幀時得到目標(biāo)的哈希序列(像素大小為16×16的矩陣)即為目標(biāo)模板,之后在目標(biāo)周圍進(jìn)行搜索,計算每個搜索框的哈希序列,與上一幀的模板哈希序列進(jìn)行比較,得到差異性最小的搜索框。在尋找目標(biāo)模板的最佳匹配模板時,需要循環(huán)比較目標(biāo)周圍各個搜索框內(nèi)的哈希序列,統(tǒng)計不同的位數(shù)。這個計算量比較復(fù)雜繁瑣,為了提高運(yùn)行效率,采用抽屜原理來提高比較漢明距離的效率。
在距離目標(biāo)模板的漢明距離為15的范圍內(nèi)進(jìn)行搜索,將像素大小為16×16矩陣的哈希序列平均分為16段子序列,根據(jù)抽屜原理可知,在漢明距離為15的范圍內(nèi)搜索,匹配的兩串哈希序列至少有一段子序列是完全相同的。若此搜索窗口內(nèi)圖像的哈希序列與目標(biāo)模板沒有任何一段子序列完全一致,則可視為此搜索窗口沒有匹配到跟蹤目標(biāo),繼續(xù)計算下一個搜索窗口的感知哈希序列;若至少有一段子序列完全一致,再對其他子序列計算漢明距離; 如此循環(huán)最終找到漢明距離最小的匹配目標(biāo)。這樣可以節(jié)省大量的循環(huán)比較時間,提高運(yùn)行效率。
通過循環(huán)比較,得到最佳匹配目標(biāo),預(yù)設(shè)a值和b值兩個閾值。漢明距離若是小于a值,則進(jìn)行目標(biāo)跟蹤,更新模板,下一幀采用類間方差進(jìn)行跟蹤;若是大于a值且小于b值,則進(jìn)行目標(biāo)跟蹤,更新模板,下一幀采用DCT提取低頻信息的方法進(jìn)行跟蹤;若是大于b值,不更新模板,直接進(jìn)入下一幀,首先采用類間方差進(jìn)行跟蹤。
本文提出了一種融合兩種不同算法來提取目標(biāo)特征信息,以設(shè)定的閾值來決定是否更新目標(biāo)模板的增強(qiáng)哈希目標(biāo)跟蹤算法。其中,類間方差閾值分割算法能夠增加目標(biāo)權(quán)重,降低背景環(huán)境的影響,有效地提高了目標(biāo)在復(fù)雜環(huán)境下的跟蹤成功率。DCT提取低頻信息算法具有一定的抗遮擋和抗光照的能力。本文利用兩種特征信息來跟蹤目標(biāo)。本文算法流程如圖2所示。
圖2 算法流程圖Fig.2 Flow chart of the algorithm
本實(shí)驗(yàn)在CPU為AMD A8- 4500M、內(nèi)存為4 GB的PC機(jī)上使用VS2013的開發(fā)平臺與OPENCV2.4.9以及C/C++語言進(jìn)行編程實(shí)現(xiàn)。以下3個實(shí)驗(yàn)均采用本文算法、基于DCT的壓縮感知哈希算法和傳統(tǒng)哈希算法進(jìn)行對比驗(yàn)證,以檢驗(yàn)算法的優(yōu)劣。實(shí)驗(yàn)的視頻均自O(shè)TB2013的視頻庫。
實(shí)驗(yàn)1 在灰度亮度變化較大的復(fù)雜環(huán)境下進(jìn)行目標(biāo)跟蹤。采用公開的David 視頻進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 David視頻實(shí)驗(yàn)結(jié)果Fig.3 Experimental results of David video
從實(shí)驗(yàn)結(jié)果可以直觀地看出:本文算法的跟蹤一直很穩(wěn)定,跟蹤準(zhǔn)確度很高;而基于DCT的壓縮感知哈希算法和傳統(tǒng)哈希算法在第380幀左右就跟蹤失敗,跟蹤過程受背景環(huán)境的影響很大,跟蹤準(zhǔn)確度較低。比較可知,本文算法在復(fù)雜環(huán)境有光照變化的情況下優(yōu)于其他兩種哈希算法。
實(shí)驗(yàn)2 在室內(nèi)目標(biāo)發(fā)生形變、有遮擋的情況下進(jìn)行目標(biāo)跟蹤。采用公開的Girl視頻進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 Girl視頻實(shí)驗(yàn)結(jié)果Fig.4 Experimental results of Girl video
從實(shí)驗(yàn)結(jié)果可以直觀地看出:傳統(tǒng)哈希算法在第100幀之前跟蹤效果較好,但在目標(biāo)發(fā)生形變之后,跟蹤效果就很差,不能自動修復(fù),跟蹤準(zhǔn)確性很低;基于DCT的壓縮感知哈希算法采用目標(biāo)的低頻信息,跟蹤過程很受目標(biāo)背景環(huán)境的影響,所以剛開始就出現(xiàn)跟蹤失敗,之后偶爾跟蹤上,但不能更新模板,跟蹤基本失?。槐疚乃惴ㄔ诟欉^程中,基本上受到環(huán)境和遮擋物的影響很小,跟蹤效果一直保持較好,由于自動更新模板,對目標(biāo)的形變、遮擋具有很好的適應(yīng)性。比較可知,本文算法在目標(biāo)發(fā)生形變、有遮擋的情況下優(yōu)于其他兩種哈希算法。
實(shí)驗(yàn)3 汽車在公路上行駛,在汽車的影像大小發(fā)生變化且有遮擋的情況下進(jìn)行目標(biāo)跟蹤。采用公開的CarScale視頻進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 CarScale視頻實(shí)驗(yàn)結(jié)果Fig.5 Experimental results of CarScale video
從實(shí)驗(yàn)截圖中可以看出:傳統(tǒng)哈希算法在目標(biāo)影像大小變化不大時基本能跟蹤上,隨著目標(biāo)影像逐漸變大,其跟蹤算法基本上失效;基于DCT的壓縮感知哈希算法受周圍環(huán)境影響很大,其跟蹤效果不好;而本文算法卻有很好的魯棒性,雖然跟蹤框內(nèi)有效信息的比例越來越小,仍能保持良好的跟蹤效果。比較可知,本文算法在室外運(yùn)動的場景中以及在目標(biāo)發(fā)生形變、有遮擋的情況下表現(xiàn)均優(yōu)于其他兩種哈希算法。
為了定性地評判跟蹤效果,采用了跟蹤成功率這個指標(biāo),其定義為中心位置誤差小于某一個閾值的幀數(shù)占視頻總幀數(shù)的百分比。本文設(shè)置的閾值為18像素長。
根據(jù)以上3組實(shí)驗(yàn),可以得出這3種跟蹤算法分別在David,Girl和CarScale視頻中的跟蹤成功率,如表1所示。
表1 跟蹤成功率
在運(yùn)行每一個視頻跟蹤程序時,都輸出了每幀匹配的時間,根據(jù)輸出的數(shù)據(jù)可以統(tǒng)計出每一種算法在每個視頻中的匹配時間,如表2所示。
表2 跟蹤平均匹配時間
由表1可以清楚地看到,本文算法比其他兩種哈希算法在跟蹤成功率方面有提高;由表2可知,本文算法的匹配速度一般,但是基本上能滿足視頻跟蹤要求。
本文提出了基于類間方差和離散余弦變換的模板匹配增強(qiáng)哈希目標(biāo)跟蹤算法,兩種算法提取了目標(biāo)的兩種特征,優(yōu)勢互補(bǔ),克服了其他哈希算法在復(fù)雜環(huán)境下目標(biāo)發(fā)生形變、有遮擋物、光照發(fā)生變化等跟蹤障礙,并在實(shí)驗(yàn)中取得了較好的效果。本文算法的綜合性能較好,魯棒性較強(qiáng),提高了基于DCT的壓縮感知哈希跟蹤算法的成功率。但本文算法的跟蹤框不能達(dá)到自適應(yīng),還有待改善。