雷 帥,廖曉東,2,3,潘 浩,李俊珠,陳清俊
1(福建師范大學 光電與信息工程學院,福州 350007)
2(福建師范大學 醫學光電科學與技術教育部重點實驗室和福建省光子技術重點實驗室,福州 350007)
3(福建師范大學 福建省先進光電傳感與智能信息應用工程技術研究中心,福州 350007)
圖像超分辨率重建技術一般可分為兩種,一種是利用多張低分辨率圖像合成一張高分辨率圖像,另一種就是本文所研究的從單張低分辨率圖像獲取高分辨率圖像[1,2].該技術是指使用軟件或硬件方法從獲取到的具有較少細節的低分辨率圖像中重建具有大量細節的對應的高分辨率圖像.該方法目前被用于老照片修復,視頻監視[3],衛星圖像遙感[4],醫學圖像[5,6]等領域.為了追求更好的圖像和視頻質量,近年來,越來越多的人們開始關注和使用超分辨率技術[7].
在這些方法中,它們大致可以分為3 類:基于插值,基于重構和基于學習.基于插值的方法最早被提出,計算速度很快但插值后的高分辨圖像的細節很差,適用于對質量要求不高的場景;基于重建模型的方法提高了重建質量,但因其通常采用復雜的先驗知識來限制可能的解空間,導致速度變慢.隨著大規模視覺識別挑戰賽(ILSVRC)等比賽的舉辦,各種基于卷積神經網絡的模型如雨后春筍般蓬勃發展.鑒于CNN 具有較強的特征提取和表達能力,人們開始嘗試將卷積神經網絡應用在圖像超分辨率重建任務上,因此圖像重建也取得了重大突破并不斷發展.各種基于深度學習的網絡模型的發展大致可分為以下兩個主要方向:一種是以PSNR、SSIM 等評價指標最大化為優化目標,可以較好地重建低頻信息,是早期諸如SRCNN 模型[8]所代表的網絡.另一種是以減少感知損失為目標,而不只是關注硬性指標,以SRGAN 網絡[9]為代表.兩種不同方向的算法所對應的應用領域也不同.
對于圖像超分辨率重建任務,特征圖的上采樣操作對于圖像的恢復至關重要,不同的上采樣操作可能會直接影響重建圖像的質量.因此,本文基于內容感知上采樣重建圖像,重建后的圖像的每個像素都是由特定的卷積核和內容特征圖中的相應位置生成的,并且通過特征圖自適應地獲得特定卷積核.經過實驗證明,我們的方法顯著地提高了重建圖像的效果.
卷積神經網絡雖然很早就問世,但直到2014年SRCNN[8]的作者首次嘗試將卷積神經網絡用在超分辨率重建上,成為超分網絡模型的開山之作,并為后來的圖像超分辨率技術的發展提供了思路.分析其網絡結構十分簡單,僅使用了3 個卷積層就分別實現了圖像塊的提取和特征表示,特征的非線性映射和最終的超分辨率圖像重建功能,而且網絡可以自動學習端到端的映射.但由于網絡的卷積層過少,導致捕獲特征的感受野受限,以及需要在網絡之外將圖像進行預處理即通過雙三次插值到欲放大的尺寸,Dong 等人提出了改進后的超分網絡FSRCNN[10],在網絡末端使用反卷積(deconvolution)來放大圖像尺寸,這樣可以在網絡中直接訓練原始的低分辨率圖片而不需要進行額外的操作,同時網絡可以共享映射層的參數,這樣通過調整最后的反卷積層,就可以實現不同的上采樣倍率的切換.由于反卷積是通過補0 來實現圖像尺寸放大的,勢必會影響到重建效果.而且隨著神經網絡層數的增加,網絡性能卻出現下降.He 等人在2016年提出殘差網絡ResNet[11],有效解決了網絡層數加深時,模型因梯度消散而難以訓練的問題,將網絡擴展到152 層,殘差網絡也成為現在應用最廣泛的技術.同年出現的VDSR[12]就將這種殘差結構應用到超分任務中,一舉將超分辨率重建神經網絡擴展到了20 層,使得網絡獲取更大的感受野,同時由于使用了殘差結構,減少了參數,大大加快了網絡的收斂速度.密集網絡DenseNet[13]采用跳躍連接使得每層輸入都取決于之前所有層的輸出,網絡可以利用不同卷積層的特征信息,受此啟發,SRDenseNet[14]將密集網絡應用在超分辨率重建上,將所有深度層的特征全部連接起來,并使用1×1的卷積層來減少特征數量,取得不錯效果.2018年提出的RDN[15]將殘差結構和密集連接相結合,作者在網絡中連續堆疊多個殘差稠密塊RDB (residual dense block),提出了稠密殘差的網絡結構,充分利用網絡中各個層的特征,并在網絡末端實現特征融合,使得重建效果非常接近真實圖像.目前人們將目光聚焦于特征圖通道,將注意力機制引入到了超分任務中[16],具有代表性的網絡如殘差通道注意網絡RCAN[17]和注意力機制殘差超分網絡SRRAM[18],網絡可以自適應學習不同通道的權重,充分利用通道資源.對于以優化感知損失為目標的網絡,它們不以PSNR為評判網絡性能的導向,而使重建后的圖像恢復高頻信息和紋理細節,更加符合人類認知.SRGAN[9]首次將生成對抗網絡GAN[19]用在了超分辨率圖像重建任務上,其損失函數包括內容損失(content loss)和對抗損失(adversarial loss),利用生成網絡和鑒別網絡互相博弈來提高恢復出的圖片的真實感,使重建后的圖像更符合現實世界人眼觀察到的內容,而不是刻意追求相似性指標.最后是基于改進后的ESRGAN[20],將SRGAN 生成網絡中的RB 模塊換成了RRDB (residual in residual dense block),同時去掉了歸一化層,優化了網絡性能,得到更加自然和真實的圖像.
(1)插值法
傳統的基于插值的上采樣技術一般包括最近鄰插值,雙線性插值和雙三次插值.最近鄰插值是指利用最相鄰位置的像素點來重建待插值位置的像素,而與其他位置像素無關,此方法雖然速度最快,但效果最差.雙線性插值指用相鄰的4 個像素點先橫向進行線性插值,再在豎向上進行插值,效果比最近鄰插值好.雙三次插值指像素點是利用矩形框16 個采樣點加權平均得到的,即先對一個軸進行3 次插值,再對另一個軸進行3 次插值.此方法速度最慢,但重建后的圖片效果相對最好.
(2)轉置卷積
轉置卷積先對低分辨率圖像進行補0,再通過卷積獲得輸出,從而得到放大尺寸的圖像.神經網絡可以學習轉置卷積的參數,在超分任務中得到了廣泛的應用.但是這種方法很容易導致在不同軸上的不均勻重疊,從而導致出現“棋盤效應”,損害重建性能.
(3)亞像素卷積
亞像素的核心思想是通過網絡的卷積層后得到大量的特征圖通道,然后將這些通道重新排列平鋪得到預定尺寸的圖像.由于亞像素卷積可以獲得全局特征,因此網絡可以利用更多的上下文信息來還原更逼真的細節.但亞像素卷積也有缺點,由于特征不是均勻分布的,在提取的不同塊的邊界可能會出現偽影現象,導致輸出不平滑的結果.
對于骨干網絡,我們使用殘差密集模塊堆疊的稠密殘差網絡,并以該模塊為基準來驗證我們的內容感知上采樣方法的有效性.圖1上部分是RDN 網絡[15]體系結構的示意圖.該網絡結構中的前兩個卷積層將圖像域轉換成特征域,并通過跳躍連接的方式將提取到的淺層特征傳遞到網絡的末端,從而促進了淺層特征信息和深層特征融合.上采樣層在網絡末端用于重建圖像,從圖中可以看到,除了卷積層和上采樣層外,網絡的主體由若干堆疊的RDB 模塊組成用于提取局部特征.每個RDB 模塊的輸出不僅充當下一個RDB 模塊的輸入,而且還同時將結果傳遞到網絡的末端進行特征融合.從圖1下部分可看到RDB 模塊主要由卷積層和ReLU 激活函數組成,RDB 模塊的設計是從ResNet[11]和DenseNet[13]結合推出的,并將卷積后生成的特征圖傳輸到每個后續層,每個RDB 模塊最后都有一個卷積層來減少通道數,由于每個卷積層有不同的感受野,就可以充分利用所有層的特征信息來重建圖像.縫合是特征融合的一種方式,此方法對于加快網絡融合速度很有用,最后的跳躍連接的特征融合是通過逐像素相加實現的,這種殘差學習可以幫助解決梯度消失問題并顯著減少計算量.

