计算机器视觉(三)边缘提取常见算子、Canny算子边缘提取及边界拟合

边缘能够紧凑的表达图像里的内容信息
边的提取使用倒数,为极值的时候为边缘

边缘提取与拟合

另一种定义边缘的方式(实际上就是不同的边缘提取算子)

在这里插入图片描述
Prewitt:对左右点的单点噪声不太敏感,将自身考虑乘0,左右两侧分别是-1和1,否则[-1,1]这种如果单点噪声严重则不准确。
Sobel:将矩阵拆分为两个[1,2,1]T 和[-1,0,1],前面的是高斯核,后面的是边缘提取,也就是说在边缘提取之前先做了一个平滑处理。这个核是可分离的,Sobel算子受到的影响更小。
Roberts:Mx检测的是135度方向的线,而My检测的是45度放方向的线,要看在哪条分界上下有区别。检测模版考虑的方向是和[0,0]垂直的方向。
在这里插入图片描述
梯度方向是强度变化最大的方向,和信号方向垂直。
⚠️梯度向量和边之间的关系
在这里插入图片描述
幅值的大小可以反应是否是边缘,因为有可能有一个是0⃣️这个时候如果只是用一个那个就是0的话,就不太行了。
在这里插入图片描述
如果直接对这个信号进行边缘提取就会出现下面的情况:
在这里插入图片描述
解决方法:平滑处理
在这里插入图片描述
卷积结果为啥后面会消失?因为没有对图像边缘进行填充。然后在对这个卷积之后的结果进行求导。一般应用中先使用卷积(平滑)然后和导数模版再进行卷积,但是两次卷积太多。
在这里插入图片描述
解决方法:卷积可以交换,可以结合。真正使用的时候使用的是高斯偏导模版或者叫高斯一阶导模版。因为直接使用高斯卷积先平滑处理然后再使用导数模版进行边缘提取会经历两次大规模的卷积处理。而先使用倒数模版对高斯模版进行处理,形成高斯模版的一阶导就相当于卷积一次。
两次卷积即使是单变量操作规模也过大。先对高斯模板进行处理,然后使用处理后的高斯模板再对图像进行卷积。

在这里插入图片描述
在这里插入图片描述使用高斯核求导一下,看一下为啥不好分离?在这里插入图片描述
越白的值在卷积的时候表示权值越高。
在这里插入图片描述
上图的pixel指的是方差。通过增大高斯一阶导的方差就会影响边缘提取的效果。要考虑窗框和方差,同上给定方差就能生成窗框也能判断出高斯一阶导。当我们面临新的任务的时候要考虑是更多需要细节还是更多需要更大的轮廓,例如人脸识别如果想要识别出这个人面部的细节就要使用方差较小的高斯一阶导,如果只是想知道这个形体是不是人就要突出它的大体轮廓,就要使用方差大的。知道改变sigma会有什么样的结果

Review:Smoothing vs. derivative filters

高斯滤波核是为了去除高频信号;
高斯滤波核不能为负;
高斯平滑核的和为1,如果不为1,如果接近0相当于对图像信号进行了衰减,比1大相当于把图像信号放大了,改变了图像信号。在这里插入图片描述
高斯偏导核是为了边缘提取;(组合核)
高斯偏导核的值肯定会是负数;(高斯核核那个-1核一卷积)
高斯偏导核的和一定是0,平坦的区域才不会有响应值。
偏导值越高的越可能是边缘但是也不排除是高频的噪声的可能。
在这里插入图片描述

经典边缘提取算法:The Canny edge detector

在这里插入图片描述
先用高斯模版去噪,然后再设置一个阈值,如果小于这个阈值的也作为噪声去除(二次去噪)在这里插入图片描述
发现边缘宽度增加了,因为在进行二次去噪的时候设定了一个阈值在阈值以上的范围内那个宽度都看作是边缘了,而真正确是中间的那个点,所以边缘宽度会增加。产生这个情况的原因是信号变化是缓慢的,所以不是变化的很快(图像很陡),而且就算是之前很陡经过高斯平滑处理也变得不那么陡了。

