?

基于改進型循環生成對抗網絡的霧天圖像生成算法

2022-09-08 07:35王曉峰孫志恒孫賈夢蘇盈盈
關鍵詞:卷積損失函數

喻 駿 王曉峰 孫志恒 孫賈夢 秦 浩 蘇盈盈

(1. 重慶科技學院 電氣工程學院, 重慶 401331;2. 重慶科技學院 數理與大數據學院, 重慶 401331)

0 前 言

霧天環境下的圖像采集和標注工作往往比較困難,因此深度學習下的立體視覺任務中霧天場景圖像較為缺乏[1]。無霧環境下的數據集制作相對簡單,將正常圖像轉化為霧天圖像是獲取霧天數據集的有效途徑[2]。

研究人員曾基于大氣散射模型,采用人工合成的方法為正常圖像添加霧天特征[3-4]。但實際上,霧天場景不止受到大氣散射的影響,依靠人工添加的霧天特征難以真實地反映霧天圖像退化的情況。近年來,基于生成對抗思想的深度學習模型在圖像生成技術領域備受關注。目前,成熟的生成對抗網絡有Pix2pix[5]、CycleGAN(循環生成對抗網絡)[6]、 DCGAN[7]等。與DCGAN網絡相比,CycleGAN網絡具有更好的圖像轉換能力,所生成圖像具有一定的可控性;與Pix2pix相比,CycleGAN無須對數據集進行訓練,且對數據集的要求也較低。本次研究將以主流立體視覺KITTI2015數據集為例,對真實的霧天圖像加以訓練,在改進CycleGAN的基礎上構建可以生成霧天圖像的場景轉換模型。

1 霧天圖像生成方法設計

1.1 數據集的獲取

KITTI2015數據集為公開數據集[2],在此取其中汽車行駛過程中的真實街景圖像400個組成數據集A。由于KITTI2015數據集中無相應的霧天場景圖像,故從網絡上獲取霧天圖片共425張組成數據集B。

1.2 圖像的預處理

采集的真實霧天圖片有時會出現動態模糊現象,需先對霧天圖像數據集進行去模糊化預處理。

建立圖像退化模型,如式(1)所示:

g(x,y)=f(x,y)?h(x,y)+n(x,y)

(1)

式中:g(x,y)為模糊函數圖像;f(x,y)為清晰圖像函數;h(x,y)為退化模型的點擴散函數;n(x,y)為隨機噪聲函數。

假設拍攝過程中保持勻速直線運動狀態,則h(x,y)與運動模糊角度(θ)、模糊長度(L)有關,其關系如式(2)所示:

(2)

忽略噪聲的影響,對圖像進行運動模糊消除處理,其流程如圖1所示。

根據圖像頻譜中暗條紋與運動模糊紋理相垂直的特征,初步估計出模糊方向[8]。此外,在頻譜圖的水平方向求取自相關系數,相關中心點左右兩側最低值之間的距離即為模糊長度(L)[9]。根據模糊圖像制作原圖像的傅里葉頻譜圖,如圖2所示。局部放大并調整對比度,使暗條紋顯現,大致估計模糊角度(θ)為30°~40°。同時,計算頻譜水平方向上的自相關系數,利用Matlab程序計算出模糊長度(L=47 px)。

圖2 圖像的模糊角度和模糊長度估計

利用初步估計和計算所得的模糊角度、模糊長度,應用式(1)和式(2)對圖像進行動態模糊去除處理。在模糊長度為47 px的情況下,比較模糊角度為30°~40°時的去模糊處理效果(見圖3)。結果表明,當模糊角度為30°、模糊長度為47 px時,去模糊處理的效果最佳。

圖3 不同模糊角度下的去模糊處理效果

1.3 霧天圖像的生成過程

基于CycleGAN的思想,完成霧天圖像生成模型訓練,如圖4 所示。首先,將數據集A、B輸入CycleGAN的生成器G中,獲得合成圖像;然后,利用判別器D判別霧天圖像,輸出判別結果;最后,根據生成的圖像及判別結果,計算損失函數,更新生成器G和判別器D的參數,進而獲得最優模型。

圖4 霧天圖像模型訓練過程

將數據集B作為測試集,其測試過程如圖5 所示。首先,加載預訓練模型,并輸入測試集;然后,驗證改進上采樣結構后的霧天圖像生成效果;最后,調整損失函數,獲得霧天圖像生成結果。

圖5 霧天圖像模型測試過程

2 網絡模型設計

2.1 生成器模塊設計

根據圖像生成任務,通過卷積操作形成生成器的主干網絡。以像素大小128 px×128 px的圖像為例形成生成器的網絡結構,如圖6所示。