圖1 本文網絡結構和RDB 模塊示意圖
對于圖像超分辨率重建,上采樣操作是至關重要的一步,因此,在本文中,我們摒棄常用的亞像素卷積上采樣而使用內容感知上采樣層來重建圖像,以探索重建性能提高的可能性.圖2是內容感知上采樣層的示意圖.如該圖所示,內容感知上采樣層通常分為兩部分,第一部分即該圖的上半部分,該部分的目的是為每個像素生成特定的卷積核.主要步驟如下:首先,使用1×1卷積將給定的特征圖通道C壓縮為C',其目的是減少計算量.然后,將獲得的特征圖反饋送到子像素卷積層進行特征重新排列.最后,使用激勵函數Softmax對上一步中的卷積核進行歸一化.假設給定特征圖的形狀為RC×H×W,其中C、H、W分別表示通道數、特征圖的高和寬,則最終生成的卷積核形狀為,其中km代表每個像素的特定卷積核的大小,并用 σ表示超分辨率的放大倍數.第二部分是圖形的下半部分,首先通過最近鄰插值方法將給定的特征圖擴展到指定的放大倍數,以獲得擴展后的特征圖,然后從第一部分沿每個位置分別獲得特定的卷積核頻道已擴展為km×km的大小.最后,目標位置以擴展的特征圖為中心,然后將內積與卷積核進行卷積.在此過程中,其大小與卷積內核一致,并且不同的通道共享相同的權重.然后,我們可以獲得最終的所需像素值.該網絡最終由RDN的主干架構和內容感知的上采樣層組成.

