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