国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

暗通道先驗去霧算法的改進及FPGA實現

2016-09-05 02:15:19劉光飛胡遼林
西安理工大學學報 2016年1期
關鍵詞:透射率先驗全局

劉光飛,胡遼林

(西安理工大學 機械與精密儀器工程學院,西安 710048)

?

暗通道先驗去霧算法的改進及FPGA實現

劉光飛,胡遼林

(西安理工大學 機械與精密儀器工程學院,西安 710048)

隨著數碼設備的普及和消費類電子產品對高品質成像的強烈需求,對圖像進行實時修復就成為一個迫切問題。為了對有霧圖像進行實時高速去霧處理,在保證去霧效果的前提下,在暗通道去霧算法的基礎上,提出了用閾值比較的方法獨立求解三個通道的全局大氣光,及圖像邊緣部分和非邊緣部分分開處理的方法快速有效地獲取透射系數。實驗結果表明,改進后算法在FPGA上實現,可恢復出清晰圖像,并將處理速度大幅提高到毫秒級,可以滿足實時處理的要求,為實現實時去霧系統提供了一種可靠、有效的方案。

暗通道;去霧;FPGA;實時

在視頻監(jiān)控、攝像、導航控制、目標跟蹤等技術領域,都涉及對有霧圖像的處理。在霧霾等惡劣天氣下物體的反射光在大氣中發(fā)生散射和吸收,導致獲取的圖像不清晰,信息丟失,可視性差,色彩淡化。隨著數碼設備的普及和消費類電子產品對高品質成像的強烈需求,對圖像進行實時修復就成為一個迫切問題。

由于霧霾問題的特殊性,目前大多數都是從算法出發(fā)通過軟件對圖像去霧。一些算法已經獲得了很好的去霧效果,如在亮度分量上進行多尺度Retinex處理的去霧算法[1-2]、雙邊濾波去霧算法[3]、基于已知景深模型的去霧算法[4]。這些算法都需要一些特定的先驗信息,不利于系統的整體實現,也不利于實際應用中硬件實現。對于單幅圖像的快速去霧也有不少學者在研究,如利用中值濾波及導向濾波細化透射率的去霧算法[5]、僅利用均值濾波估計全局大氣光的快速去霧算法[6]、對大氣散射模型簡化后的快速去霧算法[7-8]、基于邊界鄰域最大值濾波的去霧算法[9]、利用快速雙邊濾波保持邊緣特性的去霧算法[10-11]、分割不同霧濃度區(qū)域獲取大氣光的快速去霧算法[12]。這些算法速度相對較快,但仍達不到實時處理的需求,或者滿足不了對視頻處理的要求。文獻[13]利用暗通道先驗理論求出粗略的大氣透射率,然后結合軟摳法(soft matting)得到了比較細膩的透射率,去霧效果較為顯著,但該算法軟件運算復雜度較高,運算速度較慢,無法滿足實時處理的要求。

鑒于FPGA的流水線操作、并行性強、易于系統模塊化實現等特點,本文采用Verilog硬件描述語言在FPGA芯片上對文獻[13]的暗通道先驗去霧算法進行實現。在原算法基礎上,提出了用閾值比較方法獲取三個通道的全局大氣光,邊緣部分和非邊緣部分分開處理獲取透射系數,得到了較好的結果,將處理速度大幅提高到毫秒級,可以滿足實時處理的要求。

1 暗通道先驗算法

暗通道先驗去霧算法是對有霧圖像的霧濃度進行準確估計,從而達到去霧的目的。在計算機視覺和計算機圖形學中,通常采用下面的物理模型來描述霧霾天氣對圖像造成的影響,該模型表達式為:

I(x)=J(x)e-rd(x)+A[1-e-rd(x)]

(1)

式中,I(x)為有霧圖像,J(x)為恢復后的無霧圖像,r表示大氣散射系數,d表示景物深度,A表示全局大氣光。

用介質透射率t(x)來替換指數衰減項e-rd(x),即:

(2)

將式(2)代入式(1)得:

(3)

式(3)中I(x)已知,現求解目標值J(x)。

假設圖像尺寸為N,公式(3)有3N個已知量,4N+3個未知量,它有無數個解,是病態(tài)問題。求解病態(tài)問題的一個常用方法是對未知量添加先驗信息,縮小解空間的維度。將式(3)變形得:

