李 耀,于 騰,楊國為,2+
(1.青島大學(xué) 電子信息學(xué)院,山東 青島 266071;2.南京審計大學(xué) 信息工程學(xué)院,江蘇 南京 211815)
水下圖像承載著重要的水下環(huán)境信息,被廣泛用于探索和監(jiān)測水下世界。然而,受水下特殊環(huán)境的影響,水下圖像往往會出現(xiàn)細(xì)節(jié)模糊、色彩失真、對比度低等質(zhì)量下降問題。低質(zhì)量的水下圖像限制了它們在水下物體檢測,水下3D重建等方面的進(jìn)一步應(yīng)用。為了獲取高質(zhì)量的水下圖像,文獻(xiàn)[1,2]提出基于暗通道先驗(yàn)的水下圖像增強(qiáng)算法,以解決水下圖像對比度低和色彩偏差的問題。由于這類基與水下成像模型的傳統(tǒng)算法需要估計中間變量,并且適用場景較少,因此所報告的水下圖像增強(qiáng)結(jié)果不太具有競爭力。隨著卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)和生成對抗網(wǎng)絡(luò)(generative adversarial network,GAN)在許多視覺任務(wù)中的廣泛應(yīng)用[3-5],文獻(xiàn)[6]提出基于CNN的水下圖像增強(qiáng)模型,利用端到端和數(shù)據(jù)驅(qū)動的機(jī)制直接重建清晰圖像。文獻(xiàn)[7]提出基于GAN的水下圖像增強(qiáng)模型,并引入組合損失函數(shù)來生成清晰圖像。文獻(xiàn)[8]提出基于條件生成對抗網(wǎng)絡(luò)(conditional generative adversarial network,cGAN)[9]的水下圖像增強(qiáng)模型,通過配置不同的組合損失函數(shù)進(jìn)行水下圖像的成對訓(xùn)練和不成對訓(xùn)練。盡管這類深度學(xué)習(xí)算法的性能整體優(yōu)于基于水下成像模型的算法,但是由于網(wǎng)絡(luò)結(jié)構(gòu)的局限性,這類算法對水下圖像的增強(qiáng)并沒有達(dá)到理想效果,生成的圖像仍然存在一定程度的模糊不清晰現(xiàn)象。
針對上述問題,本文提出基于Boosting條件生成對抗網(wǎng)絡(luò)(Boosting conditional generative adversarial network,BcGAN)的水下圖像增強(qiáng)方法。SOS(strengthen-operate-subtract)boosting策略[10]是去噪任務(wù)中一種對圖像進(jìn)行細(xì)化處理的技術(shù)。受其啟發(fā),本文結(jié)合SOS boosting策略和編碼器-解碼器結(jié)構(gòu)設(shè)計了一個增強(qiáng)生成器。并提出雙重判別器結(jié)構(gòu),使其聯(lián)合訓(xùn)練從而提升增強(qiáng)生成器對圖像的細(xì)節(jié)生成能力。通過在合成水下數(shù)據(jù)集和真實(shí)水下數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),驗(yàn)證了本文方法的有效性。
Boosting算法被證明是有效的圖像去噪方法[10,11]。SOS boosting策略是將先前增強(qiáng)的圖像作為輸入來逐步完善結(jié)果,具體步驟如下所示。
(1)S:通過將先前去噪的圖像添加到有噪聲的輸入圖像中來增強(qiáng)信號。
(2)O:對增強(qiáng)后的圖像進(jìn)行去噪處理。
(3)S:從恢復(fù)后的信號增強(qiáng)結(jié)果中減去先前的去噪圖像。
基于在相同場景的圖像上去噪方法可以獲得更好的信噪比結(jié)果這個原則,該算法已被證明可以進(jìn)一步提高圖像的信噪比,因此可以有效去除噪聲。描述SOS boosting策略的核心公式如下所示
(1)
GAN是一個對抗性學(xué)習(xí)框架,由生成器和判別器組成。生成器和判別器的對抗訓(xùn)練可以使生成器學(xué)習(xí)如何從隨機(jī)噪聲中生成逼真的圖像。然而,GAN的訓(xùn)練并不穩(wěn)定,生成的圖像會產(chǎn)生一些偽影和噪聲。而cGAN通過納入條件信息來解決此問題。增加信息的條件變量提高了GAN學(xué)習(xí)過程中的穩(wěn)定性,并提高了生成器的表達(dá)能力。與原始GAN不同,cGAN的目標(biāo)函數(shù)定義如下
(2)
本文提出的水下圖像增強(qiáng)方法BcGAN主要包括增強(qiáng)生成器結(jié)構(gòu)的設(shè)計、雙重判別器結(jié)構(gòu)的設(shè)計、目標(biāo)函數(shù)的設(shè)計和模型訓(xùn)練流程4個部分,在本章節(jié)中將進(jìn)行詳細(xì)的介紹。
剛?cè)胄械臅r候我就發(fā)現(xiàn),沒有必要融入進(jìn)去。我倒不如做個村子里搜集信息的人,或者是來自火星、對一切都充滿好奇的人。幸好,這世界上到處都是傾訴欲泛濫的人,他們都想把自己的故事告訴你,想把你不知道的東西告訴你。
本文增強(qiáng)生成器的功能是從輸入的水下圖像中生成清晰的圖像。因此,它不僅要保留輸入水下圖像的結(jié)構(gòu)和細(xì)節(jié)信息,而且應(yīng)盡可能矯正色偏和消除霧度。增強(qiáng)生成器結(jié)構(gòu)如圖1所示。本文以殘差密集塊(residual dense block,RDB)[12]為基礎(chǔ)塊構(gòu)建了一個編碼器-解碼器結(jié)構(gòu)的生成器。并且受ResNet[13]和U-Net 的啟發(fā),在對稱層中引入了可以增加信息含量的跳躍連接。本文不是簡單地將對稱層特征的所有通道拼接在一起,而是采用SOS boosting策略來增強(qiáng)和細(xì)化特征。其有效性在3.4節(jié)進(jìn)行詳述。SOS boosting策略的原則是基于先前估計的圖像對增強(qiáng)圖像進(jìn)行細(xì)化處理。本文將編碼部分的特征看作輸入未處理的特征,將解碼部分的特征看作輸出處理過的特征,在解碼階段集成SOS boosting策略,以逐步細(xì)化編碼階段提取的特征i5(i5=j5)。
圖1 增強(qiáng)生成器結(jié)構(gòu)
在解碼階段的第n級,對上一級的特征jn+1進(jìn)行上采樣后,遵循“Strengthen-Operate-Subtract”操作。首先利用同一級別編碼階段提取的特征in對其進(jìn)行增強(qiáng),然后通過一個RDB,最后減去先前上采樣過的特征jn+1得到細(xì)化后的特征jn。 公式如下
jn=?n(in+(jn+1)↑2)-(jn+1)↑2
(3)
式中: ?n表示第n級可訓(xùn)練的RDB,↑2為比例系數(shù)為2的上采樣, (in+(jn+1)↑2) 表示增強(qiáng)的特征。式(3)以信號增強(qiáng)的方式細(xì)化了特征 (jn+1)↑2。
本文在增強(qiáng)生成器中沒有引入批量歸一化(batch normalization,BN)層,移除BN層有利于提升網(wǎng)絡(luò)的泛化能力。同時也被實(shí)踐證明了在GAN框架下訓(xùn)練時,移除BN層有利于減少偽影和降低訓(xùn)練的不穩(wěn)定性[14]。增強(qiáng)生成器中除第一層和最后一層的卷積步長為1外,其余卷積層和反卷積層步長均為2。
判別器用于區(qū)分圖像的真假,即判別圖像是真實(shí)的還是由生成器生成的,本文提出雙重判別器,其結(jié)構(gòu)如圖2所示。
圖2 雙重判別器結(jié)構(gòu)
雙重判別器由兩個子判別器構(gòu)成,它們具有相同的網(wǎng)絡(luò)結(jié)構(gòu),但權(quán)重不同。雙重判別器的目的是使判別器能夠引導(dǎo)生成器生成全局語義級別和局部細(xì)節(jié)級別的圖像。這種設(shè)計背后的原因是現(xiàn)有的判別器在引導(dǎo)生成器生成逼真的細(xì)節(jié)方面受到限制。因此,本文將不同分辨率的輸入提供給不同的子判別器,以提高生成結(jié)果的視覺質(zhì)量。子判別器采用全卷積結(jié)構(gòu)[15],可在圖像的一小塊區(qū)域中進(jìn)行鑒別,其輸出的是N×N的特征矩陣,總體決策是通過平均所有小塊區(qū)域的真實(shí)性來實(shí)現(xiàn)的。本文將增強(qiáng)生成器生成的圖像和真實(shí)圖像反饋給第一個子判別器D1, 然后對生成圖像和真實(shí)圖像進(jìn)行比例系數(shù)為2的下采樣,并將尺寸減半的輸入反饋給第二個子判別器D2。 以此來實(shí)現(xiàn)對輸入圖像的多尺度判別。兩個子判別器輸出的特征矩陣為高頻提供了度量,將聯(lián)合推動增強(qiáng)生成器更多地聚焦于圖像中的細(xì)節(jié)。其有效性在3.4節(jié)進(jìn)行詳述。子判別器中除最后一層卷積層步長為1外,其余卷積層步長均為2。
由于原始GAN等價優(yōu)化的距離衡量(KL散度、JS散度)不合理,導(dǎo)致GAN訓(xùn)練不穩(wěn)定。WGAN(Wasserstein GAN)[16]利用Earth-Mover距離代替KL散度和JS散度從而解決了生成數(shù)據(jù)與真實(shí)數(shù)據(jù)之間的距離衡量問題。然后給定了一組近似為Earth-Mover距離且建模為神經(jīng)網(wǎng)絡(luò)的k-Lipschitz函數(shù)f。為了確保函數(shù)f滿足k-Lipschitz限制條件,判別器的權(quán)重被裁剪到某個范圍 [-c,c]。 而WGAN-GP(Wasserstein GAN with gradient penalty)[17]提出gradient penalty來對判別器的梯度實(shí)施軟約束,即設(shè)置一個損失項(xiàng)來實(shí)現(xiàn)梯度與常數(shù)k之間的聯(lián)系來確保函數(shù)f滿足Lipschitz約束,從而解決了WGAN中權(quán)重裁剪會帶來的梯度消失或爆炸等問題。因此,本文采用WGAN-GP損失作為對抗訓(xùn)練損失并結(jié)合cGAN損失進(jìn)行修改得到如下對抗訓(xùn)練損失
(4)
(5)
(6)
(7)
結(jié)合了上述損失之后,得到了本文網(wǎng)絡(luò)的最終目標(biāo)函數(shù)
(8)
本文方法的訓(xùn)練流程如圖3所示。增強(qiáng)生成器的輸入為3.2節(jié)描述的合成水下圖像,其目標(biāo)是生成足夠接近于真實(shí)圖像的清晰圖像。雙重判別器的輸入為合成水下圖像分別與生成圖像和真實(shí)圖像組成的圖像對,其目標(biāo)是判別出這兩組圖像對的真假。訓(xùn)練時,增強(qiáng)生成器和雙重判別器交替訓(xùn)練從而形成一個動態(tài)博弈的過程。當(dāng)雙重判別器無法判別出輸入圖像對的真假時,增強(qiáng)生成器達(dá)到最好效果。
圖3 BcGAN訓(xùn)練流程框架
本文方法基于Pytorch深度學(xué)習(xí)框架實(shí)現(xiàn),并在Ubuntu 18.04下完成實(shí)驗(yàn)。硬件設(shè)備為Intel(R) Core(TM) i9-10940X@3.30 GHz處理器,64 GB運(yùn)行內(nèi)存,NVIDIA GeForce GTX 2080 Ti (11 GB)顯卡。在訓(xùn)練過程中,輸入圖像的尺寸設(shè)置為256×256,并根據(jù)經(jīng)驗(yàn)設(shè)置參數(shù)λGP=10,λ1=10。 本文采用Adam優(yōu)化器進(jìn)行參數(shù)優(yōu)化,學(xué)習(xí)率設(shè)為0.0001,batch_size設(shè)為8。網(wǎng)絡(luò)訓(xùn)練100個epoch。
由于真實(shí)成對水下圖像數(shù)據(jù)集的匱乏,本文遵循文獻(xiàn)[18]提出的方法,并基于NYU-V2 RGB-D數(shù)據(jù)集來生成具有多種水類型的合成水下圖像。該方法是基于文獻(xiàn)[6]中合成方法的改進(jìn)。它為了更好利用數(shù)據(jù)驅(qū)動的方式訓(xùn)練模型,對數(shù)據(jù)集中的每個圖像生成6種不同水類型的圖像,并且通過隨機(jī)改變每種水類型圖像的背景光系數(shù)和相機(jī)到物體的距離參數(shù)來額外生成6張圖像,以此來擴(kuò)充數(shù)據(jù)集。采用此方法合成的水下圖像數(shù)據(jù)集包含52 164幅圖像,本文采用其中的30 000張作為訓(xùn)練集,3000張作為驗(yàn)證集,3000張作為測試集。訓(xùn)練集、驗(yàn)證集、測試集之間沒有交集。
為了驗(yàn)證所提方法在真實(shí)世界水下圖像上的有效性,本文從互聯(lián)網(wǎng)上收集了60張真實(shí)水下圖像用于評估。在收集圖像時,本文盡可能確保所收集的圖像在內(nèi)容、場景等多個方面的不同。所有圖像的尺寸均調(diào)整為256×256。
為了評估本文方法,本文與一些最新的水下圖像增強(qiáng)方法在合成和真實(shí)水下圖像上進(jìn)行了定性和定量比較,這些方法包括UDCP(underwater dark channel prior)、UGAN(underwater generative adversarial network)[7]、FUnIE-GAN(fast underwater image enhancement GAN)[8]和UIE-DAL(underwater image enhancement using domain-adversarial learning)[18]。本文使用作者提供的源代碼或預(yù)訓(xùn)練模型進(jìn)行測試,以產(chǎn)生最佳結(jié)果,從而進(jìn)行客觀評估。對于定量比較,本文采用峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)作為圖像增強(qiáng)質(zhì)量優(yōu)劣的評價指標(biāo)。PSNR值越大,表明增強(qiáng)后的圖像失真越??;SSIM值越大,表明增強(qiáng)后的圖像與真實(shí)圖像結(jié)構(gòu)越相似。
3.3.1 合成數(shù)據(jù)集上的比較和分析
在第一組實(shí)驗(yàn)中,將本文方法與幾種最新的水下圖像增強(qiáng)方法在合成數(shù)據(jù)集的測試集上進(jìn)行了定性和定量比較。由于這些測試圖像都具有地面真實(shí)圖像,因此可以計算定量指標(biāo)PSNR和SSIM。表1顯示了基于這些指標(biāo)的結(jié)果比較。該表清楚地表明,與其它水下圖像增強(qiáng)方法相比,本文提出的方法在PSNR和SSIM值上達(dá)到了最優(yōu),能夠?qū)崿F(xiàn)出色的定量性能。
表1 本文方法與其它方法在合成水下圖像上的定量結(jié)果
在圖4中,本文展示了來自測試集的4個示例以進(jìn)行定性比較。UDCP會產(chǎn)生嚴(yán)重的色彩失真,這主要是由于背景光系數(shù)和傳輸圖的不正確估計造成的。UGAN和FUnIEGAN是基于深度學(xué)習(xí)的端到端方法,在一定程度上克服了UDCP的局限性,但是它們的去霧效果較差,增強(qiáng)過的水下圖像仍然會存在一定程度的霧化模糊現(xiàn)象。其中,F(xiàn)UnIEGAN還是會有色彩失真的現(xiàn)象。UIE-DAL可以很好校正水下圖像的色偏,去霧效果優(yōu)于UGAN和FUnIEGAN,但是UIE-DAL增強(qiáng)的水下圖像會存在偽影,破壞了圖像的結(jié)構(gòu)信息。相比之下,本文方法生成的圖像更加清晰,這歸因于SOS boosting策略對于特征細(xì)化的有效性。同時增強(qiáng)生成器中引入的RDB充分提取了圖像的特征,在雙重判別器的激勵下能夠促使網(wǎng)絡(luò)學(xué)習(xí)更有效地映射,因此不會出現(xiàn)色偏和產(chǎn)生偽影的現(xiàn)象。
圖4 本文方法與其它方法在合成水下圖像上的定性結(jié)果
3.3.2 真實(shí)數(shù)據(jù)集上的比較和分析
盡管所提網(wǎng)絡(luò)是在合成水下圖像數(shù)據(jù)集上訓(xùn)練的,但本文表明可以將其推廣到處理真實(shí)世界的水下圖像。在第二組實(shí)驗(yàn)中,將本文方法與幾種最新的水下圖像增強(qiáng)方法在真實(shí)水下圖像上進(jìn)行性能比較,其結(jié)果如圖5所示。UDCP會使圖像整體變暗,看不到太大的增強(qiáng)效果。UGAN可以糾正色偏,但是增強(qiáng)結(jié)果仍然包含嚴(yán)重的霧度殘留。FUnIEGAN也存霧化模糊的問題,并且仍然存在色彩失真的現(xiàn)象。UIE-DAL則會產(chǎn)生噪聲和偽影,且色彩恢復(fù)不自然。相反,本文方法完全不受水下特殊環(huán)境的影響,可以有效校正色偏和去除霧度,并且不會引入噪聲和偽影,能夠生成視覺上更具吸引力的圖像。
圖5 本文方法與其它方法在真實(shí)水下圖像上的定性結(jié)果
綜上所述,本文提出的水下圖像增強(qiáng)方法BcGAN無論是在合成數(shù)據(jù)集還是在真實(shí)數(shù)據(jù)集上,都取得了遠(yuǎn)優(yōu)于其它方法的增強(qiáng)效果,并且具有很好的魯棒性。這也歸因于本文提出的增強(qiáng)生成器和雙重判別器結(jié)構(gòu)的有效性。
為了進(jìn)一步驗(yàn)證本文提出的增強(qiáng)生成器和雙重判別器對于水下圖像增強(qiáng)的有效性,本文設(shè)計了以下消融實(shí)驗(yàn)。
(1)DcGAN:將增強(qiáng)生成器中的SOS boosting策略替換為U-Net中的跳躍連接,并使用單判別器。
(2)ScGAN:使用增強(qiáng)生成器和單判別器。
以上兩種變體,均使用與本文方法相同的參數(shù)進(jìn)行訓(xùn)練。表2和圖6顯示了兩種消融變體的相應(yīng)配置和實(shí)驗(yàn)結(jié)果。
表2 消融設(shè)置和在合成水下圖像上的定量結(jié)果
圖6 消融實(shí)驗(yàn)在真實(shí)水下圖像上的定性結(jié)果
從表2中可以看出,本文結(jié)構(gòu)的平均PSNR和SSIM值最高,性能優(yōu)于其它變體。相比于DcGAN的跳躍連接,ScGAN的SOS boosting策略可以取得更好的定量得分。SOS boosting策略在不引入任何外層的情況下提高了網(wǎng)絡(luò)的性能。對比本文結(jié)構(gòu)與ScGAN,可以發(fā)現(xiàn)雙重判別器結(jié)構(gòu)是有效的,性能優(yōu)于單判別器結(jié)構(gòu)。圖6更是在視覺上表明了本文結(jié)構(gòu)與其它變體的性能差異,SOS boosting策略能夠有效消除水下圖像的霧度部分,并逐步提高圖像的清晰度。而雙重判別器可以進(jìn)一步促使增強(qiáng)生成器生成細(xì)節(jié)更加精細(xì)的圖像。以上實(shí)驗(yàn)結(jié)果表明了SOS boosting策略有助于水下圖像增強(qiáng)任務(wù),本文提出的增強(qiáng)生成器和雙重判別器是非常有效的。
本文提出全新的條件生成對抗網(wǎng)絡(luò)(BcGAN)實(shí)現(xiàn)對水下圖像的端到端增強(qiáng),通過在生成器中集成SOS boosting策略和聯(lián)合訓(xùn)練雙重判別器的方法,大大改善了現(xiàn)有方法對水下圖像的增強(qiáng)效果不甚理想,容易出現(xiàn)霧度殘留和細(xì)節(jié)模糊的現(xiàn)象。對比實(shí)驗(yàn)結(jié)果表明本文方法具有更好的水下圖像增強(qiáng)結(jié)果,能夠生成更清晰的圖像。消融實(shí)驗(yàn)也進(jìn)一步表明所提出的增強(qiáng)生成器可以生成霧度更少的圖像,SOS boosting策略能夠細(xì)化特征;同時雙重判別器也會促使生成器更加關(guān)注圖像細(xì)節(jié)。由于合成數(shù)據(jù)集不能很好地模擬水下環(huán)境,未來將研究如何使本文方法適應(yīng)真實(shí)水下圖像的不成對訓(xùn)練。