轉載地址: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
