特征点检测算法——FAST角点
上面的算法如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特征点没有方向信息,这样就会失去旋转不变性。
最新文章
- sass安装记录
- jQuery Transit 过渡效果
- webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成
- PHP Apache服务配置
- java.面向对象特征
- 事务——sql server中的事务应用举例
- Javascript对象的创建模式 -- 深入了解Javascript
- Windows环境下使用Cmake ndk编译fdk-aac
- 富文本web编辑器(UEditor)
- MYSQL 表分区的 3 方法
- 驴吃胡萝卜问题——牛客/FEI
- Indiegogo: An International Crowdfunding Platform to Raise Money
- U3D简单得换装技术
- Android名片扫描识别系统SDK
- Python的迭代器与生成器
- Linux Shell 文件描述符 及 stdin stdout stderr 重定向
- C#程序自动更新软件版本号
- Dubbo架构学习整理
- MyBatis-${}与#{}
- C# 爬虫小程序
热门文章
- 【Qt开发】 V4L2_CAP_VIDEO_OVERLAY与V4L2_CAP_VIDEO_CAPTURE的区别
- 不容错过的 MySQL史上最全
- python 并发编程 多进程 互斥锁
- Exception in thread ";main"; java.lang.NoClassDefFoundError: org/apache/commons/cli2/Option
- Java数据结构之双向链表
- net 架构师-数据库-sql server-001-SQL Server中的对象
- You-Get,多网站视频下载工具,非常方便
- Hbase0.96源码之HMaster(三)Hmaster主要循环
- 移动前端不得不了解的Meta标签
- Vue下简单分页及搜索功能