何華麗,唐普英,唐湘成,楊建熙,曾 軍,黃自力,李 晶
(1.電子科技大學(xué),四川 成都611731;2.西南技術(shù)物理研究所,四川 成都610041)
責(zé)任編輯:任健男
運(yùn)動(dòng)目標(biāo)跟蹤一直是視頻處理領(lǐng)域的熱點(diǎn)和難點(diǎn)之一,近年來發(fā)展很快,很多研究者都在不同的跟蹤算法上取得了不錯(cuò)的研究成果。其中,比較熱門的跟蹤算法有相關(guān)跟蹤、Mean Shift、Sift、光流法、粒子濾波等[1-4]。在智能化高速發(fā)展的今天,跟蹤技術(shù)已經(jīng)被廣泛應(yīng)用到了軍事、視頻監(jiān)控等領(lǐng)域。解決目前跟蹤技術(shù)的缺陷,追求更精準(zhǔn)、更可靠的跟蹤技術(shù)將會(huì)是研究人員的長期課題。
模板相關(guān)匹配又稱模板匹配,一直以算法簡單、易于實(shí)現(xiàn)等優(yōu)點(diǎn)受到很多研究人員的青睞,模板匹配算法對(duì)于圖像色度不敏感,在目標(biāo)圖像不出現(xiàn)大的形狀和尺度變化的時(shí)候,可以進(jìn)行良好的跟蹤。而模板匹配算法最主要的缺點(diǎn)就是計(jì)算量大、對(duì)于遮擋和旋轉(zhuǎn)敏感[5],簡單的模板匹配在跟蹤的準(zhǔn)確度上往往會(huì)隨著時(shí)間降低,且模板匹配結(jié)果總是存在匹配模糊或多位置匹配、錯(cuò)誤匹配等偶然誤差,在這樣的情況下,總是信任某個(gè)模板的匹配結(jié)果將會(huì)導(dǎo)致錯(cuò)誤的跟蹤結(jié)果,有很多學(xué)者提出了模板匹配跟蹤的改進(jìn)方法[6-9],有些學(xué)者提出了多級(jí)模板匹配,以增加匹配結(jié)果的可信度。但由于實(shí)時(shí)性的要求,模板的級(jí)數(shù)和運(yùn)算時(shí)間支出之間很難找到平衡。
本文提出了一種DSP和FPGA分工合作的系統(tǒng)方法。建立通信,由FPGA來代替DSP完成耗時(shí)計(jì)算部分。多級(jí)不同尺寸的模板和旋轉(zhuǎn)模板的加入,使系統(tǒng)在目標(biāo)發(fā)生旋轉(zhuǎn)和膨脹時(shí)也能進(jìn)行準(zhǔn)確的跟蹤。本文算法的特點(diǎn)就是,為了對(duì)抗目標(biāo)尺寸變化和旋轉(zhuǎn),生成了各級(jí)旋轉(zhuǎn)匹配模板,并在多級(jí)模板融合時(shí)做了合理處理,以求得跟蹤結(jié)果的準(zhǔn)確性,同時(shí)又保證了跟蹤系統(tǒng)的實(shí)時(shí)性。
模板匹配的基本做法是把模板圖像T和搜索區(qū)域S內(nèi)的每一個(gè)T規(guī)模大小的圖像作相似性比較,相似性最大的位置視為T在S內(nèi)的正確匹配點(diǎn)。基本流程如下:
1)創(chuàng)建或直接獲取模板圖像,其中,模板圖像包含興趣對(duì)象,即待跟蹤的目標(biāo);
2)設(shè)定一個(gè)相似性比較的方法和準(zhǔn)則;
3)以T為大小的范圍框在S內(nèi)逐點(diǎn)移動(dòng),求取在每個(gè)坐標(biāo)點(diǎn)處與模板的相似度結(jié)果;
4)從所有坐標(biāo)點(diǎn)的結(jié)果中選出相似度最大的點(diǎn)作為目標(biāo)匹配點(diǎn)。
假設(shè),模板圖像是一個(gè)W×H的矩形區(qū)域圖像,搜索區(qū)域S是一個(gè)M×N的矩形。相似度以圖像的絕對(duì)灰度值和(SAD)為度量標(biāo)準(zhǔn)。從S的第一個(gè)像素點(diǎn)開始,獲取一個(gè)T大小的比較圖像T',計(jì)算T'和T的絕對(duì)差值和,逐點(diǎn)移動(dòng)比較圖像的位置,一共有可以獲取比較圖像的(M-W+1)×(N-H+1)個(gè)位置,計(jì)算每個(gè)點(diǎn)處的T’和T的絕對(duì)差值和。最終得到一個(gè)(M-W+1)×(N-H+1)大小的匹配結(jié)果。如圖1所示,分別是6×4的模板在10×8的搜索區(qū)域內(nèi)逐點(diǎn)移動(dòng),從坐標(biāo)點(diǎn)(0,0)到(2,2)、最后到(4,4)的模板匹配過程示例圖,最終可以得到5×5的相關(guān)數(shù)據(jù)數(shù)組。

