新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于圖像增強(qiáng)的去霧快速算法的FPGA實(shí)現(xiàn)

基于圖像增強(qiáng)的去霧快速算法的FPGA實(shí)現(xiàn)

作者: 時(shí)間:2016-10-16 來(lái)源:網(wǎng)絡(luò) 收藏

摘要:基于方法,本文提出了一種使用亮度映射的圖像去霧快速算法。此算法通過(guò)調(diào)整室外多霧場(chǎng)景圖像的對(duì)比度,提高了霧中物體的辨識(shí)度。算法的復(fù)雜度低、處理延遲小,實(shí)時(shí)性高,利于FPGA的實(shí)現(xiàn)。實(shí)現(xiàn)時(shí)不需外存儲(chǔ)器,延時(shí)為ns級(jí),并提供了強(qiáng)度調(diào)節(jié)接口,以適應(yīng)較廣的應(yīng)用環(huán)境。

本文引用地址:http://m.butianyuan.cn/article/201610/308282.htm

0 引言

目前關(guān)于霧景圖像的處理技術(shù)已有許多研究結(jié)果,但大多數(shù)去霧算法要么是基于多幅圖像或融合其他信息進(jìn)行去霧,這大大限制了算法的使用范圍。而基于單幅圖像的去霧算法,如廣泛使用的暗通道方法,大部分還是應(yīng)用于PC環(huán)境,處理方法復(fù)雜,處理速度慢,需要多次遍歷圖像。以暗通道方法為例,文中使用3.0GHz的奔4處理器對(duì)600×400分辨率霧景圖像進(jìn)行處理時(shí)亦需要10~20秒,難以在嵌入式環(huán)境下進(jìn)行實(shí)時(shí)處理。

但是以上的去霧算法的處理目標(biāo)是為了完全去除圖像中的霧氣效果以提高肉眼的觀感,而在如軍事、監(jiān)控等實(shí)時(shí)應(yīng)用中往往無(wú)需全部去除霧氣來(lái)提高觀感,而僅僅是為了提高感興趣區(qū)域的辨識(shí)度,以發(fā)現(xiàn)隱藏在霧景中的目標(biāo)物。所以,如何提高原始圖像中受霧氣影響較嚴(yán)重區(qū)域的物體辨識(shí)度成為在這些應(yīng)用場(chǎng)景下進(jìn)行處理的關(guān)鍵點(diǎn)。

本文所采用的快速算法的處理目標(biāo)就是利用霧景圖像的亮度分布特點(diǎn),通過(guò)采用基于的方法來(lái)提高原始圖像中被霧氣影響的遠(yuǎn)景物體的辨識(shí)度。算法復(fù)雜度低,優(yōu)化后的FPGA實(shí)現(xiàn)可以做到ns級(jí)的延時(shí)。

1 算法介紹

室外多霧環(huán)境由于空氣中的霧氣改變了大氣散射條件,使得采集到的物體圖像發(fā)生了對(duì)比度退化。廣泛使用的霧景圖像數(shù)學(xué)模型如式(1)所示。

I(x)=J(x)t(x)+A[1-t(x)] 式(1)

式(1)中:I是觀察到的霧景退化圖像,J是無(wú)霧時(shí)的景物圖像,A是大氣光照,t是透射率。所以要進(jìn)行完全的去霧就是要通過(guò)I和某些先驗(yàn)條件反算出J、t、A。

本文算法主要關(guān)注大氣光照參數(shù)A對(duì)圖像所產(chǎn)生的影響,令t=0,可得I=A,可見(jiàn)A指代當(dāng)場(chǎng)景中沒(méi)有物體時(shí)所觀察到的大氣光照?qǐng)D像。而由于物體的視覺(jué)信息都是由大氣光照下由物體反射得到,在反射中物體會(huì)吸收部分光線,造成亮度損失。所以A通常為整幅霧景圖像的亮度最高值,所以有如下示意圖來(lái)進(jìn)一步表述退化作用的原理。

a.jpg

