在常規立體匹配中特徵點匹配一直是研究重點,特徵點的描述是立體匹配的前提,orb特徵優點是速度快和較高的精度。
rb 特徵亦由關鍵點和描述子兩部分組成。它的關鍵點稱為「oriented fast」,是 一種改進的 fast 角點。
它的描述子稱為 brief (binary robust independent elementary features)。因此,提取 orb 特徵分為兩個步驟:
1、 fast 角點提取:找出影象中的」 角點」。相較於原版的 fast, orb 中計算了特徵 點的主方向,為後續的 brief 描述子增加了旋轉不變特性。
2、 brief 描述子:對前一步提取出特徵點的周圍影象區域進行描述。
下面我們分別介紹 fast 和 brief:
ast 是一種角點,主要檢測區域性畫素灰度變化明顯的地方,以速度快著稱。它的思想是:
如果乙個畫素與它鄰域的畫素差別較大(過亮或過暗), 那它更可能是角點。相比於 其他角點檢測演算法,fast 只需比較畫素亮度的大小,十分快捷。
它的檢測過程如下:
1、 在影象中選取畫素 p,假設它的亮度為 ip。
2、設定乙個閾值 t(比如 ip 的 20%)。
3、 以畫素 p 為中心, 選取半徑為 3 的圓上的 16 個畫素點。
4、 假如選取的圓上,有連續的 n 個點的亮度大於 ip + t 或小於 ip −t,那麼畫素 p 可以被認為是特徵點 (n 通常取 12,即為 fast-12。其它常用的 n 取值為 9 和 11, 他們分別被稱為 fast-9,fast-11)。
5、 迴圈以上四步,對每乙個畫素執行相同的操作。
brief 描述子 在提取 oriented fast 關鍵點後,我們對每個點計算其描述子。orb 使用改進的 brief 特徵描述。我們先來講 brief 是什麼。
rief 是一種二進位制描述子,它的描述向量由許多個 0 和 1 組成,這裡的 0 和 1 編 碼了關鍵點附近兩個畫素(比如說 p 和 q)的大小關係:
如果 p 比 q 大,則取 1,反之就 取 0。如果我們取了 128 個這樣的 p,q,最後就得到 128 維由 0,1 組成的向量。那麼,p 和 q 如何選取呢?
在作者原始的**中給出了若干種挑選方法,大體上都是按照某種概率 分布,隨機地挑選 p 和 q 的位置,讀者可以閱讀 brief **或 opencv 原始碼以檢視它 的具體實現 [34]。
brief 使用了隨機選點的比較,速度非常快,而且由於使用了二進位製表 達,儲存起來也十分方便,適用於實時的影象匹配。
原始的 brief 描述子不具有旋轉不 變性的,因此在影象發生旋轉時容易丟失。
而 orb 在 fast 特徵點提取階段計算了關鍵 點的方向,所以可以利用方向資訊,計算了旋轉之後的「steer brief」特徵,使 orb 的 描述子具有較好的旋轉不變性。
於考慮到了旋轉和縮放,使得 orb 在平移、旋轉、縮放的變換下仍有良好的表現。
特徵描述子提取公用介面
opencv封裝了一些特徵描述子提取演算法,使得使用者能夠解決該問題時候方便使用各種演算法。這章用來計算的描述子提取被表達成乙個高維空間的向量 vector 所有實現 vector 特徵描述子子提取的部分繼承了 descriptorextractor 介面.class descriptorextra...
CV Haar特徵描述運算元
1.3 案列 計算haar特徵值 1.4 特徵值歸一化 1.5 adaboost級聯分類器 2 python 實現 學習目標 haar特徵分為三類 邊緣特徵 線性特徵 中心特徵和對角線特徵,組合成特徵模板。特徵模板內有白色和黑色兩種矩形,並定義該模板的特徵值為白色矩形畫素和減去黑色矩形畫素和。haa...
OpenCV 95 BRIEF特徵描述子匹配
import cv2 as cv box cv.imread images box.png box in sence cv.imread images box in scene.png cv.imshow box box cv.imshow box in sence box in sence 建立o...