王金波,劉 斌,郝 亮,任珂珂
(華北光電技術(shù)研究所,北京100015)
為解決可見光圖像數(shù)據(jù)量大、處理速度要求高的需求,本文設(shè)計了一種基于可編程門陣列(FPGA)的圖像處理及自動調(diào)控電路。該電路完成可見光圖像的直方圖均衡、中值濾波、十字叉疊加、自動調(diào)焦等圖像處理及調(diào)控功能。通過以上措施,能夠顯著提高可見光圖像的質(zhì)量,并且由于采用高速FPGA作為圖像處理芯片,整個電路精度高,實時性好。
基于FPGA的圖像處理及鏡頭自動調(diào)控電路原理框圖如圖1所示。
圖1 圖像處理及鏡頭自動調(diào)控電路原理圖
A/D芯片采用Philips公司的SAA7113,完成可見光模擬圖像到數(shù)字圖像的轉(zhuǎn)換;FPGA芯片采用Altera公司 CycloneIII系列的 EP3C25F256I7,該芯片完成包含直方圖均衡、中值濾波、疊加十字叉、圖像清晰度計算等在內(nèi)的數(shù)字圖像處理功能;視頻解碼芯片采用Philips公司的SAA7121;MCU選用的是Silicon公司的C8051F021芯片,完成與上位機的通信、對SAA7113和SAA7121的配置,與FPGA之間的數(shù)據(jù)交互,以及對可見光鏡頭的控制。
圖像處理部分主要由FPGA完成,自動調(diào)控部分由FPGA和MCU共同完成。MCU通過電機驅(qū)動芯片驅(qū)動可見光鏡頭內(nèi)的調(diào)焦和變倍電機,可以實現(xiàn)焦距和視場的調(diào)節(jié)功能。
下面簡要介紹快速自動調(diào)焦的基本流程:根據(jù)FPGA計算得出的圖像清晰度參量,MCU可控制可見光鏡頭焦面位置不斷變化,直至圖像清晰度參量最大,完成可見光圖像的自動調(diào)焦。為提高自動調(diào)焦的速度,本文采用了如下措施:①采用“區(qū)域極值法”,減少尋焦行程,其流程如圖2所示;②將圖像按場進行處理,相對于按幀處理縮短了清晰度參量計算時間。通過以上措施,可顯著提高自動調(diào)焦的速度。
圖2 “區(qū)域極值法”流程
采用若干個VHDL模塊共同完成所需功能。下面分別介紹各部分功能。
直方圖均衡的基本方法是擴展在圖像中像素個數(shù)多的灰度級,縮減像素個數(shù)少的灰度級,使轉(zhuǎn)換后的圖像的直方圖分布更加均勻[1]。這不僅能夠改善圖像的質(zhì)量,提高圖像的清晰度,而且經(jīng)過直方圖均衡后的圖像更有利于使用計算機進行處理。
直方圖均衡的一般方法如公式(1)所示:
式中,ri為灰度級且滿足歸一化條件;k為灰度級數(shù),第i個灰度級ri出現(xiàn)的頻數(shù)用ni表示;n為幀內(nèi)像素總數(shù)。
VHDL實現(xiàn)過程:在FPGA內(nèi)部開辟一個256×24 bit的存儲器RAM1和一個256×8 bit的存儲器RAM2。RAM1存儲每場圖像的每個灰度級的像素個數(shù),由公式(1)可以計算出灰度映射表,并存儲到RAM2。輸出圖像的每個像素通過查找RAM2,輸出新灰度,整場圖像完成直方圖均衡處理。
中值濾波的一般方法是用一個含有奇數(shù)個像素的窗口在圖像上滑動,用該窗口中所有灰度值的中值來代替窗口中心像素點的灰度值[2-3]。二維中值濾波可由公式(2)表示:
VHDL實現(xiàn)過程:本文中取i=j=3,做9個點的中值濾波。在FPGA內(nèi)部開辟兩個720×8 bit的FIFO,緩存兩行圖像數(shù)據(jù),與當(dāng)前輸入行的圖像數(shù)據(jù)并行輸出,可以得到三行圖像數(shù)據(jù),再經(jīng)三級D觸發(fā)器就可以得到3×3像素矩陣,以每個矩陣窗口的9個灰度值的中值代替矩陣中心點的灰度值,即可完成中值濾波,整個過程如圖3所示。
在可見光圖像上疊加十字叉有助于定位目標在圖像中的位置,由此可盡量避免可見光圖像視場發(fā)生變化時目標丟失的情況發(fā)生,更有利于實施視頻監(jiān)控。
首先計算疊加點周圍區(qū)域內(nèi)的灰度級平均值,然后將該平均值與某一閾值作比較,若小于閾值則將該點設(shè)置為高灰度級,反之則將該點設(shè)置為低灰度級,即疊加與其背景灰度級對比強烈的十字叉以助于觀察。閾值可通過實驗選取。
“清晰度法自動調(diào)焦”通過圖像清晰度評價函數(shù)對可見光鏡頭不同焦面位置成像的清晰度進行評價,利用“正確對焦使圖像最清晰”這個特征找到正確對焦位置。
本文選用Tenengrad函數(shù)來表征圖像清晰度[4-5]。Tenengrad 函數(shù)利用 Sobel算子來估計圖像在水平方向和垂直方向的梯度,其表達式如公式(3)~式(5):
式中,Gx(x,y),Gy(x,y)分別為水平和垂直方向的計算模板;分別是可見光圖像矩陣與Sobel算子的卷積,Sobel算子在X,Y方向各有一個:
ν是一個閾值,可以通過實驗選取。
由于該方法計算量較大,本文將公式簡化為公式(6):
該公式可以極大地減少計算量,提高圖像處理速度,且計算結(jié)果滿足圖像清晰度要求。
VHDL實現(xiàn)過程:與中值濾波模塊類似,首先由串行視頻流生成3×3矩陣,再使用圖像矩陣分別與Sx和Sy算子卷積并取絕對值,把絕對值相加,得到一個像素的邊緣信息,對每個點都進行計算并做累加,就可以得到整場圖像的清晰度參量。將此參量實時傳遞給自動調(diào)控電路,自動調(diào)控電路以此為依據(jù)控制焦面位置不斷變化,直至聚焦參數(shù)最大,可得聚焦清晰的圖像。
圖4、圖5、圖6分別為直方圖均衡、疊加十字叉、自動調(diào)焦前后的圖像對比效果,由于圖像在進行中值濾波前后效果對比不夠明顯,在此不作對比。
圖4 直方圖均衡前后圖像對比
圖5 疊加十字叉前后圖像對比
圖6 自動調(diào)焦前后圖像對比
本文設(shè)計的可見光圖像處理及自動調(diào)控電路滿足實時性、低功耗及小型化的工作要求。
(1)實時性。本文設(shè)計中,實現(xiàn)直方圖均衡、中值濾波和疊加十字叉等功能所導(dǎo)致的圖像延時均小于0.2 ms,自動調(diào)焦可在3 s內(nèi)完成。
(2)低功耗。在本文電路設(shè)計中,采用的器件均為低功耗器件;并且在無信號輸入時,自動關(guān)閉部分芯片,進入節(jié)電模式。
(3)小型化。本文電路均采用集成性較高的器件,這樣大大減少了整個電路所使用的器件數(shù)目;同時封裝均為貼片式,因此電路具有小型化、集成度高等優(yōu)點。
[1] Chen Zheng,Ji Shupeng.Enhancement algorithm of infrared images based on Otsu and plateau histogram equalization[J].Laser & Infrared,2010,40(4):438 - 441.(in Chinese)
陳崢,吉書鵬.一種基于Otsu法和平臺直方圖均衡的紅外圖像增強算法[J].激光與紅外,2010,40(4):438-441.
[2] Zhang Hansong,Wang Ying.Infrared image process based on LabVIEW[J].Laser & Infrared,2011,41(9):1002 -1005.(in Chinese)
張寒松,王穎.基于LabVIEW的紅外成像圖像處理方法及應(yīng)用[J].激光與紅外,2011,41(9):1002 -1005.
[3] LiMingxi,Mao Hanping,Zhang Yancheng.Study of the actual image denoisingmethod based on liftwavelet analysis and median filter technology[J].Laser & Infrared,2007,37(10):1109 -1111.(in Chinese)
李明喜,毛罕平,張艷誠.基于提升小波變換和中值濾波的圖像去噪方法研究[J].激光與紅外,2007,37(10):1109-1111.
[4] Jia Xiaofei,Li Yibin,Chen Dezhi,et al.Design of high speed arithmetic of auto-focus in uncooled infrared thermal equipment[J].Laser & Infrared,2009,39(6):688 -690.(in Chinese)
賈曉飛,李宜斌,陳德智,等.非制冷紅外熱像儀的快速自動調(diào)焦算法設(shè)計[J].激光與紅外,2009,39(6):688-690.
[5] Gong Guangyong,He Wenzhong,Gao Xuhui.Optimized mountain climb-searching of auto-focusing in infrared imaging system[J].Laser & Infrared,2007,37(11):1213 -1215.(in Chinese)
宮光勇,何文忠,高旭輝.紅外系統(tǒng)中自動調(diào)焦爬山搜索算法的優(yōu)化設(shè)計[J].激光與紅外,2007,37(11):1213-1215.