張 勇,周 斌,王建斌
(1.解放軍32181 部隊(duì),西安 710032;2.鄭州科技學(xué)院電子與電氣工程學(xué)院,鄭州 450064;3.河南省智能信息處理與控制工程技術(shù)研究中心,鄭州 450064;4.北方自動控制技術(shù)研究所,太原 030006)
由頭戴夜視系統(tǒng)獲取的低照度圖像常存在亮度對比度低、隨機(jī)噪聲大、細(xì)節(jié)信息丟失等問題[1-2],對夜間觀察搜索、場景判斷造成不利影響,需要通過圖像增強(qiáng)算法提高視覺質(zhì)量。常用的低照度圖像增強(qiáng)算法有伽馬變換、小波變換、直方圖均衡化、Retinex 算法及它們的改進(jìn)型等。例如,文獻(xiàn)[3]采用融合伽馬變換及分?jǐn)?shù)階的低照度圖像增強(qiáng)算法,改善圖像亮度和對比度,增強(qiáng)圖像紋理細(xì)節(jié);文獻(xiàn)[4]利用小波變換獲得不同頻率成分子帶圖,結(jié)合灰度變換、可變閾值降噪處理,實(shí)現(xiàn)了圖像對比度增強(qiáng)和噪聲抑制;文獻(xiàn)[5]以自適應(yīng)子直方圖均衡化提升圖像對比度,并以邊緣信息融合細(xì)節(jié)增強(qiáng)算法完成圖像細(xì)節(jié)增強(qiáng)。上述研究由于缺乏人眼視覺處理機(jī)制,容易存在圖像對比度過度增強(qiáng)、局部區(qū)域亮度過飽和、部分細(xì)節(jié)丟失、實(shí)時(shí)性不強(qiáng)等現(xiàn)象[6-7]。
基于顏色恒常性的Retinex 算法將源圖像分解為反射圖像和照度圖像,通過對照度圖像估計(jì),可得到更好的圖像對比度和細(xì)節(jié)信息,是近年來圖像增強(qiáng)算法的研究熱點(diǎn)[8-10]。目前的研究主要集中于算法仿真分析,不過也有少量工程化案例,如文獻(xiàn)[11]在視頻監(jiān)控系統(tǒng)、文獻(xiàn)[12]在彈載電視系統(tǒng)上實(shí)現(xiàn)了Retinex 算法或其改進(jìn)型的硬件化。上述系統(tǒng)復(fù)雜度低、實(shí)時(shí)性好,但應(yīng)用高斯濾波函數(shù)估計(jì)照度圖像,會使輸出圖像存在光暈偽影現(xiàn)象,同時(shí),在圖像增強(qiáng)過程中,由于壓縮了源圖像的動態(tài)范圍,使得圖像的灰度對比度不足[13-14],降低了細(xì)節(jié)分辨能力。為此,本文利用具有保邊特性的雙邊濾波函數(shù)代替高斯濾波函數(shù)估計(jì)照度分量,并以灰度級拉伸操作進(jìn)一步提升多尺度Retinex 的圖像增強(qiáng)效果,在仿真驗(yàn)證改進(jìn)算法有效性的基礎(chǔ)上,開展算法的硬件化移植,以滿足頭戴夜視系統(tǒng)的實(shí)時(shí)處理需求。
Retinex 理論是從真實(shí)光照環(huán)境出發(fā),結(jié)合人眼視覺特性而構(gòu)建的視網(wǎng)膜皮層模型,由此發(fā)展的單尺度retinex(single scale retinex,SSR)算法和多尺度retinex(multi scale retinex,MSR)算法在圖像增強(qiáng)、圖像去霧等領(lǐng)域效果明顯[15-16]。
式中,σ 為尺度參數(shù),通過調(diào)整尺度參數(shù),能夠獲得不同的圖像增強(qiáng)效果。
由于SSR 算法在恢復(fù)圖像高頻分量方面的能力有限,人們提出了MSR 算法以實(shí)現(xiàn)對源圖像低、中、高3 個(gè)空間頻率尺度上的濾波運(yùn)算。利用MSR算法得到的反射圖像為:
傳統(tǒng)的Retinex 算法運(yùn)用高斯濾波函數(shù)提升圖像局部細(xì)節(jié)特征的同時(shí),會相應(yīng)增大圖像噪聲,造成光暈偽影現(xiàn)象。因此,本文采用具有保邊去噪特性的雙邊濾波函數(shù)代替高斯函數(shù),對源圖像照度分量進(jìn)行估計(jì)。
為減小硬件系統(tǒng)的運(yùn)算開銷,采用了離散雙邊濾波函數(shù),其表達(dá)式為:
MSR 算法在圖像增強(qiáng)過程中會壓縮源圖像動態(tài)范圍,容易造成圖像對比度下降和局部細(xì)節(jié)丟失。為此,考慮在MSR 增強(qiáng)基礎(chǔ)上,增加灰度級范圍拉伸處理,采用的方法是限制對比度自適應(yīng)直方圖均衡化(contrast limited adaptive histogram equalization,CLAHE),該算法可通過擴(kuò)展圖像的灰度級范圍,改善圖像局部對比度,獲取更多圖像細(xì)節(jié)信息[17-18],主要步驟為:
Step 1 將圖像分割成若干互不重疊的矩形區(qū)域,各矩形區(qū)域直方圖為h(k),其中,k 為灰度級,且滿足0≤k≤L-1,L 為矩形區(qū)域最大灰度值;
Step 2 求矩形區(qū)域剪切閾值:
式中,nx、ny分別為矩形區(qū)域在x 和y 方向的像素?cái)?shù),c 為決定圖像對比度的限制系數(shù);
Step 3 利用閾值δ 對每個(gè)矩形區(qū)域直方圖h(k)進(jìn)行判別,超出閾值的像素點(diǎn)重新均分到其他矩形區(qū)域直方圖中。設(shè)有p 個(gè)像素超出閾值,則:
Step 4 矩形區(qū)域直方圖均衡化;
Step 5 雙線性插值重構(gòu)灰度級,得到對比度增強(qiáng)的圖像。
本文選用Xilinx 公司的ZYNQ 嵌入式平臺進(jìn)行硬件開發(fā)。ZYNQ 分為FPGA 可編程邏輯端(programmable logic,PL)和ARM 處理器端(processing system,PS),PL 端通過可編程邏輯資源實(shí)現(xiàn)圖像增強(qiáng),PS 端通過AXI 總線實(shí)現(xiàn)控制信號和數(shù)據(jù)信號的交互。根據(jù)流水線和并行計(jì)算過程,本文將算法流程進(jìn)行劃分,如圖1 所示。
圖1 低照度圖像增強(qiáng)硬件劃分及流程Fig.1 Hardware composition and process for low-illumination image enhancement
算法模塊劃分上,本文將計(jì)算量大、并行處理任務(wù)重的雙邊濾波、MSR算法增強(qiáng)設(shè)置在PL 端,利用流水線、循環(huán)展開等操作實(shí)現(xiàn)加速;而將后續(xù)圖像灰度拉伸、視頻輸入輸出放在PS 端,方便靈活控制。
PL 端處理過程如圖2 所示。
PL 端主要由濾波窗口構(gòu)造、亮度相似度計(jì)算、空間相似度計(jì)算、歸一化輸出及MSR 對數(shù)域運(yùn)算和反射分量解算組成。系統(tǒng)首先采用n×n 濾波窗口對輸入圖像進(jìn)行分割并依次緩存,實(shí)現(xiàn)串行到并行的轉(zhuǎn)換;其次計(jì)算濾波窗口鄰域中各像素點(diǎn)與中心像素點(diǎn)的灰度差值,在ROM 查找表中得到對應(yīng)的亮度相似度因子和空間相似度因子,將二者乘積作為濾波窗口的加權(quán)系數(shù);最后利用式(5)得到歸一化的雙邊濾波函數(shù),并將其作為中心環(huán)繞函數(shù)在對數(shù)域求解出照度分量,進(jìn)而利用MSR 得到反射分量。由于式(6)和式(7)的冪指數(shù)運(yùn)算結(jié)果為浮點(diǎn)數(shù),因此,需要將原始數(shù)據(jù)左移12 位即擴(kuò)大212倍,并取整存入FPGA 的ROM 查找表中,以供使用。
PS 端處理過程主要為CLAHE 灰度拉伸算法的實(shí)現(xiàn),如圖3 所示。
圖3 PS 端處理流程Fig.3 Processing flow of PS terminal
系統(tǒng)利用RAM 作為統(tǒng)計(jì)表和映射表的存儲,以節(jié)省更多邏輯資源。首先將前端輸入的幀同步、數(shù)據(jù)同步信號經(jīng)FIFO 緩存隔離;其次進(jìn)行圖像分區(qū),并同步解算所有區(qū)域中心像素灰度值;而后利用RAM 統(tǒng)計(jì)各區(qū)域灰度值,并設(shè)定直方圖裁剪閾值,將超出閾值的灰度值均勻分布于所有像素點(diǎn)上;通過查找表將累計(jì)量輸出到線性插值模塊,更新RAM;最后通過插值運(yùn)算完成圖像灰度值更新,形成輸出圖像。
實(shí)驗(yàn)選用米聯(lián)客的ZYNQ-7000 MZ7XA 開發(fā)板作為硬件平臺,核心FPGA 芯片為Xilinx 的XC7Z020CLG400-2I,DDR 為1 GB,1 066 MHz 數(shù)字時(shí)鐘,攝像頭采用OV5640,圖像輸出分辨率設(shè)置為640×480,該分辨率與頭戴夜視系統(tǒng)的星光級CCD分辨率一致,視頻幀速為60 幀/s。視頻一路以像素流形式輸入到算法模塊進(jìn)行處理,再通過HDMI 驅(qū)動模塊輸出到顯示端;另一路直接輸出至顯示端,用作實(shí)驗(yàn)對比圖像,實(shí)驗(yàn)設(shè)備如圖4 所示。
圖4 實(shí)驗(yàn)設(shè)備Fig.4 Experimental device
算法HDL 語言仿真軟件采用ModelSim。利用Matlab R2017a 進(jìn)行對比仿真分析時(shí),PC 機(jī)操作系統(tǒng)為Window10(x64),處理器I5-9300H,內(nèi)存16 G,GPU 為GTX1660TI。低照度圖像增強(qiáng)算法代碼的仿真結(jié)果如圖5 所示。
實(shí)驗(yàn)選取兩組室外低照度近景圖像,利用Matlab 對比分析SSR 和MSR 的增強(qiáng)效果,如圖6 和下頁圖7 所示。在兩組場景中,圖6(a)和圖7(a)為低照度源圖像及3 種不同的增強(qiáng)效果,分別為基于高斯濾波的SSR 增強(qiáng)、基于雙邊濾波的MSR 增強(qiáng)以及本文給出的方法,圖6(b)和圖7(b)為對應(yīng)的直方圖。經(jīng)多次調(diào)參測試,本文設(shè)置SSR 的尺度參數(shù),雙邊濾波尺度為3×3,式(4)中的高斯環(huán)繞函數(shù)尺度參數(shù)分別為20、80 和300。CLAHE 函數(shù)adapthisteq()已經(jīng)集成于Matlab 中,調(diào)用時(shí),矩形區(qū)域分塊參數(shù)NumTiles 設(shè)置為[8,6],對比度增強(qiáng)限制系數(shù)ClipLimit 設(shè)置為0.2。
圖6 第1 組場景低照度圖像增強(qiáng)效果對比Fig.6 Comparison of low-illumination image enhancement effects in the first group of scenes
圖7 第2 組場景低照度圖像增強(qiáng)效果對比Fig.7 Comparison of low-illumination image enhancement effects in the second group of scenes
從兩組圖像的主觀視覺效果可以看到,SSR 算法和MSR 算法均能實(shí)現(xiàn)源圖像亮度的提升。在MSR 算法中,由于加入了雙邊濾波的保邊作用,使得圖像細(xì)節(jié)信息得到更大程度的保留,特別是暗區(qū)域細(xì)節(jié)肉眼可辨。在對應(yīng)的直方圖中,源圖像中、低灰度級區(qū)域的像元素過于集中,而經(jīng)各類增強(qiáng)算法處理后,圖像直方圖峰值均不同程度地向高灰度級方向移動;采用CLAHE 算法對MSR 算法結(jié)果進(jìn)行疊加處理,能夠進(jìn)一步使灰度級延伸到整個(gè)灰度范圍,表明改進(jìn)算法在擴(kuò)大動態(tài)范圍上效果明顯。
在增強(qiáng)效果的客觀評價(jià)方面,本文分別利用峰值信噪比(peak signal to noise ratio,PSNR)、結(jié)構(gòu)相似性(structural similarity index measure,SSIM)和信息熵(information entropy,IE)[19-20]來表征噪聲抑制效果、輪廓邊緣保護(hù)能力和圖像細(xì)節(jié)信息豐富程度,評價(jià)結(jié)果如表1 所示。
表1 圖像增強(qiáng)質(zhì)量客觀評價(jià)指標(biāo)Table 1 Objective evaluation indicators for image enhancement quality
由表1 可知,本文算法的PSNR、SSIM 和IE 指標(biāo)值較其他兩種算法均有一定程度提高,這表明在雙邊濾波+MSR 增強(qiáng)基礎(chǔ)上,通過加入CLAHE 拉伸處理能夠進(jìn)一步提升動態(tài)范圍,減少細(xì)節(jié)損失,恢復(fù)出更多的低照度信息,從而驗(yàn)證了本文算法的有效性。
下頁圖8 為本文算法在FPGA 上實(shí)現(xiàn)的效果,共選取4 組不同場景進(jìn)行對比,其中圖8(a)為直接輸出圖像,圖8(b)為本文算法增強(qiáng)圖像。
圖8 圖像增強(qiáng)輸出效果圖Fig.8 The output effect images of image enhancement
由圖8 可直觀地看到,經(jīng)過本文算法的增強(qiáng)處理后,夜間圖像亮度和對比度得到了較大提升,淹沒于低灰度區(qū)域的局部細(xì)節(jié)信息顯露出來,目標(biāo)圖像更為清晰,植被層次感更為豐富,可視性得到改善。需要注意的是,在第4 組場景中,由于存在強(qiáng)光源干擾,使得源圖像局部區(qū)域灰度已經(jīng)飽和,本文算法難以恢復(fù)出亮暗程度。
4 種場景增強(qiáng)效果的客觀評價(jià)結(jié)果如表2 所示,除PSNR、SSIM、IE 評價(jià)指標(biāo)外,本文還利用圖像處理幀速(frame rate,F(xiàn)R)對算法運(yùn)行的實(shí)時(shí)性進(jìn)行了評估,單位為ms/幀。為便于比較,表中對應(yīng)列出了由PC 機(jī)處理的評價(jià)結(jié)果。
表2 ZYNQ 與PC 機(jī)圖像增強(qiáng)評價(jià)指標(biāo)對比Table 2 Comparison of image enhancement evaluation indicators between ZYNQ and PC
由表2 可知,算法在ZYNQ 平臺與PC 機(jī)下的圖像增強(qiáng)效果比較接近,各類指標(biāo)值相差不大于10%,且PC 機(jī)處理效果略好。分析其主要原因?yàn)椋簽楸阌谙到y(tǒng)時(shí)鐘管理和避免消耗過多資源,硬件方案將浮點(diǎn)運(yùn)算轉(zhuǎn)換為定點(diǎn)加乘法運(yùn)算,從而損失了部分對數(shù)域運(yùn)算精度。從處理的實(shí)時(shí)性看,PC 機(jī)圖像處理幀速在百毫秒(ms)級以上,而ZYNQ 利用FPGA+ARM 異構(gòu)架構(gòu)及AXI 總線的高帶寬,使得處理一幀圖像僅占用幾個(gè)毫秒(ms),二者相差近50倍,因此,后者處理速度極占優(yōu)勢。
本文基于改進(jìn)的多尺度Retinex 圖像增強(qiáng)算法,利用ZYNQ 異構(gòu)架構(gòu)平臺,實(shí)現(xiàn)了低照度圖像增強(qiáng)的硬件化。仿真分析和平臺實(shí)驗(yàn)表明,測試平臺在圖像邊緣信息保留、噪聲抑制、圖像對比度和亮度提升等方面均有良好表現(xiàn),硬件化效果與仿真增強(qiáng)效果基本一致,且單幀圖像處理速度較PC 機(jī)有明顯優(yōu)勢,可完全滿足未來頭戴夜視系統(tǒng)低照度環(huán)境的使用需求。