王翠萍
山東英才學(xué)院 山東 濟(jì)南 250104
視頻監(jiān)控的智能化是目前安防發(fā)展的一個(gè)趨勢(shì),如運(yùn)動(dòng)目標(biāo)檢測(cè)、目標(biāo)識(shí)別。在這個(gè)過程中經(jīng)常需要對(duì)目標(biāo)進(jìn)行背景分離然后進(jìn)行特征提取并標(biāo)識(shí)。對(duì)于目標(biāo)的背景分離根據(jù)應(yīng)用的不同對(duì)應(yīng)采用的算法也不同,目標(biāo)背景分離并不是本文的討論的重點(diǎn)。本文主要討論目標(biāo)分離后的二值化圖像的處理。對(duì)二值化圖像經(jīng)常要進(jìn)行目標(biāo)連通域檢測(cè),在檢測(cè)過程中需要提取目標(biāo)的一些特征,比如目標(biāo)的大小和目標(biāo)框的坐標(biāo)。并根據(jù)目標(biāo)框的坐標(biāo)在視頻中將目標(biāo)框選出來。
FPGA內(nèi)置了硬核DSP和存儲(chǔ)器模塊,效率和靈活性要遠(yuǎn)遠(yuǎn)優(yōu)于DSPIC,并且具有強(qiáng)大的數(shù)據(jù)并行處理能力,其圖像處理能力在極低時(shí)鐘頻率下就可以實(shí)現(xiàn)圖像處理的實(shí)時(shí)性。基于FPGA[1]可以實(shí)現(xiàn)SOPC(片上可編程系統(tǒng)),用戶可以根據(jù)需要定制系統(tǒng),縮短產(chǎn)品研發(fā)和更新?lián)Q代的周期,快速做出有自己特色和自主知識(shí)產(chǎn)權(quán)的產(chǎn)品,因此其在智能視頻監(jiān)控中得到廣泛采用。
連通區(qū)域檢測(cè)是圖像處理、模式識(shí)別中常用的一個(gè)基本方法。在目標(biāo)分割,邊緣檢測(cè),區(qū)域檢測(cè)中有著廣泛的應(yīng)用。算法有4鄰域或8鄰域檢測(cè)和基于像素或行程檢測(cè)。本系統(tǒng)采用基于行程的8鄰域連通域檢測(cè)方法提取目標(biāo)的外接矩形框 (目標(biāo)框)坐標(biāo),該方法運(yùn)行速度快,掃描一次二值化圖像數(shù)據(jù)即可完成目標(biāo)數(shù)目的統(tǒng)計(jì)和目標(biāo)特征的提取。將一行中連續(xù)的多個(gè)目標(biāo)點(diǎn)作為一個(gè)行程,根據(jù)當(dāng)前行與上一行行程的相接關(guān)系,按照特定規(guī)則標(biāo)記當(dāng)前行程和特征修改[3]。不同的標(biāo)記規(guī)則造成了特征修改方式的不同。文獻(xiàn)[2]規(guī)則中“STEP7”對(duì)上一行中不同標(biāo)號(hào)的行程處理是在等價(jià)數(shù)組中記錄等價(jià)關(guān)系,和更新第一個(gè)出現(xiàn)行程的特征,并沒有比較行程標(biāo)號(hào)的大小。文獻(xiàn)[3]也沒有采用比較標(biāo)號(hào)大小,導(dǎo)致多叉樹深度增加,特征的修改深度相應(yīng)增加。
基于行程的連通域檢測(cè)方法[4-6]所用到的數(shù)據(jù)結(jié)構(gòu):
//行程結(jié)構(gòu)體
typedef struct_line{long index;unsigned short colthOfStart,colthOfEnd;}line;
//連通域特征結(jié)構(gòu)體
typedef struct COMPONENT {unsigned short left,top,right,bottom;long area;}_Com;
//單元結(jié)構(gòu)體
typedef struct_node{long flag;_Com ComAttr;}node;
定義兩個(gè)行程數(shù)組,數(shù)組大小為列像素的一半,如 line Array1[WIDTH/2],Array2[WIDTH/2]。定義兩個(gè)行程指針分別指向兩個(gè)行程數(shù)組,一個(gè)用于當(dāng)前行行程數(shù)組訪問,另一個(gè)用于上一行行程數(shù)組訪問,如 line*curLine=Array1;line*preLine=Array2。初始化全局行程標(biāo)識(shí)為1,label=1。當(dāng)檢測(cè)到一個(gè)行程結(jié)束時(shí)處理步驟如下:
1)與上一行行程無相接行程
更新該行程標(biāo)識(shí)index為全局標(biāo)識(shí),然后全局標(biāo)識(shí)加1;用該行程數(shù)據(jù)初始化其標(biāo)識(shí)指向單元的特征,行程標(biāo)識(shí)初始化該單元標(biāo)號(hào)。即
nodeArray[*(curLine+cur_index).index].flag=*(curLine+cur_index).index;label++;
2)與上一行有行程相接分三種情況
(1)若當(dāng)前行程未標(biāo)識(shí),更新當(dāng)前行程標(biāo)識(shí)為上一相接行程指向單元的標(biāo)號(hào)。即*(curArray+cur_index).index=nodeArray [(* (preArray+pre_index).index].flag;并更新當(dāng)前行程標(biāo)識(shí)指向單元特征。
(2)若當(dāng)前行程標(biāo)識(shí)大于上一行相接行程標(biāo)識(shí),更新當(dāng)前行程標(biāo)識(shí)指向單元標(biāo)號(hào)和更新上一行相接行程標(biāo)識(shí)指向單元的屬性,即
nodeArray[*(curArray+cur_index).index].flag=*(preArray+pre_index).index;
nodeArray [* (preArray+pre_index).index].ComAttr需要根據(jù)
nodeArray [* (curArray+cur_index).index].ComAttr屬性更新。
更新當(dāng)前行程標(biāo)識(shí)為上一行相接行程標(biāo)識(shí)*(curArray+cur_index).index = * (preArray+pre_index).index;
(3)若當(dāng)前行程標(biāo)識(shí)小于上一行相接行程標(biāo)識(shí),更新上一行相接行程標(biāo)識(shí)指向單元標(biāo)號(hào)和更新當(dāng)前行程標(biāo)識(shí)指向單元的屬性,即:
nodeArray[*(preArray+pre_index).index].flag=*(curArray+cur_index).index;
nodeArray[*(curArray+curArray_index).index].ComAttr需要根據(jù)
nodeArray[*(preArray+preArray_index).index].ComAttr屬性更新。
圖1 行程標(biāo)識(shí)
圖 1a)當(dāng)前行程標(biāo)識(shí)更新為 5,修改 nodeArray[5]屬性;b) 先更新 nodeArray[5].flag=1; 并根 據(jù)nodeArray[5]更新 nodeArray[1]的屬性。 更新行程標(biāo)識(shí)為 1;c)需 要 更 新 nodeArray[3].flag=1, 根 據(jù)nodeArray[3]更新 nodeArray[1]屬性;d)用 nodeArray[3].flag 更新當(dāng)前行程標(biāo)識(shí),更新 nodeArray[1]屬性。
算法在VC環(huán)境下測(cè)試,輸入以下三幅分辨率為324×256的二值化圖像數(shù)據(jù),分別采用本文算法和經(jīng)典檢測(cè)算法進(jìn)行檢測(cè)。測(cè)試結(jié)果見表1:
圖2 測(cè)試圖
表1 性能對(duì)比表
由表1可以看出,隨著連通個(gè)數(shù)的增加和連通性復(fù)雜程度的增加,處理時(shí)間只是略有增加。而傳統(tǒng)經(jīng)典算法處理時(shí)間增加明顯。
視頻信號(hào)由3部分組成:圖像信息、同步脈沖、消隱脈沖[7-8]。視頻同步分離芯片LM1881引腳和視頻信號(hào)組成如圖3所示。在視頻上顯示一個(gè)亮點(diǎn)的基本原理是在場(chǎng)同步信號(hào)有效期間 (即高電平期間)和行同步信號(hào)有效期間(即高電平期間),在行同步信號(hào)相應(yīng)的位置上,圖像信號(hào)部分疊加一個(gè)脈沖信號(hào),脈沖信號(hào)的電壓幅值大小決定了該點(diǎn)的顯示亮度,而脈沖信號(hào)的寬度決定了亮點(diǎn)顯示的寬度。字符或線條的顯示效果就是由許多這樣的亮點(diǎn)組成。
本文目標(biāo)框疊加電路組成如圖4所示,包括視頻放大電路、行場(chǎng)同步信號(hào)分離電路和模擬信號(hào)選擇電路。當(dāng)2路模擬復(fù)用器芯片在某段時(shí)間內(nèi)選擇輸出可調(diào)電平時(shí),復(fù)合視頻信號(hào)在此段時(shí)間內(nèi)為該電平。這樣在顯示視頻中就會(huì)看到一條亮線,線的亮度可通過可調(diào)電平改變。當(dāng)選通時(shí)間可精確到一個(gè)像素在信號(hào)中占用時(shí)間時(shí),就可以實(shí)現(xiàn)在屏幕任意位置,控制輸出1個(gè)像素大小的亮點(diǎn)。
圖3 視頻信號(hào)波形
圖4 目標(biāo)框疊加電路組成
本文的FPGA視頻處理架構(gòu)如圖5所示,F(xiàn)PGA配置成一個(gè)基于NIOSII嵌入式軟核的SOPC系統(tǒng)。該嵌入式系統(tǒng)包括圖像采集預(yù)處理單元、OSD單元、NIOSII微處理器單元、SDRAM控制單元、Avalone總線單元、異步串口UART單元、串行存儲(chǔ)EPCS單元、定時(shí)器Timer單元;其中圖像采集預(yù)處理單元與OSD單元采用自定義外設(shè)的設(shè)計(jì)架構(gòu),以充分發(fā)揮FPGA的并行處理能力。
圖5 FPGA內(nèi)部功能單元組成
本文采用基于行程的連通域檢測(cè)方法提取二值化目標(biāo)的外接矩形框特征,征提取速度明顯優(yōu)于傳統(tǒng)算法,采用NIOII處理器完全能夠做到實(shí)時(shí)處理。目標(biāo)框疊加電路為以FPGA為處理核心的視頻處理方案提供了一種簡(jiǎn)單高效的字符疊加方法。并且由于FPGA本身采用并行處理方式,大大提高了圖形處理速度,適用于實(shí)時(shí)性要求高的嵌入式應(yīng)用場(chǎng)合。
[1]帕克(美),鄧天平(譯).嵌入式視頻處理權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2014:78-247.
[2]孔斌.快速連通域分析算法及實(shí)現(xiàn)[J].模式識(shí)別與人工智能,2003,16(1):110-115.
[3]張恒.基于快速連通域分析的目標(biāo)特征提取算法[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(29):230-232.
[4]M.B.Dillencourt,H.Samet.A general approach to connected component labeling for arbitrary image representations[J].Journal of the ACM: vol.39,1992,pp.253-280.
[5] J.Hecquard,R.Acharya.Connected component labeling with linear octree.Pattern Recognition: vol.24,No.2,1991,pp.515-531.
[6] A.Choudhary,R.Thakur.Connected component labeling on coarse grain parallel computers:an experimental study.Journal of Paralleland Distributed Computing: vol.20,1994,pp.78-93.
[7]黃燕群,李利品.基于 FPGA 的 OSD 設(shè)計(jì)[J].液晶與顯示,2010,25(3):439-433.
[8] 杜升平,曹劍中,田雁,等.FPGA 在 OSD 中的應(yīng)用[J].科學(xué)技術(shù)與工程,2006,6(14):2065-2067.
山東電力高等專科學(xué)校學(xué)報(bào)2015年4期