Feature Detector & Descriptor(三)

提取到Feature point以后,如何match?

这就需要描述子(匹配比对的根据)了。 

描述子要足够鲁棒,对光照和几何不敏感。

请看下面最简单的描述方法:

Feature Detector & Descriptor(三)

这样可以做match,前提最好不要有像素强度、光照、几何变化。

 

当我们用梯度来描述时,可以对像素shift鲁棒。

Feature Detector & Descriptor(三)

或者用像素梯度图。(丢掉像素的空间位置),如下

Feature Detector & Descriptor(三)

优点是:可以抵抗旋转变化。

缺点是:丢掉太多信息,描述性不够准确。

接下来有改进的版本:

Feature Detector & Descriptor(三)

切成小块,这样既可以有特征点的鲁棒性,又保持了一定的信息量。

梯度方向,然后投票。梯度方向的分布。

Feature Detector & Descriptor(三)

统计像素梯度方向。理解一下。旋转不变性!!考虑到了旋转不变性。

描述子很重要。

Invariance

  • Most feature descriptors are designed to be invariant to 2Drotation and translation。
  • They can usually also handle
  1.  容忍3D 60°的旋转。想象一下这个场景
  2. 仿射变换
  3. 光照变化

以上是描述子的自我修养。

Rotation Invariance for Feature Descriptors。

计算图片块的主方向,有多种计算方法。如下图所示:

Feature Detector & Descriptor(三)

理解下这个上图的内容。旋转不变性。

 

 

接下来是重头戏:SIFT

SIFT = DoG(金字塔——回想一下) + 描述子

往下看描述子。

Feature Detector & Descriptor(三)

中心位置信息和窗口大小(尺度大小)是已知信息,这是feature。scale用圆的半径来表示。

均匀采样成16x16的像素块,在每个像素上求edge的方向(梯度方向减90°),然后把比较弱的edge丢掉。

360°分成若干个区间进行投票。然后这就是方向不变性。

以上是对整个区域来算的。

Feature Detector & Descriptor(三)

16x16分割成4x4(8维),然后总共有16(4x4)个。

最后是8x16=128。现在懂了吧?

这个很好用,效果棒棒的!

现在明白SIFT的描述子怎么操作的吧?

https://blog.****.net/lingyunxianhe/article/details/79063547

SIFT我理解的还不够深,上面的链接能帮忙加深理解。

BRIEF是ORB用的,这我在其他博客也写过。