概述
SRCNN,超分辨率技术(Super-Resolution)是指从观测到的低分辨率图像重建出相应的高分辨率图像。
论文复现代码:http://aistudio.baidu.com/aistudio/#/projectdetail/24446
SRCNN流程
依据深度学习与传统稀疏编码之间的关系,将网络层分为3层。一层是图像提取层,中间层是非线性映射,最后一层是图像重构层。
具体流程如下:
- 先将低分辨率图像使用双三次差值放大至目标尺寸(如放大至 2 倍、3 倍、4 倍),此时仍然称放大至目标尺寸后的图像为低分辨率图像(Low-resolution image),即图中的输入(input);
- 将低分辨率图像输入三层卷积神经网络。举例:在论文其中一个实验相关设置,对 YCrCb 颜色空间中的 Y 通道进行重建,网络形式为 (conv1+relu1)—(conv2+relu2)—(conv3+relu3);第一层卷积:卷积核尺寸 9×9 (f1×f1),卷积核数目 64 (n1),输出 64 张特征图;第二层卷积:卷积核尺寸 1×1 (f2×f2),卷积核数目 32 (n2),输出 32 张特征图;第三层卷积:卷积核尺寸 5×5 (f3×f3),卷积核数目 1 (n3),输出 1 张特征图即为最终重建高分辨率图像。
训练
训练数据集 论文中某一实验采用91张自然图像作为训练数据集,对训练集中的图像先使用双三次差值缩小到低分辨率尺寸,再将其放大到目标放大尺寸,最后切割成诸多 33 × 33 图像块作为训练数据,作为标签数据的则为图像中心的 21 × 21 图像块(与卷积层细节设置相关)。
损失函数 采用 MSE 函数作为卷积神经网络损失函数。
卷积层细节设置 第一层卷积核 9 × 9,得到特征图尺寸为 (33-9)/1+1=25,第二层卷积核 1 × 1,得到特征图尺寸不变,第三层卷积核 5 × 5,得到特征图尺寸为 (25-5)/1+1=21。训练时得到的尺寸为 21 × 21,因此图像中心的 21 × 21 图像块作为标签数据(卷积训练时不进行 padding)。
部分代码
测试
全卷积网络:
所用网络为全卷积网络,因此作为实际测试时,直接输入完整图像即可。
Padding:
训练时得到的实际上是除去四周(33-21)/2=6像素外的图像,若直接采用训练时的设置(无 padding),得到的图像最后会减少四周各 6 像素(如插值放大后输入 512 × 512,输出 500 × 500)。
因此在测试时每一层卷积都进行了 padding(卷积核尺寸为 1 × 1的不需要进 行 padding),这样保证插值放大后输入与输出尺寸的一致性。
结论 客观评价指标 PSNR 与 SSIM:相比其他传统方法,SRCNN 取得更好的重建效果。