(4)

式中上標c表示R(紅)、G(綠)、B(藍)三個通道。

(5)

其中Ω(x)表示x的一個鄰域。

暗通道先驗是指在無霧圖像中景物的陰影或投影以及色彩鮮艷的物體表面區(qū)域,總有某些像素在至少一個通道的值很低,且趨于零,即:

(6)

可得:

(7)

把式(7)代入式(5)得:

(8)

晴朗天氣時,少量霧的存在從視覺上能使人感覺到景深的存在,在去霧的同時應該保留少量霧,以維持人眼對遠景的真實感。這可以通過引入因子ω(0<ω≤1)達到保留少量霧的效果,則式(8)修正為

(9)

上述討論假設全局大氣光A是已知的,而實際中,A值是通過暗通道獲取的。在暗通道中提取最亮的前0.1%個像素點,在原始有霧圖中尋找這些點相應位置上的具有最高亮度的點,并以這些點像素值作為A值??紤]到當透射率t(x)值趨近于零時,恢復出來的圖像容易產生噪聲,于是設置閾值t0,當t(x)值小于t0時,令t(x)=t0,通常取t0為0.1。

如果上述所有未知量均已求出,可以恢復出無霧圖像,恢復公式如下:

(10)

2 暗通道先驗算法的改進及FPGA實現

利用暗通道算法去霧系統框圖如圖1所示。首先將一幅彩色有霧圖像的R、G、B三個通道分別存入三個大小相同的只讀存儲器(ROM)中,由同一個地址發(fā)生器提供地址,同時按照相應地址讀出每個像素值進行最小值濾波,再取三個通道最小值濾波后的最小值,即為暗通道;再由暗通道和原圖共同求出全局大氣光A;然后再由大氣光A、暗通道以及原圖求出透射率t(x);最后由透射率t(x)、大氣光A以及原圖恢復出無霧圖像。

2.1暗通道的實現

暗通道的獲取中最重要的是實現最小值濾波,而最小值濾波需要產生3×3模板,再對模板中的9個像素值取最小值。3×3模板的形成框圖如圖2所示,ROM_X為任意通道的像素數據,像素數據依次輸入到兩個行緩沖器(Line buffer)中,由讀寫控制器(R&W controller)控制行緩沖器的讀寫信號在特定時間讀寫像素數據,經過列延時(Delay)之后形成3×3模板,該模板中的9個像素值經過最小值濾波后輸出到下一模塊處理。

圖1 去霧硬件框圖Fig.1 Block diagram of dehazing system

圖2 3×3模板形成框圖Fig.2 Block diagram of 3×3 template

行緩沖器使用FIFO(First In First Out)實現,其作用是讓先輸入的數據先輸出,以流水線的方式傳輸,保證數據順序不混亂。兩個緩沖器同時工作時,可以實現對前兩行數據的緩沖。當第一行數據到來時先寫入行緩沖器2;第二行數據到來時,行緩沖器1寫入第一行數據同時行緩沖器2讀入第二行數據;第三行數據到來時,三個數據輸出口同時輸出三行數據,通過列延時截取每行數據的前三個數據形成濾波模板。

本文選用4幅圖像,即河流、南瓜、花和草叢來做研究,分別用MATLAB和FPGA處理得到的暗通道見圖3。由圖3可知,在相同的濾波半徑下,由MATLAB和FPGA得到的暗通道幾乎沒有差異。

圖3 由MATLAB和FPGA得到的暗通道對比Fig.3 Comparison of dark channels by MATLAB and FPGA

2.2全局大氣光A的實現

文獻[13]中提取暗通道中亮度最高的0.1%點,將這些點在原始有霧圖像中相應位置的亮度值作對比,得到亮度最大的值作為全局大氣光A。而本文重點在硬件實現,數據以流水線方式在各個模塊間傳輸,無法預先確定亮度最高的0.1%點,并且在獲取暗通道所有數據之后進行對比排序,運算過程復雜。即使實現了也會耗費大量的邏輯資源和處理時間,無法滿足實時性要求。

