張玉波, 王建陽(yáng), 韓 爽, 王冬梅
(東北石油大學(xué) 電氣信息工程學(xué)院, 黑龍江 大慶 163318)
圖像去模糊即從一張模糊圖像中復(fù)原該圖像的紋理細(xì)節(jié), 使其清晰化[1]. 在深度學(xué)習(xí)算法普及前, 圖像去模糊一般采用去卷積操作, 嚴(yán)重依賴(lài)于對(duì)模糊核的計(jì)算. 傳統(tǒng)去模糊算法目前已有許多, 如Xu等[2]提出了一種基于空間先驗(yàn)和迭代支持檢測(cè)核精化的兩階段模糊核估計(jì)方法, 利用去卷積模型進(jìn)行盲去模糊; Sun等[3]提出了補(bǔ)丁先驗(yàn)的方法, 利用自然圖像中提取的邊緣圖像塊作為先驗(yàn)信息, 約束圖像間的相似性, 生成高質(zhì)量的圖像; Xu等[4]利用L0稀疏先驗(yàn)提出了一種有效的去模糊方法, 該方法可在少量迭代中迅速收斂, 有較快的運(yùn)行時(shí)間與較好的圖像質(zhì)量; Zhang等[5]提出了利用先驗(yàn)知識(shí)抑制圖像處理中的偽影, 提升了復(fù)原圖像的清晰度; Pan等[6]針對(duì)文本圖像去模糊提出了一種基于L0正則化先驗(yàn)的方法, 可對(duì)低照度文本圖像進(jìn)行有效的去模糊; Yan等[7]提出了一種極致通道先驗(yàn)(extreme channels prior)方法, 基于亮通道先驗(yàn)聯(lián)合暗通道先驗(yàn), 進(jìn)一步提升了圖像去模糊的效果與算法的穩(wěn)定性. 但由于傳統(tǒng)的模糊模型依賴(lài)于圖像的先驗(yàn)知識(shí)[8], 因此盡管在一些專(zhuān)用領(lǐng)域表現(xiàn)出優(yōu)異的性能, 但在面對(duì)多種因素導(dǎo)致的模糊時(shí), 通常泛化性較差.
近年來(lái), 深度學(xué)習(xí)框架在圖像去模糊中得到廣泛應(yīng)用, 獲得了較好的效果. 該類(lèi)算法通過(guò)有效地學(xué)習(xí)原始圖像與模糊圖像之間的對(duì)應(yīng)關(guān)系執(zhí)行去模糊操作. Sun等[9]使用該類(lèi)技術(shù)反向計(jì)算出圖像的模糊核, 然后利用其進(jìn)行復(fù)原; Nah等[10]搭建了一種從粗到細(xì)的多尺度卷積框架對(duì)圖像進(jìn)行去模糊, 在使用視頻合成的真實(shí)模糊圖像上取得了優(yōu)異的成績(jī); Tao等[11]根據(jù)金字塔逐步恢復(fù)不同尺度原始圖像的策略, 提出了一種尺度循環(huán)卷積網(wǎng)絡(luò)的編解碼結(jié)構(gòu), 不同尺度的子網(wǎng)絡(luò)共享參數(shù), 從粗到精的端到端去模糊; Noroozi等[12]使用融合多個(gè)分辨率特征的金字塔結(jié)構(gòu)與短跳連接構(gòu)建去模糊網(wǎng)絡(luò); Gao等[13]提出了PSS-NSC網(wǎng)絡(luò), 使用跨層連接和網(wǎng)絡(luò)參數(shù)共享機(jī)制, 確保了網(wǎng)絡(luò)可以自動(dòng)識(shí)別到各尺度下最重要的特征; Cai等[14]使用一種明暗通道先驗(yàn)框架, 通過(guò)將明暗通道先驗(yàn)嵌入卷積層中, 取得了較好的去模糊效果; Kupyn等[15]設(shè)計(jì)了一個(gè)新的圖像去模糊網(wǎng)絡(luò), 通過(guò)條件生成對(duì)抗網(wǎng)絡(luò)(GAN)進(jìn)行去模糊, 與一般的深度學(xué)習(xí)方法相比, 增加了處理速度; 此后, Kupyn等[16]又搭建了一種具有雙鑒別器的GAN網(wǎng)絡(luò), 在框架中使用特征塔形結(jié)構(gòu), 由于該框架使用了最新的輕量化網(wǎng)絡(luò), 使得其較其他經(jīng)典網(wǎng)絡(luò)計(jì)算速度更快; Gong等[17]搭建了一種可進(jìn)行自學(xué)習(xí)的去模糊GAN框架, 該框架在處理圖像的小范圍模糊去除上獲得了較理想的結(jié)果; Lu等[18]提出了解纏網(wǎng)絡(luò)分離圖像的語(yǔ)義和特征, 通過(guò)將模糊特征編入網(wǎng)絡(luò)提升網(wǎng)絡(luò)的處理能力.
傳統(tǒng)的圖像去模糊方法通常先對(duì)模糊核進(jìn)行估算, 通過(guò)計(jì)算分析得到大致的模糊核后, 再將問(wèn)題簡(jiǎn)化為模糊核已知的反向卷積數(shù)學(xué)問(wèn)題. 而該方法的缺陷是無(wú)法對(duì)多模糊核的數(shù)據(jù)集進(jìn)行有效擬合, 使得該類(lèi)方法應(yīng)用范圍較單一. 而深度學(xué)習(xí)算法龐大的網(wǎng)絡(luò)層提供了強(qiáng)大的擬合能力, 使其可解決這類(lèi)缺陷, 但越來(lái)越多的網(wǎng)絡(luò)層疊加也使得網(wǎng)絡(luò)的參數(shù)幾何倍增, 在網(wǎng)絡(luò)結(jié)構(gòu)上較龐大, 且損失函數(shù)通常較單一, 生成對(duì)抗網(wǎng)絡(luò)類(lèi)的算法雖然通常速度較快, 易于訓(xùn)練[19], 但效果一般, 穩(wěn)定性較差. 因此, 本文提出一種基于循環(huán)多尺度的圖像盲去模糊網(wǎng)絡(luò), 采用從低尺度到高尺度的方法逐步恢復(fù)圖像, 利用參數(shù)共享機(jī)制在避免參數(shù)過(guò)多的同時(shí)對(duì)圖像進(jìn)行由粗到細(xì)的處理. 通過(guò)嵌入通道注意力的殘差通道選擇模塊和圖像特征跨層直連加強(qiáng)網(wǎng)絡(luò)的去模糊性能, 所設(shè)計(jì)的損失函數(shù)可綜合計(jì)算圖像的亮度、 結(jié)構(gòu)對(duì)比度及均方誤差, 以提升去模糊后圖像的真實(shí)性. 實(shí)驗(yàn)結(jié)果表明, 在指標(biāo)與圖像主觀(guān)對(duì)比上, 本文算法優(yōu)于其他經(jīng)典的圖像盲去模糊網(wǎng)絡(luò), 具有較穩(wěn)定的圖像去模糊性能.
圖像在生成、 獲取、 拷貝和存放過(guò)程中, 由于拍攝環(huán)境較差, 相機(jī)硬件損壞或頻繁存取壓縮圖像等會(huì)導(dǎo)致其出現(xiàn)細(xì)節(jié)失真等問(wèn)題, 而模糊圖像不利于圖像識(shí)別、 衛(wèi)星測(cè)繪和案件偵破等實(shí)際應(yīng)用, 因此需要對(duì)已獲得的模糊圖像進(jìn)行去模糊處理.
由圖像模糊原理可建模為
B=I?K+N,
(1)
其中I為原清晰圖像,K為模糊核, ?為卷積操作,N為加性噪聲.模糊圖像可被視為原始圖像與模糊核先進(jìn)行卷積操作, 然后在加性噪聲N的影響下生成的.圖像去模糊的方法則根據(jù)模糊核是否已知分為盲去模糊和非盲去模糊兩類(lèi).盲去模糊在模糊核未知的情況下進(jìn)行, 而現(xiàn)實(shí)生活中圖像產(chǎn)生模糊的原因常復(fù)雜多變, 模糊核很難通過(guò)計(jì)算得出.因此研究盲去模糊問(wèn)題, 對(duì)于如何從真實(shí)場(chǎng)景中復(fù)原清晰圖像具有重要意義.
在網(wǎng)絡(luò)模型上, 本文采用端到端的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[20]作為網(wǎng)絡(luò)的主要設(shè)計(jì)思想.為增強(qiáng)網(wǎng)絡(luò)的去模糊能力, 充分利用圖像自身的多尺度信息, 在網(wǎng)絡(luò)主體結(jié)構(gòu)上, 采用SRN網(wǎng)絡(luò)[11]的類(lèi)U-Net結(jié)構(gòu)進(jìn)行圖像的尺度循環(huán)處理, 如圖1所示. 首先對(duì)原始圖像進(jìn)行下采樣, 再送入到主框架中開(kāi)始去模糊處理, 然后將重建去模糊后的清晰圖像進(jìn)行上采樣升尺度, 再次輸入網(wǎng)絡(luò)進(jìn)行循環(huán)訓(xùn)練. 循環(huán)訓(xùn)練可保持參數(shù)的一致性, 由于同一張圖像的不同尺度具有相似的模糊特征, 因此, 參數(shù)共享機(jī)制可以充分發(fā)揮神經(jīng)網(wǎng)絡(luò)的去模糊能力, 并降低網(wǎng)絡(luò)的參數(shù)量. 在神經(jīng)網(wǎng)絡(luò)中, 圖像在網(wǎng)絡(luò)中循環(huán)的次數(shù)與初始時(shí)圖像縮小的尺度級(jí)別相匹配, 并最終通過(guò)多尺度的去模糊循環(huán)處理, 使圖像具有不同尺度的細(xì)粒度特征, 達(dá)到較好的去模糊效果.
圖1 尺度循環(huán)示意圖Fig.1 Schematic diagram of scale cycle
網(wǎng)絡(luò)的主體框架如圖2所示. ResNet[21]中的跳躍連接設(shè)計(jì)可實(shí)現(xiàn)不同層級(jí)特征的引入, 并優(yōu)化網(wǎng)絡(luò)訓(xùn)練, 同時(shí)受文獻(xiàn)[16]在DeblurGANV2網(wǎng)絡(luò)中長(zhǎng)鏈接設(shè)計(jì)的啟發(fā), 本文在網(wǎng)絡(luò)中設(shè)計(jì)了從模糊圖像到重建圖像的跳躍直連. 通過(guò)將原始特征引入至網(wǎng)絡(luò)輸出, 實(shí)現(xiàn)圖像特征的充分融合. 跳躍長(zhǎng)連接可使融合后的圖像獲得更理想的圖像視覺(jué)細(xì)節(jié), 如圖像的光影、 色彩等.
圖2 網(wǎng)絡(luò)主框架Fig.2 Main framework of network
在解碼器中, 為增強(qiáng)網(wǎng)絡(luò)的特征提取能力, 需使用基本卷積結(jié)構(gòu)對(duì)網(wǎng)絡(luò)進(jìn)行加深. 如圖3所示, 類(lèi)似SRN網(wǎng)絡(luò)的設(shè)計(jì)[11], 在網(wǎng)絡(luò)內(nèi)部逐層特征提取的卷積層后, 使用3層堆疊的ResNet塊, 6組卷積層的卷積組強(qiáng)化特征提取. 在3個(gè)不同深度層級(jí)的卷積組中, 通道數(shù)分別設(shè)為32,64,128, 以逐級(jí)深化特征. 解碼器網(wǎng)絡(luò)結(jié)構(gòu)采用與編碼器一致的對(duì)稱(chēng)設(shè)計(jì).
圖3 卷積組Fig.3 Convolution group
受ResNet殘差思想的啟發(fā), 本文在神經(jīng)網(wǎng)絡(luò)內(nèi)部采用跳躍連接進(jìn)行特征的強(qiáng)化傳播. 為充分對(duì)編碼網(wǎng)絡(luò)的各通道特征進(jìn)行選擇, 本文設(shè)計(jì)了殘差通道選擇模塊, 如圖4所示. 模塊內(nèi)部采用通道注意力[22]的結(jié)構(gòu), 但不同于經(jīng)典的通道注意力模型. 由圖4可見(jiàn), 本文在其基礎(chǔ)上引入了殘差思想, 在進(jìn)行通道選擇的同時(shí)保留了原始特征, 以增強(qiáng)網(wǎng)絡(luò)的去模糊能力.
圖4 通道選擇模塊Fig.4 Channel selection module
為實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的優(yōu)化訓(xùn)練, 本文設(shè)計(jì)使用的損失函數(shù)為均方誤差(mean square error, MSE)和結(jié)構(gòu)相似性(structural similarity, SSIM)的多尺度組合, 可表示為
(2)
其中α為權(quán)重系數(shù), 通過(guò)實(shí)驗(yàn)進(jìn)行確定.最終的損失將由3個(gè)分辨率尺度進(jìn)行計(jì)算并求和得出.
為解決圖像盲去模糊算法在結(jié)構(gòu)亮度等細(xì)節(jié)上優(yōu)化無(wú)力的情況, 本文設(shè)計(jì)了多尺度結(jié)構(gòu)相似性損失, 其中結(jié)構(gòu)相似性定義為
(3)
結(jié)構(gòu)相似性綜合計(jì)算了模糊圖像與清晰圖像像素級(jí)別的亮度、 對(duì)比度和結(jié)構(gòu)差異, 將圖像均值作為圖像亮度的近似, 使用標(biāo)準(zhǔn)差表示圖像的對(duì)比度, 圖像結(jié)構(gòu)則采用協(xié)方差度量.當(dāng)使用兩張完全一樣的圖片時(shí), SSIM值應(yīng)為1; 當(dāng)相似度趨近無(wú)窮小時(shí), SSIM值則趨近于0. 由于SSIM與MSE在圖像訓(xùn)練中的優(yōu)化方向相反, 因此在擬合MSE的最小值時(shí), SSIM值會(huì)增大. 為將其用于損失函數(shù)優(yōu)化, 需對(duì)其進(jìn)行再設(shè)計(jì). 因此, 本文采用1-SSIM作為損失函數(shù), 并綜合計(jì)算3個(gè)尺度的圖像相似值求和, 在訓(xùn)練過(guò)程中將其最小化. 同時(shí), 考慮到單獨(dú)使用SSIM可能會(huì)導(dǎo)致訓(xùn)練方向?qū)庥敖Y(jié)構(gòu)進(jìn)行過(guò)度擬合, 因此本文采用MSE均方誤差彌補(bǔ)SSIM作為損失函數(shù)時(shí)對(duì)訓(xùn)練產(chǎn)生的誤差, 使訓(xùn)練方向朝像素級(jí)的去模糊進(jìn)行. MSE計(jì)算公式為
(4)
MSE通過(guò)計(jì)算去模糊圖像與真實(shí)圖像之間像素級(jí)別的差異, 結(jié)合SSIM對(duì)亮度、 對(duì)比度和結(jié)構(gòu)共同對(duì)網(wǎng)絡(luò)訓(xùn)練進(jìn)行指導(dǎo). 在訓(xùn)練過(guò)程中, 網(wǎng)絡(luò)將在3個(gè)尺度計(jì)算模糊圖像與真實(shí)圖像之間的差值并加權(quán)相加, 將計(jì)算和作為最終損失進(jìn)行最小化, 從而指導(dǎo)函數(shù)收斂. 在本文算法中, 通過(guò)多次實(shí)驗(yàn)驗(yàn)證, 當(dāng)多尺度SSIM損失的參數(shù)α=0.04時(shí), 可獲得較平衡的訓(xùn)練效果. 而在其他圖像復(fù)原任務(wù)中, 對(duì)兩種損失函數(shù)的比重進(jìn)行微調(diào)可獲得更優(yōu)的效果.
模糊數(shù)據(jù)集GoPro[10]使用GoPro運(yùn)動(dòng)攝影機(jī)拍攝的高清圖像, 并利用影像臨近幀合成真實(shí)模糊圖, 使用臨近幀的中間幀表示清晰圖像, 構(gòu)建了大量的清晰-模糊圖像對(duì). 本文采用其中3 214對(duì)圖像進(jìn)行實(shí)驗(yàn), 其中2 103對(duì)用于網(wǎng)絡(luò)訓(xùn)練, 1 111對(duì)用于結(jié)果測(cè)試.
為測(cè)試網(wǎng)絡(luò)的有效性與穩(wěn)定性, 本文使用數(shù)據(jù)集Kohler[23]進(jìn)一步進(jìn)行指標(biāo)對(duì)比. 數(shù)據(jù)集Kohler由4張圖片在12種不同類(lèi)型的卷積核上卷積而成, 由于模糊核種類(lèi)較多, 模糊形成復(fù)雜, 因此可測(cè)試網(wǎng)絡(luò)的去模糊性能. 本文采用真實(shí)數(shù)據(jù)集Lai[24]進(jìn)行直觀(guān)視覺(jué)對(duì)比, 該數(shù)據(jù)集包括文本、 建筑、 人臉等多種目標(biāo)圖像, 涵蓋了低照度、 高復(fù)雜性等多種特征, 可直觀(guān)檢驗(yàn)算法的泛化性與實(shí)際應(yīng)用能力.
本文程序使用Tensorflow1.13[25]框架, 采用Python語(yǔ)言進(jìn)行構(gòu)建, 在Ubuntu系統(tǒng)的計(jì)算機(jī)平臺(tái)上使用Nvidia1080Ti顯卡進(jìn)行實(shí)驗(yàn). 實(shí)驗(yàn)采用數(shù)據(jù)集GoPro進(jìn)行網(wǎng)絡(luò)訓(xùn)練, 在訓(xùn)練過(guò)程中圖片會(huì)被裁切為256×256大小的圖像輸入網(wǎng)絡(luò), 訓(xùn)練批尺寸設(shè)定為16, 采用Adam優(yōu)化器, 損失函數(shù)超參數(shù)設(shè)定為0.04, 網(wǎng)絡(luò)經(jīng)過(guò)2 000次迭代訓(xùn)練收斂, 得到模型的基本數(shù)據(jù).
為檢驗(yàn)程序的可靠性與實(shí)用性, 本文采用在圖像質(zhì)量評(píng)價(jià)中廣泛使用的量化評(píng)價(jià)指標(biāo), 將去模糊后的圖像與原始真實(shí)圖像進(jìn)行峰值信噪比(peak signal to noise ratio, PSNR)和結(jié)構(gòu)相似性的比較, 對(duì)比網(wǎng)絡(luò)為近年深度學(xué)習(xí)領(lǐng)域應(yīng)用廣泛的經(jīng)典算法, 兩個(gè)數(shù)據(jù)集的對(duì)比結(jié)果列于表1.
表1 數(shù)據(jù)集測(cè)試結(jié)果
由表1可見(jiàn), 在數(shù)據(jù)集GoPro上進(jìn)行定量分析, 本文方法較文獻(xiàn)[16]方法在PSNR和SSIM上分別提升了0.72 dB和0.001 7, 在數(shù)據(jù)集Kohler上進(jìn)行定量分析, PSNR與SSIM則分別提升了0.03 dB和0.000 4. 與文獻(xiàn)[11]方法進(jìn)行比較, 在數(shù)據(jù)集GoPro上也有一定程度的提升. 而與其他的經(jīng)典深度學(xué)習(xí)算法相比, 如采用了三層網(wǎng)絡(luò)的文獻(xiàn)[10]方法, 本文方法具有更大的提升.
在具體圖像的定性直觀(guān)分析上, 本文選用在指標(biāo)測(cè)試中綜合表現(xiàn)更好的循環(huán)神經(jīng)(SRN)網(wǎng)絡(luò), 對(duì)比數(shù)據(jù)來(lái)源為GoPro測(cè)試集中的1 111張圖像. 圖5列舉了5張例圖及放大細(xì)節(jié), 其中每列從左至右分別為模糊圖像、 SRN去模糊圖像、 本文方法去模糊圖像和清晰圖像, 同時(shí), 本文也對(duì)在數(shù)據(jù)集Kohle上測(cè)試的圖像進(jìn)行了細(xì)節(jié)對(duì)比, 結(jié)果如圖6所示. 由圖5和圖6可見(jiàn), 與SRN算法相比, 本文方法在復(fù)原圖像上的特征輪廓更準(zhǔn)確和清晰, 光影和亮度方面與真實(shí)圖像相比更貼近, SRN算法在數(shù)據(jù)集Kohle的部分復(fù)原圖像在平滑的背景上出現(xiàn)了細(xì)微的偽影, 本文方法則較少出現(xiàn).
圖5 數(shù)據(jù)集GoPro上的復(fù)原圖像細(xì)節(jié)Fig.5 Details of restored images on GoPro dataset
圖6 數(shù)據(jù)集Kohler上的復(fù)原圖像細(xì)節(jié)對(duì)比Fig.6 Detail comparison of restored images on Kohler dataset
本文在數(shù)據(jù)集Lai上對(duì)真實(shí)圖像進(jìn)行了視覺(jué)對(duì)比, 對(duì)比算法為SRN網(wǎng)絡(luò)與文獻(xiàn)[16]網(wǎng)絡(luò). 如圖7所示, 本文選用具有代表性的3類(lèi)圖像: 人臉、 文字與低光圖像. 由圖7可見(jiàn): 在人臉圖像中, 本文方法具有較好的整體觀(guān)感, 臉部色彩紋理平滑, 偽影較少, 但在人臉邊界的處理中表現(xiàn)較差, 出現(xiàn)了模糊現(xiàn)象; 在文字方面, 本文方法具有較明顯的背景-前景對(duì)比度, 清晰度與SRN等方法相似; 在低光環(huán)境中, 本文方法表現(xiàn)較好, 相比SRN網(wǎng)絡(luò)和文獻(xiàn)[16]網(wǎng)絡(luò), 具有更高的字母識(shí)別度. 因此, 在真實(shí)圖像上本文方法在輪廓邊緣等細(xì)節(jié)與SRN方法相比較差, 但在低光圖像與色彩對(duì)比度上具有好的去模糊效果, 且圖像整體紋理平滑, 觀(guān)感較好.
圖7 數(shù)據(jù)集Lai上的復(fù)原圖像細(xì)節(jié)對(duì)比Fig.7 Detail comparison of restored images on Lai dataset
綜上所述, 針對(duì)復(fù)雜的單圖像盲去模糊問(wèn)題, 本文以現(xiàn)有方法為基礎(chǔ), 提出了一種基于循環(huán)多尺度的盲去模糊網(wǎng)絡(luò). 為使網(wǎng)絡(luò)能充分利用有效特征, 設(shè)計(jì)了殘差通道選擇模塊并將其融入到循環(huán)網(wǎng)絡(luò)框架中, 進(jìn)行通道的選擇優(yōu)化. 同時(shí)在框架中設(shè)計(jì)了跨卷積層的跳躍連接, 以保留原始圖像的有用特征. 此外, 設(shè)計(jì)了用于圖像盲去模糊的多尺度結(jié)構(gòu)損失函數(shù), 通過(guò)綜合優(yōu)化圖像的像素級(jí)差異和大尺度上的結(jié)構(gòu)、 亮度、 對(duì)比度獲得最佳的去模糊視覺(jué)效果. 實(shí)驗(yàn)結(jié)果表明, 本文方法可在多個(gè)數(shù)據(jù)集上獲得較優(yōu)的圖像盲去模糊效果, 與文獻(xiàn)[16]方法相比, 在數(shù)據(jù)集GoPro上PSNR與SSIM分別提升了0.72 dB和0.001 7, 在數(shù)據(jù)集Kohler上PSNR與SSIM分別提升了0.03 dB和0.000 4, 較其他對(duì)比方法也有不同程度的提升, 整體表現(xiàn)優(yōu)于經(jīng)典深度學(xué)習(xí)去模糊算法, 在多個(gè)數(shù)據(jù)集中具有較好的穩(wěn)定性.