使用自适应阈值和支持动态区域的曲率尺度空间角点检测(理论)

参考文献:Curvature Scale Space Corner Detector with Adaptive Threshold and Dynamic Region of Support (PDF下载)

1.曲率尺度空间(CSS)的角点检测子
这一小节主要讲原始的和改进的CSS。
定义曲率:

其中,



g(u,σ ) 是高斯函数对σ的偏导数;一个点是一阶偏导数,二个点是二阶偏导数。然后是小x和小y与其卷积。
检测步骤如下:
(1)对一幅灰度图使用Canny算子获得二值的边缘图;
(2)从边缘图提取边缘轮廓,填充轮廓中的裂缝,并找到T节点;
(3)对边缘轮廓计算高尺度σ high的曲率;
(4)考虑一个局部极大值作为初始角点,其绝对曲率大于阈值t并且两倍于其中一个邻近的局部极小值;
(5)从最高尺度到最低尺度追踪角点来提高定位;
(6)比较T节点和其他角点,删除两个很近的角点中的一个;
在这个算法中,在检测过程中使用单尺度,在定位中使用多尺度;σ描述的是尺度,然而σ太小会检测错误的角点,σ太大也未能检测出正确的角点,对于复杂的图像来说σ是相当难以明确的!还有个问题是那个全局阈值t又该怎么确定?
然而事实上,对于轮廓长度这个影响尺度系数的因素也并非必然,再说轮廓长度也不是曲率的一个主要因素啊,因此实际上需要对同一幅图像使用不同的尺度。下面将介绍其改进的方法!

2.改进的CSS角点检测方法
该方法区别于上述方法的(3)和(4)步:
(3)在每一个轮廓和一个确定的低尺度计算曲率以记住所有正确的角点;
(4)所有曲率的局部极大值作为角点的候选对象,这里包括哪些错误的角点;
关于区分错误的角点和去除边界噪声及细节,使用如下3和4的方法:

3.自适应局部阈值
在候选的角点中,尽管一些检测数字化的点事局部最大绝对值,然而这些最大值与支撑的邻域区域的可计算差异很小。这就是所谓的圆角。它可以通过局部自适应曲率阈值方法去除!这将关系到邻域区域的曲率。这个自适应阈值表述如下:

其中K一拨是邻域曲率均值,u是曲线上候选角点的位置,L1 和 L2是ROS的大小,C是作用系数。
支持区域(ROS)定义:从一个邻域局部曲率极小值到下一个从候选点到两端严格减少的曲率。
C=1,没有“角点”被去除;
C=2,曲率函数的波形是三角的;
1<C<2,便是圆角,通过对大量图片实验,一般取均值1.5。

4.角点的角度
通常情况下一个定义明确的角点是一个比较尖锐的角!(锐角)
也就是说如果我们知道曲线上的点的夹角,便能很好的区分正确的角点还是错误的。然而这个需要我们在ROS中获得一个好的尺度。下面让我们分析下图:

图上的五个点都是曲率局部最大的点即角点的候选点,
如果采用小的ROS:则这五个点都是角点;
如果是大的ROS:2,3,4将可能被视为错误的角点;
事实上我们并不知道ROS的大小,因此需要做下面的工作:
使用动态ROS!惊讶吧,ROS的大小我们让候选角点(主要是两个邻近的候选角点)自己去决定吧!也算一种自学习或自适应!当然这里不能用这个词。
在上图中,如果3的ROS跨越了2和4,判断其为正确的角点,是个锐角。
另一个方面,如果在自适应局部阈值之后仅仅1,3,5被记为候选角点,则3的ROS跨过了1和5,就可以把3看做一个错误的角点(1,5大概成一条直线)
经过上面的分析,我们可以得出:
如果160°<=角C<=200°,候选角点C是个错误角点,否则是一个正确的角点。
其中,


经过多次迭代,由边界噪声和不重要的细节产生的孤立的候选角点被去除,主要的角点被保留。

5.总结
学习本文是出于我在研究基于平均曲率流(MCVF)的图像滤波,在后面我讲写一篇关于其实验和代码分析的文章!随后将进行基于平均曲率流相关问题的分析研究。

发布了70 篇原创文章 · 获赞 18 · 访问量 10万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章