如何让宽边变成细边?非最大化抑制

在这里插入图片描述
对这张图上的每一个点都计算一下它左边和右边是不是都比它小,这样他才是最大的,算一下每一个点和左右的点的强度,留下强度强的,去掉强度弱的。因为是从梯度方向是提取所以又可能这个像素不在整数的位置上,可以使用这个像素点所在位置的周围四个像素的响应值进行加权求和处理,一般都要这样才能得到最后的这个像素点。
在这里插入图片描述
门限过高会导致某些边缘点消失,但是门限变低会导致留下更多的噪声,所以Canny算子又对这个情况进行了改进,使用了一个双门限法。先用高门限把粗旷的边检测出来,然后再将门限降低将那些可能是噪声的边也引入进来,这里面就引入了一个假设:噪声边不会和强边缘的边有连接关系,就可以把那个缺少的不连续的地方补上。
在这里插入图片描述
在这里插入图片描述
就是一种对高门限和低门限的一种折中。

Canny edge detector的算法具体步骤

首先高斯滤波,然后考虑每个点的梯度强度和梯度方向(是对后面的在这个点的梯度方向进行强度对比的时候会用到)进行二次降噪处理,设置一个较宽的门限范围,保留此门限范围内的边缘,然后先对其进行非最大化抑制细化,最后双门线技术,首先设置一个较高的门限,将强边缘 提取出来,然后设置一个较低的门限,由于噪声点具有和强边缘偏移较远 的特性,通过降低门限不断地引入新的可能作为强边缘的链接部分的边缘线(相当于一种试探性的启发式处理)。在这里插入图片描述
第一步考虑了噪声,第二步用梯度和强度的方式描述了当前点的信息,第三步考虑了过宽的边,第四步启发式连接考虑了忽高忽低的边缘。
PAMI:PAMI是IEEE旗下,模式识别和机器学习领域最重要的学术性汇刊之一。在各种统计中,PAMI被认为有着很强的影响因子和很高的排名。

summary
  1. 什么是边缘
  2. 为什么要检测边缘?因为边缘能够更紧凑的表达图像信息
  3. 边缘该怎么计算?在图像中怎么求导?
  4. 求导平滑太慢,一次做
  5. Canny算子:提出了一个非最大化抑制(每个点沿左右梯度进行比较去掉小的),双门线技术

Fitting(拟合)

在这里插入图片描述
现在得到已经得到了边界,考虑是否有更好的数学模型来描述这个边界。在这里插入图片描述
拟合的任务是给它一个数学公式能够把这个边缘描述出来。需要这个轮廓的线的明确的表示。
在这里插入图片描述
有哪些难点?

  1. 噪声,可能在这条线上或线下
  2. 外点,本来就不是属于我的点
  3. 数据缺失
    在这里插入图片描述
    在考虑一个事情的时候要先考虑我们为啥要做?做之前我们面临了哪些问题?
    在这里插入图片描述
    snake模型:不是明确的有边的模型
Least squares line fitting 最小二乘

最小二乘面临的问题是所有的点都在线上。
沿着纵轴方向不是点到直线的距离。要确定的是m和b的数值,首先要建立一个(能量函数)优化函数,这个优化函数越小这些点离各个点到直线的距离最小。要求一个试这个目标函数最小的m和b。Y的行数是点的个数,每个XB对应的乘积都是每个点对应的方程。
在这里插入图片描述
向量模的平方等于向量的转置✖️向量本身,对B求导就是把对B的转置项去掉,但是注意后面的那个项是有两个B,先要提出一个2然后再把B的转置去掉。
在这里插入图片描述

Problem with “vertical” least squares

求的还是近似解。最小二乘的问题,如果这条直线是水平的y和x的关系没有办法表示,所以这个公式不能用于垂直,原来的情况有解,镜头一变化就无解了。在这里插入图片描述
全最小二乘:
在这里插入图片描述
找最小的特征值对应的特征向量就是N的解。