基于上述原因,要完成全局大氣光A的硬件實現,必須對算法進行改進。首先設定一個閾值,在暗通道中小于該閾值的點舍棄,對于大于該閾值的點,在原始有霧圖像各通道中尋找對應位置上像素值作對比,如果大于原像素值則將該值作為A值,否則取暗通道中的值。如此重復比較,每個通道中若當前一個A值小于后一個,則當前A值將被后一個值取代,只有將整個暗通數據送入全局大氣光A計算模塊,才能將最終確定出的值作為每個通道的全局大氣光A。

進行三個通道獨立并行運算以獲得每個通道的全局大氣光A,有利于系統的構成以及模塊化設計,在對恢復結果沒有影響的前提下簡化了硬件電路設計。Modelsim仿真圖如圖4所示,三個通道獨立計算各自的全局大氣光A_r、A_g、A_b,隨著暗通道的輸入各通道的A值逐漸增大,最終當整個暗通道輸入后取到最大值,將該值作為全局大氣光A值。不同于文獻[13]只確定一個全局大氣光,本文將其引入三個通道得到各通道的全局大氣光。

圖4 全局大氣光A仿真結果Fig.4 Simulation result of A

2.3透射率t(x)的實現

得到暗通道以及全局大氣光A之后,可求透射率。如果直接采用最小值濾波之后得到的暗通道,獲得的透射率圖很粗糙,恢復出來的圖像邊緣很不協調。文獻[13]中為了獲取更為細膩的透射率圖,采用了soft matting方法,但是該算法復雜度高,運算速度慢,在硬件實現中存在很大的局限,所以本文針對硬件特點對透射率圖的獲取方法進行了改進。

本文的改進方法是通過邊緣檢測將圖像邊緣檢測出來[14-16],在獲取暗通道時分成邊緣部分和非邊緣部分,邊緣部分不進行最小值濾波,非邊緣部分進行最小值濾波。這對整幅圖像的暗通道獲取幾乎沒有影響,獲取的透射率圖變得相對細膩,最終恢復出的圖像效果也相對較好。圖5(a)為有霧原圖,(b)為由MATLAB得到的透射率圖,(c)為由FPGA得到的未改進處理的透射率圖,(d)為由FPGA得到的改進后處理的透射率圖。改進前的透射率圖明顯不夠細膩,與MATLAB處理的結果有較大差別,改進后的透射率圖與MATLAB處理的結果幾乎沒有差異。

圖5 由MATLAB和FPGA得到的透射率t(x)圖比較Fig.5 Comparison of t(x)by MATLAB and FPGA

在硬件電路實現過程中,由于透射率的值在[0,1]之間,不利于Verilog代碼實現,因此需要對式(9)兩邊同時擴大256倍,這樣可以保證得到的透射率值在[0,256]之間,有利于硬件的實現。在硬件中實現任意數之間的乘法需要乘法器,但乘法器消耗邏輯資源多,并且效率低。當等式兩邊同時擴大256倍時相當于所有數據向左移八位,因此可以將一個復雜且消耗資源較多的乘法運算簡化為一個簡單高效且消耗資源少的移位運算。

2.4無霧圖像的恢復

在實現了暗通道、全局大氣光A、透射率之后可以恢復出無霧圖像。由于在計算透射率時,對原算法進行了簡化和修改使透射率有所擴大,所以在恢復時必須將所求的值縮小為正常值,在此步驟中不選用效率低且消耗資源多的除法器,只對數據進行向右移位操作即可。

3 實驗結果分析

經上述處理,我們在FPGA上實現了基于暗通道去霧算法。圖6(a)為256×256的彩色有霧圖像,幾幅圖像的景深和景物復雜度變化很大;圖6(b)為MATLAB去霧結果,圖6(c)為FPGA去霧結果。直觀上看,FPGA處理的圖像的對比度更大且顏色更加鮮艷。

在處理速度上,如表1所示,用MATLAB處理圖6所示河流、南瓜、花和草叢四張圖片時,運行環(huán)境為2.53 GHz的酷睿i5雙核處理器、2 GB內存,處理時間均超過14 s,而采用硬件FPGA處理時,均只有0.001 3 s左右。采用硬件處理在處理效果上稍有改善,在處理速度上遠遠超過軟件,可以達到實時處理的要求,從而為高速視頻實時去霧提供了可行性方案。