圖1 模板匹配示例圖
其中,在搜索過程中,模板匹配需要一個(gè)相似度的度量。本算法中采用的是歸一化去均值互相關(guān)系數(shù)NCC(Normalized mutual Correlation Coefficient),傳統(tǒng)的相關(guān)系數(shù)Cur計(jì)算如下

相關(guān)系數(shù)能夠很好地表征模板和搜索區(qū)域內(nèi)某點(diǎn)的相似度,但是對(duì)于光線亮度變化卻很敏感。一旦圖像的亮度發(fā)生變化,Cur的值會(huì)整體偏離實(shí)際相似度。為了克服這個(gè)缺點(diǎn),本算法中采用了去均值處理,計(jì)算方法如式(2)所示

在傳統(tǒng)的模板匹配算法中,在搜索區(qū)域內(nèi)完成一次完整的匹配得到一個(gè)匹配結(jié)果信息相關(guān)的三維相關(guān)曲面。理想的匹配結(jié)果中,相關(guān)曲面的峰值出現(xiàn)在理論上的最優(yōu)匹配坐標(biāo)處,峰值有且只有一個(gè)。實(shí)際應(yīng)用中的匹配結(jié)果,相關(guān)曲面不總是理想的單峰,相關(guān)曲面的狀態(tài)可以大致劃分為平坦、單峰、多峰、邊緣峰四種情況。針對(duì)相關(guān)曲面的多種狀態(tài),引入多級(jí)模板,以降低單模板匹配結(jié)果的偶然誤差。圖2是一個(gè)三級(jí)模板匹配實(shí)驗(yàn)中的三級(jí)模板圖像。根據(jù)實(shí)驗(yàn)驗(yàn)證,在本算法中,三級(jí)模板已經(jīng)能夠得到良好的跟蹤結(jié)果。
模板匹配算法的具體步驟是:取模板Template,得到搜索區(qū)域SearchWindow,逐點(diǎn)計(jì)算出模板在搜索區(qū)域內(nèi)各個(gè)坐標(biāo)位置的相似度,得到相關(guān)曲面,找出最優(yōu)匹配點(diǎn)坐標(biāo)。在多模板匹配算法中,在得到每級(jí)模板的相關(guān)曲面結(jié)果以后,加入了相關(guān)曲面融合的步驟。

圖2 三級(jí)模板示例圖
每個(gè)W×H的模板在M×N的區(qū)域內(nèi)進(jìn)行相關(guān)匹配后都會(huì)得到一個(gè)(M-W+1)×(N-H+1)的相關(guān)曲面。對(duì)相關(guān)曲面進(jìn)行處理,得到各曲面狀態(tài)以及尖銳度情況,根據(jù)曲面狀態(tài)判定可信度,根據(jù)尖銳度計(jì)算各級(jí)曲面在融合過程的權(quán)值,再由各級(jí)曲面加權(quán)融合得到置信曲面,最終由置信曲面得到最優(yōu)匹配點(diǎn)。
多級(jí)模板匹配算法中,各級(jí)模板各不相同,具體所需級(jí)數(shù)以及每一級(jí)模板大小的選取都根據(jù)視頻圖像的大小和目標(biāo)的預(yù)測和訓(xùn)練尺寸所得。除了直觀的模板外,本算法中,為了適應(yīng)跟蹤過程中目標(biāo)發(fā)生旋轉(zhuǎn)的情況,在待匹配的模板庫里增加了旋轉(zhuǎn)后的模板。
在進(jìn)行每一幀的模板匹配時(shí),旋轉(zhuǎn)前的模板和旋轉(zhuǎn)后的模板都要和當(dāng)前目標(biāo)進(jìn)行匹配。由于幀與幀之間物體運(yùn)動(dòng)的有限性,在目標(biāo)緩慢旋轉(zhuǎn)的情況下,幀間旋轉(zhuǎn)±3°可以有效地跟蹤[10],本算法為了克服快速旋轉(zhuǎn),幀間角度差確定為10°。其中,旋轉(zhuǎn)模板同原始模板得到旋轉(zhuǎn)模板的基本方法如下

式中:old_x和old_y是原始模板中像素點(diǎn)的位置坐標(biāo),center_x和center_y是旋轉(zhuǎn)后模板圖像的中點(diǎn),(i,j)是旋轉(zhuǎn)后模板數(shù)據(jù)數(shù)組的位置。圖3是一組原始模板和順時(shí)針、逆時(shí)針各旋轉(zhuǎn)30°后的模板示例圖。