圖2 基于內容感知上采樣模塊的示意圖
在神經網絡中,損失函數主要用來衡量通過網絡重建的圖像與真實高分圖像之間的差距,然后通過梯度下降算法不斷迭代更新來減小函數損失數值,當損失值收斂時說明網絡重建后的圖像的真實值將逼近原始圖像.常見的損失函數有L1,L2 等.本文選擇將L1損失函數放在輸出層中以降低損失函數值為目標來更新參數,以下公式為其表達式:

其中,H,W,C分別表示圖像的高度、寬度和通道數.
圖像超分辨率的重建效果的評估指標在本領域內通常用峰值信噪比(peak signal-to-noise ratio,PSNR)和結構相似度(structural similarity,SSIM)來表示,要想提高重建圖像的質量使其更加接近原始高分圖像,PSNR和SSIM的值就需要越高越好.
(1)PSNR
均方誤差定義為:給定一個大小為m×n的原始圖像K和重建后的高分圖像I,則均方誤差MSE為:

利用MSE得到峰值信噪比定義為:

其中,MAX為圖片可能的最大像素值,如果每個像素都用8 位二進制來表示,那么其值就是28-1=255.一般來說,如果像素的二進制數用B位來表示,那么MAX=2B-1.PSNR的單位是dB,其值越大說明失真越少,重建效果越好.由于PSNR的評價標準和人眼觀測到的實際圖像機制不同,導致可能有的圖像PSNR 值很大,但是人眼評價相似度卻不高.
(2)SSIM
SSIM從亮度l、對比c、和結構s三個維度對兩幅圖像的相似度進行綜合比較,

SSIM的取值范圍是[0,1],取值越大說明重建圖片和原圖相似度越高.由于圖片尺寸一般比較大,在實際中,我們通常會對圖片進行分塊,然后分別計算每塊的SSIM,最后取平均值作為結構相似度度量.假設圖像分為N塊,則平均結構相似性MSSIM為:

