FASTN角点检测算法的基本原理

1. FASTN算法的动机

大部分特征检测算法的效果较好,但是达不到实时,因此提出FAST (Features from Accelerated Segment Test),欢迎关注微信公众号“智能算法”!

2. FASTN算法的基本原理
用一句话来讲FASTN算法的原理就是:若一个像素周围有一定数量的像素与该点像素值不同,则认为其为角点。步骤如下:
1)在图像中任选一点p, 假定其像素(亮度)值为  Ip
2)以r为半径画圆,覆盖p点周围的M个像素,如下图所示: r=3, M=16
3)设定阈值t,如果这周围的16个像素中有连续的N个像素的像素值减去  Ipt  或者有连续的N个像素都大于  Ip+t , 如果t=0,那么就可以理解为:有连续N个像素大于或小于Ip的灰度值。那么这个点就被判断为角点。
4)一种更加快的改进是: 首先检测p点周围的四个点,即1, 5, 9, 12四个点中是否有三个点满足超过 Ip+t , 如果不满足,则直接跳过,如果满足,则继续使用前面的算法,全部判断16个点中是否有12个满足条件。


以上算法的缺点:很可能大部分检测出来的点彼此之间相邻,我们要去除一部分这样的点。为了解决这一问题,可以采用非最大值抑制的算法:假设P,Q两个点相邻,分别计算两个点与其周围的16个像素点之间的差分和V,去除V值较小的点,即把非最大的角点抑制掉。

那么问题来了,什么样角度的角点都能检测到吗?如下图:有三种角点,分别是45°角,90°角和135°角。


那么FASTN算法哪个角点都能检测到么?答案是肯定的。但是这取决于连续像素N的设置。我们仍然假如半径r=3,那么在该圆上有16个像素:如下图:


因为该算法检测角点的条件是:连续N个像素大于或小于中心灰度值减去阈值t,所以这个N从某种程度上就决定了能检测到的角度。比如下图:以黑线为基准的话,设置N=10的话,能检测到小于135°的角(黑红夹角),设置N=12的话,能检测到小于90°的角(黑蓝夹角),设置N=14的话,则能检测到小于45°的角(黑绿夹角)。


3. FASTN算法总结
1)在速度上要比其他算法速度快很多
2)受图像噪声以及设定的阈值影响很大
3)FASTN不产生多尺度特征而且FASTN特征点没有方向信息,这样就会失去旋转不变性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值