opencv FAST特征 & 原理

FAST (Features from Accelerated Segment Test) 算法用来实时提取角点特征,
详细原理见paper:“Machine learning for high-speed corner detection” in 2006 (Later revised it in 2010).

先说下FAST特征的原理吧。
在这里插入图片描述
在图像中选择一点p,它的像素值为Ip
然后把Ip和它周围16个点的像素值作比较,取阈值t,

如果这16个点中连续n个点的像素值都 > Ip + t, 或者 < Ip - t, 就认为p是角点;n 取12。

一种更快的方法,就是coarse to fine思想,
先取图中的1,9,5,13点,先比较点1和9,都满足像素值 > Ip + t, 或者 < Ip - t时,再比较5和13。
至少3个点满足,认为p是可能是角点,如果这4个点一个都不满足,则直接认为p不是,排除掉。
当满足至少3个以后,再check一圈的16个点。

FAST算法存在几个缺点:
n < 12时会检测出很多点(不会排除太多的候选点)。
选出的点可能不是最优的,
上面提到的快速方法会抛弃一些点,
可能一片小区域附近会出现很多相邻的特征点。

上面前3个缺点可用Machine Learning解决(具体就不写了),最后一个用NMS解决,

NMS解决方法:
计算点p与它一圈16个点像素值之差的绝对值的和V
比如两个相邻的特征点,计算它们的V,抛弃V较小的那个点。

FAST算法的特点:
实时性,
对噪声不robust, 依赖于阈值t

下面看Opencv中的函数FAST

void FAST(InputArray image, vector<KeyPoint>& keypoints, int threshold, bool nonmaxSuppression=true)

参考链接

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值