Learning a Deep Convolutional Network for Image Super-Resolution
SRCNN是深度學習用在超分辨率重建上的開山之作蓖柔。SRCNN的網(wǎng)絡(luò)結(jié)構(gòu)非常簡單卦碾,僅僅用了三個卷積層,網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。
論文鏈接: (Learning a Deep Convolutional Network for Image Super-Resolution, ECCV2014)
Pytorch實現(xiàn)源碼
算法簡介
SRCNN算法的框架竹习,SRCNN將深度學習與傳統(tǒng)稀疏編碼之間的關(guān)系作為依據(jù)础钠,將3層網(wǎng)絡(luò)劃分為圖像塊提取(Patch extraction and representation)排监、非線性映射(Non-linear mapping)以及最終的重建(Reconstruction)仇奶。
SRCNN的流程為:
(1)先將低分辨率圖像使用雙三次差值放大至目標尺寸(如放大至2倍、3倍驾窟、4倍)庆猫,此時仍然稱放大至目標尺寸后的圖像為低分辨率圖像(Low-resolution image),即圖中的輸入(input)绅络;
(2)將低分辨率圖像輸入三層卷積神經(jīng)網(wǎng)絡(luò)月培,(舉例:在論文中的其中一實驗相關(guān)設(shè)置,對YCrCb顏色空間中的Y通道進行重建昨稼,網(wǎng)絡(luò)形式為(conv1+relu1)—(conv2+relu2)—(conv3))第一層卷積:卷積核尺寸9×9(f1×f1)节视,卷積核數(shù)目64(n1),輸出64張?zhí)卣鲌D假栓;第二層卷積:卷積核尺寸1×1(f2×f2)寻行,卷積核數(shù)目32(n2),輸出32張?zhí)卣鲌D匾荆;第三層卷積:卷積核尺寸5×5(f3×f3)拌蜘,卷積核數(shù)目1(n3),輸出1張?zhí)卣鲌D即為最終重建高分辨率圖像牙丽。
們首先使用雙三次插值將其放大到所需的大小简卧,這是我們執(zhí)行的唯一預處理3。讓我們將插值圖像表示為Y.我們的目標是從Y中恢復與地面實況高分辨率圖像X盡可能相似的圖像F(Y)烤芦。為了便于呈現(xiàn)举娩,我們?nèi)苑QY為“低分辨率的“圖像,雖然它與X具有相同的大小构罗。我們希望學習映射F铜涉,它在概念上由三個操作組成:
- 1)補丁提取和表示:該操作從低分辨率圖像Y中提取(重疊)補丁遂唧,并將每個補丁表示為高維向量芙代。這些向量包括一組特征圖,其數(shù)量等于向量的維數(shù)盖彭。
- 2)非線性映射:該操作是每個高維向量到另一個高維向量的非線性映射纹烹。每個映射的矢量在概念上是高分辨率補丁的表示页滚。這些向量包括另一組特征映射。
- 3)重建:該操作聚合高分辨率補丁表示以生成最終的高分辨率圖像铺呵。該圖像應該與真實標記X相似裹驰。
算法流程
Patch extraction and representation
圖像恢復中的流行策略是密集地提取補丁,然后通過一組預先訓練的基礎(chǔ)(例如PCA陪蜻,DCT邦马,Haar等)來表示它們贱鼻。這相當于用一組濾波器對圖像進行卷積宴卖,每個濾波器都是一組基。將這些基礎(chǔ)的優(yōu)化包括在網(wǎng)絡(luò)的優(yōu)化中邻悬。第一層表示為操作:
其中和 分別代表濾波器和偏置症昏。這里的大小為,其中c是輸入圖像中的通道數(shù)父丰,是濾波器的空間大小肝谭,是濾波器的數(shù)量。很明顯蛾扇,在圖像上應用個卷積攘烛,每個卷積的內(nèi)核大小為。輸出由個特征圖組成镀首。是維向量坟漱,其每個元素與濾波器相關(guān)聯(lián)。我們在濾波器響應上應用整流線性單元(ReLU更哄,max(0芋齿,x))
Non-linear mapping 非線性映射
第一層為每個補丁提取維特征。在第二操作中成翩,我們將這些維向量中的每一個映射為維向量觅捆。這相當于應用具有平凡空間支持1 x 1的濾波器。此解釋僅適用于1 x 1過濾器麻敌。但是很容易推廣到像3 x 3或5 x 5這樣的大型濾波器 栅炒。在那種情況下,非線性映射不是輸入圖像的補丁; 相反术羔,它是在3 x 3或5 x 5特征圖的“補丁”赢赊。第二層的操作是:
這里的大小是,是維聂示。每個輸出維向量在概念上是將用于重建的高分辨率補丁的表示域携。
Reconstruction
在傳統(tǒng)方法中,經(jīng)常對預測的重疊高分辨率補丁進行平均以產(chǎn)生最終的完整圖像鱼喉。平均可以被認為是一組特征圖上的預定義濾波器(其中每個位置是高分辨率補片的“扁平”矢量形式)秀鞭。由此推動趋观,我們定義卷積層以產(chǎn)生最終的高分辨率圖像:
這里的大小是,是三維矢量锋边。
訓練
(1)訓練數(shù)據(jù)集:論文中某一實驗采用91張自然圖像作為訓練數(shù)據(jù)集皱坛,對訓練集中的圖像先使用雙三次差值縮小到低分辨率尺寸,再將其放大到目標放大尺寸豆巨,最后切割成諸多33×33圖像塊作為訓練數(shù)據(jù)剩辟,作為標簽數(shù)據(jù)的則為圖像中心的21×21圖像塊(與卷積層細節(jié)設(shè)置相關(guān));
(2)損失函數(shù):采用MSE函數(shù)作為卷積神經(jīng)網(wǎng)絡(luò)損失函數(shù)往扔;
(3)卷積層細節(jié)設(shè)置:第一層卷積核9×9贩猎,得到特征圖尺寸為(33-9)/1+1=25,第二層卷積核1×1萍膛,得到特征圖尺寸不變吭服,第三層卷積核5×5,得到特征圖尺寸為(25-5)/1+1=21蝗罗。訓練時得到的尺寸為21×21艇棕,因此圖像中心的21×21圖像塊作為標簽數(shù)據(jù)。(卷積訓練時不進行padding)
測試
(1)全卷積網(wǎng)絡(luò):所用網(wǎng)絡(luò)為全卷積網(wǎng)絡(luò)串塑,因此作為實際測試時沼琉,直接輸入完整圖像即可;
(2)Padding:訓練時得到的實際上是除去四周(33-21)/2=6像素外的圖像桩匪,若直接采用訓練時的設(shè)置(無padding)打瘪,得到的圖像最后會減少四周各6像素(如插值放大后輸入512×512,輸出500×500)吸祟。因此在測試時每一層卷積都進行了padding(卷積核尺寸為1×1的不需要進行padding)瑟慈。這樣保證插值放大后輸入與輸出尺寸的一致性。