在这里插入图片描述
所有的点在N方向上的投影越短越好,所有的点和均值点的连线在N方向上的投影和越小越好。找一个法向量使所有点与中心点的连线在法向量上的投影值最小。

极大似然估计

二维平面上的几何问题或者理解为一个概率问题
在这里插入图片描述
看待一个事情可以从各个角度进行建模。
将噪声点看成是距离中心的高斯分布的问题,如果刚好在直线上就是概率最大的地方,离线上的点偏离越大实际的概率越小,目的就是使这个概率变大才接近线上的值然后使用高斯分布的公式来拟合,再求一下对数,为了使这个式子更大,后面的那一项就应该更小,这个式子和前面的最小二乘的式子是一模一样的。
在这里插入图片描述
全最小二乘的方法对于有外点的就不太好。
在这里插入图片描述

Robust estimators鲁棒的最小二乘

在这里插入图片描述
不直接用点到直线的距离算,使用上面的函数,u就是点到直线的距离,点到直线距离越远影响就不变了,sigma控制的是这个点到直线的距离超过多远之后就不考虑了。sigma叫做尺度参数,越大,那个超过的距离越大。上面的函数最外面的那一层P的变换就是控制超过的地方就不考虑了。在这里插入图片描述

优化的结果

在这里插入图片描述
外点的贡献很低,sigma选的太小的话会咋样呢?
在这里插入图片描述
基本上就是不在那条线上的 点无所谓远近全都一样了。
在这里插入图片描述
越大的话影响越大了。
在这里插入图片描述
最小二乘的优化,得到的abd的变换要通过一个非线形变换,所以求解的话就不能通过刚才的特征矩阵的方法求解就要使用迭代的方法求解,梯度下降类方法一开始需要一个好的梯度类下降函数,先不管噪声,先用最小二乘求一个abd,然后把那个abd当成一个起始放在鲁棒的最小二乘里面进行迭代处理。sigma一般取1.5左右。

RANSAC

为啥要拟合?所有的点都在直线上,有一些噪点不在直线上,还有很多噪点的时候就得用RANSAC啥的,多条线的时候可能就是霍夫变换,还有最后的基于模型的snake估计。
先确定问题是什么然后再确定方法

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自适应Canny算子边缘提取是一种改进的Canny边缘检测方法。Canny边缘检测方法是一种常用的图像处理技术,它通过利用梯度方向信息和双阈值技术来获取单像素连续边缘。而自适应Canny算子边缘提取则是在Canny算子的基础上进行了一些优化。 自适应Canny算子边缘提取的主要思想是根据图像的局部特征调整边缘检测参数,使得算法更加适应不同部分的边缘特征。这个方法可以提高边缘检测的准确性和鲁棒性。 具体而言,自适应Canny算子边缘提取可以通过以下步骤实现: 1. 对图像进行低通滤波,以平滑图像并减少噪声的影响。 2. 对每个像素进行处理,寻找边缘的位置和边缘法向。 3. 使用一种称为“非极大值抑制”的技术,在边缘法向上寻找局部最大值,以得到单像素连续的边缘。 4. 对边缘图像进行滞后阈值化处理,以消除虚假响应。 5. 针对不同的图像区域,根据局部特征调整边缘检测的参数,例如滤波器的大小和阈值的选择。 通过自适应Canny算子边缘提取,可以提高边缘检测的精度和稳定性,使得算法能够更好地适应不同图像的特征。这种方法在实际图像处理中具有广泛的应用,能够有效地提取图像中的边缘信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Canny算子Matlab实现](https://blog.csdn.net/Hey_everyday/article/details/117931635)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [canny算子_Canny边缘检测算法](https://blog.csdn.net/weixin_39761195/article/details/110405483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [自适应阈值canny边缘检测(功能实现)](https://blog.csdn.net/qq_42593411/article/details/121292704)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值