边缘检测是图像处理的主要部分。虽然基于深度学习的技术,例如卷积神经网络,可以执行非常复杂的边缘检测(即,具有变化的曲率、噪声、颜色等的边缘。),在某些情况下,经典的边缘检测方法仍然具有很高的意义!例如,如果已知数据简单且可预测;与CNN相比,Canny边界检测可以立即使用,但CNN的实现通常更复杂。
边缘检测的基础知识
大多数经典的边缘检测算法都是基于一阶导数的概念。在下图中,我们可以看到一个理论上的边缘轮廓。Y轴是像素强度,X轴是图像中的物理位置。在图像的边缘,存在从低强度到高强度的快速过渡,反之亦然。这种过渡越快,边缘就会出现。要检测边缘,我们只需要对像素强度进行一阶导数,然后寻找最大值,如下图所示!
Canny边缘检测
通常,这种导数与高斯滤波器相结合,一步完成图像平滑和边缘检测。因为导数和高斯滤波器的卷积是线性运算,所以我们可以直接对图像应用微分高斯滤波器!下面的例子5 ×5过滤器完成此操作,使用此过滤器= 1。
这将产生一个输出,它突出了边缘的位置!然而,Canny的优点是它可以产生非常薄和干净的边缘。接下来,非最大抑制(NMS)将实现这一目标。通过跟踪输出图像中的高值,然后检查3 ×3邻域内完成NMS的最大梯度。中心像素必须在垂直于边缘的方向上最高,否则它将被设置为0。
在下面的例子中,我们看到一个7 ×其中采样输出来自高斯滤波器。较高的值将表明该位置的一阶导数较高!为了执行NMS,我们沿着边缘方向进行***,然后将其设置为0(如果它们在边缘的法线方向上不是最大值)(即红轴)。因此,在NMS之后,蓝色单元将保留,灰色单元将全部被设置为0。我们看到这提供了只有一个像素宽的精细边缘输出!
Canny边缘检测的另一个重要组成部分是滞后阈值。听起来超级复杂,其实很简单!该步骤与NMS一起执行,其主要思想是防止噪声边缘在最终的边缘检测中引起碎片。选择2个阈值,其中t1 >: T2 .只有当梯度值大于T1时才开始NMS跟踪,只有当梯度值小于T2时才停止NMS跟踪。这可以确保NMS跟踪对于边缘的噪声是鲁棒的,这可以由T1和T2值来控制。
摘要
Canny边缘检测是一种非常流行的边缘检测算法,由John F.Canny于1986年提出。虽然Canny边缘检测和各种经典的边缘检测方法似乎被流行的CNN和深度学习方法所掩盖,但我们不应该忘记它们的简单性和有效性。有时候,尝试经典的解决方案要容易得多,而且可能比你预想的还要好!
本文来自尔岚投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/618175.html