非极大值抑制(Non-Maximum Suppression,NMS),顾名思义就是抑制不是极大值的元素,可以理解为局部最大搜索。这个局部代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二是邻域的大小。
介绍非最大抑制是边缘细化技术。
非最大抑制应用于“减薄”边缘。应用梯度计算后,从梯度值中提取的边缘仍然非常模糊。关于标准3,应该只对边缘有一个准确的响应。因此,非最大抑制可以帮助抑制除局部最大值之外的所有梯度值(通过将它们设置为0),其指示具有最强烈的强度值变化的位置。渐变图像中每个像素的算法是:
1、将当前像素的边缘强度与正梯度方向和负梯度方向上的像素的边缘强度进行比较。
2、如果当前像素的边缘强度与具有相同方向的掩模中的其他像素相比是最大的(即,指向y方向的像素,则将其与其上方和下方的像素进行比较,垂直轴),该值将被保留。否则,该值将被抑制。
例子例如在行人检测中,滑动窗口经提取特征,经分类器分类识别后,每个窗口都会得到一个分数。但是滑动窗口会导致很多窗口与其他窗口存在包含或者大部分交叉的情况。这时就需要用到NMS来选取那些邻域里分数最高(是行人的概率最大),并且抑制那些分数低的窗口1。
实施方式在一些实施方式中,算法将连续梯度方向分类为一组小的离散方向,然后在前一步骤的输出(即,边缘强度和梯度方向)上移动3×3滤波器。在每个像素处,如果其幅度不大于梯度方向上的两个邻居的幅度,则它抑制中心像素的边缘强度(通过将其值设置为0)。例如,
如果圆形渐变角为0°(即边缘在南北方向上),如果其渐变幅度大于东西方向像素处的幅度,则该点将被视为在边缘上
如果圆角度梯度角为90°(即边缘位于东西方向),如果其渐变幅度大于南北方向像素处的幅度,则该点将被视为在边缘上。
如果圆角渐变角度为135°(即边缘位于东北 - 西南方向),如果其渐变幅度大于西北和东南方向像素的幅度,则该点将被视为在边缘上。
如果圆形渐变角度为45°(即边缘位于西北 - 东南方向),如果其渐变幅度大于东北和西南像素的幅度,则该点将被视为在边缘上方向。
在更精确的实现中,在跨越梯度方向的两个相邻像素之间使用线性内插。例如,如果梯度角在45°和90°之间,则北和东北像素的渐变之间的插值将给出一个插值,并且南和西西像素之间的插值将给出另一个(使用最后一段)。中心像素处的梯度幅度必须大于这两者的梯度幅度,以便将其标记为边缘。
注意方向的符号是无关紧要的,即南北与南北相同,依此类推。
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学