現在的神經網絡訓練十分依賴數據集,在本文中,選擇DIV2K 作為我們的訓練數據集.DIV2K 數據集包含1 000 張高質量圖像,其中800 張作為訓練集,100 張作為驗證集,100張作為測試集.圖像超分任務一般使用成對的超分和低分圖像來訓練網絡.在網絡中首先通過雙三次插值降低圖像分辨率,再將低分辨率圖像作為輸入送入網絡中進行訓練,在訓練過程中,放大倍數分別設置為2 倍、3 倍和4 倍.驗證在不同放大倍數下,網絡的性能表現.
同時,我們分別在基準數據集Set5,Set14,B100,Urban100 進行測試.關于RDN 網絡的配置,每個RDB模塊中設有3 個卷積層,每個模塊最后的輸出通道數為16,我們總共在整個網絡中使用10 個RDB 模塊,除了網絡末端的卷積層和每個RDB 模塊最后使用的是1×1卷積核外,其他剩余的卷積層統一使用3×3的小卷積核.
這次所有實驗均在Windows 10 操作系統和PyTorch框架上完成.使用英偉達1080Ti GPU 進行訓練.在訓練過程中,批處理大小設為16,網絡輸入設為大小為32的圖像塊.使用隨機的水平和垂直翻轉來進行數據擴充,可以增加訓練數據量,并提高網絡模型的泛化能力.在網絡的末端,我們使用Adam 優化器來更新參數,學習率設置為10-3,其余參數保持為默認值.在整個過程中,記一次正向傳播和反向梯度更新為一次訓練過程,我們一共迭代訓練了200 次.
通過與雙三次插值方法SRCNN[8]和RDN[15]進行數值和視覺比較,來驗證我們方法的性能表現.表1顯示了4 種方法在不同放大倍數下的測試結果,在測量PSNR和SSIM的值時,我們將色彩空間從RGB 域轉換為Ycrcb 域,然后在Y 通道中進行計算.從表1中可以看到,在PSNR和SSIM方面,與其他3 種方法相比,本文算法在基準數據集上具有更高的數值.分析其原因,由于固有因素的限制,雙三次插值方法的圖像重建質量低于基于深度學習的方法.SRCNN 使用了一個基于淺層結構的單一卷積神經網絡,其重建圖像的質量低于深層網絡.本文提出的方法使用內容感知上采樣層,相比于RDN 優化了網絡,其余結構保持不變.從表1測試數據來看,評估指標都增加了,這說明了該算法的有效性.圖3顯示了我們的方法與RDN 網絡在不同比例(×2,×3,×4)之間的收斂性比較.從該圖中的第一張和第二張可以看出,我們的方法在×2和×3的放大倍數下PSNR的振蕩曲線更小,并且顯示出更好的穩定性.當放大倍數是×4 時,我們所提出的方法在多次迭代過程中的PSNR值始終高于RDN,優勢顯而易見.圖4是實際圖像重建效果,為了便于觀察,將圖像的局部區域放大.可以看到我們方法重建的圖像不僅分辨率更高,并且圖像的紋理細節更加豐富,顯示出了較好的效果.

表1 不同方法在放大倍數分別為2 倍、3 倍及4 倍下的PSNR和SSIM 值

圖3 本文方法與RDN 在不同放大倍數下PSNR的收斂曲線對比
在本文中,對于超分辨率圖像的重建,我們提出了一種基于內容感知上采樣的圖像超分辨率算法,該算法為重建圖像的每個像素自適應生成特定的卷積核,使得從而明顯改善了重建圖像的分辨率.通過對4 個基準測試數據集進行視覺比較,數值比較和收斂圖比較,可以發現本文提出的方法比基準方法RDN具有更好的結果.實際上,我們的方法還有很大的提升空間.我們小組研究下一步的主要方向是如何將超分辨率重建方法與更深入,更有效的網絡結構結合起來,從而恢復出高頻紋理細節信息,使重建圖像更加自然.