FAST角点学习笔记

本博客内容来源于网络以及其他书籍,结合自己学习的心得进行重编辑,因为看了很多文章不便一一标注引用,如图片文字等侵权,请告知删除。

学习笔记目录----->传送门 <-----

前言

有关角点的知识可以在Harris角点学习笔记中查看。虽然有很多的角点检测算法,有一些也能够达到实时,但是我们要在实时性更高的系统上使用,比如vslam,则需要更快点的角点提取算法,来为其他操作节省时间。

那么Edward Rosten和Tom Drummond于2006年提出了一种FAST特征点检测方法,并在2010年稍作修改后发表了《Features From Accelerated Segment Test》,简称FAST(也确实是快,优秀的命名)。接下来,我们详细解析一下FAST角点检测方法

FAST角点检测思路

FAST角点定义与合理性

总的来说FAST角点检测还是比较简单的,那么让我们来看看作者是怎么定义FAST角点的

  • FAST角点:若某像素与其周围邻域内足够多的像素点相差较大,则该像素可能是角点。
    我们来看一个例子,帮助理解:

从上图上我们可以看出,放大后的右图中心像素点P的灰度值明显要比周围圆上的像素点1-16的灰度值要小,并且很多的像素值的相差比较大,则此点就有可能是角点。
这个通过对比平坦的图以及边缘图还是比较好理解的,在平坦的图上,周围的像素点应该和中心点的差距是比较小;在边缘上,周围的像素点应该一半差距比较大,一半基本上没有差距;而在角点上,应该时大多数的差距比较大,而少数的差距比较小。
所以提取特征点,就是通过一定的特征划分,将不同的像素点分开,属于同一特征下的在某个维度具有极高的结构或属性相似性。

FAST算法流程

在上述我们理解FAST角点定义的合理性之后,我们来看一下,FAST角点算法的流程,仍旧以上面的图为例。

  1. 我们仍旧选择一个点,不妨仍设这个点为像素点P。我们首先把它的亮度值设为Ip。
  2. 虑以该像素点为中心的一个半径等于3像素的离散化的Bresenham圆,这个圆的边界上有16个像素,分别为p1 ~ p16,亮度值分别为Ip1 ~ Ip16。
  3. 我们选定一个阈值t,t做什么的我们接下来看。
  4. 首先计算p1、p9、p5、p13(分别在四个方向的四个点)与中心p的像素差,若它们的绝对值有至少3个超过阈值t,则当做候选角点,再进行下一步考察;否则,不可能是角点;
  5. 在p是候选点的情况下,计算p1到p16这16个点与中心p的像素差,若它们有至少连续9个超过阈值(也可以测试其他大小,实验表明9的效果更好),则是角点;否则,不是角点。
  6. 对完整图进行1-5 的角点判断。
  7. 对完整图像进行非极大值抑制,目的去除小区域内多个重复的特征点:
    7.1. 计算特征点出的FAST得分值(或者说响应值),即16个点与中心差值的绝对值总和。
    7.2. 判断以特征点p为中心的一个邻域(可以设为3x3或着5x5)内,若有多个特征点,则判断每个特征点的响应值,如果p是其中最大的,则保留,否则,删除。如果只有一个特征点,就保留。

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

FAST角点检测性能

可以看出FAST特征点的计算方式非常简单,计算速度也是相对于其他方式也是非常快的,但是还是有一些缺点:

  • 在首先的四点检测里,只有2个点同中心点不相似,也并不能说明这不是角点(我们是不是可以在这优化一下,保留更多的角点)。
  • 前面的四点检测结果和后面的16点检测的计算有一定重复。
  • 检测出来的角点不一定是最优的,这是因为它的效率取决于问题的排序与角点的分布。

虽然FAST有一些缺点,但并不妨碍FAST角点检测,是一个优秀的方法,其中使用最常见的就是为其他特征点的提取,进行快速的过滤。比如先进性FAST特征提取,在进行Harris角点去,就可以加快,整个Harris角点提取的速度了。 再比如在ORB-SLAM中,orb特征点的提取就依赖了FAST角点提取的快速稳定。在之后我们会讲解关于ORB特征点的提取。

so easy

OpenCV 使用中FAST角点检测效果[代码]

#include <iostream>
#include <opencv2/opencv.hpp>
int main(int argc, char *argv[])
{
    int thread_value = 30;

    cv::Mat  orignal_image = cv::imread (argv[1]);
    cv::Mat gray_image , after_fast_image;
    cv::cvtColor (orignal_image,gray_image,CV_BGR2GRAY);     // 灰度变换

    std::vector<cv::KeyPoint> keypoints;
    cv::FAST(gray_image, keypoints,thread_value);
    cv::drawKeypoints(orignal_image, keypoints, after_fast_image, cv::Scalar::all(-1), cv::DrawMatchesFlags::DEFAULT);


    cv::imshow("after_fast_corner", after_fast_image);
    cv::imwrite("after_fast_corner.png",after_fast_image);
    cv::waitKey(0);

    return 0;
}

下面是我自己选的一张图出来的效果,可以看到在角点检测的效果还是不错的,角点的地方还是找的比较密集的,当然和阈值的设置也有关系,可以去对比我Harris的效果去做对比。

原图
FAST角点检测效果

重要的事情说三遍:

如果您看到我的文章对您有所帮助,那就点个赞呗 ( * ^ __ ^ * )

如果您看到我的文章对您有所帮助,那就点个赞呗( * ^ __ ^ * )

如果您看到我的文章对您有所帮助,那就点个赞呗( * ^ __ ^ * )

传统2D计算机视觉学习笔记目录传送门
传统3D计算机视觉学习笔记目录传送门

任何人或团体、机构全部转载或者部分转载、摘录,请保留本博客链接或标注来源。博客地址:开飞机的乔巴

作者简介:开飞机的乔巴(WeChat:zhangzheng-thu),现主要从事机器人抓取视觉系统以及三维重建等3D视觉相关方面,另外对slam以及深度学习技术也颇感兴趣,欢迎加我微信或留言交流相关工作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容