簡介
BRIEF是2010年的一篇名為《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是對已檢測到的特征點進行描述,它是一種二進制編碼的描述子,擯棄了利用區域灰度直方圖描述特征點的傳統方法,大大的加快了特征描述符建立的速度,同時也極大的降低了特征匹配的時間,是一種非常快速,很有潛力的算法。
BRIEF具體算法
由於BRIEF僅僅是特征描述子,所以事先要得到特征點的位置,可以利用FAST特征點檢測算法或Harris角點檢測算法或SIFT、SURF等算法檢測特征點的位置。接下來在特征點鄰域利用BRIEF算法建立特征描述符。
算法步驟如下:
1、為減少噪聲干擾,先對圖像進行高斯濾波(方差為2,高斯窗口為9x9)。
2、以特征點為中心,取SxS的鄰域窗口。在窗口內隨機選取一對(兩個)點,比較二者像素的大小,進行如下二進制賦值。

其中,p(x),p(y)分別是隨機點x=(u1,v1),y=(u2,v2)的像素值。
3、在窗口中隨機選取N對隨機點,重復步驟2的二進制賦值,形成一個二進制編碼,這個編碼就是對特征點的描述,即特征描述子。(一般N=256)
以上便是BRIEF特征描述算法的步驟。
關於一對隨機點的選擇方法,原作者測試了以下5種方法,其中方法(2)比較好。

這5種方法生成的256對隨機點如下(一條線段的兩個端點是一對):

利用BRIEF特征進行配准
經過上面的特征提取算法,對於一幅圖中的每一個特征點,都得到了一個256bit的二進制編碼。接下來對有相似或重疊部分的兩幅圖像進行配准。
特征配對是利用的漢明距離進行判決:
1、兩個特征編碼對應bit位上相同元素的個數小於128的,一定不是配對的。
2、一幅圖上特征點與另一幅圖上特征編碼對應bit位上相同元素的個數最多的特征點配成一對。
(一)BRIEF描述子
0 ; A<=B
4)分別對已經選取的點對進行T操作,將得到的結果進行組合。如下所示:

那么,這個關鍵點最終的描述子為:1011
(二)理想特征點的描述子應該具備哪些屬性呢?
當我們以理想的方式計算圖像中關鍵點的描述子的時候,同樣的特征點,在不同的圖像中應該具有相同的結果。即描述子對於光照、旋轉、尺度具有一定的魯棒性。
上面我們用BRIEF算法得到的描述子並不具備以上這些性質。因此,我們得想辦法改進我們的算法。ORB並沒有解決尺度一致性的問題,OpenCv中實現的ORB算法采用圖像金字塔來改善這方面的性能。ORB算法主要解決了BRIEF描述子不具有旋轉不變性的問題。
回顧一下BRIEF描述子的計算過程:在當前關鍵點P的周圍以一定方式選取N個點對,組合這N個點對的T操作的結果,這個組合結果就為這個關鍵點最終的描述子。當我們選取點對的時候,是以當前關鍵點為原點,以水平方向為X軸,以垂直方向為Y軸建立坐標系。當圖片發生旋轉時,坐標系不變,同樣的取點模式,取出來的點卻不一樣,計算得到的描述子也不一樣,這是不符合我們要求的。因此,我們需要重新建立坐標系,使新的坐標系可以隨着圖片的旋轉而旋轉。這樣我們以相同的取點模式取出來的點就具有一致性。
打個比方,我們有一個印章,上面刻着一些直線。用這個印章在一張圖片上蓋一個章子,圖片上的某個點被取出來。印章不變動的情況下,轉動下圖片,再蓋一個章子,但是這次取出來的點對就和之前的不一樣。為了使2次取出來的點一樣,我們需要將章子也旋轉同一個角度,再蓋章。ORB在計算BRIEF描述子的時候,建立的坐標系是以關鍵點為圓心,以關鍵點和取點區域的形心的連線為X軸建立的2維坐標系 。在下圖中,P為關鍵點。圓內為取點的區域,每個小格子代表一個像素。現在我們把這塊圓心看做一塊木板,木板上每個點的質量等於其對應的像素值。根據積分學的知識,我們可以求出這個密度不均勻木板的質心Q。計算公式如下所示,其中R為圓的半徑。我們知道圓心是固定的,而且隨着物體的旋轉而旋轉,當我們以PQ為坐標時,在不同的旋轉角度下,我們以同一取點模式取出來的點是一致的,這就解決了旋轉一致性的問題。
轉自:http://blog.csdn.net/maweifei/article/details/62889699
http://blog.csdn.net/hujingshuang/article/details/46910259
