張建飛 馬善強(qiáng)
摘 要:該文介紹一種可見光圖像增強(qiáng)算法的FPGA實(shí)現(xiàn)方法,該方法針對(duì)霧霾天氣或低對(duì)比度天氣等條件下圖像灰度分布范圍窄的問題,利用圖像處理系統(tǒng)中FPGA組件實(shí)現(xiàn)圖像增強(qiáng)。視頻圖像數(shù)據(jù)流通過專用的接口芯片轉(zhuǎn)換后傳輸給FPGA,F(xiàn)PGA內(nèi)部程序通過時(shí)鐘控制、圖像緩存完成灰度信息統(tǒng)計(jì)和圖像灰度拉伸,同時(shí),多模塊并行處理數(shù)據(jù)完成圖像數(shù)據(jù)采集和圖像數(shù)據(jù)處理,實(shí)時(shí)實(shí)現(xiàn)圖像的增強(qiáng),達(dá)到霧霾天氣條件下提升可見攝像機(jī)作用距離和目標(biāo)識(shí)別能力的目的。
關(guān)鍵詞:FPGA 圖像增強(qiáng) 去霧 FIFO RAM
中圖分類號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2017)01(c)-0242-02
隨著數(shù)字成像技術(shù)的發(fā)展,圖像信息的獲取在現(xiàn)代工業(yè)和軍事活動(dòng)中具有重要作用,攝像機(jī)需要在各種天氣條件下都能提供探測(cè)識(shí)別性能高的圖像,提高攝像機(jī)觀測(cè)識(shí)別距離和細(xì)節(jié)分辨能力一直是工程實(shí)踐努力的方向[1],特別是在能見度低、對(duì)比度差的霧霾天氣條件下,提升可見光攝像機(jī)作用距離是必須突破的技術(shù)難點(diǎn)。
1 算法原理
在大量的圖像處理仿真中發(fā)現(xiàn),霧霾天氣下圖像的灰度級(jí)統(tǒng)計(jì)特點(diǎn)是灰度值集中在灰度級(jí)很窄的中間部分,而高對(duì)比度圖像的灰度級(jí)統(tǒng)計(jì)特點(diǎn)是灰度在整個(gè)灰度級(jí)上分布比較均勻[2-3]。在霧天拍攝的圖像一般偏灰白且對(duì)比度低,如果能實(shí)現(xiàn)霧霾圖像的灰度均勻的分布在各個(gè)灰度級(jí)上,既能夠提升圖像對(duì)比度,又能增強(qiáng)圖像的色彩[4]?;诖?,通過直方圖均衡化來拉伸有霧圖像灰度,算法如公式(1)、(2)所示:
(1)
式(1)中,Pi為灰度i在圖像中出現(xiàn)的統(tǒng)計(jì)概率,為0~1的浮點(diǎn)數(shù),hi為圖像中灰度i的像素統(tǒng)計(jì)數(shù)量,T為灰度閾值參數(shù)。
(2)
式(2)中,Pk為第k灰度級(jí)灰度累積概率,為0~1的浮點(diǎn)數(shù)。由于FPGA器件做浮點(diǎn)運(yùn)算需要占用大量的邏輯和存儲(chǔ)資源,故把計(jì)算公式進(jìn)行了優(yōu)化,在不影響計(jì)算結(jié)果的情況下,把計(jì)算順序進(jìn)行了調(diào)整,調(diào)整后全部為定點(diǎn)運(yùn)算,避免了浮點(diǎn)運(yùn)算,為FPGA內(nèi)部時(shí)鐘規(guī)劃和布線減少了麻煩,其中(2)式中的N為灰度級(jí)數(shù),m、n為圖像尺寸大小, Xk為當(dāng)前輸出幀圖像映射后的灰度結(jié)果。
通過仿真發(fā)現(xiàn),霧天下的圖像灰度進(jìn)行拉伸后,霧霾特性有很大的改善,為了進(jìn)一步提升圖像質(zhì)量,增加了邊緣增強(qiáng)算法來銳化圖像[5-6]。邊緣增強(qiáng)算法如公式(3)所示:
其中0 (3)式中xij為x22相鄰區(qū)域的灰度值,式5中aij為高通濾波矩陣中的系數(shù)。 X22為高通濾波后的灰度值,由灰度矩陣和系數(shù)矩陣卷積得來X22即為最后輸出的灰度值。針對(duì)可見光攝像機(jī)采集的彩色圖像,算法分別對(duì)采集到的RGB分量同時(shí)進(jìn)行同樣的處理,處理后對(duì)RGB分量進(jìn)行組合,得到處理后的采集圖像。 2 算法FPGA實(shí)現(xiàn) 在軟件編程時(shí)經(jīng)常使用數(shù)組結(jié)構(gòu),如果在FPGA中直接定義數(shù)組,非常消耗資源,尤其是當(dāng)數(shù)組位寬較大時(shí),該設(shè)計(jì)需要定義256級(jí)灰度、17位寬數(shù)組,這將消耗近10 000個(gè)LE單元,一個(gè)模塊消耗了該器件的1/10的邏輯資源,這在設(shè)計(jì)中是不允許的。該圖像處理系統(tǒng)采用StrixⅢ系列FPGA中有512 bit、4 Kbit、512 Kbit的M-RAM,可以根據(jù)實(shí)際需要組成各種數(shù)組類型的結(jié)構(gòu),可以很好的處理這類問題。該設(shè)計(jì)采用FPGA內(nèi)部開辟了兩個(gè)單端口RAM,實(shí)現(xiàn)統(tǒng)計(jì)和映射數(shù)據(jù)的并行存取,實(shí)現(xiàn)過程主要以RAM讀寫和時(shí)序控制為核心,其中灰度統(tǒng)計(jì)量存入RAM1中,一幀圖像傳輸完整后得到完整的灰度統(tǒng)計(jì)量,通過計(jì)算后,把映射表灰度值按照灰度級(jí)寫入RAM2中,即完成映射表的建立,為下一幀圖像來臨創(chuàng)建灰度映射的數(shù)據(jù)庫。當(dāng)數(shù)據(jù)來臨時(shí),以數(shù)據(jù)流中當(dāng)前像素灰度為索引地址,查找映射表中拉伸后的相應(yīng)灰度,作為處理后像素灰度輸出,完成灰度拉伸。RAM的接口和深度如圖3所示,對(duì)于灰度像素?cái)?shù)量統(tǒng)計(jì)RAM來說n=m=11,對(duì)于灰度拉伸映射RAM,其中的n=m=7。見圖1,圖2。 如圖2所示的FPGA處理時(shí)序,其中clk為像素時(shí)鐘,data為像素灰度數(shù)據(jù),addr為寫統(tǒng)計(jì)數(shù)據(jù)hi對(duì)應(yīng)的RAM地址,實(shí)際上是data延時(shí)四個(gè)時(shí)鐘得到,如圖3所示,第一個(gè)時(shí)鐘用灰度數(shù)據(jù)1讀取對(duì)應(yīng)的灰度統(tǒng)計(jì)值h1,第二個(gè)時(shí)鐘用得到的h1和閾值T比較,計(jì)算統(tǒng)計(jì)量h1是否需要加1,第三個(gè)時(shí)鐘周期得到新的統(tǒng)計(jì)值h1存入地址1,第四個(gè)時(shí)鐘周期1對(duì)應(yīng)的灰度統(tǒng)計(jì)值已經(jīng)存入,準(zhǔn)備下個(gè)循環(huán),由程序控制四個(gè)時(shí)鐘存儲(chǔ)一次。如此設(shè)計(jì),首先保證了RAM讀寫不會(huì)沖突,其次,統(tǒng)計(jì)量雖然不是整幅圖像,但是是基于整幅圖像的均勻采樣,可以保證算法的正確性,同時(shí)也簡(jiǎn)化了處理流程。 對(duì)灰度拉伸處理后的圖像再進(jìn)行細(xì)節(jié)增強(qiáng),高通濾波矩陣實(shí)現(xiàn)過程如圖3所示,每個(gè)FIFO的地址長(zhǎng)度為圖像的寬度減2,即一個(gè)FIFO加2個(gè)寄存器存儲(chǔ)一行圖像數(shù)據(jù),用于圖像行數(shù)的緩存;在一個(gè)像素時(shí)鐘周期內(nèi)并行輸出9個(gè)數(shù)據(jù)作為后續(xù)算法模塊的輸入,用高通濾波矩陣對(duì)該像素灰度進(jìn)行濾波,得到處理后的結(jié)果替換該像素灰度,通常圖像邊緣不包含重要信息,可以將邊緣點(diǎn)不做處理,用原始值代替,至此完成圖像的增強(qiáng)。 3 試驗(yàn)及分析 該功能搭載攝像機(jī)系統(tǒng)進(jìn)行調(diào)試,完成軟硬件與系統(tǒng)各組件聯(lián)試,通過以往的經(jīng)驗(yàn)和不斷的摸索試驗(yàn),完成在不同天氣條件下的測(cè)試和參數(shù)調(diào)整,得到了一套適合FPGA計(jì)算的適應(yīng)性較好的閾值參數(shù)和濾波系數(shù)矩陣。見圖4~圖6。 前期在上位機(jī)做了大量仿真,得到了有效的實(shí)驗(yàn)結(jié)果,圖4為算法仿真效果,左邊為原始圖像,右邊為增強(qiáng)后圖像;該功能也完成了與攝像機(jī)聯(lián)試,并經(jīng)歷內(nèi)外場(chǎng)景試驗(yàn),試驗(yàn)數(shù)據(jù)都獲得了比較滿意的結(jié)果,圖5、圖6為不同場(chǎng)景試驗(yàn)效果,左邊為原始視頻圖像,右邊為增強(qiáng)后視頻圖像。 圖像處理系統(tǒng)采用大規(guī)模可編程邏輯器件(FPGA)實(shí)現(xiàn)的算法,與采用純DSP實(shí)現(xiàn)算法相比,具有同時(shí)并行大數(shù)據(jù)量處理能力,數(shù)據(jù)處理總延遲80 us。從試驗(yàn)的結(jié)果可以看出,增強(qiáng)前圖像被霧霾遮擋,模糊不清,對(duì)比度不高,增強(qiáng)后圖像細(xì)節(jié)明顯,整體對(duì)比度明顯改善,觀察效果明顯增強(qiáng),實(shí)驗(yàn)中數(shù)據(jù)流穩(wěn)定可靠,沒有丟幀和卡頓等情況,實(shí)時(shí)性和可靠性滿足要求。
4 結(jié)論
采用該圖像增強(qiáng)算法處理的圖像處理系統(tǒng)隨設(shè)備全部通過試驗(yàn),試驗(yàn)過程中,在圖像輸出、增強(qiáng)效果、天氣適應(yīng)性等功能的測(cè)試中進(jìn)行了嚴(yán)格的考核,目前已經(jīng)應(yīng)用于工程中。該方法利用FPGA實(shí)現(xiàn)了復(fù)雜圖像處理算法,保證了系統(tǒng)圖像處理實(shí)時(shí)性,進(jìn)一步解放了DSP來做更重要的處理,優(yōu)化了系統(tǒng)硬件平臺(tái)。試驗(yàn)有效證明了該方法可行、系統(tǒng)工作穩(wěn)定,實(shí)時(shí)精度高、能夠?qū)崿F(xiàn)對(duì)霧霾天氣下視頻圖像較好增強(qiáng),提高了觀測(cè)距離和目標(biāo)識(shí)別能力,滿足可見光觀測(cè)設(shè)備規(guī)定的功能要求。
參考文獻(xiàn)
[1] 李紅民,王炬,郭蕾.國(guó)外武裝直升機(jī)光電系統(tǒng)的發(fā)展動(dòng)態(tài)[J].電光與控制,2005,12(1):86-89.
[2] 王炳健, 劉上乾, 拜麗萍.紅外圖像實(shí)時(shí)增強(qiáng)的新算法[J].光電工程, 2006, 33(1):46-49.
[3] 范永杰,金偉其,劉崇亮,等.基于FPGA的IRFPA圖像細(xì)節(jié)增強(qiáng)與動(dòng)態(tài)壓縮處理技術(shù)[J].紅外與激光工程,2012, 41(11):3113-3117.
[4] Ravi Kumar Chadalavada, Srivatsa S.K. Reconfigurable Frame Work for Video Image Enhancement[C].IACSIT. Proceedings of 2012 4th International Conference on Signal Processing Systems(ICSPS 2012).IACSIT, 2012:6.
[5] Ravi Kumar Chadalavada, Srivatsa S.K. Reconfigurable Frame Work for Video Image Enhancement[C].IACSIT.Proceedings of 2012 4th International Conference on Signal Processing Systems(ICSPS 2012).IACSIT, 2012:6.
[6] ZHANG Zhen-hai, LI Ke-jie, etc.Research and Implementation of Algorithm for Image Enhancement and Unwrapped Distortion Correction for SLVF Panoramic Night Vision Image[J].Journal of Beijing Institute of Technology, 2008,4(4):423-428.