【计算机视觉】Lecture 5:梯度和边缘检测

什么是边缘?

简单的回答:灰度不连续处

【计算机视觉】Lecture 5:梯度和边缘检测_第1张图片

物体的边界

【计算机视觉】Lecture 5:梯度和边缘检测_第2张图片

不同材料性质的边界

【计算机视觉】Lecture 5:梯度和边缘检测_第3张图片

光照的边界

【计算机视觉】Lecture 5:梯度和边缘检测_第4张图片

边缘的类型(一维剖面)

边缘可以根据灰度剖面来建模
阶跃边缘 Step edge:图像灰度突然从不连续一侧的一个值变为另一侧的另一个值
斜坡边缘 Ramp edge:灰度变化不是瞬间的而是在有限距离内发生的一种阶跃边缘
【计算机视觉】Lecture 5:梯度和边缘检测_第5张图片

例子

【计算机视觉】Lecture 5:梯度和边缘检测_第6张图片

边缘的类型(一维剖面)

山脊边缘 Ridge edge:图像灰度值突然变化,然后在很短的距离内回到开始的值;通常由图像中的线产生
【计算机视觉】Lecture 5:梯度和边缘检测_第7张图片

例子

【计算机视觉】Lecture 5:梯度和边缘检测_第8张图片【计算机视觉】Lecture 5:梯度和边缘检测_第9张图片

边缘的类型(一维剖面)

屋顶边缘:灰度变化不是瞬间的而是在有限距离内发生的一种山脊边缘;通常在曲面相交处产生
【计算机视觉】Lecture 5:梯度和边缘检测_第10张图片

例子

【计算机视觉】Lecture 5:梯度和边缘检测_第11张图片

阶跃/斜坡边缘术语

边缘描述子
——边缘法向:最大灰度变化方向的单位矢量。
——边缘方向:沿着边缘的单位矢量(垂直于边缘法线)。
——边缘位置/中心:边缘所在图像中的位置
——边缘强度/幅值:沿着边缘法向的局部图像对比度
【计算机视觉】Lecture 5:梯度和边缘检测_第12张图片
重点:所有这些信息都可以从梯度向量场计算出来!!

梯度的总结

【计算机视觉】Lecture 5:梯度和边缘检测_第13张图片
边缘像素是在梯度幅值局部最大的地方
梯度方向垂直于边缘方向(等价于边缘法向)

梯度向量:在这里插入图片描述

梯度幅值:在这里插入图片描述

梯度方向:在这里插入图片描述

使用梯度进行简单的边缘检测

一种简单的梯度幅值边缘检测方法

图像分别和水平导数滤波器以及垂直导数滤波器进行卷积,从而计算每个像素的梯度向量

计算每个像素处的梯度幅值

如果某一像素处的幅值超过一个阈值,则报告可能的边缘点

计算空间图像梯度

【计算机视觉】Lecture 5:梯度和边缘检测_第14张图片

使用梯度进行简单的边缘检测

一种简单的梯度幅值边缘检测方法

图像分别和水平导数滤波器以及垂直导数滤波器进行卷积,从而计算每个像素的梯度向量

计算每个像素处的梯度幅值

如果某一像素处的幅值超过一个阈值,则报告可能的边缘点

计算梯度幅值

【计算机视觉】Lecture 5:梯度和边缘检测_第15张图片
梯度幅值为 s q r t ( I x . 2 + I y . 2 ) sqrt(Ix.^2 + Iy.^2) sqrt(Ix.2+Iy.2)

测量每个像素处的坡度陡度(=边缘对比度)

【计算机视觉】Lecture 5:梯度和边缘检测_第16张图片

使用梯度进行简单的边缘检测

一种简单的梯度幅值边缘检测方法

图像分别和水平导数滤波器以及垂直导数滤波器进行卷积,从而计算每个像素的梯度向量

计算每个像素处的梯度幅值

如果某一像素处的幅值超过一个阈值,则报告可能的边缘点

查找边缘像素的阈值

【计算机视觉】Lecture 5:梯度和边缘检测_第17张图片

使用梯度进行边缘检测

【计算机视觉】Lecture 5:梯度和边缘检测_第18张图片

需要解决的问题

我们应该如何选择阈值?
【计算机视觉】Lecture 5:梯度和边缘检测_第19张图片

权衡:平滑与定位

在平滑和好的边缘定位之间一直有一个权衡
【计算机视觉】Lecture 5:梯度和边缘检测_第20张图片

