張賀云 吳黎明 肖湘 陳泰偉
(廣東工業(yè)大學(xué)信息工程學(xué)院)
視頻作為一種實(shí)時(shí)傳輸?shù)膱D像信息,它的采集和處理在現(xiàn)代多媒體技術(shù)中占有重要地位。數(shù)碼相機(jī)、可視電話、多媒體 IP電話和電視會(huì)議等產(chǎn)品的核心技術(shù)就是視頻的采集及處理。視頻采集及處理[1]的速度、質(zhì)量直接影響到產(chǎn)品的整體效果。視頻目標(biāo)實(shí)時(shí)跟蹤是指運(yùn)用圖像處理技術(shù)對(duì)視頻信號(hào)進(jìn)行相應(yīng)處理,從而對(duì)目標(biāo)進(jìn)行自動(dòng)檢測(cè)、定位和跟蹤等,等價(jià)于在連續(xù)的圖像幀之間創(chuàng)建基于位置、速度、形狀、紋理、色彩等有關(guān)特征的對(duì)應(yīng)匹配問(wèn)題。近年來(lái),城市消防安全遠(yuǎn)程監(jiān)控系統(tǒng)、視頻會(huì)議、消防通信指揮中心建設(shè)等視頻系統(tǒng)的普遍應(yīng)用,特別是在高精度位置跟蹤系統(tǒng)中,視頻跟蹤系統(tǒng)具有非常重要的作用。由于視頻跟蹤系統(tǒng)是從視頻信號(hào)提取目標(biāo)信息,并且給出目標(biāo)的相對(duì)位置,并對(duì)其進(jìn)行跟蹤。隨著視頻跟蹤技術(shù)的發(fā)展,其應(yīng)用越來(lái)越廣泛,如軍事、航空、防盜、視頻會(huì)議等場(chǎng)合,特別是重要場(chǎng)合的安檢系統(tǒng)成為新的應(yīng)用領(lǐng)域。隨著人們對(duì)系統(tǒng)集成度要求的不斷提高,F(xiàn)PGA性能和集成度不斷完善,用FPGA來(lái)處理數(shù)字信號(hào)可以很好的解決數(shù)據(jù)量大、處理速度不匹配、可靠性低及精度小等問(wèn)題,并能很好協(xié)調(diào)并行性與順序性的矛盾。本文利用System Generator工具建模,實(shí)現(xiàn)圖像處理[2]、圖像識(shí)別/跟蹤功能[3,4],并自動(dòng)編譯[5]生成 VHDL/Verilog代碼;它也可以通過(guò)底層提取,對(duì)FPGA的底層資源進(jìn)行訪問(wèn),從而實(shí)現(xiàn)高效率FPGA設(shè)計(jì)。
智能視頻跟蹤是指在不需要人為干預(yù)的情況下,利用計(jì)算機(jī)視覺(jué)和視頻分析的方法對(duì)攝像機(jī)拍錄的圖像序列進(jìn)行自動(dòng)分析,實(shí)現(xiàn)對(duì)動(dòng)態(tài)場(chǎng)景中目標(biāo)的定位、識(shí)別和跟蹤,并在此基礎(chǔ)上分析和判斷目標(biāo)的行為,從而既能完成日常管理又能在異常情況發(fā)生時(shí)做出反應(yīng)。智能視頻跟蹤系統(tǒng)的流程如圖1所示,從監(jiān)控?cái)z像頭開(kāi)始,視頻跟蹤技術(shù)包括視頻解碼、圖像緩存、圖像預(yù)處理、識(shí)別/跟蹤算法、視頻編碼、圖像處理數(shù)據(jù)保存模塊、視頻輸出顯示。
圖1 系統(tǒng)組成框圖
圖像目標(biāo)跟蹤是指對(duì)圖像序列中的活動(dòng)目標(biāo)進(jìn)行檢測(cè)、提取、識(shí)別和跟蹤,獲得活動(dòng)目標(biāo)的運(yùn)動(dòng)參數(shù)、運(yùn)動(dòng)軌跡,從而進(jìn)一步處理與分析,實(shí)現(xiàn)對(duì)活動(dòng)目標(biāo)的行為理解,以完成更高一級(jí)的任務(wù)。目前常用的目標(biāo)跟蹤方法有幀間差分法、光流法、人工神經(jīng)網(wǎng)絡(luò)法、粒子濾波法、飄逸跟蹤法、基于頻率域的方法等。本文使用的方法是固定模板的模板匹配算法[6]。模板就是一幅已知的小圖像,本文采用的是 13×13點(diǎn)的固定模板。模板匹配就是在一幅大圖像中搜尋目標(biāo),已知該圖中有要找的目標(biāo),且該目標(biāo)同模板有相同的尺寸、方向和圖像,通過(guò)一定的算法可以在圖中找到目標(biāo),確定其坐標(biāo)位置,給予標(biāo)記,達(dá)到跟蹤的目的。
假設(shè)要在搜索區(qū)域中尋找與模板圖像相關(guān)程度最大的位置,可以通過(guò)模板匹配來(lái)計(jì)算兩者的相關(guān)程度。圖2是模板匹配算法的示意圖。假設(shè)模板(b)疊放在搜索圖(a)上平移,模板覆蓋下的部分記作子圖Si,j,其中i,j是這塊子圖的左上角像點(diǎn)在S圖中的坐標(biāo)。從圖2 中可得出i、j的取值范圍:1≤i≤K-M+1;1≤j≤L-N+1。
衡量模板T和子圖Si,j的匹配程度,可以利用下面公式:
展開(kāi)式子有:
式(2)右邊的第三項(xiàng)表示模板的總能量,是一個(gè)常數(shù),與i,j無(wú)關(guān)。第一項(xiàng)是模板覆蓋下那塊子圖像的能量,它隨i,j位置變化而緩慢改變。第二項(xiàng)是子圖像和模板的互相關(guān)函數(shù),隨i,j變化而迅速改變。模板T和子圖Si,j匹配時(shí)這一項(xiàng)的值最大,因此可用下列相關(guān)函數(shù)來(lái)反映匹配程度:
或者歸一化為:
計(jì)算得到的最小R(i,j)的位置是目標(biāo)位置。
通常,用攝像儀和掃描儀所獲得的顏色,以及計(jì)算機(jī)顯示所用的顏色都是RGB色空間。但在RGB色空間中,顏色的屬性沒(méi)有獨(dú)立,在進(jìn)行圖像處理時(shí),會(huì)造成各個(gè)屬性間的串?dāng)_;在傳輸和處理過(guò)程中,會(huì)占用大量的帶寬和存儲(chǔ)量,給圖像處理帶來(lái)很大的麻煩。YCbCr[8]是世界數(shù)字組織視頻標(biāo)準(zhǔn)研制過(guò)程中作為ITU-R BT.601建議的一部分,它被用于電視信號(hào)的傳送。與RGB色空間相比,YCbCr用亮度和兩個(gè)色差信號(hào)來(lái)表示顏色,其中 Y代表亮度信息,使用8b的16~235級(jí)電平;色差信息Cb和Cr使用其中的16~240級(jí)電平。因?yàn)槿搜蹖?duì)亮度的變化比對(duì)色度的變化更敏感,所以減少帶寬引起的顏色損失很小,人眼幾乎無(wú)法察覺(jué)。因此,不必用與Y一樣的速率來(lái)傳輸Cb和Cr信息,從而減少了存儲(chǔ)量和帶寬。
YCbCr與RGB轉(zhuǎn)換的公式(RGB取值范圍均為0~255):
Y、Cb、Cr信號(hào)值的范圍是16~235,0~15之間的值叫作 footroom,236~255之間的值叫作headroom。
使用From Multimedial File模塊讀取視頻數(shù)據(jù)的模型如圖3所示。
圖3 視頻數(shù)據(jù)讀取模型
模型將 AVI視頻文件的數(shù)據(jù)輸出到 Workspace的變量中,以供后面所講的圖像處理應(yīng)用,其中Color Space Conversion模塊將RGB顏色空間的圖像轉(zhuǎn)換成YCbCr空間的圖像。Video To Workspace模塊的功能是將接收到的數(shù)據(jù)存儲(chǔ)為Workspace的變量。通過(guò)上述模型,在Workspace中,生成了由設(shè)計(jì)者自己命名的SourceVideo3D變量,其數(shù)據(jù)格式為一個(gè)三維數(shù)組,第一維表示視頻的高度,第二維表示視頻的寬度,第三維表示視頻的幀數(shù)。
用System Generator系統(tǒng)來(lái)搭建實(shí)時(shí)的目標(biāo)跟蹤算法。算法是前面所講的固定模板的模板匹配算法。
模型分為三部分,一部分是計(jì)數(shù)器部分,用兩個(gè)計(jì)數(shù)器分別負(fù)責(zé)一幀圖像的行像素計(jì)數(shù)和列像素計(jì)數(shù),Single Port RAM模塊負(fù)責(zé)存儲(chǔ)完整的一幀圖像,這里的視頻大小為160×120,存儲(chǔ)一幀圖像需要19片BlockRAM;另外兩部分為中央處理部分和疊加跟蹤框部分,其中中央處理部分由TraceProcessor模塊負(fù)責(zé),疊加跟蹤框部分由On Screen Display模塊負(fù)責(zé)實(shí)現(xiàn)。
由TraceProcessor模塊得到處理的匹配點(diǎn)坐標(biāo),該模塊的處理延時(shí)為42個(gè)時(shí)鐘周期,即一幀圖像結(jié)束后的第42個(gè)時(shí)鐘周期即可得到匹配點(diǎn)坐標(biāo)。輸出的視頻數(shù)據(jù)流只經(jīng)過(guò)On Screen Display模塊的跟蹤框疊加操作,On Screen Display模塊延時(shí)4個(gè)時(shí)鐘周期,所以模塊的視頻輸出幾乎接近零延時(shí),體現(xiàn)系統(tǒng)的實(shí)時(shí)性。On Screen Display模塊根據(jù)給出的匹配點(diǎn)坐標(biāo)在視頻數(shù)據(jù)流上疊加一個(gè)白色的跟蹤框,以顯示追蹤目標(biāo),該模塊利用多個(gè)判斷語(yǔ)句,判斷當(dāng)前像素點(diǎn)是否在需要繪制的跟蹤框上,如果是則直接將像素替換為白色,否則讓視頻數(shù)據(jù)原封不動(dòng)的通過(guò),搭建時(shí)只需要注意邏輯與延時(shí)即可。視頻處理模塊如圖4所示。
圖4 視頻處理模塊
處理后視頻截圖如圖5所示,白色的跟蹤框指示了跟蹤的目標(biāo)位置。
實(shí)驗(yàn)結(jié)果驗(yàn)證了用固定模板的模板匹配算法來(lái)實(shí)現(xiàn)目標(biāo)跟蹤的可行性。視頻處理模塊雖然會(huì)對(duì)遮擋具有很強(qiáng)的魯棒性,但不適合應(yīng)對(duì)跟蹤目標(biāo)旋轉(zhuǎn)、縮放等變化情況,這些問(wèn)題的解決需要算法改進(jìn)。在FPGA系統(tǒng)中,可以利用System Generator模塊直接生成VHDL/Verilog代碼,構(gòu)建后續(xù)的應(yīng)用系統(tǒng),并且,這些代碼都可以在ISE集成軟件環(huán)境中進(jìn)行綜合、實(shí)現(xiàn)、生成比特流及下載到FPGA中運(yùn)行。特別是能夠在Simulink環(huán)境中進(jìn)行硬件仿真,這對(duì)于數(shù)字圖像處理的硬件實(shí)現(xiàn)非常重要,為FPGA在這方面的應(yīng)用提供了良好的工具。
[1] Xilinx Inc. System Generator for DSP Reference Guide.http://www.xilinx.com/support/documentation/index.htm, 2008.
[2] Wu Jincheng,Sun Jingrui,Liu Wenying. Design and implementation of video image edge detection system based on FPGA. 2010 3rd International Congress on Image and Signal Processing (CISP2010),2010:472-476.
[3] Hui Lin.The SOPC-Based Video Acquisition and Pre-Processing Technique. Guangzhou Guangdong University of Technology, 2010.
[4] Wang Qi,Wu Liming,Lin Hui,et al. Moving target detection based on reconfigurable video processing technology. 2010 International Symposium on Computational Intelligence and Design, 2010:87-90.
[5] Lin Hui,Wu Liming, Liu Junxiu, et al. Overshoot and undershoot control for signal generator. 2010 International Conference on Measuring Technology and Mechatronics Automation, 2010:864-867.
[6] Ma Liyong,Sun Yude,Feng Naizhang, et al. Image fast template matching algorithm based on projection and sequential similarity detecting. 2009 Fifth International Conference on Intelligent Information Hiding and Multimedia Signal Processing,2009:957-960.
[7] Yasri I.,Hamid N.H.,Yap, et al. An FPGA implementation of gradient based edge detection algorithm design. 2009 International Conference on Computer Technology and Development, 2009:165-169.
[8] 金曉冬,常青.基于FPGA的RGB到Y(jié)CbCr色空間轉(zhuǎn)換.現(xiàn)代電子技術(shù),2009,32(18)