文章目录
一、基本概念
1.边缘
1)定义:图像的边缘是指图像局部区域亮度变化显著的部分。
2)边缘有正负之分,就像导数有正值负值一样:由暗到亮为正,由亮到暗为负。
3)求边缘检测的算法:Sobel、Prewitt、Laplace、Canny算子
2.边缘检测
1)边缘检测主要是图像的灰度变化的度量、检测和定位。
2)高、低频信号
图像中的高、低频信号也叫做高、低频分量。
①:高频分量:指的是图像强度(亮度、灰度)变化剧烈的地方,也就是边缘(轮廓)。
②:低频分量:指的是图像强度(亮度、灰度)变化平缓的地方,即大片色块。
③:人眼对图像中的高频信号更为敏感。
二、具体过程
1.原理:
在边缘部分,像素值出现“跳跃”或者较大的变化,若在此边缘部分求取一阶导数,就会看到极值的出现。而一阶导数为极值的地方,二阶导数为0.
1)对于图像函数f(t),其表示图像像素是多少。
2)对于f(t)的一阶导数f’(t),其表示图像像素变化的快慢;当f’(t)取极值时,图像像素变化最快最剧烈。
3)对于f(t)的二阶导数f’’(t),其表示图像变化速率的加速度;当f’(t)取极值时,对于二阶导数f’’(t)=0。
2.检测步骤
1).滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感。因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法有高斯滤波。
2).增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将图像灰度点邻域强度值有显著变化的点凸显出来,在具体编程实现时,可以通过计算梯度幅值来确定。
3)检测:经过增强的图像,往往邻域中有很多点的梯度值比较大,而在特定的应用中,这些点并不是我们要找的边缘点,所以应该采用某种方法来对这些点进行取舍。实际工程中,常用的方法是通过阈值化方法来检测。
3.具体应用
1)图像锐化
①:定义:图像锐化是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得更清晰。
②:目的:图像锐化是为了突出图像上物体的边缘、轮廓,或某些线性目标要素的特征。这种滤波方法提高了物体边缘和周围像素之间的反差,因此也被称为边缘增强。
③:卷积核:常使用拉普拉斯变换核函数。
这是人为设定好的核函数。
效果:图像中的边缘信息有比周围像素更高的对比度,经卷积/滤波之后进一步增强对比度,从而使图像棱角分明,更加清晰。
2)图像平滑
①:定义:图像平滑是指用于突出图像的宽大区域、低频成分、主干部分或者抑制图像噪声和干扰高频成分的图像处理方法。
②:目的:是使图像亮度平缓渐变,减小突变梯度,改善图像质量。
三、具体算法
1.Sobel算法
1)定义:是典型的基于一阶导数的边缘检测算子。
2)公式:包含两组3*3卷积,分别为横向以及纵向模板,将之与图像做平面卷积,即可分别得出横向及纵向的亮度差分近似值。常用以下两个模板来检测图像边缘:
3)优缺点:
①:优点:由于该算法中引入了类似局部平均的运算,因此对噪声具有平滑的作用,能很好的消除噪声的影响;对像素的位置影响做了加权,因此与Prewitt算子相比效果更好。
②:缺点:Sobel算子并未将图像的主题与背景严格地区分开,即并未基于图像灰度进行处理,未能严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。
2.Prewitt算法
1)定义:是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,对噪声具有平滑作用。
2)原理:在图像空间利用两个方向模板与图像进行邻域卷积来完成的,一个检测水平另一个检测垂直边缘。
3)相当于Sobel算子的一个特殊例子。
四、Canny算法
1.基本概念
1)定义:是目前最优秀的边缘检测算法之一,目的是找到一个最优的边缘。
2)最优边缘:
①:好的检测:算法能够尽可能地标出图像中的实际边缘。
②:好的定位:标注出的边缘要与实际图像中的边缘尽可能接近
③:最小响应:图像中的边缘只能被标记一次。
3)检测步骤:
①:对图像进行灰度化:非必要步骤,但可减少计算量。
②:对图像进行高斯滤波:可有效滤去理想图像中叠加的高频噪声。
③:检测图像中的水平、垂直和对角边缘。
④:对梯度幅值进行非极大值抑制。
⑤:用双阈值算法检测和连接边缘。
2.重点过程:
1):高斯平滑:
在水平和垂直方向上呈现高斯分布,更突出了中心点在像素平滑后的权重,相比于均值滤波有着更好的平滑效果。
重点:高斯卷积核大小的选择将影响Canny检测器的性能:尺寸越大,检测器对噪声的敏感度越低,且边缘检测的定位误差也将略有增加。5×5是一个优秀的折中方法。
2)图像梯度计算(Sobel算子)
3)非极大值抑制(NMS算法)
①:原理:搜索局部最大值,抑制非极大值。
②:使用原因:目标检测过程中在同一目标位置上会产生大量的候选框,这些候选框之间可能会有重叠,此时我们要用非极大值抑制算法,找到最佳的目标边界框,消除冗余的边界框。
1°:对于重叠的候选框,计算重叠部分,若大于规定阈值,则删除,低于阈值则保留。
2°:对于无重叠的候选框,都保留。
③:边缘检测中:通俗意义上是指像素点局部最大值,将非极大值点所对应的灰度值置为0,这样可以剔除掉一大部分非边缘的点。
1°:将当前像素的梯度强度与沿正负两个梯度方向上的两个像素进行比较。
2°:若当前像素的梯度强度比另外两个像素相比最大,则该点保留为边缘点,否则该像素点将被抑制(灰度值置为0)。
4)双阈值算法检测(滞后阈值)
①:原理:在完成非极大值抑制之后,会得到一个二值图像,非边缘的点灰度值均为0,可能是边缘的局部灰度极大值点可设置其灰度为128(或其他)。
②:使用原因:非极大值抑制的检测结果包含了很多由噪声及其他原因造成的假边缘,因此还需要进一步处理。
③:检测方法:(-∞,high,low,+∞)
1°:双阈值划分
2°:对弱边缘再次划分。
具体步骤:
a:若边缘像素的梯度值高于高阈值,则将其标记为强边缘像素。
b:若边缘像素的梯度值低于高阈值并且高于低阈值,则将其标记为弱边缘像素。
c:若边缘像素的梯度值低于低阈值,则将会被抑制。
即:大于高阈值为强边缘,小于低阈值不是边缘,介于中间是弱边缘。
阈值的选择取决于给定输入图像的内容,且阈值的选择是人为总结经验,实验科学。
④:弱边缘处理:
对于弱边缘像素,来源有两种,一是从真实边缘提取,二是因为噪声或者颜色变化引起的。为了获得准确结果,应该抑制由后者引起的弱边缘:
1°:通常,由真实边缘引起的弱边缘像素将连接到强边缘像素,而噪声相应未连接。
2°:为了跟踪边缘连接,通过查看弱边缘像素及其8个邻域像素,只要其中一个为强边缘像素,则该弱边缘像素就可以保留为真实边缘。
总结
人工智能CV算法入门第四篇,CV算法八股文,欢迎交流QQ:1395362556