由式(1)結(jié)合圖1易見(jiàn),霧景圖像實(shí)際可看成由原始無(wú)霧圖像上按比例半透明地疊加上一層高亮白色圖像得到的結(jié)果,而其疊加比例參數(shù)決定于透射率t,透射率越高,霧氣對(duì)于成像的影響越小,得到的圖像越接近真實(shí)。而在室外場(chǎng)景中,霧氣濃度分布均勻情況下,物體距離相機(jī)越遠(yuǎn),透射率越低,即采集到的物體圖像的退化程度越高。而由于A通常為整幅圖像的亮度最高值,所以霧景中物體的亮度也會(huì)隨著退化程度的提高而變高。

所以,由理論模型我們可以得到以下結(jié)論:在通常的霧景圖像中,物體距離相機(jī)越遠(yuǎn),圖像的退化程度越高,其亮度也隨之變高。即霧景圖像的亮度和退化程度具有一定程度的正相關(guān)性。

基于以上的分析,我們可以通過(guò)增強(qiáng)高亮度區(qū)域圖像的對(duì)比度來(lái)提高霧景圖像中退化較嚴(yán)重區(qū)域物體的辨識(shí)度。我們使用式(2)來(lái)進(jìn)行亮度的映射以實(shí)現(xiàn)對(duì)高亮度區(qū)域的對(duì)比度增強(qiáng)。式(2)所對(duì)應(yīng)的亮度映射曲線如圖2對(duì)比度曲線應(yīng)具有隨亮度提升平滑需要使用如式(2)所示的函數(shù)進(jìn)行對(duì)比度調(diào)節(jié)得到的亮度映射曲線如圖2所示。

b.jpg

式(2)中參數(shù)p為增強(qiáng)強(qiáng)度,取值范圍[0,1)。當(dāng)p=0時(shí)Yout=Yin即沒(méi)有增強(qiáng)。

c.jpg

圖2中的p=0時(shí)的平直線為標(biāo)準(zhǔn)對(duì)比度曲線,可以看出當(dāng)亮度較低時(shí)算法的曲線斜率小,隨著亮度變高,斜率逐步變大。并且斜率變化連續(xù),曲線平滑,以降低由對(duì)比度調(diào)節(jié)所帶來(lái)的圖像失真。同時(shí),隨著p增大,曲線的曲度變得劇烈。

2 FPGA實(shí)現(xiàn)

基于FPGA的硬件處理,需要將原[0,1)的浮點(diǎn)數(shù)對(duì)應(yīng)到[0,255]的定點(diǎn)整數(shù)域進(jìn)行處理。所以此算法對(duì)FPGA來(lái)說(shuō)只需建立并維護(hù)一個(gè)8bit 256的亮度映射表即可,適合在FPGA中實(shí)現(xiàn)。

2.1 硬件結(jié)構(gòu)

由FPGA為核心搭建的硬件平臺(tái)框圖如圖3所示。模擬標(biāo)清PAL視頻經(jīng)過(guò)AD芯片轉(zhuǎn)換為數(shù)字視頻輸入到FPGA中,在FPGA內(nèi)對(duì)視頻進(jìn)行去霧處理,處理完的數(shù)字視頻輸出到DA芯片中再轉(zhuǎn)換成PAL輸出給顯示器顯示。

d.jpg

數(shù)字化后的PAL信號(hào)符合BT.656標(biāo)準(zhǔn),為內(nèi)嵌同步碼的YUV數(shù)字視頻,其中Y分量為亮度分量,F(xiàn)PGA即針對(duì)此分量進(jìn)行去霧處理。

BT656視頻格式以及Y分量的提取方法如圖4所示。

根據(jù)BT.656碼流中的內(nèi)嵌同步頭對(duì)數(shù)據(jù)定位,再對(duì)定位后的流數(shù)據(jù)進(jìn)行計(jì)數(shù),計(jì)數(shù)中如圖4所示的第偶數(shù)個(gè)數(shù)據(jù)為Y分量,將其提取出使用本算法進(jìn)行處理。

e.jpg

2.2 算法優(yōu)化

由于真實(shí)場(chǎng)景中采集的圖像往往亮度無(wú)法達(dá)到飽和,如果直接運(yùn)用式(2),大量像素都映射到低亮度部分曲線,反而壓低了整個(gè)對(duì)比度所以不會(huì)得到太好的效果。所以原公式中需要加入最大亮度Ymax參數(shù),將(Ymax,255)作為曲線的收斂點(diǎn),同時(shí)將式(2)的計(jì)算處理成定點(diǎn)整數(shù)域計(jì)算以利于硬件實(shí)現(xiàn),最后得到優(yōu)化后的公式:

