以下内容是自己学习北京邮电大学鲁鹏副教授计算机视觉与深度学习课程(A02)的一些笔记,
笔者能力有限,如有错误还望各位大佬在评论区批评指正 。
先贴一下课程官网:CV-XUEBA
目录
1、卷积与图像去噪
1.1 卷积定义
在图像表示中我们已经知道,噪声的典型表示是噪声像素点与周围的像素点差别比较大。去除噪声比较简单的方法是加权平均法,即将噪声与周围的像素点加权平均一下,这就是卷积。将图像中的噪声通过卷积操作得到去噪后的像素点。如果将图像上的所有像素点都操作一遍就得到了一张去噪后的图,将算子中的1/9制作成模板,这个模板是1/9组成的3x3矩阵,又叫做卷积核(滤波核)。
将以上操作写成数学公式:,令F为图像,H为卷积核,F与H的卷积记为
。需要注意的是,这里将卷积核180°翻转后再进行滤波,表现在公式中就是
,如果不进行翻转操作,那么就叫相关。在实际操作中,无所谓翻不翻转,因为我们的模板都是对称的,而且模型学习到的也是翻转后的卷积核。但是从定义出发,必须强调这个翻转。
1.2 卷积的性质
叠加性: filter(f1+f2)=filter(f1)+filter(f2)
平移不变性: filter(shift(f))=shift(filter(f)) #需要注意的是,所有的平移都可以用卷积来操作
交换律: 𝑎 ∗ 𝑏 = 𝑏 ∗ 𝑎
结合律: 𝑎 ∗ (𝑏 ∗ 𝑐) = (𝑎 ∗ 𝑏) ∗ 𝑐
分配律: 𝑎 ∗ (𝑏 + 𝑐) = (𝑎 ∗ 𝑏) + (𝑎 ∗ 𝑐)
标量: 𝑘𝑎 ∗ 𝑏 = 𝑎 ∗ 𝑘𝑏 = 𝑘(𝑎 ∗ 𝑏)
1.3 边界填充
在上面我们知道,因为是通过权重来改变噪点,如果需要将某个像素点进行卷积操作,就将我们的卷积核(模板)的中心对准这个像素点,然后再卷积操作,所以在图像的四个角就会遇到模板的部分在图像外部的情况,也就是在图像外部的模板没有像素与之对应,我们就需要补充像素,也就是边界填充。
在深度学习领域我们通常会将这些区域的像素填充为0,叫做zero padding。当然还有其他的方式,比如直接拉伸,镜像等。
1.4 卷积的示例
通过不同的卷积核卷积得到的图像会呈现不同的结果。
锐化操作运用了卷积的性质,原图减去平滑后的图像是图像的边缘信息。
2、高斯卷积核
运用平均卷积核得到的图像会产生一些水平和竖直方向的条状,叫做振铃。我们更希望根据像素与中心的远近程度分配权重,就需要运用高斯卷积核。可以看到高斯卷积核的中间权重最大。
高斯卷积核的生成步骤如下:
中心位置的坐标为(0,0)带入高斯函数可以得到(0,0)的值,就是该点的权重,最后再归一化,也就是所有的权重加起来等于一 。如果不进行归一化操作,卷积结果可能发生衰减或增强。
根据高斯函数的定义,方差越大,平滑效果越明显。也就是说中心点周围的像素对中心点的影响较大。同时,模板尺寸越大,平滑效果越强。
需要注意的是:使用标准差为的高斯核进行两次卷积与使用标准差
的高斯核进行一次卷积的结果是一致的,
相同时的多次卷积可以表示为
。还可以将高斯核分解为两个一维高斯的乘积,这样可以减少计算复杂度。
3、图像噪声与中值滤波器
3.1 噪声分类
椒盐噪声:黑色像素和白色像素随机出现。
脉冲噪声:白色像素随机出现。
高斯噪声:噪声强度变化服从高斯分布(正态分布)。
高斯噪声表达成公式:,其中加号前是理想图像,加号后是随机噪声。也就是说每一个理想图像上的点都会叠加一个随机噪声里取出出的值。
高斯去噪虽能解决高斯噪声的问题,但会使图像变得模糊,对于椒盐噪声和脉冲噪声,采用高斯卷积核并不能去噪,反而使图像模糊。
3.2 中值滤波器
中值滤波的模板并没有权重,而是把模板套到的区域像素进行排序后将中间的像素填回到需要操作的像素点。
需要注意的是:中值滤波器不是线性滤波器,高斯滤波是通过加权求和操作因此它是线性滤波器。
4、卷积与边缘提取
4.1 边缘定义
边缘:图像中亮度明显而急剧变化的点。
为什么要研究边缘?
1、边缘编码了图像中的语义与形状信息。
2、相对于像素表示,边缘表示显然更加紧凑。
4.2 边缘的种类
表面法向不连续:可以理解为两个面的交界。
深度不连续:一般是实际不存在的边,如图中瓶身的轮廓,实际是圆柱体。
表面颜色不连续:颜色差异。
光照不连续:阴影遮挡。
具体的任务关注不同的边缘。
4.3 边缘检测
由于边缘是图像中亮度明显而急剧变化的点,所以反映在函数里就是函数求导后变化的点。
图像的求导公式:,这里参考了2D函数的求导,将
设置为1。
接着我们会发现式子中的分子可以看成图像右移一个像素后再减去原图像(参考上面的平移操作),就可以用卷积核表示。同理对y轴也适用。
4.4 图像的梯度
图像的梯度就是图像变化的点组成的向量。梯度的方向可以反映图像信号的朝向,他们是互相垂直的。
梯度的模的值越大,是边缘的可能性越大。所以我们会用梯度的模值来反映边缘信息。
4.5 噪声对边缘检测的影响
通常图像都会存在噪声,由噪声求导后并不能让我们很好的找到边缘,因此我们要先对图像进行去噪处理。为了加快计算,在处理高斯噪声时,我们通常会先将高斯求一阶导,得到的模板再与原图卷积。
其中叫做高斯一阶偏导模板,既有平滑操作又有卷积作用。当高斯一阶偏导的模板方差越大,图像里提高越强,但是会丢失细节;方差越小细节越明显,立体感越弱。
4.6 高斯核与高斯一阶偏导核
4.7 边缘检测目标
如果图像的边缘变化不够明显,那么得到的边缘就会很粗,并不完美,有因此需要用非极大值抑制的方法。
通常会使用Canny边缘检测器,它能有效解决噪声以及边缘不完美的问题。
5、纹理表示
5.1 纹理分类
规则纹理、随机纹理
5.2 纹理表示方法
思路就是,利用卷积核组提取图像中的纹理基元;利用基元的统计信息来表示图像中的纹理。下图都是高斯偏导核,前六个用于检测图像不同方向的边缘,第七个用于检测图像的斑点。
将图像与卷积核组卷积得到特征响应图,再将特征响应图的基元用向量均值表示出,就可以对原图像的纹理进行表示了。
某一图像的特征响应图某一种基元越多则在这一基元代表的方向或者斑点就可以表示图像的纹理,或者说在这一卷积核基元上的特征越多。卷积核越多,越容易描述图像的纹理基元。
*再次申明这只是笔者自学课程的一些笔记,想着学了留下点东西,限于笔者能力有限,
如有错误还望大神指正。如果觉得笔者水平太低大可当作饭后消遣。希望我们在视觉学习的道路上勇往直前!