王院生,余 娟,路桂英,張永權(quán)
(中國(guó)地質(zhì)大學(xué)(武漢) 機(jī)械與電子信息學(xué)院,湖北武漢430074)
視頻圖像采集、光電跟蹤系統(tǒng)是許多動(dòng)態(tài)目標(biāo)跟蹤控制系統(tǒng)的前端系統(tǒng)和重要組成部分,基于光電跟蹤技術(shù)的兩軸轉(zhuǎn)臺(tái)在航天、軍事、交通等領(lǐng)域應(yīng)用廣泛。近年來,數(shù)字圖像處理技術(shù)、集成電路和微處理技術(shù)的發(fā)展,為視頻圖像采集系統(tǒng)中的動(dòng)態(tài)目標(biāo)跟蹤提供了解決問題的新思路和新方法[1]。如何利用人工智能、圖像識(shí)別、先進(jìn)微電子技術(shù)實(shí)現(xiàn)對(duì)目標(biāo)的采集和精確跟蹤是目前的研究重點(diǎn)。如今,在跟蹤伺服系統(tǒng)中已廣泛采用濾波技術(shù)等提高圖像精度,集成電路和微處理機(jī)等現(xiàn)代先進(jìn)技術(shù)也逐漸被應(yīng)用在光電經(jīng)緯儀等產(chǎn)品中。本文將基于FPGA的圖像采集處理系統(tǒng)運(yùn)用于兩軸測(cè)試轉(zhuǎn)臺(tái)中,動(dòng)態(tài)配置靈活;并進(jìn)行濾波等圖像預(yù)處理,滿足轉(zhuǎn)臺(tái)的圖像處理、光點(diǎn)跟蹤使用要求,提取圖像光點(diǎn)中心坐標(biāo)。
本系統(tǒng)主要實(shí)現(xiàn)的功能是兩軸轉(zhuǎn)臺(tái)中光點(diǎn)目標(biāo)跟蹤的視頻圖像采集、顯示與光點(diǎn)中心坐標(biāo)的提取。所設(shè)計(jì)的圖像光點(diǎn)跟蹤系統(tǒng)主要用于兩軸測(cè)試轉(zhuǎn)臺(tái)的慣性導(dǎo)航測(cè)試、視頻跟蹤等,能進(jìn)行視頻采集,捕捉光點(diǎn)位置,顯示光標(biāo)。
基于FPGA的圖像光點(diǎn)中心坐標(biāo)提取系統(tǒng)電路部分以FPGA為核心,以CMOS攝像頭、數(shù)字存儲(chǔ)器、LCD顯示組件等作為FPGA外設(shè),最終實(shí)現(xiàn)對(duì)實(shí)時(shí)圖像的采集、存儲(chǔ)、顯示與光點(diǎn)中心坐標(biāo)的提取。采用Altera CycloneⅡ的EP2C8Q208C8N作為主控制芯片,選用EPCS4SI8為FPGA的配置芯片,CMOS數(shù)字圖像傳感器OV7670作為圖像信息采集設(shè)備,在LCD顯示終端顯示實(shí)時(shí)圖像。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
電路采用模塊化設(shè)計(jì),分為視頻采集模塊、PLL鎖相環(huán)時(shí)鐘管理模塊、I2C總線模塊、SDRAM視頻數(shù)據(jù)處理模塊和LCD顯示驅(qū)動(dòng)控制模塊。圖1中的數(shù)字?jǐn)z像頭模塊中含有OV7670圖像傳感器,它是標(biāo)準(zhǔn)的SCCB接口,并兼容I2C接口,本系統(tǒng)中選擇I2C接口協(xié)議對(duì)OV7670進(jìn)行寄存器初始化配置。攝像頭把接收到的光信號(hào)輸出成模擬視頻信號(hào),然后經(jīng)過OV7670圖像傳感器進(jìn)行A/D轉(zhuǎn)換,得到RGB565格式的數(shù)字信號(hào)。隨后,這些數(shù)字信號(hào)被輸送給FPGA處理,F(xiàn)PGA進(jìn)行場(chǎng)、行掃描,一幀一幀地采集圖像數(shù)據(jù);利用寫SDRAM異步FIFO將數(shù)據(jù)輸送給SDRAM控制器,然后,又通過讀SDRAM異步FIFO將SDRAM控制器緩存的數(shù)據(jù)輸送給LCD顯示驅(qū)動(dòng)控制模塊[2-3]。最后,LCD顯示驅(qū)動(dòng)控制模塊按照LCD時(shí)序要求將視頻圖像數(shù)據(jù)和控制信號(hào)通過轉(zhuǎn)換,不斷地讀出新的實(shí)時(shí)圖像,并且驅(qū)動(dòng)320×240的真彩液晶屏工作。
圖1 系統(tǒng)結(jié)構(gòu)框圖
FPGA硬件電路在QuartusⅡ9.1開發(fā)環(huán)境中使用Verilog HDL硬件描述語(yǔ)言設(shè)計(jì)。按照層次化設(shè)計(jì)的思想,建立了一個(gè)工程項(xiàng)目,在項(xiàng)目的頂層設(shè)計(jì)文件中,對(duì)內(nèi)部各功能模塊的連接關(guān)系和對(duì)外接口進(jìn)行例化描述,然后分別對(duì)各個(gè)功能模塊進(jìn)行細(xì)化設(shè)計(jì)。
I2C總線模塊設(shè)計(jì)有2個(gè)子模塊,一個(gè)用來產(chǎn)生I2C總線規(guī)范的時(shí)序,另一個(gè)用來產(chǎn)生需要配置的寄存器地址和配置參數(shù)。用I2C接口配置OV7670圖像傳感器時(shí),過快的系統(tǒng)時(shí)鐘頻率可能會(huì)導(dǎo)致傳感器來不及響應(yīng),所以要控制其時(shí)鐘頻率來獲得合理的響應(yīng)時(shí)間,本文設(shè)計(jì)了一段式狀態(tài)機(jī)進(jìn)行通信,如圖2所示。首先,在狀態(tài)變遷中進(jìn)行一個(gè)狀態(tài)監(jiān)測(cè),判斷是否發(fā)出一個(gè)讀或?qū)慖2C指令,沒有發(fā)出則一直保持DIDLE閑置狀態(tài),否則進(jìn)入DSTAR開始狀態(tài)。此外,DWRDB為寫數(shù)據(jù)狀態(tài),DRDDB為讀數(shù)據(jù)狀態(tài)。隨后依次檢測(cè)是否處于所需時(shí)序變化點(diǎn),并進(jìn)行相應(yīng)的狀態(tài)變遷轉(zhuǎn)換。
圖2 I2 C時(shí)序控制狀態(tài)機(jī)
LCD顯示驅(qū)動(dòng)控制模塊的內(nèi)部邏輯功能部分如圖3所示,F(xiàn)PGA與LCD接口的信號(hào)包含LCD驅(qū)動(dòng)時(shí)鐘(lcd_clk)、LCD復(fù)位信號(hào)(lcd_rst_n)、場(chǎng)行同步信號(hào)(vsync、hsync),F(xiàn)PGA通過這些信號(hào)來產(chǎn)生能和LCD操作時(shí)序匹配的控制信號(hào),并通過從SDRAM中讀出顯示數(shù)據(jù)(vga_rgb)進(jìn)行顯示。系統(tǒng)選用RGB565彩色模式,所以總共會(huì)產(chǎn)生16位視頻數(shù)據(jù)流。
圖3 LCD顯示驅(qū)動(dòng)控制框圖
由于系統(tǒng)時(shí)鐘為50 MHz,而LCD時(shí)鐘通常為6.25 MHz左右,因此采用時(shí)鐘分頻計(jì)數(shù)單元產(chǎn)生LCD時(shí)鐘。X,Y坐標(biāo)計(jì)數(shù)器(x_cnt,y_cnt)一方面通過計(jì)算LCD液晶屏的顯示計(jì)數(shù)范圍,從而產(chǎn)生數(shù)據(jù)的有效顯示標(biāo)志位信號(hào),以及相對(duì)應(yīng)的場(chǎng)、行同步信號(hào),另一方面還控制FIFO讀請(qǐng)求信號(hào)的生成。外部的SDRAM控制器在每一個(gè)場(chǎng)信號(hào)的開始都會(huì)初始化清空FIFO,然后保持FIFO中有數(shù)據(jù)(但不溢出)可供當(dāng)前顯示。當(dāng)每次FIFO讀請(qǐng)求信號(hào)被拉高即有效后,該模塊就會(huì)鎖存相應(yīng)的FIFO輸出顯示數(shù)據(jù)[4]。最后視頻數(shù)據(jù)從SDRAM讀出,轉(zhuǎn)變成RGB模式供圖像顯示。
為實(shí)現(xiàn)光點(diǎn)跟蹤,首先要對(duì)光點(diǎn)中心坐標(biāo)進(jìn)行提取。由于本系統(tǒng)中光點(diǎn)相比視場(chǎng)背景較亮,所以,可以利用對(duì)比跟蹤算法中的峰值跟蹤法提取光點(diǎn),其依據(jù)是在目標(biāo)圖像中找出最亮點(diǎn)。但由于有噪聲等干擾的存在,為了能更準(zhǔn)確地提取光點(diǎn)坐標(biāo),應(yīng)先對(duì)圖像進(jìn)行濾波預(yù)處理。
由于本系統(tǒng)主要針對(duì)光點(diǎn)的干擾進(jìn)行濾波處理,所以可以選擇處理速度較快的鄰域平均法濾波。如圖4所示,鄰域平均法就是把相鄰像素的相應(yīng)分量值的平均值作為中心點(diǎn)像素相應(yīng)分量值[5-6]。即以f(x,y)像素點(diǎn)為中心,取N×N(N=1,3,5,…)窗口的像素點(diǎn)組成點(diǎn)集合A,經(jīng)鄰域值加權(quán)平均后求取的分量值作為該中心點(diǎn)f(x,y)的分量值。系統(tǒng)采用圖像的灰度值提取光點(diǎn)坐標(biāo),因此分量值只有灰度值。
圖4 圖像4鄰域像素點(diǎn)示意圖
為減小此方法圖像處理的模糊程度,可合理選取鄰域窗口,具體做法是先找任意像素點(diǎn)有重疊的鄰域窗口,并把其中灰度變化最小的窗口作為均勻窗口,用其平均灰度值作為該像素鄰域平均灰度值[7]。
以單位距離為半徑選取鄰域,采用如圖4所示的4點(diǎn)鄰域平均法,所取的鄰域點(diǎn)為
在此設(shè)定f(x,y)中心點(diǎn)的灰度權(quán)重為2,鄰域點(diǎn)權(quán)重值為1,則可取3×3高斯模板為
然后,構(gòu)造以f(x,y)為中心點(diǎn)的圖像塊為
則f(x,y)的鄰域平均灰度值為
對(duì)所檢測(cè)幀的圖像逐點(diǎn)求取其鄰域平均灰度值,就可得到一幀完整的濾波后的灰度圖。
峰值跟蹤法能跟蹤任意大小的目標(biāo)圖像,且更適合跟蹤小目標(biāo)。在這個(gè)系統(tǒng)中,通過對(duì)濾波處理后的圖像進(jìn)行逐點(diǎn)比較,尋找灰度值最大點(diǎn)為最亮點(diǎn),即為光點(diǎn)坐標(biāo)。首先用波門限定光點(diǎn)目標(biāo)存在區(qū)域,然后在該區(qū)域內(nèi)尋找灰度值最大點(diǎn)[8]。用數(shù)學(xué)式表示為
但實(shí)際上具有最大灰度值的像素點(diǎn)往往不止一個(gè),即P(x,y)是一個(gè)集合,是一個(gè)圖像塊,因此在找到灰度值最大的圖像塊之后,還需求取坐標(biāo)的平均值才近似為光點(diǎn)的中心坐標(biāo)
式中:n為具有最大灰度值像素點(diǎn)的個(gè)數(shù);Pi(x,y)為圖像塊中的第i個(gè)像素點(diǎn)。
通過以上處理方法,可以將光點(diǎn)中心坐標(biāo)提取出來。部分Verilog HDL程序如下所示:
在QuartusⅡ9.1開發(fā)環(huán)境下將所設(shè)計(jì)的電路下載配置到FPGA中,復(fù)位后電路正常工作,液晶顯示器上顯示出清晰的畫面。當(dāng)視場(chǎng)中沒有明顯的光點(diǎn)時(shí),十字光標(biāo)處于不停的跳動(dòng)狀態(tài);當(dāng)用激光燈在攝像頭前晃動(dòng)時(shí),十字光標(biāo)跟隨光點(diǎn)的中心位置移動(dòng),如圖5所示。
圖5 結(jié)果顯示實(shí)物圖
本文針對(duì)兩軸轉(zhuǎn)臺(tái)的工作原理及需求設(shè)計(jì)了基于FPGA圖像采集、處理、顯示及目標(biāo)光點(diǎn)中心坐標(biāo)提取的子系統(tǒng)。系統(tǒng)中FPGA的應(yīng)用,使得各個(gè)模塊能并行運(yùn)行,處理速度塊,實(shí)時(shí)性好。在提取光點(diǎn)中心坐標(biāo)前,利用4鄰域平均法對(duì)圖像進(jìn)行濾波,以及基于峰值跟蹤法的光點(diǎn)中心坐標(biāo)提取增加了目標(biāo)提取的準(zhǔn)確性。最后的實(shí)驗(yàn)結(jié)果表明,該設(shè)計(jì)能夠準(zhǔn)確提取光點(diǎn)的中心坐標(biāo)并進(jìn)行十字光標(biāo)跟蹤,符合兩軸轉(zhuǎn)臺(tái)的使用要求。
[1]王德勝,康令州.基于FPGA的實(shí)時(shí)圖像采集與預(yù)處理[J].電視技術(shù),2011,35(3):33-35.
[2]劉松,付揚(yáng),郭培源.基于FPGA的數(shù)字視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2010,34(3):92-94.
[3] HU J S.The research into the key problem of multi-channel video acquisition and display system based on FPGA[J].Materials Science and Information Technology,2012(433/440):5611-5615.
[4] 吳厚航.愛上FPGA開發(fā)——特權(quán)和你一起學(xué)NIOSⅡ[M].北京:北京航空航天大學(xué)出版社,2011.
[5]曹振華.嵌入式實(shí)時(shí)系統(tǒng)圖像濾波算法研究[J].蘇州大學(xué)學(xué)報(bào):工科版,2010,30(1):37-41.
[6]滕召榮,蔣天發(fā).鄰域平均法對(duì)矢量圖平滑處理[J].現(xiàn)代電子技術(shù),2009,32(14):75-77.
[7]韓殿元.簡(jiǎn)單鄰域平均圖像去噪算法的改進(jìn)研究[J].濰坊學(xué)院學(xué)報(bào),2006,6(6):12-14.
[8]楊烜,裴繼紅,楊萬海.實(shí)時(shí)光點(diǎn)檢測(cè)與跟蹤方法研究[J].紅外與毫米波學(xué)報(bào),2001,20(4):279-282.