本文主要是介绍基于CNN多阶段图像超分+去噪(超级简单版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这是之前的一项工作,非常简单,简单的复现了两个算法,然后把它们串起来了。
可执行的程序链接:CSDN; Github
我们分成两部分进行讲解:
1. 图像去噪
1.1 基本思路
图像的去噪工作基于很普通的CNN去噪,效果很差。
为了去除椒盐噪声并且提升暗图像的亮度,从以下方面入手:
1)针对椒盐噪声,使用了小核(3×3)中值滤波
2)针对图像亮度太低,梯度难以获取,使用直方图均衡化
3)使用传统CNN模型搭建去噪网络
4)增添了锐化环境,但不建议去噪时使用,效果并不好、
网络模型很简单,CNN模拟高斯滤波的去噪过程。本节采用17个3×3卷积核堆叠的形式(每层配BN层和Relu激活函数)。最后,将原图跳跃连接到最后一个3×3卷积的特征上(最后为通道压缩,则Tensor都为1×3×H×W)。训练思路为,有监督学习。
1.2 函数封装
直接在test_data里填写输入图片的路径即可
其余都不用管。
输出图片的路径很简单:
都可以进行更改。
最后的这个函数,是封装的函数。Hist是是否直方图增量,m_Blur是是否进行中值滤波,sharp是是否进行锐化(单独去噪程序不要使用,效果很差),kernal是中值滤波的卷积核大小(本文为3,太大容易模糊)
2. 图像超分
2.1 基本思路
也是很简单的基于ResNet的超分应用:
骨干网络很简单,堆叠额RFDB块+普通的3×3卷积构成一个端对端残差网络。最后使用上采样进行有监督学习。RFDB,参考的多半是MobileNet等残差块的设计,在我看来没啥创新的地方。不想多讲。就是一个深度的残差块。
我们综合的应用把锐化的函数加在了超分里,总体效果还可以。
2.2 函数封装
基本和图像去噪一样。单独使用,建议加上锐化。感觉还可以。
综合封装:
两个函数放在一起,参数是一样的。在这个函数里,我把属于图像去噪的锐化去除了。你直接运行我的程序就行了。
这篇关于基于CNN多阶段图像超分+去噪(超级简单版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!