##ORB特征提取
????????ORB(ORiented Brief)特征提取算法,其前身Brief,是由EPFL的Calonder在ECCV2010上提出了一種可以快速計算且表達方式為二進制編碼的描述子,主要思路就是在特征點附近隨機選取若干點對,將這些點對的灰度值的大小,組合成一個二進制串,并將這個二進制串作為該特征點的特征描述子。BRIEF最大的優點在于速度快,然而其缺點也相當明顯,主要有以下幾方面:
????????1. 不具有旋轉不變性;
????????2. 不具有尺度不變性;
????????3. 對抗噪聲性能差。
????????ORB就是試圖解決上述缺點中的1和3,即具有旋轉不變性的同時具有較好的抗噪能力。運算速度方面,ORB算法是SIFT算法的100倍,是SURF算法的10倍。
????????**ORB算法解決旋轉不變性問題的思想:**
????????ORB算法中采用了FAST作為特征點檢測算子。在SIFT算法中,梯度直方圖的把第一峰值的方向設置為特征點的主方向;如果次峰值的量度達到峰值的80%,則把第二個峰值的方向也設定為主方向,該算法相對更耗時。而在ORB的方案中,特征點的主方向是通過矩(moment)計算得來。有了主方向之后,就可以依據該主方向提取Brief描述子。
????????**ORB算法解決對噪聲敏感問題的方法:**
????????由于ORB算法不直接使用像素點與點之間進行比較,而是選擇以該像素為中心的一個區域作為整一個比較對象,因此提高了抗噪聲的能力。
????????**關于尺度不變性問題:**
????????ORB沒有解決尺度不變性的問題(因為FAST本身就不具有尺度不變性)而且這類快速的特征描述子,通常都是應用在實時的視頻處理中的,可以通過跟蹤還有一些啟發式的策略來解決尺度不變性的問題。
????????**相關論文下載:**
Calonder M., Lepetit V., Strecha C., Fua P.: BRIEF:Binary Robust Independent Elementary Features. ECCV 2010
[ORB: an efficient alternative to SIFT or SURF](http://www.willowgarage.com/sites/default/files/orb_final.pdf)
????????作為Brief的改進,ORB早在OpenCV 2.4.2版本就已經被實現出來了。在OpenCV中,ORB類繼承自Feature2D類,另外有兩個類:OrbFeatureDetector和OrbDescriptorExtractor,與ORB類是等價的。
????????**一個簡單的實驗:**
????????**ORB特征提取與匹配結果(未篩選特征點):**

????????**ORB特征提取與匹配結果(已篩選特征點):**

????????實驗代碼參照《OpenCV 3 編程入門》一書的例程編寫。
- 前言
- Win8.1下OpenCV2.4.9+Qt5.3.2開發環境搭建
- OpenCV2學習筆記(一)
- OpenCV2學習筆記(二)
- OpenCV2學習筆記(三)
- OpenCV2學習筆記(四)
- OpenCV2學習筆記(五)
- OpenCV2學習筆記(六)
- OpenCV2學習筆記(七)
- OpenCV2學習筆記(八)
- OpenCV2學習筆記(九)
- OpenCV2學習筆記(十)
- OpenCV2學習筆記(十一)
- OpenCV2學習筆記(十二)
- OpenCV2學習筆記(十三)
- OpenCV2學習筆記(十四)
- OpenCV2學習筆記(十五)
- OpenCV2學習筆記(十六)
- OpenCV2學習筆記(十七)
- OpenCV2學習筆記(十八)
- OpenCV2學習筆記(十九)
- OpenCV2學習筆記(二十)
- OpenCV2學習筆記(二十一)
- OpenCV2學習筆記(二十二)