计算机视觉与深度学习-卷积神经网络-卷积&图像去噪&边缘提取-图像去噪 [北邮鲁鹏]

参考学习链接

计算机视觉与深度学习-04-图像去噪&卷积-北邮鲁鹏老师课程笔记

图像噪声

噪声点,其实在视觉上看上去让人感觉很难受,直观理解就是它跟周围的像素点差异比较大,显得比较突兀,视觉看起来很不舒服,这就是噪声点。
在这里插入图片描述

噪声分类

椒盐噪声

黑丝像素和白色像素随机出现

在这里插入图片描述

脉冲噪声

白色像素随机出现

在这里插入图片描述

对椒盐噪声&脉冲噪声去噪

使用高斯卷积核

在这里插入图片描述
高斯卷积核(低通滤波器)并不能去除椒盐噪声和脉冲噪声。

中值滤波器

中值滤波器是非线性操作。

刚开始的卷积核没有权重
在这里插入图片描述

当图像处理时,将3 * 3的卷积核套在图像的9个像素上,取这9个图像向上的像素值,排序求出其中值,并用该中值替换当前中心点像素值
在这里插入图片描述
中值滤波对图像处理后
在这里插入图片描述
中值滤波 vs 均值滤波

  • 中值滤波:卷积结果的像素值是图像原本就有这个像素值。
  • 均值滤波:卷积结果的像素值是加权平均计算出的,可能原本并没有这个像素值。(高斯滤波)

高斯噪声

噪声强度变化服从高斯分布(正态分布)

在这里插入图片描述
高斯噪声数学模型是一个独立的加和模型 f ^ ( x , y ) = f ( x , y ) + μ ( x , y ) \hat{f}(x,y) = f(x,y)+ μ(x,y) f^(x,y)=f(x,y)+μ(x,y),一般认为 η ( x , y ) ∼ N ( μ , σ ) η ( x , y ) ∼ N ( μ , σ ) η(x,y)N(μ,σ),通常μ = 0 , σ很小。
在这里插入图片描述

即认为 图像是由真实图像 + 高斯噪声组成的,高斯噪声的产生一个是由于采集器附加的噪声,另一个是由于光学问题带来的噪声。将两者合起来就是最终看到的带有噪声的图像。

因此对于高斯噪声就有了这样的假设:首先噪声的产生是相互独立的,而且服从均值为0的正态分布。

减少高斯噪声

在这里插入图片描述
噪声的方差越大,高斯卷积核的方差或尺寸就要越大。

虽然高斯卷积核可以去除高斯噪声,但是更模糊(最下图比最上图模糊),坏的噪声去掉了,好的像素也受到了影响。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卷积神经网络中添加椒盐噪声,可以通过在输入数据中添加随机的椒盐噪声来实现。具体做法如下: 1. 首先,定义一个函数来生成椒盐噪声。这个函数应该接受输入数据和椒盐噪声的比例作为参数,并返回添加噪声后的数据。 2. 在训练数据集中,对每个输入数据调用这个函数,生成椒盐噪声,并将其与原始数据结合起来。例如,可以使用NumPy的random函数生成随机的0和1,并将其与输入数据相乘。这个过程可以使用以下代码实现: ```python import numpy as np def add_salt_and_pepper_noise(data, noise_ratio): """ Add salt and pepper noise to the input data. Parameters ---------- data: numpy array Input data. noise_ratio: float Ratio of salt and pepper noise to add. Returns ------- numpy array Data with added salt and pepper noise. """ # Generate random noise mask noise_mask = np.random.rand(*data.shape) # Add salt and pepper noise data_with_noise = data.copy() data_with_noise[noise_mask < noise_ratio / 2] = 0 data_with_noise[noise_mask > 1 - noise_ratio / 2] = 1 return data_with_noise ``` 这个函数接受两个参数:输入数据和椒盐噪声的比例。它首先生成一个和输入数据相同大小的随机噪声掩码,然后用这个掩码将输入数据中的一部分像素设为0或1,从而实现添加椒盐噪声的目的。 3. 在使用输入数据训练卷积神经网络之前,对数据集中的每个输入数据都调用这个函数,生成添加噪声后的数据。可以使用以下代码实现: ```python # Load training data x_train, y_train = load_training_data() # Add salt and pepper noise to training data x_train_with_noise = add_salt_and_pepper_noise(x_train, noise_ratio=0.1) # Train convolutional neural network on noisy data model.fit(x_train_with_noise, y_train, ...) ``` 这个代码片段首先加载了训练数据,然后调用上面定义的add_salt_and_pepper_noise函数,将椒盐噪声的比例设置为0.1,生成添加噪声后的训练数据。最后,可以使用这些添加噪声后的数据训练卷积神经网络

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值