需要解决的问题

边缘细化和连接

【计算机视觉】Lecture 5:梯度和边缘检测_第21张图片

平滑+阈值给我们提供了一个具有“厚”的边缘的二值mask

【计算机视觉】Lecture 5:梯度和边缘检测_第22张图片

我们想要薄的,一个像素宽度的,连接的轮廓

Canny边缘检测算子

一个重要的案例研究,可能是CV从业者最常用的边缘检测算法,实验一致表明它的性能非常好

J. Canny, A Computational Approach to Edge Detection, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol 8, No. 6, Nov 1986

一种最优边缘检测算子的规则化设计

边缘检测包括三步:

  1. 噪声平滑
  2. 边缘增强
  3. 边缘定位
    J. Canny将这些步骤规则化,以设计最佳边缘检测算子

边缘模型(一维)

一个理想的边缘可以建模为一个阶跃
【计算机视觉】Lecture 5:梯度和边缘检测_第23张图片

加性的白高斯噪声:均方根噪声的幅值/单位长度为 n 0 2 n^2_0 n02

性能标准(1)

好的检测:滤波器在边缘位置(x=0)的响应必须比噪声强

【计算机视觉】Lecture 5:梯度和边缘检测_第24张图片

性能标准(2)

好的定位:滤波器在非常接近 x=0 的地方的响应必须是最大值

【计算机视觉】Lecture 5:梯度和边缘检测_第25张图片

性能标准(3)

低误报率:在 x=0 的合理邻域中应该只有一个最大值

【计算机视觉】Lecture 5:梯度和边缘检测_第26张图片

Canny边缘检测算子

Canny找到了一个线性的连续滤波器,它最大化了这三个给定的标准
最优滤波器没有闭合形式的解
然而,它看起来非常类似于高斯函数的导数

【计算机视觉】Lecture 5:梯度和边缘检测_第27张图片

回忆:边缘检测的实际问题

细化和连接

【计算机视觉】Lecture 5:梯度和边缘检测_第28张图片
选择一个幅值阈值

【计算机视觉】Lecture 5:梯度和边缘检测_第29张图片

Canny对所有这些都有很好的回答

细化

注意:在定阈值之前进行细化
【计算机视觉】Lecture 5:梯度和边缘检测_第30张图片
我们想在曲线上标出幅值最大的点
我们可以通过沿着垂直于曲线的一维灰度切片寻找最大值(非极大值抑制,即搜素局部最大值,抑制极大值)来实现这一点
这些点可以形成一个像素宽度的曲线

选择哪个阈值?

【计算机视觉】Lecture 5:梯度和边缘检测_第31张图片
问题:
假如阈值太大: 非常少的(或者几乎没有)边缘;误检测率高,很多间断
假如阈值太小:非常多的(所有像素)边缘;误报率高,很多额外的边缘

解决方法:滞后阈值法

允许我们同时应用两者!(例如,“模糊”阈值)

  1. 同时保持一个高阈值H和一个低阈值L;
  2. 任何强度小于L的边缘都将被丢弃;
  3. 任何强度高于H的边缘都将被保留;
  4. 只有当有一条强度大于L边缘的路径将P连接到强度大于H的边缘时,强度介于L和H之间的边缘P才被保留;
  5. 在实际应用中,该阈值方法与边缘连接相结合,得到连接的轮廓

滞后阈值法例子

【计算机视觉】Lecture 5:梯度和边缘检测_第32张图片

Canny边缘:例子

【计算机视觉】Lecture 5:梯度和边缘检测_第33张图片【计算机视觉】Lecture 5:梯度和边缘检测_第34张图片
精细尺度,高阈值

【计算机视觉】Lecture 5:梯度和边缘检测_第35张图片
粗糙尺度,高阈值

【计算机视觉】Lecture 5:梯度和边缘检测_第36张图片
粗糙尺度,低阈值

总结:完整的Canny算法

  1. 计算图像关于x和y的导数:在这里插入图片描述

  2. 计算每个像素梯度幅值:在这里插入图片描述

  3. 去掉梯度方向上幅值不是局部最大的像素

  4. 滞后阈值法
    选择幅值M大于高阈值Th的像素点
    选择幅值大于低阈值Tl,同时是已经连接的检测出来的边缘点附近的像素点

你可能感兴趣的:(计算机视觉,计算机视觉)