表1 MATLAB和FPGA處理時間比較

圖6 由MATLAB和FPGA去霧結果對比Fig.6 Comparison of dehazing results by MATLAB and FPGA

4 結 語

本文利用FPGA實現了基于暗通道的去霧算法,結合硬件系統的特點,對文獻[13]的算法進行了改進,將全局大氣光A引入到三個通道,獨立并行運算;在FPGA上利用優(yōu)化之后的方法得到了較細膩的透射圖,具有利于硬件實現、實時處理性強等優(yōu)點;相比軟件處理,速度得到了大幅提高,可以滿足實時處理的要求。在對一些去霧之后相對較暗的圖像,通過圖像增強處理,也可以得到效果較好的結果。但該設計目前只針對單幅圖像的去霧,下一步工作是對視頻圖像進行去霧處理,使該設計得到更加廣泛的應用。

[1]郭璠,蔡自興,謝斌,等.單幅圖像自動去霧新算法[J].中國圖象圖形學報,2011,16(4):516-521.

GUO Pan,CAI Zixing,XIE Bin,et al.New algorithm of automatic haze removal for single image[J].Journal of Image and Graphics,2011,16(4):516-521.

[2]汪榮貴,傅劍峰,楊志學,等.基于暗原色先驗模型的Retinex算法[J].電子學報,2013,41(6):1188-1192.

WANG Ronggui,FU Jianfeng,YANG Zhixue,et al.A novel Retinex algorithm based on dark channel prior model[J].Acta Photonica Sinica,2013,41(6):1188- 1192.

[3]SHWARTZ S,NAMER E,SCHECHNER Y Y.Blind haze separation[C]//computer vision and pattern recognition.2006 IEEE computer society conference on vol.2.2006:1984-1991.

[4]王一帆,尹傳歷,黃義明,等.基于雙邊濾波的圖像去霧[J].中國圖象圖形學報,2014,19(3):386-392.

WANG Yifan,YIN Chuanli,HUANG Yiming,et al.Image haze removal using a bilateral filter[J].Journal of Image and Graphics,2014,19(3):386-392.

D T,NGUYEN T Q.An Investigation of dehazing effects on Image and Video Coding[J].IEEE Transactions on Image Processing,2012,21(2):662-673.

[6]劉倩,陳茂銀,周東華.基于單幅圖像的快速去霧算法[C]//第25屆中國控制與決策會議論文集,2013:3780-3785.

LIU Qian,CHEN Maoyin,ZHOU Donghua.Fast haze removal from a single image[C]//The 25th Chinese control and decision conference,Guiyang,2013:3780-3785.

[7]劉巧玲,張紅英.單幅圖像快速去霧霾算法[J].西南科技大學學報,2014,29(3):76-81.

LIU Qiaoling,ZHANG Hongying.Single image fast dehazing algorithm[J].Journal of Southwest University of Science and Technology,2014,29(3):76-81.

[8]孫偉,李大健,劉宏娟,等.基于大氣散射模型的單幅圖像快速去霧[J].光學精密工程,2013,21(4):1040-1046.

SUN Wei,LI Dajian,LIU Hongjuan,et al.Fast single image fog removal based on atmospheric scattering model[J].Optics and Precision Engineering,2013,21(4):1040-1046.

[9]陳露,和紅杰,陳帆.基于邊界鄰域最大值濾波的快速圖像去霧算法[J].光子學報,2014,43(11):108-113.

CHEN Lu,HE Hongjie,CHEN Fan.A fast image defogging algorithm based on edge-maximum filter[J].Acta Photonica Sinica,2014,43(11):108-113.

[10]甘佳佳,肖春霞.結合精確大氣散射圖計算的圖像快速去霧[J].中國圖像圖形學報,2013,18(5):583-590.

GAN Jiajia,XIAO Chunxia.Fast image dehazing based on accurate scattering map[J].Journal of Image and Graphics,2013,18(5):583-590.

[11]龐春穎,嵇曉強,孫麗娜,等.一種改進的圖像快速去霧新算法[J].光子學報,2013,42(7):872-877.

PANG Chunying,JI Xiaoqiang,SUN Lina,et al.An improved method of image fast defogging[J].Acta Photonica Sinica,2013,42(7):872-877.

