喬 鑫,萬 毅
(1. 蘭州大學 信息科學與工程學院,甘肅 蘭州 730000;2. 蘭州大學 信息科學與工程學院,信息與通信工程研究所,甘肅 蘭州 730000)
圖像增強技術主要用于改善圖像的質量,增強視覺效果,突出圖像中的重要信息,獲得更加清晰并且可使用的圖像[1]。隨著夜間環境下工作以及生活場景的增多,為了讓視覺設備在此環境下獲得高質量的圖像,圖像增強變得尤為重要。現場可編程門陣列(FPGA)內部擁有豐富的硬件資源。相比于數字信號處理器(DSP),具有高速的并行處理能力,可以實現實時性處理,提高圖像增強處理效率[2-3]。FPGA 的優越性,使其更方便、更高效地實現軟件算法以及算數運算,擁有靈活性高、通用性強和開發周期短等優點[4],所以使用FPGA 作為圖像增強的硬件實現,變得越來越廣泛。通常FPGA 實現圖像增強要進行較多處理,如邱永生采用圖像融合[5],武繼瑞采用直方圖均衡化[6]實現圖像增強。兩者方法的處理過程復雜且使用了較多的FPGA 內部資源。因此,本文提出新的方法,采用ALINX FPGA 開發平臺AX545 結合模擬電路,可以實現自適應實時圖像增強,在保證效果的同時,縮短了開發周期,減小了開發難度和成本,并擁有更廣泛、更靈活的應用場景。
圖1 為夜景增強系統結構框圖。它主要由視頻采集模塊、程控放大模塊、視頻解碼模塊、FPGA 模 塊、D/A 模 塊、DDR3 存 儲 模 塊 以 及VGA 顯示器組成。

圖1 系統結構框圖Fig.1 System structure block diagram
模擬攝像頭用于采集圖像,AD603 對模擬視頻信號放大,TVP5150 對模擬視頻信號解碼,FPGA 對圖像預處理、實現自適應算法并控制D/A 調 節AD603 放 大 倍 數,DDR3 緩 存 圖 像,VGA 顯示增強效果。
該系統的基本工作原理為:通過模擬攝像頭獲取模擬視頻信號并傳輸給程控放大模塊。
程控放大模塊通過輸入增益控制電壓來調節其放大倍數,對模擬視頻信號進行放大調節,并將放大后的模擬視頻信號傳輸給視頻解碼模塊。
視頻解碼模塊解碼模擬視頻信號,輸出ITU-R BT.656 格式數據,并將其傳輸給FPGA模塊。
FPGA 模塊從ITU-R BT.656 格式數據中提取有效視頻數據以及同步信號,修改圖像分辨率,對視頻進行插幀,得到分辨率為640×480、60 幀/s 的視頻數據。對圖像進行灰度變換,通過每兩幀圖像參數計算出新一幀的放大倍數A,并傳輸給D/A 模塊。
D/A 模塊將A轉換成模擬量傳輸給程控放大模塊的增益控制端,來改變每幀圖像的放大倍數,使其平均灰度值穩定在閾值附近。
VGA 控制模塊讀取增強后圖像數據,生成視頻時序控制VGA 進行實時顯示。
DDR3 存儲模塊進行圖像的緩存,生成DDR3 控制信號和突發讀/寫信號。
2.2.1 環境條件
本系統使用模擬攝像頭采集圖像,圖像均為電壓信號。在拍攝環境光照非常弱或無光的情況下,模擬攝像頭輸出的電壓幅值幾乎是直線,即像素間對應的模擬電壓幅值相差很小。在此情況下,對模擬視頻信號放大,只是將信號幅值進行了搬移,并沒有放大像素之間的差異。對無光場景進行手動放大,結果表現為圖像整體變亮,但沒有增加圖像細節。實驗效果如圖2所示。

圖2 無光環境增強效果Fig.2 Matte environment enhancement effect
對以上場景,添加微光再進行手動放大,實驗結果表現為圖像整體變亮,并增加了圖像細節,實驗效果如圖3 所示。