首先,在下采樣階段,圖像依次經過3個步長分別為1、2、2 px 且大小為3 px×3 px的卷積核進行下采樣操作。在下采樣操作過程中,特征感受野逐層增大,特征圖尺度逐層減小,原始圖像的高維特征映于低維空間,因此減少了網絡計算量。

然后,低維特征圖進入多層殘差網絡中,經過 9層殘差網絡學習將圖像由正常場景分布轉換到霧天場景分布。多層殘差塊既可以提高模型的學習效率,又能加大網絡的學習深度、強化模型特征的表達能力。

最后,經過多層上采樣操作,使圖像逐漸恢復到原始像素128 px×128 px,進而生成轉換后的圖像。

傳統的生成器模型通常采用反卷積操作,但在將相鄰的低分辨率特征像素映射到高分辨率空間時有可能出現信息重疊現象。在上采樣改進之前,通過反卷積將前一層4個區域的分辨率擴大到與后一層的4個區域相同,導致重疊區域顏色加深,形成圖6上的Q點。不同空間位置的像素相互交疊,最終出現棋盤效應。

圖6 生成器的網絡結構示意圖

針對這個問題,本次研究將采用雙線性插值與卷積組合的結構操作來改進反卷積的上采樣方式。首先,低分辨率圖像通過雙線性插值后獲得高分辨圖像,雙線性插值通過計算周圍信息來更新未知像素點,從而獲得更好的連續性和穩定性。然后,通過3 px×3 px的卷積聚合局部區域像素特征對插值后的圖像精細化,經上采樣操作后得到高分辨率圖像。最后,通過改進的上采樣方式,在保證生成圖像質量的情況下有效地緩解棋盤效應,使得生成的圖像更加真實可靠。

2.2 判別器模塊設計

假設分辨率為128 px×128 px的圖像進入判別器,其網絡結構如圖7所示。首先,原始圖像經過3個步長為2 px的3 px×3 px卷積核進行連續下采樣操作,獲得像素為16 px×16 px的特征圖,逐層提高像素點的感受野。然后,通過2次步長為1 px的卷積操作對特征圖進行線性變換,進而輸出14 px×14 px的圖像判別結果。在判別結果中,每個像素點均包含其對應感受野的圖像區域真實性置信度。置信度越接近于0,則圖像為假的可能性越大;置信度越接近于1,則圖像為真的可能性越大。

圖7 判別器網絡結構示意圖

2.3 損失函數設計

本次研究的CycleGAN為有效訓練,其中損失函數如式(3)所示:

L=LDx+LDy+LGx→y+LGy→x+λLcycle

(3)

式中:LDx為判別器Dx(判別正常場景x)訓練中的損失函數;LDy為判別器Dy(判別霧天場景y)的損失函數;LGx→y為生成器Gx→y(由正常圖像x生成霧天圖像y)的損失函數;LGy→x為生成器Gy→x(由霧天圖像y生成正常圖像x)的損失函數;Lcycle為衡量循環一致性的損失函數;λ為循環一致性損失的比重。

LDy損失函數的計算如(4)所示:

LDy=y~pdata(y)[‖1-DY(y)‖2]+

(4)

式(4)中第一項代表判別器判別真實霧天場景圖片y時真實霧天圖像為真,故Dy(y)分數應接近于1。式(4)中第二項代表判別器判別生成的霧天場景圖片Gx→y(x)時生成的霧天圖像為假,故Dy(Gx→y(x))分數應接近于0 。由此,可以區別真實霧天圖像和生成的霧天圖像。

LGx→y損失函數如式(5)所示:

LGx→y=x~pdata(x)[‖1-DY(Gx→y(x))‖2]

(5)

式中Dy(Gx→y(x))分數應接近于1,使得生成的圖片足以騙過判別器。

同理,根據式(4)可得LDx,如式(6)所示:

LDy=x~pdata(x)[‖1-Dx(x)‖2]+

(6)

同理,根據式(5)可得LGy→x,如式(7)所示:

LGy→x=y~pdata(y)[‖1-Dx(Gy→x(y))‖2]

(7)

此外,循環一致性損失Lcycle用于約束重構后圖像間的相似性,如式(8)所示:

Lcycle=x~pdata(x)[‖Gy→x(Gx→y(x))-x‖1]+

(8)

在式(8)中第一項的約束下,正常圖像x經Gx→y生成霧天圖像,再經Gy→x重構為正常圖像后,應與原圖像x越接近越好。在式(8)中第二項的約束下,霧天圖像經Gy→x生成正常圖像,再經Gx→y重構為霧天圖像后,應與原圖像y越接近越好,循環一致性損失函數可以使轉換后的圖像保留原始圖像的細節信息。