[12]褚宏莉,李元祥,周則明,等.基于黑色通道的圖像快速去霧優(yōu)化算法[J].電子學報,2013,41(4):791-797.

CHU Hongli,LI Yuanxiang,ZHOU Zeming,et al.Optimized fast dehazing method based on dark channel prior[J].Acta Electronica Sinica,2013,41(4):791-797.

[13]HE Kaiming,SUN Jian,TANG Xiaoou.Single image haze removal using dark channel prior[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2011,33(12):2341-2353.

[14]樊巧云,張廣軍.離散噪聲圖像的光斑質心算法及其硬件實現[J].光學精密工程,2011,19(12):2992-2998.

FAN Qiaoyun,ZHANG Guangjun.Spot centroiding algorithm for discrete noise image and its hardware implementation[J].Optics and Precision Engineering,2011,19(12):2992-2998.

[15]張恒,雷志輝,丁曉華.一種改進的中值濾波算法[J].中國圖像圖形學報A輯,2004,9(4):408-411.

ZHANG Heng,LEI Zhihui,DING Xiaohua.An improved method of median filter[J].Journal of Image and Graphics,2004,9(4):408-411.

[16]陳倫海,黃君凱,楊帆,等.基于FPGA的實時邊緣檢測系統[J].液晶與顯示,2011,26(2):200-204.

CHEN Lunhai,HUANG Junkai,YANG Fan,et al.Real-time edge detection system based on FPGA[J].Chinese Journal of Liquid Crystals and Displays,2011,26(2):200-204.

(責任編輯王衛(wèi)勛,王緒迪)

Improvement and FPGA implementation of dark channel priori dehazing algorithm

LIU Guangfei,HU Liaolin

(School of Mechanical and Precision Instrument Engineering,Xi’an University of Technology,Xi’an 710048,China)

With the digital equipment popularization and strong demand for high-quality imaging in area of digital and electronic products,the real-time image restoration has become an urgent problem.In order to carry out the real-time and high-speed dehazing treatment of haze images and in the prerequisite of ensuring the basic dehazing effect,this paper proposes the method with threshold comparison on the basis of dark channel algorithm to independently seek solutions to the global atmospheric light of three channels so as to obtain the transmittance coefficient via the image edge portion and non-edge portion separate processing method with better results quickly and effectively.The results indicate that the improved algorithm can realize and recover the clear images on FPGA,and the processing speed can be improved by a wide margin to the millisecond,whereby satisfying the requirement of real-time processing or treatment.

dark channel;dehazing;FPGA;real-time

10.19322/j.cnki.issn.1006-4710.2016.01.014

2015-03-16

陜西省自然科學基金資助項目(2014JM7273)

劉光飛,男,碩士生,研究方向為圖像處理。E-mail:435462966@qq.com

胡遼林,男,副教授,研究方向為光纖傳感及光纖通信。E-mail:huliaolin@163.com

TP3

A

1006-4710(2016)01-0077-06

猜你喜歡
透射率先驗全局
Cahn-Hilliard-Brinkman系統的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
基于無噪圖像塊先驗的MRI低秩分解去噪算法研究
落子山東,意在全局
金橋(2018年4期)2018-09-26 02:24:54
純色太陽鏡鏡片耐日光輻照性能試驗研究
基于自適應塊組割先驗的噪聲圖像超分辨率重建
自動化學報(2017年5期)2017-05-14 06:20:44
基于平滑先驗法的被動聲信號趨勢項消除
先驗的廢話與功能的進路
東南法學(2015年2期)2015-06-05 12:21:36
石墨烯光柵太赫茲透射特性的研究
新思路:牽一發(fā)動全局
洮南市| 简阳市| 铜山县| 马鞍山市| 常熟市| 拜城县| 新丰县| 沛县| 舟曲县| 句容市| 达州市| 遂昌县| 甘德县| 浦东新区| 旺苍县| 永和县| 民权县| 绥德县| 房山区| 阿鲁科尔沁旗| 罗平县| 石阡县| 台江县| 盐亭县| 武穴市| 庐江县| 泊头市| 永德县| 新宁县| 贡山| 佛山市| 清苑县| 宁德市| 昭觉县| 保德县| 营山县| 安庆市| 龙州县| 荣昌县| 临湘市| 天门市|