深度学习(二十一)——SRCNN, DRCN, VDSR
https://antkillerfarm.github.io/
圖像超分辨率算法(續)
前DL時代的SR
從信號處理的角度來說,LR之所以無法恢復成HR,主要在于丟失了圖像的高頻信息。(Nyquist采樣定理)
Harry Nyquist,1889~1976,University of North Dakota本碩(1914,1915)+耶魯博士(1917)。AT&T貝爾實驗室電子工程師。IEEE Medal of Honor獲得者(1960)。
IEEE Medal of Honor是IEEE的最高獎,除了1963年之外,每年只有1人得獎,個別年份甚至會輪空。
最簡單的當然是《圖像處理理論(二)》中提到的梯度銳化和拉普拉斯銳化,這種簡單算法當然不要指望有什么好效果,聊勝于無而已。這是1995年以前的主流做法。
稍微復雜的方法,如同CV的其它領域經歷了“信號處理->ML->DL”的變遷一樣,SR也進入了ML階段。
上圖是兩種典型的SR算法。
左圖算法的中心思想是從圖片中找出相似的大尺度區域,然后利用這個大區域的邊緣信息進行SR。但這個方法對于那些只出現一次的邊緣信息是沒什么用的。
于是就有了右圖的算法。對各種邊緣信息建立一個數據庫,使用時從數據庫中挑一個最類似的邊緣信息進行SR。這個方法比上一個方法好一些,但不夠魯棒,圖片稍作改動,就有可能無法檢索到匹配的邊緣信息了。
ML時代的代表算法還有:
《Image Super-Resolution via Sparse Representation》
這篇論文是黃煦濤和馬毅小組的Jianchao Yang的作品。
黃煦濤(Thomas Huang),1936年生。生于上海,國立臺灣大學本科(1956)+MIT碩博(1960,1963)。UIUC教授。美國工程院院士,中國科學院+中國工程院外籍院士。
馬毅,清華本科(1995)+UCB碩博(1997,2000)。UCB教授。IEEE fellow。
個人主頁:
http://yima.csl.illinois.edu/
這篇論文提出的算法,在形式上和后文這些DL算法已經非常類似了,也是基于HR和LR配對的有監督訓練。區別只在于這篇論文使用矩陣的稀疏表示來擬合SR函數,而DL算法使用神經網絡擬合SR函數。前者是線性變換,而后者是非線性變換。
參考
https://zhuanlan.zhihu.com/p/25532538
深度學習在圖像超分辨率重建中的應用
https://zhuanlan.zhihu.com/p/25201511
深度對抗學習在圖像分割和超分辨率中的應用
https://mp.weixin.qq.com/s/uK0L5RV0bB2Jnr5WCZasfw
深度學習在單圖像超分辨率上的應用:SRCNN、Perceptual loss、SRResNet
https://mp.weixin.qq.com/s/xpvGz1HVo9eLNDMv9v7vqg
NTIRE2017奪冠論文:用于單一圖像超分辨率的增強型深度殘差網絡
https://www.zhihu.com/question/25401250
如何通過多幀影像進行超分辨率重構?
https://www.zhihu.com/question/38637977
超分辨率重建還有什么可以研究的嗎?
https://zhuanlan.zhihu.com/p/25912465
胎兒MRI高分辨率重建技術:現狀與趨勢
https://mp.weixin.qq.com/s/i-im1sy6MNWP1Fmi5oWMZg
華為推出新型HiSR:移動端的超分辨率算法
SRCNN
SRCNN(Super-Resolution CNN)是湯曉鷗小組的Chao Dong的作品。
湯曉鷗,中國科學技術大學本科(1990)+羅切斯特大學碩士(1991)+麻省理工學院博士(1996)。香港中文大學教授,商湯科技聯合創始人。
論文:
《Learning a Deep Convolutional Network for Image Super-Resolution》
該方法對于一個低分辨率圖像,先使用雙三次(bicubic)插值將其放大到目標大小,再通過三層卷積網絡做非線性映射,得到的結果作為高分辨率圖像輸出。作者將三層卷積的結構解釋成與傳統SR方法對應的三個步驟:圖像塊的提取和特征表示,特征非線性映射和最終的重建。
三個卷積層使用的卷積核的大小分為為9x9, 1x1和5x5,前兩個的輸出特征個數分別為64和32。
以下是論文的效果表格:
吐槽一下,這種表格屬于論文必須有,但是卻沒什么營養的部分,且不乏造假的例子。原因很簡單,一個idea,如果沒有好效果,paper連發都發不了。但是,沒有好效果的idea,未必沒有價值,不說是否能啟發人們的思維,至少能讓后來者,不用再掉到同一個坑里。
比如化學領域,失敗的實驗遠遠多于成功的實驗。在計算能力不發達的時代,人們主要關注成功的案例,但現在大家逐漸意識到:失敗的案例才是更大的財富。
這里對其中的指標做一個簡介。
PSNR(Peak Signal to Noise Ratio,峰值信噪比)
MSE=1H×W∑i=1H∑j=1W(X(i,j)?Y(i,j))2MSE=1H×W∑i=1H∑j=1W(X(i,j)?Y(i,j))2
PSNR=10log10((2n?1)2MSE)PSNR=10log10?((2n?1)2MSE)
其中,MSE表示當前圖像X和參考圖像Y的均方誤差(Mean Square Error),H、W分別為圖像的高度和寬度;n為每像素的比特數,一般取8,即像素灰階數為256. PSNR的單位是dB,數值越大表示失真越小。
雖然PSNR和人眼的視覺特性并不完全一致,但是一般認為PSNR在38以上的時候,人眼就無法區分兩幅圖片了。
SSIM(structural similarity, 結構相似性),也是一種全參考的圖像質量評價指標,它分別從亮度、對比度、結構三方面度量圖像相似性。
μX=1H×W∑i=1H∑j=1WX(i,j),σ2X=1H×W∑i=1H∑j=1W(X(i,j)?μX)2μX=1H×W∑i=1H∑j=1WX(i,j),σX2=1H×W∑i=1H∑j=1W(X(i,j)?μX)2
σXY=1H×W∑i=1H∑j=1W((X(i,j)?μX)(Y(i,j)?μY))σXY=1H×W∑i=1H∑j=1W((X(i,j)?μX)(Y(i,j)?μY))
l(X,Y)=2μXμY+C1μ2X+μ2Y+C1,c(X,Y)=2σXσY+C2σ2X+σ2Y+C2,s(X,Y)=σXY+C3σXσY+C3l(X,Y)=2μXμY+C1μX2+μY2+C1,c(X,Y)=2σXσY+C2σX2+σY2+C2,s(X,Y)=σXY+C3σXσY+C3
SSIM(X,Y)=l(X,Y)?c(X,Y)?s(X,Y)SSIM(X,Y)=l(X,Y)?c(X,Y)?s(X,Y)
C1,C2,C3C1,C2,C3為常數,為了避免分母為0的情況,通常取C1=(K1?L)2,C2=(K2?L)2,C3=C2/2C1=(K1?L)2,C2=(K2?L)2,C3=C2/2,一般地K1=0.01,K2=0.03,L=255K1=0.01,K2=0.03,L=255。
SSIM取值范圍[0,1],值越大,表示圖像失真越小。
在實際應用中,可以利用滑動窗將圖像分塊,令分塊總數為N,考慮到窗口形狀對分塊的影響,采用高斯加權計算每一窗口的均值、方差以及協方差,然后計算對應塊的結構相似度SSIM,最后將平均值作為兩圖像的結構相似性度量,即平均結構相似性MSSIM:
MSSIM(X,Y)=1N∑k=1NSSIM(xk,yk)MSSIM(X,Y)=1N∑k=1NSSIM(xk,yk)
需要指出的是,PSNR和SSIM都是一些物理指標,它和人眼的視覺感受有一定的差異,不見得指標差的圖就一定不如指標好的圖(比如SRGAN)。
主觀得分一般采用MOS(mean opinion score)作為評價指標。
參考:
http://blog.csdn.net/u011692048/article/details/77496861
超分辨率重建之SRCNN
http://www.cnblogs.com/vincent2012/archive/2012/10/13/2723152.html
PSNR和SSIM
DRCN
DRCN(deeply-recursive convolutional network)是韓國首爾國立大學的作品。
論文:
《Deeply-Recursive Convolutional Network for Image Super-Resolution》
SRCNN的層數較少,同時感受野也較小(13x13)。DRCN提出使用更多的卷積層增加網絡感受野(41x41),同時為了避免過多網絡參數,該文章提出使用遞歸神經網絡(RNN)。網絡的基本結構如下:
與SRCNN類似,該網絡分為三個模塊,第一個是Embedding network,相當于特征提取,第二個是Inference network, 相當于特征的非線性變換,第三個是Reconstruction network,即從特征圖像得到最后的重建結果。其中的Inference network是一個遞歸網絡,即數據循環地通過該層多次。將這個循環進行展開,就等效于使用同一組參數的多個串聯的卷積層,如下圖所示:
其中的H1H1到HDHD是D個共享參數的卷積層。DRCN將每一層的卷積結果都通過同一個Reconstruction Net得到一個重建結果,從而共得到D個重建結果,再把它們加權平均得到最終的輸出。另外,受到ResNet的啟發,DRCN通過skip connection將輸入圖像與H_d的輸出相加后再作為Reconstruction Net的輸入,相當于使Inference Net去學習高分辨率圖像與低分辨率圖像的差,即恢復圖像的高頻部分。
參考:
http://blog.csdn.net/u011692048/article/details/77500764
超分辨率重建之DRCN
VDSR
VDSR是DRCN的原班人馬的新作。
論文:
《Accurate Image Super-Resolution Using Very Deep Convolutional Networks》
代碼:
code:https://github.com/huangzehao/caffe-vdsr
SRCNN存在三個問題需要進行改進:
1、依賴于小圖像區域的內容;
2、訓練收斂太慢;
3、網絡只對于某一個比例有效。
VDSR模型主要有以下幾點貢獻:
1、增加了感受野,在處理大圖像上有優勢,由SRCNN的13x13變為41x41。(20層的3x3卷積)
2、采用殘差圖像進行訓練,收斂速度變快,因為殘差圖像更加稀疏,更加容易收斂(換種理解就是LR攜帶者低頻信息,這些信息依然被訓練到HR圖像,然而HR圖像和LR圖像的低頻信息相近,這部分花費了大量時間進行訓練)。
3、考慮多個尺度,一個卷積網絡可以處理多尺度問題。
訓練的策略:
1、采用殘差的方式進行訓練,避免訓練過長的時間。
2、使用大的學習進行訓練。
3、自適應梯度裁剪,將梯度限制在某一個范圍。
4、多尺度,多種尺度樣本一起訓練可以提高大尺度的準確率。
對于邊界問題,由于卷積的操作導致圖像變小的問題,本文作者提出一個新的策略,就是每次卷積后,圖像的size變小,但是,在下一次卷積前,對圖像進行補0操作,恢復到原來大小,這樣不僅解決了網絡深度的問題,同時,實驗證明對邊界像素的預測結果也得到了提升。
參考:
http://blog.csdn.net/u011692048/article/details/77512310
超分辨率重建之VDSR
總結
以上是生活随笔為你收集整理的深度学习(二十一)——SRCNN, DRCN, VDSR的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(二十)——Ultra Deep
- 下一篇: 深度学习(二十二)——ESPCN, FS