圖3 弱光環境增強效果Fig.3 Low-light environment enhancement effect
結果表明,若場景光照非常弱或無光,則放大圖像中缺失細節。若場景中有微光或低照度場景,則增強效果明顯。
2.2.2 預期圖像平均灰度值
對系統實現手動放大測試中,可將場景分為整體顏色偏暗、適中以及偏亮3 種。如圖4 所示,放大到可以清晰觀察到細節時,測得(a)、(b)、(c)圖的平均灰度值分別在40,80,120 左右。
如圖4(a)所示,對于整體顏色偏暗的場景,放大到能看清細節時圖像平均灰度值較小;如圖4(b)、(c)所示,對于整體顏色適中、偏亮的場景,放大到能看清細節時圖像的平均灰度值可以達到一個較大的值。故為了使更多的場景達到較好的增強效果,設置系統的預期圖像平均灰度值為80。當系統將原圖像平均灰度值調節到預期平均灰度值附近時,對于整體顏色偏暗的場景可以更好地增加圖像細節和提升亮度,對于整體顏色偏亮的場景可以避免圖像過亮而喪失一些細節,最終使整個系統能實現較好的增強效果。

圖4 不同場景增強效果Fig.4 Different scene enhancement effects
程控放大模塊的核心是ADI 公司的AD603芯片,它具有低噪聲、低畸變、帶寬可選、增益可調等特性。將其5、7 引腳短接,可選擇帶寬為90 MHz,增益范圍為-10~30 dB[7-8]。AD603 的輸入增益控制電壓差在-500~500 mV 間與增益成線性關系,其關系如式(1)所示[9]。

其中VG是施加的增益控制電壓差,G0為起始增益。
視頻解碼模塊的核心是TI 公司的TVP5150芯片,具有超低功耗、封裝小等特性。使用14.318 18 MHz 時鐘就可以實現NTSC/PAL/SECAM 各種制式視頻的解碼。它支持兩路復合信號或一路S-video 視頻信號輸入。輸出格式一種是8 位圖像信號,同步信號分離輸出;一種是同步信號內嵌于圖像信號中的ITU-R BT. 656 格式數據[10-11]。
FPGA 模塊的核心是Xilinx 公司Spartan-6系列的XC6SLX45-2CSG324 芯片。該芯片內部具有43 661 個邏輯單元、401 kb 的可配置邏輯塊、58 個DSP48 乘法器、4 個時 鐘單元、2 088 kb的Block RAM,最多218 個可用I/O 口。同時板上還有Camera 接口、DDR3 存儲器、外部擴展接口、VGA 接口等。其豐富的板上資源可以滿足本文設計的所有需求。FPGA 采用+5 V 電源供電,視頻解碼模塊與D/A 模塊均采用板上電源供電。FPGA 使用IIC 協議通過外部接口配置TVP5150 芯片進行通信和數據傳輸。FPGA 生成外部時鐘通過外部接口控制D/A 模塊正常工作,將算得的放大倍數轉換成模擬電壓傳輸給AD603 芯片。FPGA 生成VGA 時序通過VGA接口控制顯示器正常工作,并將最終的圖像增強效果在屏幕上顯示。
從ITU-R BT.656 格式數據中提取有效視頻數據和同步信號是后續處理的前提。ITUR BT.656 格式定義如圖5 所示[12]。

圖5 ITU-R BT.656 格式定義[12]Fig.5 ITU-R BT.656 format definition
有效數據的提取,關鍵在于SAV 和EAV 標志的檢測。通過特定的3 個字節FF、00、00,來定位,并通過最后一個字節XY來區分兩者。當V=0 時表示該行數據有效,當V=1 時表示該行數 據 無 效。H=0 時 為SAV 標 志,H=1 時 為EAV 標志。XY的定義格式如表1 所示[13]。

表1 XY 字節格式定義[13]Tab.1 XY byteformat definition
圖像預處理模塊的結構框圖如圖6 所示。有效數據提取模塊負責檢測SAV 和EAV 標志,通過兩個標志信號得到同步信號,在兩者之間提取圖像數據。如圖5 所示,根據圖像數據的排列規律,通過兩位信號Flag 對圖像數據Y、Cb、Cr通道進行標定。Flag=00 代表此時傳輸Cb通道值;Flag=10 代表此時傳輸Cr通道值;Flag[0]=1 代表此時傳輸Y通道值。對先提取到的數據進行延時處理,保證同一個像素點的三通道值對齊,避免圖像數據的錯誤傳輸。色彩空間轉換模塊將得到的YCbCr 空間域像素值轉換到RGB 空間域,轉換公式如下[14-15]:

圖6 圖像預處理模塊Fig.6 Image preprocessing module

FPGA 直接對浮點數運算比較困難,將公式(2)化簡,得到FPGA 容易運算的形式。化簡后的公式如式(3)所示:

分辨率修改模塊負責將每幀720×288 分辨率的圖像修改為640×480 分辨率。截取每行中間640 個像素,并且只獲取前240 行存入DDR 中。在讀取數據時對每行數據進行重讀可擴展為480 行,實現每幀圖像分辨率修改為640×480。視頻插幀模塊負責對提取的視頻流進行插幀處理。圖像寫入DDR 的頻率為50 幀/s,讀出頻率為60 幀/s。寫入5 幀與讀出6 幀所用時間相同,對DDR 存儲區域進行劃分,結合乒乓操作思想,每緩存5 幀則進行讀取。在讀取完第5 幀圖像數據時,對第5 幀圖像數據重讀,實現5 幀擴6 幀,1 s 內便可實現50 幀擴60 幀操作。緩沖區為劃分DDR 內部存儲區域實現,故不會占用RAM 資源。
自適應算法是實現系統自適應調節的關鍵,每幀圖像的平均灰度值為評估圖像亮度的依據。灰度值計算公式如式(4)所示[16]:

系統初始放大倍數為1,自適應算法公式如式(5)~(7)所示:

式中:y'k為第k幀原圖像放大后圖像的平均灰度值,yk為第k幀原圖像的平均灰度值,y為增強后圖像的預期平均灰度值,gk-1為通過第k-1 幀得到的第k幀的放大倍數。如式(5)所示,第k幀原圖像乘以放大倍數gk-1就是第k幀放大后的圖像,其平均灰度值接近于y。同理第k+1 幀原圖像乘以第k幀得到的放大倍數gk就是第k+1 幀放大后的圖像,其平均灰度值也接近于y。以此類推可得到,通過當前幀的y'和上一幀的g得到下一幀的g,如式(7)所示。每幀計算出的g均要存儲,參與下一幀的運算。最終將此關系應用到所有幀,便可達到實時的自適應調節。自適應算法模塊結構框圖如圖7 所示。

圖7 自適應算法模塊Fig.7 Adaptive algorithm module
在黑暗環境下,使用低照度光源的不同光強照射拍攝場景的情況,用本系統實時進行拍攝,并將增強效果在VGA 上顯示。增強效果如圖8所示。

圖8 圖像增強效果Fig.8 Image enhancement effect
圖8 中(a)、(b)分別為低照度光源2/8 光強照射場景下的原始圖像和增強后的圖像,觀察到增強效果較不明顯。圖8 中(c)為3/8 光強下增強的圖像,發現效果明顯,細節突出。
圖像的自適應增強結果如圖9 所示。隨著光強的逐漸增大,拍攝到的原圖像越來越清晰,同時系統的放大倍數也在自動調節逐漸變小,對于場景的變化達到自適應調節,最終增強后圖像的平均灰度值逐漸穩定在所設閾值附近。實物如圖10 所示。

圖9 自適應增強效果Fig.9 Adaptive enhancement effect

圖10 系統實物圖Fig.10 System physical image
FPGA 實現整個系統的資源使用如表2所示。

表2 FPGA 資源使用情況Tab.2 Usage of FPGA resource
將本文方法與圖像融合和直方圖均衡化兩種方法的FPGA 內部資源使用進行對比,進一步突出了本文系統的優勢。比較結果如表3 所示。從表3 可以看出,圖像融合和直方圖均衡化兩種方法會使用較多的FPGA 內部邏輯資源。故本文方法使用更少的FPGA 內部資源,降低了開發成本和難度。

表3 FPGA 資源使用對比Tab.3 Usage comparison of FPGA resource
在實際應用中,為了防止系統對光照非常弱或無光環境的過度放大,對系統設定17 dB 的放大上限,避免如圖2 中無意義的增強。同時圖像增強效果會受到實際芯片性能、D/A 數模轉換芯片存在的偏移現象,甚至環境因素的影響。在系統設計中,盡管會使用屏蔽線等措施進行改善,但依舊會存在誤差。
對于圖像增強,本文提出了FPGA 結合模擬電路的自適應夜景增強系統。通過硬件電路實現對模擬視頻信號的放大。使用IIC 總線配置TVP5150 視頻解碼芯片,將模擬視頻信號轉換為數字視頻信號。對ITU-R BT. 656 格式數據進行處理,得到有效視頻數據以及同步信號。用自適應算法和D/A 數模轉換電路控制AD603 芯片,最終實現系統的自適應實時夜景增強。本文方法縮短了開發周期,降低了開發難度和成本,同時經過本系統增強圖像后,增加了圖像細節和圖像對比度,使得拍攝到的畫面更加清晰,改善了拍攝畫面的圖像質量。實驗結果表明,本系統具有成本低、實時性強以及自適應調節等特點,能夠很好地應用在目標檢測及監控等領域。