圖3 模板旋轉(zhuǎn)前后對(duì)比圖
每一場圖像的目標(biāo)匹配過程中,需要由FPGA完成一共9次完整的相關(guān)曲面計(jì)算。在進(jìn)行相關(guān)曲面融合之前,必須要作兩次判斷和選擇:
1)判斷目標(biāo)是否旋轉(zhuǎn),確定將進(jìn)行融合的多級(jí)模板來源;
2)判斷多級(jí)模板的相關(guān)曲面置信度,判斷每級(jí)曲面是否加入融合,計(jì)算加入融合的曲面權(quán)值,根據(jù)選擇和權(quán)值進(jìn)行曲面融合,得到置信曲面。
模板的更新是為了讓模板信息更接近目標(biāo)當(dāng)前的信息,越接近真實(shí)目標(biāo)的模板越能得到正確的匹配結(jié)果。圖4是各級(jí)相關(guān)曲面的旋轉(zhuǎn)更新流程圖,假設(shè)三級(jí)原始模板為T_1,T_2和T_3,由T_1順時(shí)針旋轉(zhuǎn)5°后得到的模板為T_1_CW,由T_1逆時(shí)針旋轉(zhuǎn)5°后得到的模板為T_1_CCW;由T_2順時(shí)針旋轉(zhuǎn)5°后得到的模板為T_2_CW,由T_2逆時(shí)針旋轉(zhuǎn)5°后得到的模板為T_2_CCW;由T_3th順時(shí)針旋轉(zhuǎn)5°后得到的模板為T_3_CW,由T_3逆時(shí)針旋轉(zhuǎn)5°后得到的模板為T_3_CCW。

圖4 旋轉(zhuǎn)模板更新流程圖
在跟蹤過程中,隨著目標(biāo)自身的變化和攝像頭的位置、角度等變化,實(shí)際應(yīng)用中的跟蹤目標(biāo)不可能一直保持為最初獲取的模板。如果用一成不變的模板進(jìn)行跟蹤,匹配度會(huì)不斷下降,最后造成目標(biāo)的丟失或誤匹配。所以,很多學(xué)者提出了模板實(shí)時(shí)更新。其中,在本算法中,模板的實(shí)時(shí)更新主要分為兩方面:
1)在判斷目標(biāo)是否旋轉(zhuǎn)的結(jié)果中,如果目標(biāo)旋轉(zhuǎn)了,將各級(jí)模板更新成為旋轉(zhuǎn)后的模板,作為之后搜索目標(biāo)的源模板。
2)在目標(biāo)的每場跟蹤過程中,如果本場跟蹤有效,以一定的系數(shù)將當(dāng)前目標(biāo)信息疊加到模板信息中,以此獲得繼承了原始模板信息、又不斷靠近當(dāng)前目標(biāo)真實(shí)信息的模板。圖5是更新模板的基本流程。

圖5 模板的實(shí)時(shí)更新流程圖
由于DSP的優(yōu)勢在算法的實(shí)現(xiàn)和流程的控制上,而FPGA的優(yōu)勢在并行運(yùn)算上,于是本算法中建立了雙方的通信,耗時(shí)的計(jì)算部分由FPGA來計(jì)算和完成,其他的由DSP完成。圖6是DSP和FPGA的通信連接示意圖。
在模板匹配算法中,最耗時(shí)的計(jì)算部分是SAD的計(jì)算。在三級(jí)抗旋轉(zhuǎn)跟蹤算法中,每一次搜索都需要進(jìn)行共9個(gè)模板的SAD計(jì)算,其中包括三級(jí)原始模板以及6個(gè)由三級(jí)原始模板衍生出的順時(shí)針、逆時(shí)針旋轉(zhuǎn)后的模板。要在20 ms內(nèi)完成這么多的運(yùn)算,對(duì)DSP來說是個(gè)難題。于是,考慮建立起DSP和FPGA之間的通信,考慮到是圖像信息,設(shè)立了PPI為通信通道。

