培训和应用神经网络去噪
图像处理工具箱™和深度学习工具箱™提供了许多选项来去除图像噪声。最简单和最快的解决方案是使用内置的pretrained神经网络去噪,称为DnCNN。然而,pretrained网络没有提供太多的噪声类型识别的灵活性。对于更大的灵活性,训练自己的网络使用预定义的层,或火车完全自定义神经网络去噪。
去除高斯噪声使用Pretrained网络
您可以使用内置的pretrained DnCNN网络去除高斯噪声没有训练网络的挑战。去除噪声与pretrained网络有这些限制:
噪声去除只能用二维单通道图像。如果你有多个颜色通道,或者如果你正在与三维图像,去除噪声,把每个通道单独或飞机。例如,看到的将噪声从彩色图像使用Pretrained神经网络。
网络识别只有高斯噪声,有限范围的标准偏差。
加载pretrained DnCNN网络,使用denoisingNetwork
函数。然后,通过DnCNN网络和嘈杂的二维单通道图像denoiseImage
。图像显示工作流降噪图像使用pretrained DnCNN网络。
火车去噪使用内置的网络层
你可以训练一个网络探测到更大范围的高斯噪声标准差的灰度图像,图像处理工具箱提供的内置层开始。火车去噪使用预定义的网络层,遵循这些步骤。图表显示了培训工作流程在黑暗的灰色框。
创建一个
ImageDatastore
对象存储原始图像。创建一个
denoisingImageDatastore
对象从原始图像生成嘈杂的训练数据。指定范围的高斯噪声标准差,设置GaussianNoiseLevel
财产。您必须使用的默认值PatchSize
(50
),ChannelFormat
(“灰度”
),这样训练数据的大小匹配网络的输入大小。预定义的去噪层使用
dnCNNLayers
函数。定义培训使用的选项
trainingOptions
(深度学习工具箱)函数。训练网络,指定去噪图像数据存储作为数据来源
trainNetwork
(深度学习工具箱)。为每个迭代的训练,训练数据的去噪图像数据存储生成一个mini-batch通过随机裁剪的原始图像ImageDatastore
,然后添加随机生成的零均值高斯白噪声对每个图像块。添加噪声的标准差为每个图像块是独一无二的,和有一个值在指定的范围内GaussianNoiseLevel
去噪图像数据存储的属性。
训练后的网络,通过网络和嘈杂的灰度图像denoiseImage
。图中显示了去噪工作流在浅灰色框。
火车完全定制的神经网络去噪
训练一个神经网络去噪和最大的灵活性,您可以使用自定义数据存储生成训练数据或定义自己的网络体系结构。例如,您可以:
训练网络,检测到一个更大的各种各样的噪声,如非高斯噪声分布,在单通道图像。您可以定义使用返回的层次网络体系结构
dnCNNLayers
函数。生成训练图像与这个网络兼容,使用变换
和结合
函数来批嘈杂的图像和相应的噪声信号。有关更多信息,请参见预处理图像深度学习(深度学习工具箱)。火车去噪后网络使用DnCNN网络架构,您可以使用
denoiseImage
函数来消除图像噪声。提示
DnCNN网络还可以检测高频图像构件引起的其他类型的失真。举例来说,你可以训练DnCNN网络来提高图像分辨率或删除JPEG压缩工件。的使用深度学习JPEG图像解封示例显示了如何训练DnCNN网络删除JPEG压缩工件
训练网络,检测到一个彩色图像的高斯噪声分布范围。为这个网络生成训练图像,你可以使用一个
denoisingImageDatastore
并设置ChannelFormat
财产“rgb”
。您必须定义一个自定义支持RGB输入图像的卷积神经网络体系结构。万博1manbetx火车去噪后网络使用一个自定义的网络架构,您可以使用
激活
(深度学习工具箱)函数来隔离噪音或高频工件在一个扭曲的形象。然后,减去噪声扭曲的图像得到去噪图像。
另请参阅
denoisingImageDatastore
|dnCNNLayers
|denoisingNetwork
|trainingOptions
(深度学习工具箱)|trainNetwork
(深度学习工具箱)|denoiseImage
|激活
(深度学习工具箱)|结合
|变换
相关的例子
更多关于
- 预处理图像深度学习(深度学习工具箱)
- 深度学习在MATLAB(深度学习工具箱)