图像处理工具箱™和深度学习工具箱™提供了许多选项来去除图像中的噪声。最简单、最快的解决方案是使用内置的预先训练的去噪神经网络DnCNN。然而,预训练网络在识别噪声类型方面并不能提供很大的灵活性。为了更灵活,可以使用预定义层训练自己的网络,或者训练一个完全自定义的去噪神经网络。
你可以使用内置的预训练DnCNN网络来去除高斯噪声,而无需训练网络的挑战。用预先训练好的网络去除噪声有以下限制:
噪声删除仅适用于2-D单通道图像。如果您有多个颜色通道,或者如果您使用三维图像,请通过单独处理每个通道或平面来消除噪声。例如,看到利用预先训练的神经网络去除彩色图像中的噪声.
该网络只能识别高斯噪声,具有一定的标准差范围。
要加载预制的DNCNN网络,请使用denoisingNetwork
函数。然后,通过DNCNN网络和嘈杂的2-D单通道图像denoiseimage.
.该图像显示使用预制DNCNN网络来欺骗图像的工作流程。
您可以训练网络从灰度图像中检测更大范围的高斯噪声标准偏差,从图像处理工具箱提供的内置层开始。要使用预定义的层来训练去噪网络,请遵循以下步骤。图表中深灰色框中显示了培训工作流程。
创建一个ImageDatastore
存储原始图像的对象。
创建一个denoisingImageDatastore
对象,从原始图像生成噪声训练数据。要指定高斯噪声标准差的范围,请设置Gaussiannoiselevel.
财产。必须使用默认值PatchSize
(50
),ChannelFormat
(“灰度”
),使训练数据的大小与网络的输入大小相匹配。
得到预定义的去噪层使用dncnlayers.
函数。
使用培训选项定义培训选项
(深度学习工具箱)函数。
训练网络,指定去噪后的图像数据存储为数据源trainNetwork
(深度学习工具箱).对于每次迭代的训练,去噪图像数据存储通过随机裁剪原始图像生成一个小批量的训练数据ImageDatastore
,然后将随机生成的零均值高斯白噪声添加到每个图像补丁。添加噪声的标准偏差对于每个图像修补程序是唯一的,并且在指定的范围内具有值Gaussiannoiselevel.
图像去噪存储的性质。
培训网络后,通过网络和嘈杂的灰度图像denoiseimage.
.该图显示了浅灰色盒子中的去噪工作流程。
要训练具有最大灵活性的去噪神经网络,您可以使用自定义数据存储来生成训练数据或定义您自己的网络架构。例如,你可以:
训练一个网络,在单通道图像中检测更大的噪声,如非高斯噪声分布。属性返回的层可以定义网络架构dncnlayers.
函数。要生成与此网络兼容的训练图像,请使用转变
和结合
用于批量噪声图像和相应的噪声信号。有关更多信息,请参阅深度学习的图像预处理(深度学习工具箱).
使用DNCNN网络架构培训去噪网络后,可以使用denoiseimage.
函数去除图像噪声。
提示
DnCNN网络还可以检测由其他类型的失真引起的高频图像伪影。例如,您可以训练DnCNN网络以提高图像分辨率或删除JPEG压缩伪影。的使用深度学习的JPEG图像去块示例演示了如何训练DnCNN网络来去除JPEG压缩伪影
训练一个网络来检测彩色图像的高斯噪声分布范围。要为这个网络生成训练图像,可以使用denoisingImageDatastore
并设置ChannelFormat
财产'RGB'
.您必须定义一个支持RGB输入图像的自定义卷积神经网络体系结构。万博1manbetx
使用自定义网络体系结构训练去噪网络后,可以使用激活
(深度学习工具箱)在扭曲图像中隔离噪声或高频伪像的功能。然后,从失真图像中减去噪声以获得去噪图像。
结合
|denoiseimage.
|denoisingImageDatastore
|denoisingNetwork
|dncnlayers.
|转变
|激活
(深度学习工具箱)|培训选项
(深度学习工具箱)|trainNetwork
(深度学习工具箱)