陶 狀,廖曉東,2,3,沈江紅
1(福建師范大學(xué) 光電與信息工程學(xué)院,福州 350007)
2(福建師范大學(xué) 醫(yī)學(xué)光電科學(xué)與技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,福建省光子技術(shù)重點(diǎn)實(shí)驗(yàn)室,福州 350007)
3(福建師范大學(xué) 福建省先進(jìn)光電傳感與智能信息應(yīng)用工程技術(shù)研究中心,福州 350007)
圖像超分辨率重建是指從低分辨率圖像中獲得高分辨率圖像.在硬件限制的條件下,往往無(wú)法獲得高分辨率圖像,這時(shí)通過(guò)軟件的方式來(lái)獲得就顯得尤為重要.例如在醫(yī)學(xué)圖像中,由于成像設(shè)備的制約,產(chǎn)生的圖像得不到令人滿意的結(jié)果,而更換硬件的成本昂貴,通過(guò)軟件算法生成高清圖片幫助醫(yī)生判斷是一種很好的選擇.在安防系統(tǒng)中拍攝的視頻需要存儲(chǔ),由于高分辨率圖像需要更多的存儲(chǔ)空間,所以通常都是存儲(chǔ)低分辨率圖像,但是在需要時(shí)重新查看這些視頻圖像往往需要高清的圖像來(lái)進(jìn)行觀察分析.在目標(biāo)檢測(cè)中,小目標(biāo)檢測(cè)更具挑戰(zhàn)性,文獻(xiàn)[1]驗(yàn)證了通過(guò)對(duì)小目標(biāo)區(qū)域進(jìn)行超分辨重建可以提高檢測(cè)的性能.總體來(lái)說(shuō),高分辨率圖像具有更好的視覺感受,具有更豐富的細(xì)節(jié)信息,有助于圖像的理解、處理和分析.超分辨重建逐漸成為圖像處理領(lǐng)域研究的熱點(diǎn)問(wèn)題.
圖像超分辨率重建算法可以分為3 類,基于插值的方法、基于重建模型的方法、基于學(xué)習(xí)的方法.其中基于插值的方法計(jì)算速度很快,但是重建的高分辨圖像的質(zhì)量不好.基于重建模型的方法通常采用復(fù)雜的先驗(yàn)知識(shí)來(lái)限制可能的解空間,這種方法具有生成靈活和銳化細(xì)節(jié)的優(yōu)勢(shì),但是當(dāng)比例因子增加時(shí),重建的性能迅速下降,并且速度通常很慢.基于學(xué)習(xí)的方法例如馬爾科夫隨機(jī)場(chǎng)、隨機(jī)森林、稀疏編碼等直接構(gòu)建從低分辨率圖像到高分辨率圖像的映射關(guān)系,具有快速計(jì)算和杰出性能的優(yōu)勢(shì),近年來(lái)基于深度學(xué)習(xí)的方法逐漸成為當(dāng)前最具優(yōu)勢(shì)的算法.
由于大量可用的數(shù)據(jù)和高效計(jì)算硬件的開發(fā),基于深度學(xué)習(xí)的圖像超分辨率重建得到迅速的發(fā)展.第一次將深度學(xué)習(xí)用在圖像超分辨率任務(wù)上的是Dong等人[2]提出的SRCNN,他們首先用插值法將低分辨率圖像上采樣到所需的高分辨率圖,然后使用3 層卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取、轉(zhuǎn)換和重建得到最后的高分辨率圖像,使用均方差損失函數(shù)訓(xùn)練網(wǎng)絡(luò).SRCNN用插值法進(jìn)行上采樣帶來(lái)的細(xì)節(jié)平滑效應(yīng)往往導(dǎo)致輸入圖像的結(jié)構(gòu)發(fā)生錯(cuò)誤估計(jì),此外在一開始進(jìn)行上采樣會(huì)大量增加后續(xù)操作的計(jì)算量.基于這些缺點(diǎn),文獻(xiàn)[3]提出一種叫做亞像素卷積層的高效上采樣方法,他們首先利用卷積操作來(lái)增加特征圖的通道數(shù),然后將特征圖的像素重新組合,達(dá)到上采樣的目的,其方法如圖1 所示.這種方法可以在網(wǎng)絡(luò)的最后將低分辨特征圖變換到高分辨率圖,網(wǎng)絡(luò)的主體在低分辨圖上進(jìn)行計(jì)算,從而大大減少了計(jì)算量加快了運(yùn)行速度.
圖1 亞像素卷積層示意圖
從另一個(gè)方面考慮,SRCNN 只用了3 層卷積神經(jīng)網(wǎng)絡(luò),然而在計(jì)算機(jī)視覺的其他任務(wù)中,更寬更深的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)通常會(huì)帶來(lái)更優(yōu)的結(jié)果.VDSR[4]是在超分辨率重建任務(wù)中第一個(gè)提出的非常深的模型.首先在結(jié)構(gòu)上VDSR 使用的是20 層卷積神經(jīng)網(wǎng)絡(luò),鑒于可以有效增加感受野的最小卷積核大小是3,所以在VDSR中所有的卷積核大小都設(shè)為3,為了有效訓(xùn)練深的網(wǎng)絡(luò),VDSR 使用相對(duì)較高的初始學(xué)習(xí)率來(lái)加速收斂并且使用了梯度裁剪技巧來(lái)防止梯度爆炸.此外VDSR中還提出了一個(gè)重要的觀點(diǎn),在低分辨率圖像到高分辨率圖像重建的過(guò)程中,高分辨率圖像包含大量的低分辨率圖像的信息,因此網(wǎng)絡(luò)所需要學(xué)習(xí)的是低分辨率圖像的高頻部分,這可以通過(guò)殘差操作來(lái)實(shí)現(xiàn)即將淺層特征圖通過(guò)跳轉(zhuǎn)連接和網(wǎng)絡(luò)后端的抽象特征圖相加.在之后深度學(xué)習(xí)的發(fā)展中,性能更好的殘差網(wǎng)絡(luò)和稠密網(wǎng)絡(luò)先后被運(yùn)用在圖像超分辨率重建的任務(wù)中.
最近基于殘差稠密網(wǎng)絡(luò)[5]的圖像超分辨率重建算法被提出.殘差稠密模塊如圖2 所示,一方面它利用長(zhǎng)跳轉(zhuǎn)殘差操作來(lái)避免在訓(xùn)練中梯度消失的問(wèn)題,另一方面模塊中所有的卷積層都被傳遞到后面所有的層中,這種特征重復(fù)利用的方式提高了網(wǎng)絡(luò)的學(xué)習(xí)效率,最后所有特征圖沿著通道方向拼接在一起,然后用1 ×1的卷積層壓縮通道,自適應(yīng)的選取有用特征.殘差稠密網(wǎng)絡(luò)在圖像超分辨率中表現(xiàn)優(yōu)異,本文所提的雙路徑反饋網(wǎng)絡(luò)是對(duì)殘差稠密網(wǎng)絡(luò)的改進(jìn),進(jìn)一步提高其性能.
圖2 殘差稠密模塊示意圖
由于低分辨率圖像與重建的高分辨率圖像高度相似,因此低分辨率圖像信息對(duì)重建的高分辨率圖像至關(guān)重要.殘差稠密網(wǎng)絡(luò)使用長(zhǎng)跳轉(zhuǎn)連接操作將低級(jí)特征傳輸?shù)骄W(wǎng)絡(luò)后端與高級(jí)特征進(jìn)行融合,并沒有直接利用輸入的低分辨率圖像.鑒于這種動(dòng)機(jī),本文所提的雙路徑反饋網(wǎng)絡(luò)一條分支為殘差稠密網(wǎng)絡(luò),另一條分支使用亞像素卷積算法直接對(duì)輸入的低分辨率圖像進(jìn)行上采樣到所需分辨率,然后兩條分支信息融合并通過(guò)反饋網(wǎng)絡(luò)循環(huán)訓(xùn)練.這種方法減少了網(wǎng)絡(luò)學(xué)習(xí)的難度同時(shí)保證了重建圖片的質(zhì)量.
本文所提的雙路徑反饋網(wǎng)絡(luò)可分解成3 部分:首先是基于殘差稠密網(wǎng)絡(luò)的高頻信息提取路徑,其次是基于亞像素卷積上采樣的低頻信息提取路徑,最后是將兩條路徑進(jìn)行信息融合后的反饋網(wǎng)絡(luò).
殘差稠密網(wǎng)絡(luò)[5]由殘差稠密模塊堆疊組成,如圖3中的上面一條分支所示.輸入的是低分辨圖像,首先進(jìn)過(guò)一個(gè)卷積層將圖像轉(zhuǎn)換到特征域,第一個(gè)卷積層提取的是圖像的淺層特征,然后將淺層特征輸入到第二個(gè)卷積層進(jìn)行特征變換,接著順序的通過(guò)一系列稠密殘差模塊并且每個(gè)殘差稠密模塊輸出的特征圖都會(huì)被聚集在一起.假設(shè)輸出的特征圖為 Fx∈RB×C×H×W,其中B、C、H、W 分別表示批量數(shù)、通道數(shù)、特征圖的高和寬,網(wǎng)絡(luò)中總共堆K 個(gè)稠密殘差模塊,沿著通道方向?qū)⑺刑卣鲌D拼接在一起得到 Fa∈RB×KC×H×W,具有通道數(shù)為KC 的特征圖 Fa之后通過(guò)1 ×1的卷積層通道數(shù)被壓縮為C,保持和淺層特征圖的數(shù)據(jù)維度一致.
圖3 雙路徑反饋網(wǎng)絡(luò)的架構(gòu)示意圖
如圖3 第一條分支所示,淺層特征除了被輸入到之后的卷積層,還會(huì)通過(guò)長(zhǎng)跳轉(zhuǎn)連接操作被直接傳輸?shù)骄W(wǎng)絡(luò)的后端,這種殘差學(xué)習(xí)保證了淺層信息的流通,在反向傳播時(shí)不會(huì)由于網(wǎng)絡(luò)加深而導(dǎo)致的梯度消失影響到淺層參數(shù)的更新.
一幅圖像從頻率角度可以看成是高頻部分與低頻部分的疊加,高頻表示的是圖像變化劇烈的地方,如輪廓、線條,低頻表示的是圖像變化緩慢的地方.對(duì)于人的視覺系統(tǒng)來(lái)說(shuō),人腦對(duì)低頻部分的變化更敏感,高頻部分的變化往往感受不到.因此在圖像超分辨率重建中,保證重建圖像低頻部分的質(zhì)量是算法需要滿足的基本前提,為此本文提出亞像素卷積路徑為重建圖像提供低頻信息,高頻部分則由另一條路徑學(xué)習(xí)得到.
如圖3 第二條分支所示,上采樣模塊直接作用在原始輸入的低分辨率圖像上,其過(guò)程如圖4 所示:首先通過(guò)1 ×1的卷積擴(kuò)大輸入圖像的通道數(shù),然后通過(guò)像素值重新安排來(lái)擴(kuò)大分辨率.假設(shè)輸入的圖像通道數(shù)為C,上采樣因子為r,則通過(guò)1 ×1卷積需要將通道數(shù)擴(kuò)張到 C ×r2,之后通過(guò)像素重排得到的高分辨率圖像為C×rH×rW.
圖4 上采樣路徑示意圖
所提方法整體架構(gòu)的前半部分是雙路徑網(wǎng)絡(luò),一條路徑為深度網(wǎng)絡(luò)來(lái)學(xué)習(xí)高頻信息,另一條路徑為淺層網(wǎng)絡(luò)提供低頻信息,兩條路徑分別經(jīng)過(guò)上采樣模塊后進(jìn)行信息融合.融合的過(guò)程如下:高頻路徑的特征圖為 Fh∈RB×G×H×W,低頻路徑的特征圖為Fl∈RB×C×H×W,沿著通道方向?qū)?Fh與 Fl拼接得到特征圖Fhl∈RB×(G+C)×H×W,然后通過(guò)卷積核大小為1、通道數(shù)為G 的卷積層自適應(yīng)的從高、低頻信息中選擇所需的特征.
為了進(jìn)一步提高高分辨率圖片重建的質(zhì)量,將融合后的特征圖輸入到反饋網(wǎng)絡(luò)來(lái)局部循環(huán)訓(xùn)練,反饋網(wǎng)絡(luò)可以在不增加參數(shù)的情況下,擴(kuò)大特征圖的感受野,有利于增強(qiáng)網(wǎng)絡(luò)的表示能力.反饋網(wǎng)絡(luò)可表示如下:
損失函數(shù)用來(lái)衡量網(wǎng)絡(luò)預(yù)測(cè)的圖像與真實(shí)圖像之間的差異,然后通過(guò)梯度下降算法不斷迭代優(yōu)化使損失值越來(lái)越小,損失值收斂時(shí)網(wǎng)絡(luò)預(yù)測(cè)的圖像將非常接近真實(shí)圖像.
本文采用L1損失函數(shù)來(lái)訓(xùn)練所提的方法,其可以用以下公式表示:
本文使用DIV2K 作為訓(xùn)練集.DIV2K 數(shù)據(jù)集包含1000 張高質(zhì)量的圖像,其中800 張為訓(xùn)練集,100 張為驗(yàn)證集,100 張為測(cè)試集.本文所提方法使用800 張訓(xùn)練圖像訓(xùn)練,選取驗(yàn)證集中10 張圖像作為訓(xùn)練過(guò)程中的評(píng)估,然后在基準(zhǔn)數(shù)據(jù)Set5,Set14,B100,Urban100 上測(cè)試.
殘差稠密網(wǎng)絡(luò)的配置與文獻(xiàn)[5]保持一致,反饋網(wǎng)絡(luò)循環(huán)的次數(shù)設(shè)為2.所有實(shí)驗(yàn)在Windows 10 系統(tǒng),Pycharm 開發(fā)工具,深度學(xué)習(xí)開源框架Pytorch 0.41,NVIDIA 1080ti GPU 上完成,一次完整訓(xùn)練大概需要1 天時(shí)間.
低分辨率圖像是在高分辨率圖像上通過(guò)雙三次插值且降采樣因子為4 計(jì)算得到的.在訓(xùn)練的過(guò)程中,批量大小為16,高分辨率圖像被隨機(jī)裁剪成大小為128 的圖像塊,使用隨機(jī)水平和垂直翻轉(zhuǎn)來(lái)進(jìn)行數(shù)據(jù)增強(qiáng).使用Adam 優(yōu)化器更新參數(shù),學(xué)習(xí)率設(shè)為0.0001,其余參數(shù)保持默認(rèn)值,每個(gè)訓(xùn)練周期迭代1000 次,總共訓(xùn)練200 個(gè)周期.
本文在數(shù)值上使用峰值信噪比(PSNR)[6]和結(jié)構(gòu)相似度(SSIM)[7]來(lái)評(píng)估圖像超分辨率重建的性能,PSNR 和SSIM 的值越大表明圖像重建的質(zhì)量越好.本文所提方法與雙三次插值法、SRCNN、RDN 在數(shù)值上和視覺上相比較來(lái)說(shuō)明所提方法的性能.
表1 顯示了PSNR 和SSIM 在測(cè)試集上的結(jié)果,插值法和SRCNN 的重建的原圖來(lái)自文獻(xiàn)[8]的作者提供,RDN 重建的原圖無(wú)法獲得,本文根據(jù)網(wǎng)絡(luò)提供的代碼重新訓(xùn)練.在測(cè)量PSNR 和SSIM 的數(shù)值時(shí),本文將原始RGB 圖像轉(zhuǎn)到Y(jié)crcb 色彩空間,然后取Y 通道進(jìn)行數(shù)值計(jì)算,PSNR 和SSIM 的計(jì)算公式采用scikitimage 提供的函數(shù).
表1 PSNR 和SSIM 在測(cè)試集上的結(jié)果
觀察表1 中的數(shù)值可以看出,本文算法在4 個(gè)測(cè)試集上PSNR 和SSIM 的值都高于其他3 種方法.雙三次插值法由于固有因素重建的圖像質(zhì)量低于基于深度學(xué)習(xí)的方法.SRCNN 使用淺層的單一結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò),在重建圖像的質(zhì)量上面低于深層的網(wǎng)絡(luò).本文方法基于RDN 的改進(jìn),在增加了一條直接上采樣的路徑和局部反饋網(wǎng)絡(luò)之后,提供了重建圖像更多的特征信息,使得的評(píng)價(jià)指標(biāo)有小幅上漲,這說(shuō)明了本文所提算法的有效性.
圖5 至圖8 分別展示了在數(shù)據(jù)集Set5,Set14,BSD100,Urban100 上的重建效果圖.為了方便觀察,圖像的局部區(qū)域被放大顯示在下半部分.通過(guò)觀察放大部分的圖像,在視覺上雙三次插值法僅僅通過(guò)線性公式對(duì)圖像進(jìn)行4 倍上采樣,所得圖像局部放大后模糊不清.SRCNN 重建的圖像效果雖然比雙三次插值法好,但是由于只使用3 層網(wǎng)絡(luò),重建的結(jié)果仍然比較模糊.本文算法與RDN 相比,由于引入了更多了特征,重建的圖像顯得比較光滑,看上去更清晰.
圖5 數(shù)據(jù)集Set5 中圖像“butterfly”的重建結(jié)果展示圖
圖6 數(shù)據(jù)集Set14 中圖像“barbara”的重建結(jié)果展示圖
圖7 數(shù)據(jù)集BSD100 中圖像“119082”的重建結(jié)果展示圖
圖8 數(shù)據(jù)集Urban100 中圖像“img096”的重建結(jié)果展示圖
本文通過(guò)一組對(duì)比實(shí)驗(yàn)來(lái)確定網(wǎng)絡(luò)的反饋次數(shù).圖9 顯示了實(shí)驗(yàn)結(jié)果對(duì)比圖,橫坐標(biāo)為反饋次數(shù),縱坐標(biāo)為在驗(yàn)證集上的PSNR 值.隨著反饋次數(shù)的增加,網(wǎng)絡(luò)中的感受野增大,網(wǎng)絡(luò)性能通常會(huì)提升.從圖中可以看出當(dāng)反饋次數(shù)為2 時(shí)所提方法在驗(yàn)證集上的PSNR值最大,所以本文設(shè)定反饋次數(shù)為2.當(dāng)反饋次數(shù)大于2 時(shí),由于缺少監(jiān)督可能導(dǎo)致網(wǎng)絡(luò)性能下降.
圖9 不同反饋次數(shù)性能對(duì)比圖
本文提出一種基于雙路徑反饋網(wǎng)絡(luò)的圖像超分辨率算法,兩條路徑分別為深度網(wǎng)絡(luò)和淺層網(wǎng)絡(luò),深度網(wǎng)絡(luò)學(xué)習(xí)重建圖像的高頻信息,特別的淺層網(wǎng)絡(luò)直接給重建圖像提供低頻信息,有利于訓(xùn)練前期網(wǎng)絡(luò)穩(wěn)定的優(yōu)化迭代.此外模型中所采用的反饋網(wǎng)絡(luò)利用局部循環(huán)訓(xùn)練進(jìn)一步提高了圖像重建的質(zhì)量.最后本文在4 個(gè)基準(zhǔn)數(shù)據(jù)集上通過(guò)數(shù)值和視覺兩方面驗(yàn)證了所提方法的有效性.