3 實驗分析

3.1 實驗環境

為避免實驗環境對圖像生成效果的影響,所有實驗均采用相同的配置。軟硬件配置如下:操作系統為Windows10,開發環境為python3.6.6、pycharm2019,深度學習框架為pytorch1.7,迭代次數為60,學習速率為0.000 2,顯卡型號為GTX1650,優化器為Adam。

3.2 損失函數的參數設置

CycleGAN生成的霧天圖像對原始圖像的細節信息還原程度主要受到循環一致性損失的影響,故所得霧天圖像的信息有效性在訓練過程中受到循環一致性損失系數(λ)的影響。在此主要考察不同λ的影響,實驗結果如圖8所示。

圖8 不同循環一致性損失系數的影響

在系數λ依次為1.0、1.5、3.0的變化過程中,霧氣特征越來越淡,同時多出了一些原圖像沒有的特征。分析認為,隨著λ增大,Lcycle訓練時這些特征的比重不斷增加,網絡更傾向于復現原始圖像而忽略霧天特征,為圖像額外添加了不必要的信息。當λ=1.5時,圖中虛線方框部分出現了與車尾燈同色的區域,這是因為錯誤地學習了霧天圖像中的車尾燈特征;當λ=3.0時,圖中實線方框部分出現了高亮區域,這是因為錯誤地學習了一些強光照特征。

綜上所述,將λ設置為1.0時霧天場景的轉化效果最好。

3.3 實驗效果

為驗證改進后生成器上采樣方式的優勢,對改進前后的霧天圖像生成效果進行了對比,結果如圖9 所示。

圖9 改進前后的效果對比

改進前,采用基于反卷積的上采樣方式,部分霧天圖像出現了明顯的棋盤效應。改進后,采用插值和卷積相結合的上采樣方式,改善了棋盤效應,圖像生成效果更好。

采用衡量相似度的客觀指標 —— 峰值信噪比(PSNR)和結構相似性(SSIM),對生成的霧天圖像進行定性對比分析,結果如表1所示。

表1 改進前后霧天圖像的客觀指標對比

PSNR和SSIM的值越大,說明轉換后的圖像與原圖像越接近。 在同樣為原圖添加了霧天特征后,改進后模型的PSNR約提高了1.6,SSIM提高了0.02。這說明改進后的霧天圖像保留了更多的原圖細節信息,失真更少,轉換效果更好。

3.4 霧天圖像生成效果評價

基于改進的CycleGAN模型,利用已調整過參數的損失函數進行訓練。以KITTI2015數據集為例進行霧天場景轉化,主要結果如圖10所示。

與原始圖像相比,生成的圖像中添加了一些霧天特征,顯著減少了圖像信息。需注意的是,霧天圖像中的霧氣隨著景物距離的拉大而逐漸加深,這與真實霧天場景的特征相同。此外,針對圖10中的圖像按從左到右、從上到下的順序計算其客觀指標(PSNR和SSIM),定量對比去霧前后的處理效果,結果如表2所示。

圖10 模型生成效果展示

表2 圖像去霧前后的客觀指標對比

圖像去霧的PSNR和SSIM指標顯著提高,這代表霧天圖像能夠恢復大部分原始圖像信息。因此,正常圖像經改進的方法轉換為霧天場景后,其細節信息只是發生了質量的變化(如改變、降低等),而不是隨著霧天場景的生成而消失。此變化過程與真實霧天場景對圖像帶來的影響相似,說明本次改進方法可靠有效。

4 結 語

針對立體視覺技術應用中人工制作霧天場景數據集較困難的問題,提出了基于改進CycleGAN的霧天圖像生成算法。首先,對收集的真實霧天場景圖片進行預處理,去除實際拍攝過程中產生的動態模糊部分。其次,利用改進CycleGAN緩解反卷積的棋盤效應,并學習真實霧天場景數據分布情況。最后,將立體視覺任務公開數據集KITTI2015輸入已建立模型,生成霧天場景數據集,實現已有數據集轉換為霧天場景的目的。實驗結果表明,本算法可靠有效,能轉換生成可準確模擬真實霧天場景的圖像。

猜你喜歡
卷積損失函數
洪澇造成孟加拉損失25.4萬噸大米
基于全卷積神經網絡的豬背膘厚快速準確測定
基于圖像處理與卷積神經網絡的零件識別
一種基于卷積神經網絡的地磁基準圖構建方法
基于3D-Winograd的快速卷積算法設計及FPGA實現
兩敗俱傷
關于函數的一些補充知識
高中數學中二次函數應用舉隅オ
無獨有偶 曲徑通幽
損失
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合