上面的算法如SIFT、SURF提取到的特征也是非常优秀(有较强的不变性),但是时间消耗依然很大,而在一个系统中,特征提取仅仅是一部分,还要进行诸如配准、提纯、融合等后续算法。这使得实时性不好,降系了统性能。

Edward Rosten和Tom Drummond两位大神经过研究,于2006年在《Machine learning for high-speed corner detection》中提出了一种FAST特征点,并在2010年稍作修改后发表了《Features From Accelerated Segment Test》,简称FAST。注意:FAST只是一种特征点检测算法,并不涉及特征点的特征描述

FAST详解

FAST角点特征定义:若某像素与其周围邻域内足够多的像素点相差较大,则该像素可能是角点。

步骤

1、上图所示,一个以像素p为中心,半径为3的圆上,有16个像素点(p1、p2、...、p16)。

2、设定阈值t,如果这周围的16个像素中有连续的n个像素的像素值都小于 Ip−t或者有连续的n个像素都大于Ip+t, 那么这个点就被判断为角点。 opencv中默认采用Fast-9-16(还包括Fast-5-8,Fast-7-12).即在周围取16个像素点,若超过连续9个点与中心点差值大于阈值即成为候选角点。

4、很可能大部分检测出来的点彼此之间相邻,我们要去除一部分这样的点。为了解决这一问题,我们采用了非极大值抑制的算法,对图像进行非极大值抑制,对一个角点P建立一个3*3(或5*5,7*7)的窗口,如果该窗口内出现了另一个角点Q,则比较P与Q的大小,如果P大,则将Q点删除,如果P小,则将P点删除。

得分计算公式如下(公式中用V表示得分,t表示阈值):

opencv中角点强度计算方法不采用上面的公式所描述,而是采用最小的差值作为其角点强度值。例如若采用Fast-9-16,计算连续的9个位置与中心位置的差值的绝对值,取最小的一个差值作为其强度值。

FAST 算法特点

1、在速度上要比其他算法速度快很多

2、受图像噪声以及设定的阈值影响很大

3、FAST不产生多尺度特征而且FAST特征点没有方向信息,这样就会失去旋转不变性。

最新文章

  1. sass安装记录
  2. jQuery Transit 过渡效果
  3. webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成
  4. PHP Apache服务配置
  5. java.面向对象特征
  6. 事务——sql server中的事务应用举例
  7. Javascript对象的创建模式 -- 深入了解Javascript
  8. Windows环境下使用Cmake ndk编译fdk-aac
  9. 富文本web编辑器(UEditor)
  10. MYSQL 表分区的 3 方法
  11. 驴吃胡萝卜问题——牛客/FEI
  12. Indiegogo: An International Crowdfunding Platform to Raise Money
  13. U3D简单得换装技术
  14. Android名片扫描识别系统SDK
  15. Python的迭代器与生成器
  16. Linux Shell 文件描述符 及 stdin stdout stderr 重定向
  17. C#程序自动更新软件版本号
  18. Dubbo架构学习整理
  19. MyBatis-${}与#{}
  20. C# 爬虫小程序

热门文章

  1. 【Qt开发】 V4L2_CAP_VIDEO_OVERLAY与V4L2_CAP_VIDEO_CAPTURE的区别
  2. 不容错过的 MySQL史上最全
  3. python 并发编程 多进程 互斥锁
  4. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli2/Option
  5. Java数据结构之双向链表
  6. net 架构师-数据库-sql server-001-SQL Server中的对象
  7. You-Get,多网站视频下载工具,非常方便
  8. Hbase0.96源码之HMaster(三)Hmaster主要循环
  9. 移动前端不得不了解的Meta标签
  10. Vue下简单分页及搜索功能