喬 鑫,萬 毅
(1. 蘭州大學(xué) 信息科學(xué)與工程學(xué)院,甘肅 蘭州 730000;2. 蘭州大學(xué) 信息科學(xué)與工程學(xué)院,信息與通信工程研究所,甘肅 蘭州 730000)
圖像增強(qiáng)技術(shù)主要用于改善圖像的質(zhì)量,增強(qiáng)視覺效果,突出圖像中的重要信息,獲得更加清晰并且可使用的圖像[1]。隨著夜間環(huán)境下工作以及生活場(chǎng)景的增多,為了讓視覺設(shè)備在此環(huán)境下獲得高質(zhì)量的圖像,圖像增強(qiáng)變得尤為重要?,F(xiàn)場(chǎng)可編程門陣列(FPGA)內(nèi)部擁有豐富的硬件資源。相比于數(shù)字信號(hào)處理器(DSP),具有高速的并行處理能力,可以實(shí)現(xiàn)實(shí)時(shí)性處理,提高圖像增強(qiáng)處理效率[2-3]。FPGA 的優(yōu)越性,使其更方便、更高效地實(shí)現(xiàn)軟件算法以及算數(shù)運(yùn)算,擁有靈活性高、通用性強(qiáng)和開發(fā)周期短等優(yōu)點(diǎn)[4],所以使用FPGA 作為圖像增強(qiáng)的硬件實(shí)現(xiàn),變得越來越廣泛。通常FPGA 實(shí)現(xiàn)圖像增強(qiáng)要進(jìn)行較多處理,如邱永生采用圖像融合[5],武繼瑞采用直方圖均衡化[6]實(shí)現(xiàn)圖像增強(qiáng)。兩者方法的處理過程復(fù)雜且使用了較多的FPGA 內(nèi)部資源。因此,本文提出新的方法,采用ALINX FPGA 開發(fā)平臺(tái)AX545 結(jié)合模擬電路,可以實(shí)現(xiàn)自適應(yīng)實(shí)時(shí)圖像增強(qiáng),在保證效果的同時(shí),縮短了開發(fā)周期,減小了開發(fā)難度和成本,并擁有更廣泛、更靈活的應(yīng)用場(chǎng)景。
圖1 為夜景增強(qiáng)系統(tǒng)結(jié)構(gòu)框圖。它主要由視頻采集模塊、程控放大模塊、視頻解碼模塊、FPGA 模 塊、D/A 模 塊、DDR3 存 儲(chǔ) 模 塊 以 及VGA 顯示器組成。
圖1 系統(tǒng)結(jié)構(gòu)框圖Fig.1 System structure block diagram
模擬攝像頭用于采集圖像,AD603 對(duì)模擬視頻信號(hào)放大,TVP5150 對(duì)模擬視頻信號(hào)解碼,F(xiàn)PGA 對(duì)圖像預(yù)處理、實(shí)現(xiàn)自適應(yīng)算法并控制D/A 調(diào) 節(jié)AD603 放 大 倍 數(shù),DDR3 緩 存 圖 像,VGA 顯示增強(qiáng)效果。
該系統(tǒng)的基本工作原理為:通過模擬攝像頭獲取模擬視頻信號(hào)并傳輸給程控放大模塊。
程控放大模塊通過輸入增益控制電壓來調(diào)節(jié)其放大倍數(shù),對(duì)模擬視頻信號(hào)進(jìn)行放大調(diào)節(jié),并將放大后的模擬視頻信號(hào)傳輸給視頻解碼模塊。
視頻解碼模塊解碼模擬視頻信號(hào),輸出ITU-R BT.656 格式數(shù)據(jù),并將其傳輸給FPGA模塊。
FPGA 模塊從ITU-R BT.656 格式數(shù)據(jù)中提取有效視頻數(shù)據(jù)以及同步信號(hào),修改圖像分辨率,對(duì)視頻進(jìn)行插幀,得到分辨率為640×480、60 幀/s 的視頻數(shù)據(jù)。對(duì)圖像進(jìn)行灰度變換,通過每?jī)蓭瑘D像參數(shù)計(jì)算出新一幀的放大倍數(shù)A,并傳輸給D/A 模塊。
D/A 模塊將A轉(zhuǎn)換成模擬量傳輸給程控放大模塊的增益控制端,來改變每幀圖像的放大倍數(shù),使其平均灰度值穩(wěn)定在閾值附近。
VGA 控制模塊讀取增強(qiáng)后圖像數(shù)據(jù),生成視頻時(shí)序控制VGA 進(jìn)行實(shí)時(shí)顯示。
DDR3 存儲(chǔ)模塊進(jìn)行圖像的緩存,生成DDR3 控制信號(hào)和突發(fā)讀/寫信號(hào)。
2.2.1 環(huán)境條件
本系統(tǒng)使用模擬攝像頭采集圖像,圖像均為電壓信號(hào)。在拍攝環(huán)境光照非常弱或無光的情況下,模擬攝像頭輸出的電壓幅值幾乎是直線,即像素間對(duì)應(yīng)的模擬電壓幅值相差很小。在此情況下,對(duì)模擬視頻信號(hào)放大,只是將信號(hào)幅值進(jìn)行了搬移,并沒有放大像素之間的差異。對(duì)無光場(chǎng)景進(jìn)行手動(dòng)放大,結(jié)果表現(xiàn)為圖像整體變亮,但沒有增加圖像細(xì)節(jié)。實(shí)驗(yàn)效果如圖2所示。
圖2 無光環(huán)境增強(qiáng)效果Fig.2 Matte environment enhancement effect
對(duì)以上場(chǎng)景,添加微光再進(jìn)行手動(dòng)放大,實(shí)驗(yàn)結(jié)果表現(xiàn)為圖像整體變亮,并增加了圖像細(xì)節(jié),實(shí)驗(yàn)效果如圖3 所示。
圖3 弱光環(huán)境增強(qiáng)效果Fig.3 Low-light environment enhancement effect
結(jié)果表明,若場(chǎng)景光照非常弱或無光,則放大圖像中缺失細(xì)節(jié)。若場(chǎng)景中有微光或低照度場(chǎng)景,則增強(qiáng)效果明顯。
2.2.2 預(yù)期圖像平均灰度值
對(duì)系統(tǒng)實(shí)現(xiàn)手動(dòng)放大測(cè)試中,可將場(chǎng)景分為整體顏色偏暗、適中以及偏亮3 種。如圖4 所示,放大到可以清晰觀察到細(xì)節(jié)時(shí),測(cè)得(a)、(b)、(c)圖的平均灰度值分別在40,80,120 左右。
如圖4(a)所示,對(duì)于整體顏色偏暗的場(chǎng)景,放大到能看清細(xì)節(jié)時(shí)圖像平均灰度值較小;如圖4(b)、(c)所示,對(duì)于整體顏色適中、偏亮的場(chǎng)景,放大到能看清細(xì)節(jié)時(shí)圖像的平均灰度值可以達(dá)到一個(gè)較大的值。故為了使更多的場(chǎng)景達(dá)到較好的增強(qiáng)效果,設(shè)置系統(tǒng)的預(yù)期圖像平均灰度值為80。當(dāng)系統(tǒng)將原圖像平均灰度值調(diào)節(jié)到預(yù)期平均灰度值附近時(shí),對(duì)于整體顏色偏暗的場(chǎng)景可以更好地增加圖像細(xì)節(jié)和提升亮度,對(duì)于整體顏色偏亮的場(chǎng)景可以避免圖像過亮而喪失一些細(xì)節(jié),最終使整個(gè)系統(tǒng)能實(shí)現(xiàn)較好的增強(qiáng)效果。
圖4 不同場(chǎng)景增強(qiáng)效果Fig.4 Different scene enhancement effects
程控放大模塊的核心是ADI 公司的AD603芯片,它具有低噪聲、低畸變、帶寬可選、增益可調(diào)等特性。將其5、7 引腳短接,可選擇帶寬為90 MHz,增益范圍為-10~30 dB[7-8]。AD603 的輸入增益控制電壓差在-500~500 mV 間與增益成線性關(guān)系,其關(guān)系如式(1)所示[9]。
其中VG是施加的增益控制電壓差,G0為起始增益。
視頻解碼模塊的核心是TI 公司的TVP5150芯片,具有超低功耗、封裝小等特性。使用14.318 18 MHz 時(shí)鐘就可以實(shí)現(xiàn)NTSC/PAL/SECAM 各種制式視頻的解碼。它支持兩路復(fù)合信號(hào)或一路S-video 視頻信號(hào)輸入。輸出格式一種是8 位圖像信號(hào),同步信號(hào)分離輸出;一種是同步信號(hào)內(nèi)嵌于圖像信號(hào)中的ITU-R BT. 656 格式數(shù)據(jù)[10-11]。
FPGA 模塊的核心是Xilinx 公司Spartan-6系列的XC6SLX45-2CSG324 芯片。該芯片內(nèi)部具有43 661 個(gè)邏輯單元、401 kb 的可配置邏輯塊、58 個(gè)DSP48 乘法器、4 個(gè)時(shí) 鐘單元、2 088 kb的Block RAM,最多218 個(gè)可用I/O 口。同時(shí)板上還有Camera 接口、DDR3 存儲(chǔ)器、外部擴(kuò)展接口、VGA 接口等。其豐富的板上資源可以滿足本文設(shè)計(jì)的所有需求。FPGA 采用+5 V 電源供電,視頻解碼模塊與D/A 模塊均采用板上電源供電。FPGA 使用IIC 協(xié)議通過外部接口配置TVP5150 芯片進(jìn)行通信和數(shù)據(jù)傳輸。FPGA 生成外部時(shí)鐘通過外部接口控制D/A 模塊正常工作,將算得的放大倍數(shù)轉(zhuǎn)換成模擬電壓傳輸給AD603 芯片。FPGA 生成VGA 時(shí)序通過VGA接口控制顯示器正常工作,并將最終的圖像增強(qiáng)效果在屏幕上顯示。
從ITU-R BT.656 格式數(shù)據(jù)中提取有效視頻數(shù)據(jù)和同步信號(hào)是后續(xù)處理的前提。ITUR BT.656 格式定義如圖5 所示[12]。
圖5 ITU-R BT.656 格式定義[12]Fig.5 ITU-R BT.656 format definition
有效數(shù)據(jù)的提取,關(guān)鍵在于SAV 和EAV 標(biāo)志的檢測(cè)。通過特定的3 個(gè)字節(jié)FF、00、00,來定位,并通過最后一個(gè)字節(jié)XY來區(qū)分兩者。當(dāng)V=0 時(shí)表示該行數(shù)據(jù)有效,當(dāng)V=1 時(shí)表示該行數(shù) 據(jù) 無 效。H=0 時(shí) 為SAV 標(biāo) 志,H=1 時(shí) 為EAV 標(biāo)志。XY的定義格式如表1 所示[13]。
表1 XY 字節(jié)格式定義[13]Tab.1 XY byteformat definition
圖像預(yù)處理模塊的結(jié)構(gòu)框圖如圖6 所示。有效數(shù)據(jù)提取模塊負(fù)責(zé)檢測(cè)SAV 和EAV 標(biāo)志,通過兩個(gè)標(biāo)志信號(hào)得到同步信號(hào),在兩者之間提取圖像數(shù)據(jù)。如圖5 所示,根據(jù)圖像數(shù)據(jù)的排列規(guī)律,通過兩位信號(hào)Flag 對(duì)圖像數(shù)據(jù)Y、Cb、Cr通道進(jìn)行標(biāo)定。Flag=00 代表此時(shí)傳輸Cb通道值;Flag=10 代表此時(shí)傳輸Cr通道值;Flag[0]=1 代表此時(shí)傳輸Y通道值。對(duì)先提取到的數(shù)據(jù)進(jìn)行延時(shí)處理,保證同一個(gè)像素點(diǎn)的三通道值對(duì)齊,避免圖像數(shù)據(jù)的錯(cuò)誤傳輸。色彩空間轉(zhuǎn)換模塊將得到的YCbCr 空間域像素值轉(zhuǎn)換到RGB 空間域,轉(zhuǎn)換公式如下[14-15]:
圖6 圖像預(yù)處理模塊Fig.6 Image preprocessing module
FPGA 直接對(duì)浮點(diǎn)數(shù)運(yùn)算比較困難,將公式(2)化簡(jiǎn),得到FPGA 容易運(yùn)算的形式?;?jiǎn)后的公式如式(3)所示:
分辨率修改模塊負(fù)責(zé)將每幀720×288 分辨率的圖像修改為640×480 分辨率。截取每行中間640 個(gè)像素,并且只獲取前240 行存入DDR 中。在讀取數(shù)據(jù)時(shí)對(duì)每行數(shù)據(jù)進(jìn)行重讀可擴(kuò)展為480 行,實(shí)現(xiàn)每幀圖像分辨率修改為640×480。視頻插幀模塊負(fù)責(zé)對(duì)提取的視頻流進(jìn)行插幀處理。圖像寫入DDR 的頻率為50 幀/s,讀出頻率為60 幀/s。寫入5 幀與讀出6 幀所用時(shí)間相同,對(duì)DDR 存儲(chǔ)區(qū)域進(jìn)行劃分,結(jié)合乒乓操作思想,每緩存5 幀則進(jìn)行讀取。在讀取完第5 幀圖像數(shù)據(jù)時(shí),對(duì)第5 幀圖像數(shù)據(jù)重讀,實(shí)現(xiàn)5 幀擴(kuò)6 幀,1 s 內(nèi)便可實(shí)現(xiàn)50 幀擴(kuò)60 幀操作。緩沖區(qū)為劃分DDR 內(nèi)部存儲(chǔ)區(qū)域?qū)崿F(xiàn),故不會(huì)占用RAM 資源。
自適應(yīng)算法是實(shí)現(xiàn)系統(tǒng)自適應(yīng)調(diào)節(jié)的關(guān)鍵,每幀圖像的平均灰度值為評(píng)估圖像亮度的依據(jù)?;叶戎涤?jì)算公式如式(4)所示[16]:
系統(tǒng)初始放大倍數(shù)為1,自適應(yīng)算法公式如式(5)~(7)所示:
式中:y'k為第k幀原圖像放大后圖像的平均灰度值,yk為第k幀原圖像的平均灰度值,y為增強(qiáng)后圖像的預(yù)期平均灰度值,gk-1為通過第k-1 幀得到的第k幀的放大倍數(shù)。如式(5)所示,第k幀原圖像乘以放大倍數(shù)gk-1就是第k幀放大后的圖像,其平均灰度值接近于y。同理第k+1 幀原圖像乘以第k幀得到的放大倍數(shù)gk就是第k+1 幀放大后的圖像,其平均灰度值也接近于y。以此類推可得到,通過當(dāng)前幀的y'和上一幀的g得到下一幀的g,如式(7)所示。每幀計(jì)算出的g均要存儲(chǔ),參與下一幀的運(yùn)算。最終將此關(guān)系應(yīng)用到所有幀,便可達(dá)到實(shí)時(shí)的自適應(yīng)調(diào)節(jié)。自適應(yīng)算法模塊結(jié)構(gòu)框圖如圖7 所示。
圖7 自適應(yīng)算法模塊Fig.7 Adaptive algorithm module
在黑暗環(huán)境下,使用低照度光源的不同光強(qiáng)照射拍攝場(chǎng)景的情況,用本系統(tǒng)實(shí)時(shí)進(jìn)行拍攝,并將增強(qiáng)效果在VGA 上顯示。增強(qiáng)效果如圖8所示。
圖8 圖像增強(qiáng)效果Fig.8 Image enhancement effect
圖8 中(a)、(b)分別為低照度光源2/8 光強(qiáng)照射場(chǎng)景下的原始圖像和增強(qiáng)后的圖像,觀察到增強(qiáng)效果較不明顯。圖8 中(c)為3/8 光強(qiáng)下增強(qiáng)的圖像,發(fā)現(xiàn)效果明顯,細(xì)節(jié)突出。
圖像的自適應(yīng)增強(qiáng)結(jié)果如圖9 所示。隨著光強(qiáng)的逐漸增大,拍攝到的原圖像越來越清晰,同時(shí)系統(tǒng)的放大倍數(shù)也在自動(dòng)調(diào)節(jié)逐漸變小,對(duì)于場(chǎng)景的變化達(dá)到自適應(yīng)調(diào)節(jié),最終增強(qiáng)后圖像的平均灰度值逐漸穩(wěn)定在所設(shè)閾值附近。實(shí)物如圖10 所示。
圖9 自適應(yīng)增強(qiáng)效果Fig.9 Adaptive enhancement effect
圖10 系統(tǒng)實(shí)物圖Fig.10 System physical image
FPGA 實(shí)現(xiàn)整個(gè)系統(tǒng)的資源使用如表2所示。
表2 FPGA 資源使用情況Tab.2 Usage of FPGA resource
將本文方法與圖像融合和直方圖均衡化兩種方法的FPGA 內(nèi)部資源使用進(jìn)行對(duì)比,進(jìn)一步突出了本文系統(tǒng)的優(yōu)勢(shì)。比較結(jié)果如表3 所示。從表3 可以看出,圖像融合和直方圖均衡化兩種方法會(huì)使用較多的FPGA 內(nèi)部邏輯資源。故本文方法使用更少的FPGA 內(nèi)部資源,降低了開發(fā)成本和難度。
表3 FPGA 資源使用對(duì)比Tab.3 Usage comparison of FPGA resource
在實(shí)際應(yīng)用中,為了防止系統(tǒng)對(duì)光照非常弱或無光環(huán)境的過度放大,對(duì)系統(tǒng)設(shè)定17 dB 的放大上限,避免如圖2 中無意義的增強(qiáng)。同時(shí)圖像增強(qiáng)效果會(huì)受到實(shí)際芯片性能、D/A 數(shù)模轉(zhuǎn)換芯片存在的偏移現(xiàn)象,甚至環(huán)境因素的影響。在系統(tǒng)設(shè)計(jì)中,盡管會(huì)使用屏蔽線等措施進(jìn)行改善,但依舊會(huì)存在誤差。
對(duì)于圖像增強(qiáng),本文提出了FPGA 結(jié)合模擬電路的自適應(yīng)夜景增強(qiáng)系統(tǒng)。通過硬件電路實(shí)現(xiàn)對(duì)模擬視頻信號(hào)的放大。使用IIC 總線配置TVP5150 視頻解碼芯片,將模擬視頻信號(hào)轉(zhuǎn)換為數(shù)字視頻信號(hào)。對(duì)ITU-R BT. 656 格式數(shù)據(jù)進(jìn)行處理,得到有效視頻數(shù)據(jù)以及同步信號(hào)。用自適應(yīng)算法和D/A 數(shù)模轉(zhuǎn)換電路控制AD603 芯片,最終實(shí)現(xiàn)系統(tǒng)的自適應(yīng)實(shí)時(shí)夜景增強(qiáng)。本文方法縮短了開發(fā)周期,降低了開發(fā)難度和成本,同時(shí)經(jīng)過本系統(tǒng)增強(qiáng)圖像后,增加了圖像細(xì)節(jié)和圖像對(duì)比度,使得拍攝到的畫面更加清晰,改善了拍攝畫面的圖像質(zhì)量。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)具有成本低、實(shí)時(shí)性強(qiáng)以及自適應(yīng)調(diào)節(jié)等特點(diǎn),能夠很好地應(yīng)用在目標(biāo)檢測(cè)及監(jiān)控等領(lǐng)域。