提取到Feature point以後,如何match?
這就需要描述子(匹配比對的根據)了。
描述子要足夠魯棒,對光照和幾何不敏感。
請看下面最簡單的描述方法:
這樣可以做match,前提最好不要有像素強度、光照、幾何變化。
當我們用梯度來描述時,可以對像素shift魯棒。
或者用像素梯度圖。(丟掉像素的空間位置),如下
優點是:可以抵抗旋轉變化。
缺點是:丟掉太多信息,描述性不夠準確。
接下來有改進的版本:
切成小塊,這樣既可以有特徵點的魯棒性,又保持了一定的信息量。
梯度方向,然後投票。梯度方向的分佈。
統計像素梯度方向。理解一下。旋轉不變性!!考慮到了旋轉不變性。
描述子很重要。
Invariance
- Most feature descriptors are designed to be invariant to 2Drotation and translation。
- They can usually also handle
- 容忍3D 60°的旋轉。想象一下這個場景
- 仿射變換
- 光照變化
以上是描述子的自我修養。
Rotation Invariance for Feature Descriptors。
計算圖片塊的主方向,有多種計算方法。如下圖所示:
理解下這個上圖的內容。旋轉不變性。
接下來是重頭戲:SIFT
SIFT = DoG(金字塔——回想一下) + 描述子
往下看描述子。
中心位置信息和窗口大小(尺度大小)是已知信息,這是feature。scale用圓的半徑來表示。
均勻採樣成16x16的像素塊,在每個像素上求edge的方向(梯度方向減90°),然後把比較弱的edge丟掉。
360°分成若干個區間進行投票。然後這就是方向不變性。
以上是對整個區域來算的。
16x16分割成4x4(8維),然後總共有16(4x4)個。
最後是8x16=128。現在懂了吧?
這個很好用,效果棒棒的!
現在明白SIFT的描述子怎麼操作的吧?
https://blog.csdn.net/lingyunxianhe/article/details/79063547
SIFT我理解的還不夠深,上面的鏈接能幫忙加深理解。
BRIEF是ORB用的,這我在其他博客也寫過。