FAST

来源:互联网 发布:梦幻西游175魔化生数据 编辑:程序博客网 时间:2024/04/27 00:57

       fast(features from accelerated segment test),如同它的名字一样,它的速度非常快,一般被用来检测角点,对于一些实时系统也是绝佳选择,例如并行跟踪。

       与sift和surf不同,fast不具有方向性,由于fast特征缺少方向分量,但是计算主方向的方法也很多,像sift是利用梯度直方图,surf是利用haar小波的最大响应处的扇形patch方向近似,而fast的方向计算可以根据角点所在的一个图像块的强度质心Intensity Centroid来计算。

1.fast基本原理

       与Harris角点差不多,fast需要定义什么是角点,不同的是fast是根据候选点周围的强度来确定是否接受这个特征点。与中心候选点差异较大的像素点如果组成一个连续的圆弧,并且弧长大于圆周长的3/4,就可以认为找到了一个特征点,一般的,会首先检查候选点上下左右的四个像素点,如果四个点中有至少一个点的强度小于中心候选像素(注,这里我们使用周围圆弧上像素点与中心候选点差值的绝对值和来作为角点强度的测量方法),那么就可以直接将该点排除掉,节约时间成本,非常高效。

       具体细节可参考fast的经典论文,“Machine Learning for High-speed Corner Detector”,ECCV2006。

2.fast的方向计算

       在介绍之前,首先来回顾下有关p+q阶矩的知识:

       零阶矩:

          

       一阶矩:



       二阶矩:



       在几何中,最常用的是零阶矩和一阶矩,前者表示一个物体的质量,两者合起来表示物体的中心,同样的在图像中,零阶矩和一阶矩可以用来计算一个图像块(这里假设7x7的size)的centroid,二阶矩则表示方向。

       为了增加方向分量,可以使用图像的强度质心来确定方向,这个方法简单有效;根据强度质心,角点O的强度总是质心C(xc,yc)强度的偏移量,因此可以根据角点与质心组成的向量就可以求出所在图像块的方向,把这个方向当做角点的方向。由上面给出的零阶矩和一阶矩公式,我们可以得到图像块的质心C(xc,yc)的坐标公式:



到这里,就很容易求方向了,我们用theta表示,范围是-90°-90°:





为了简化起见,也可以简单近似为下面的写法:


       这样,通过上面的计算,我们就得到了带有方向的fast特征点,这样的计算并不是没有用的,它将会被用在ORB算子中。

       最后,应该记住图像的高阶矩,因为慢慢的你会发现它们很有利用价值。





0 0
原创粉丝点击