SRCNN(超分辨率卷積神經網絡)
網絡結構
- l Conv1: f1 = 9 *9 activation = ‘relu’
- l Conv2: f2 = 1 *1 activation = ‘relu’ #為了非線性映射 增強非線性
- l Conv3: f3 = 5 * 5 activation = ‘lienar’
SRCNN訓練流程
- l 設X為按stride=14 從91張圖片訓練數據中裁剪得33 x 33 大小的圖片裁剪得24800張, 則X為 High Resolution Image 即Label,使用set5作為驗證集(若用ImageNet的訓練數據則stride = 33)
- l 對X進行高斯內核平滑,再通過縮放因子下采樣 再通過同樣的縮放因子進行雙三次線性插值上采樣得到的圖片為Y 我們稱為Low-Resolution Samples 即訓練集
- l 作者只考慮YCrCb顏色通道中的明亮度通道Y進行訓練,其他色度通道進行雙三次上采樣處理,這樣做的目的是與傳統的方法進行對比,其他通道僅用於展示不用於訓練與測試
- l 訓練過程中為了避免邊緣效應,所有卷積層都沒padding所以SRCNN的網絡output為20 x 20 圖片
- l 使用MSE損失函數,方便峰值信噪比,只用X的中心 21 x 21 部分來做真正的label
- l 測試的時候並不需要進行裁剪處理,只需對測試圖片進行padding剪切,取padding=(fsub-f1-f2-f3+3)/2 ,直接取中心圖片進行測試,這與只用X的中心 21 x 21 部分來做真正的label是同樣的道理
復現參考代碼: https://github.com/tegg89/SRCNN-Tensorflow