首先,摘录自iJuliet的心得:
3.1.2 尺度空间的极值点检测
在高斯差分金子塔构建完成之后,进行差分尺度空间的极植点检测,以初步确定关键点位置和所在尺度,如图 3.3 所示:
图 3.3 DoG 尺度空间局部极值检测
图中标记为 X 号的像素点,需要与同一尺度,上下相邻两尺度内的相邻的 26 个像素点进行比较,以确保在二维图像空间和尺度空间都检测到局部极值。
一个核心问题是, DoG近似于2阶导, 2阶导数对于边缘, (从1次方程上来说就是拐点), 零交叉点(Zero-crossing)是最好的响应。从下图可以直观的看出这点 :
结果建好了DoG金字塔,却莫名其妙的用了 " 非极值抑制 Non Maximum Suppression "
零是绝对的, 很好找,零交叉点也很方便,就算 0 在非连续函数上无法得到,找"接近0的值"应该也没什么复杂的。而极值不好定义,也容易出错(假极值点)。而且2阶导的极值有两个,分别是edge的两个边。从上图也可以直观的看出来。既然麻烦不精确又会有两个点,为什么许多人偏偏用了NMS呢?
其实许多早期的文献,用到2阶导Laplacien找的都是零交叉点,
是什么时候开始大家忽然都用 "Non Maximum suppression"了?
对于1阶导,用NMS还有点道理,毕竟找的就是极值点, 是梯度(gradient)最大的地方。
可为什么连2阶导Laplacien map都用NMS?
哪位高人能解答这个问题呢?