f.jpg

式(3)中的Yin,P,Ymax,Yout有效位數(shù)均為8bit,取值范圍為[0,255),即變量的歸一化值變?yōu)?55。其中,Ymax為一幀圖像像素中的最大亮度。當(dāng)Ymax=210時(shí),式(3)所得到的亮度曲線如圖5所示。

g.jpg

由圖5可見(jiàn),優(yōu)化后的亮度映射曲線與圖2基本一致,但收斂點(diǎn)變?yōu)?Ymax,255),從而提高亮度變換的有效性。

由于要統(tǒng)計(jì)圖像中的亮度最大值,所以需要遍歷一遍圖像,這樣會(huì)增加40ms(一幀PAL圖像的傳輸時(shí)間)延時(shí)。實(shí)際處理時(shí)可以利用視頻幀間差異較小這一特點(diǎn),取上一幀的Ymax作為當(dāng)前幀處理的參數(shù)。由于Ymax是上一幀的最大值,所以算法處理時(shí)可能出現(xiàn)當(dāng)前幀的Yin大于Ymax從而其映射得到的Yout值可能溢出(大于255)。因此,建立和更新映射表時(shí)需要將計(jì)算結(jié)果大于255的值進(jìn)行鉗位,使其等于255,由以上方法得到FPGA邏輯原理框圖如圖6所示。

h.jpg

圖6中的Y分量提取模塊將輸入視頻流中的Y分量提取出來(lái)分支到兩路處理,一路進(jìn)行最大值搜索,當(dāng)一幀結(jié)束時(shí)得到Y(jié)max輸出給亮度映射表生成模塊生成新一幀的亮度映射表;分支的另一路查詢當(dāng)前亮度映射表,得到增強(qiáng)后的Yout,最后和UV分量再次復(fù)合成標(biāo)清視頻流輸出到AD芯片進(jìn)行PAL編碼。

2.3 去霧效果和性能

針對(duì)幾張霧景樣圖的處理效果如圖7所示。

h.jpg

處理的效果由圖7可以看出,霧氣彌漫的圖像上部區(qū)域在增強(qiáng)處理后對(duì)比度有所提升,原圖區(qū)域中的物體模糊一團(tuán),隨著增強(qiáng)強(qiáng)度的提升其紋理特征基本可識(shí)別。

但此種提升效果是以降低圖像整體亮度為代價(jià)的,當(dāng)參數(shù)升高時(shí),整體亮度逐漸下降。所以在不同的光照條件下,選取不同的P值可以得到更好的感官效果。

在處理的性能方面,由于在映射表的建立和更新中使用上一幀圖像的Ymax,對(duì)當(dāng)前幀處理時(shí),表已在上一幀圖像結(jié)束后的消隱時(shí)間中更新完畢。所以,當(dāng)Yin輸入時(shí)直接進(jìn)行查表得出增強(qiáng)后的Yout,延時(shí)僅為一個(gè)時(shí)鐘周期,本文所完成的設(shè)計(jì)中使用27MHz時(shí)鐘作為系統(tǒng)時(shí)鐘,即延時(shí)約為37ns。

算法使用Xilinx公司低端系列Spartan3的XC3S400AN實(shí)現(xiàn),僅占用402Slices,3個(gè)乘法器以及54Kbit塊ram,最高可以運(yùn)行到142MHz,并且不需任何片外存儲(chǔ)資源,所實(shí)現(xiàn)系統(tǒng)的成本低,功耗小,實(shí)時(shí)性高。

3 小結(jié)

針對(duì)室外多霧環(huán)境下,霧中景物亮度高,但對(duì)比度低的特點(diǎn),本文提出了一種使用亮度映射的算法。基于此算法可以快速建立亮度映射表,對(duì)輸入圖像的亮度使用查表法處理即可完成圖像多霧區(qū)域的對(duì)比度增強(qiáng),可以有效提高多霧場(chǎng)景中物體的辨識(shí)度。在FPGA中實(shí)現(xiàn)的邏輯電路復(fù)雜度低,實(shí)時(shí)性強(qiáng),資源占用少。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