转载地址:https://blog.csdn.net/maweifei/article/details/62887831
(一)ORB特征点提取算法的简介
Oriented FAST and Rotated BRIEF,简称ORB,该特征检测算子是在著名的FAST特征检测和BRIEF特征描述子的基础上提出来的,其运行时间远远优于SIFT和SURF,可应用于实时性特征检测。ORB特征检测具有尺度和旋转不变性,对于噪声及其透视变换也具有不变性,良好的性能是的利用ORB在进行特征描述时的应用场景十分广泛。ORB特征检测主要分为以下两个步骤:(1)方向FAST特征点检测(2)BRIEF特征描述。
(二)方向FAST特征点检测
步骤一:粗提取。该步能够提取大量的特征点,但是有很大一部分的特征点的质量不高。下面介绍提取方法。从图像中选取一点P,如上图1。我们判断该点是不是特征点的方法是,以P为圆心画一个半径为3pixel的圆。圆周上如果有连续n个像素点的灰度值比P点的灰度值大或者小,则认为P为特征点。一般n设置为12。为了加快特征点的提取,快速排出非特征点,首先检测1、9、5、13位置上的灰度值,如果P是特征点,那么这四个位置上有3个或3个以上的的像素值都大于或者小于P点的灰度值。如果不满足,则直接排出此点。
步骤二:机器学习的方法筛选最优特征点。简单来说就是使用ID3算法训练一个决策树,将特征点圆周上的16个像素输入决策树中,以此来筛选出最优的FAST特征点。
步骤三:非极大值抑制去除局部较密集特征点。使用非极大值抑制算法去除临近位置多个特征点的问题。为每一个特征点计算出其响应大小。计算方式是特征点P和其周围16个特征点偏差的绝对值和。在比较临近的特征点中,保留响应值较大的特征点,删除其余的特征点。
步骤四:特征点的尺度不变形。建立金字塔,来实现特征点的多尺度不变性。设置一个比例因子scaleFactor(opencv默认为1.2)和金字塔的层数nlevels(pencv默认为8)。将原图像按比例因子缩小成nlevels幅图像。缩放后的图像为:I’= I/scaleFactork(k=1,2,…, nlevels)。nlevels幅不同比例的图像提取特征点总和作为这幅图像的oFAST特征点。
步骤五:特征点的旋转不变性。ORB算法提出使用矩(moment)法来确定FAST特征点的方向。也就是说通过矩来计算特征点以r为半径范围内的质心,特征点坐标到质心形成一个向量作为该特征点的方向。矩定义如下:
其中,I(x,y)为图像灰度表达式。该矩的质心为:
假设角点坐标为O,则向量的角度即为该特征点的方向。计算公式如下:
-
/********************************************************************************************************
-
文件说明:
-
FAST角点检测
-
开发环境:
-
Win7 + OpenCv2.4.8 + VS2012
-
时间地点:
-
陕西师范大学 2017.3.17
-
作 者:
-
九 月
-
*********************************************************************************************************/
-
-
-
-
-
-
using namespace cv;
-
using namespace std;
-
-
int main(int argc, char** argv)
-
{
-
cv::Mat img = imread("hand1.jpg");
-
std::vector<cv::KeyPoint> keypoints;
-
-
cv::FastFeatureDetector fast(15); // 检测的阈值为50
-
fast.detect(img, keypoints);
-
-
cv::Mat img_keypoints;
-
cv::drawKeypoints(img, keypoints, img_keypoints, Scalar::all(-1), DrawMatchesFlags::DEFAULT);
-
-
cv::imshow("Keypoints", img_keypoints);
-
cv::waitKey(0);
-
return 0;
-
}
参考资料:
1)http://blog.csdn.net/hujingshuang/article/details/46898007
2)http://m.blog.csdn.net/article/details?id=52625678
3)http://download.csdn.net/detail/yang843061497/7785917
4)http://www.cvchina.info/2011/07/04/whats-orb/
5)http://blog.sina.com.cn/s/blog_916b71bb0100w9al.html