圖6 DSP和FPGA的通信圖
并行外部接口PPI是半雙工形式,最大可進(jìn)行16位數(shù)據(jù)的傳輸。它有1個(gè)時(shí)鐘引腳、3個(gè)幀同步以及4個(gè)專用數(shù)據(jù)引腳。DSP通過PPI的幾個(gè)寄存器來設(shè)置其工作方式。在DSP和FPGA的通信系統(tǒng)中,時(shí)鐘和幀同步由FPGA給出,直接連接到引腳信號(hào)。模板和待匹配圖像由DSP自PPI0口傳輸給FPGA,F(xiàn)PGA進(jìn)行匹配運(yùn)算后所得的相關(guān)曲面結(jié)果由PPI1口送回DSP。
DSP接收?qǐng)D像和曲面信息時(shí),受時(shí)鐘和同步信號(hào)的控制,這些信號(hào)和圖像數(shù)據(jù)均由FPGA給出,實(shí)驗(yàn)中,DSP采用了兩個(gè)外部幀同步的PPI通用模式。圖7是時(shí)序示意圖,其中,DSP_PPI1SYN[2]是場同步信號(hào)VS,DSP_PPI1SYN[1]是行同步信號(hào)HS,DSP_PPI1CLK是時(shí)鐘信號(hào),DSP_PPI1數(shù)據(jù)信號(hào)。

圖7 SignalTap時(shí)序圖(截圖)
首先,DSP和FPGA的通信跟蹤系統(tǒng)是為了解決運(yùn)算量大、耗時(shí)長的問題。FPGA在計(jì)算SAD上比起DSP具有明顯的優(yōu)勢,表1是兩者的計(jì)算時(shí)間對(duì)比圖。

表1 FPGA和DSP計(jì)算SAD值的時(shí)間對(duì)比
由于抗旋轉(zhuǎn)模板的加入,在目標(biāo)旋轉(zhuǎn)以及穩(wěn)定膨脹的情況下,系統(tǒng)仍然能夠進(jìn)行良好的跟蹤,圖8是單獨(dú)在DSP上完成的兩級(jí)模板匹配,圖9是DSP和FPGA平臺(tái)上加入旋轉(zhuǎn)模板后的三級(jí)模板跟蹤效果演示圖。

圖8 二級(jí)模板跟蹤效果演示圖

圖9 抗旋轉(zhuǎn)三級(jí)模板跟蹤效果演示圖
本文采用了DSP和FPGA的通信聯(lián)調(diào)跟蹤系統(tǒng)來完成多級(jí)抗旋轉(zhuǎn)模板匹配的跟蹤算法,有效地提高了運(yùn)動(dòng)目標(biāo)在發(fā)生旋轉(zhuǎn)時(shí)的跟蹤準(zhǔn)確度,效果良好并穩(wěn)定。同時(shí),系統(tǒng)利用了DSP和FPGA各自的優(yōu)勢,解決了DSP運(yùn)算量大耗時(shí)長的問題,在保證準(zhǔn)確性的同時(shí)滿足了實(shí)際應(yīng)用中的實(shí)時(shí)性要求。經(jīng)大量實(shí)驗(yàn)測試,該系統(tǒng)可以進(jìn)行良好的目標(biāo)跟蹤,并對(duì)于目標(biāo)的尺寸和角度變化具有良好的適應(yīng)能力。
[1]LATECKI L J,MIEZIANKO R.Object tracking with dynamic template update and occlusion detection[C]//Proc.IEEE 18th International Conference on Pattern Recognition.Hong Kong,China:IEEE Press,2006:188-193.
[2]AZGHANI M,AGHAGOLZADEH A,GHAEMI S,et al.Intelligent modified mean shift tracking using genetic algorithm[C]//Proc.2010 5th International Symposium on Telecommunications(IST).[S.l.]:IEEE Press,2010:806-811.
[3]CAO Yueyun,XU Jianghu,LI Ke.Object tracking integrating template matching and mean shift algorithm[C]//Proc.2011 International Conference on Multimedia Technology(ICMT).Hangzhou:IEEE Press,2011:3583-3586.
[4]HU W C.Adaptive template block-based block matching for object tracking[J].Intelligent Systems Design and Applications,2008(26):61-63.
[5]張彥梅,宋揚(yáng).模板匹配方法在高速目標(biāo)跟蹤中的應(yīng)用[J].北京理工大學(xué)學(xué)報(bào),2006,26(11):1026-1029.
[6]陳明潔.智能視頻監(jiān)控系統(tǒng)目標(biāo)檢測和跟蹤技術(shù)分析[J].電視技術(shù),2008,32(10):85-91.
[7]王成儒,李翠君.基于視頻流的運(yùn)動(dòng)人體檢測和跟蹤的研究實(shí)現(xiàn)[J].電視技術(shù),2012,36(15):124-127.
[8]王徐華,樊曉光,徐顯亮.基于TMS320DM642的視頻圖像處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2009,33(10):28-31.
[9]賈慧星,章毓晉.智能視頻監(jiān)控中基于機(jī)器學(xué)習(xí)的自動(dòng)人數(shù)統(tǒng)計(jì)[J].電視技術(shù),2009,33(4):78-81.
[10]曾晶,黃自力,王雪梅,等.基于相關(guān)匹配算法的目標(biāo)角度和尺度檢測研究[J].激光與紅外,2010,40(3):319-324.