图像超分辨率重建之SRCNN

笔者从CSDN平台迁移至:https://blog.csdn.net/Autism_/article/details/79401798(CSDN链接)

图像超分辨率重建:指通过低分辨率图像或图像序列恢复出高分辨率图像。高分辨率图像意味着图像具有更多的细节信息、更细腻的画质,,这些细节在高清电视、医学成像、遥感卫星成像等领域有着重要的应用价值。

Super-Resolution Convolutional Neural Network:本篇文章讲述的是深度学习在图像超分辨率重建问题的开山之作SRCNN(Super-Resolution Convolutional Neural Network)。香港中文大学Dong等将卷积神经网络应用于单张图像超分辨率重建上(Image Super-Resolution Using Deep Convolutional Networks)

论文与官方代码: paper and offical code

笔者复现代码(Tensorflow version):my code


一、SRCNN

1. SRCNN框架

图像超分辨率重建之SRCNN_第1张图片
图1 SRCNN框架

图1为SRCNN的框架,SRCNN将深度学习与传统稀疏编码之间的关系作为依据,将3层网络划分为图像块提取(Patch extraction and representation)、非线性映射(Non-linear mapping)以及最终的重建(Reconstruction)。

2. SRCNN流程

    (1)先将低分辨率图像使用双三次差值放大至目标尺寸(如放大至2倍、3倍、4倍),此时仍然称放大至目标尺寸后的图像为低分辨率图像(Low-resolution image),即图中的输入(input);

    (2)将低分辨率图像输入三层卷积神经网络,(举例:在论文中的其中一实验相关设置,对YCrCb颜色空间中的Y通道进行重建,网络形式为(conv1+relu1)—(conv2+relu2)—(conv3))第一层卷积:卷积核尺寸9×9(f1×f1),卷积核数目64(n1),输出64张特征图;第二层卷积:卷积核尺寸1×1(f2×f2),卷积核数目32(n2),输出32张特征图;第三层卷积:卷积核尺寸5×5(f3×f3),卷积核数目1(n3),输出1张特征图即为最终重建高分辨率图像。

3. 如何训练?

(1)训练数据集:论文中某一实验采用91张自然图像作为训练数据集,对训练集中的图像先使用双三次差值缩小到低分辨率尺寸,再将其放大到目标放大尺寸,最后切割成诸多33×33图像块作为训练数据,作为标签数据的则为图像中心的21×21图像块(与卷积层细节设置相关);

(2)损失函数:采用MSE函数作为卷积神经网络损失函数;

(3)卷积层细节设置:第一层卷积核9×9,得到特征图尺寸为(33-9)/1+1=25,第二层卷积核1×1,得到特征图尺寸不变,第三层卷积核5×5,得到特征图尺寸为(25-5)/1+1=21。训练时得到的尺寸为21×21,因此图像中心的21×21图像块作为标签数据。(卷积训练时不进行padding)

4. 如何测试?

(1)全卷积网络:所用网络为全卷积网络,因此作为实际测试时,直接输入完整图像即可;

(2)Padding:训练时得到的实际上是除去四周(33-21)/2=6像素外的图像,若直接采用训练时的设置(无padding),得到的图像最后会减少四周各6像素(如插值放大后输入512×512,输出500×500)。因此在测试时每一层卷积都进行了padding(卷积核尺寸为1×1的不需要进行padding)。这样保证插值放大后输入与输出尺寸的一致性。

    (使用Tensorflow进行复现时,图像预处理时将像素点取值归一化至[0,1],测试时,得到的最后一层特征图即重建结果直接乘以255再使用uint8转换时为0-255取值时会出现一些问题,如左下图2中方框所示,因此在乘以255前,将负值设置为0,大于255的设置为255,再使用uint转换即可解决


图像超分辨率重建之SRCNN_第2张图片
图2  不对负值及大于1的值进行处理的结果图
图像超分辨率重建之SRCNN_第3张图片
图3  对负值及大于1的值进行处理的结果图

(详细的padding方式等,可以查看链接中的代码)

5. 重建结果?

(1)客观评价指标PSNR与SSIM:相比其他传统方法,SRCNN取得更好的重建效果

图像超分辨率重建之SRCNN_第4张图片
表1 客观效果

(2)主观效果:相比其他传统方法,SRCNN重建效果更具优势

图像超分辨率重建之SRCNN_第5张图片
图4 主观效果

你可能感兴趣的:(图像超分辨率重建之SRCNN)