SIFT特征理解

背景:网课上面的SIFT特征的讲解看的我一头雾水。然后在知乎上面找到一段比较好的通俗理解SIFT特征的文字。有助于比较好的去理解这个复杂的过程。

特征点检出主要是用了DoG,就是把图像做不同程度的高斯模糊blur,平滑的区域或点肯定变化不大,而纹理复杂的比如边缘,点,角之类区域肯定变化很大,这样变化很大的点就是特征点;特征点描述就是一个简单版的HOG,即以检出的特征点为中心选16x16的区域作为local patch,这个区域又可以均分为4x4个子区域,每个子区域中各个像素的梯度都可以分到8个bin里面,这样就得到了4x4x8=128维的特征向量。

DoG:首先还是贴一篇讲的非常好的博客,这里主要是要注意下面这段话,其实也就是特征点的最本质的特征。

一个点如果在DOG空间本层以及上下两层的26个领域中是最大值和最小值时,就认为该点是图像在该尺度下的一个特征点。

特征点示意图

HOG:那么按照惯例也是先贴一篇讲的非常不错的博客(奇怪为啥自己每次都能找到讲的不错的博客呢)。然后再贴一篇讲的更加详细但是同时也是比较严肃比较板眼的博客。
首先,SIFT需要构建尺度空间。这是因为,SIFT特征具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角,仍然能够得到好的检测效果。所以,构建尺度空间的目的是模拟图像数据的多尺度特征。同时在阅读的时候产生了一些问题。

  • 图像金字塔向下构建的过程中在标准差前乘以2可以改变scale啊?按高斯变换的公式,只会改变图像的模糊程度才对啊,怎么会对scale产生影响呢?
  • 何谓为了满足尺度变化的连续性,我们在每一组图像的顶层继续用高斯模糊生成了 3 幅图像

其实,scale应该是通过降采样进行的改变,而不是通过模糊系数进行的改变。这里也贴一篇关于降采样和升采样的博客,之前又碰到过的插值法就是在升采样里面的。
然后有两篇SIFT的比较好的博客。可以看一下。还有一篇附带了源码和一些更加详细解读的博客,也是非常不错的。
剩下的一些问题,这里先做不求甚解的处理,因为还没有接触到代码,而在理论上面又浪费了太多的时间了。

你可能感兴趣的:(CV)