知乎上看到的--Hog,SIFT以及LBP这三种特征有什么不同?

作者:盛淮南
链接:https://www.zhihu.com/question/45833619/answer/223930439
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

一、三者原理上的区别

1.SIFT:Scale-Invariant Feature Taransform,尺度不变特征变换。

  • 尺度空间的极值检测:搜索所有尺度空间上的图像,通过高斯微分函数来识别潜在的对尺度和旋转鲁棒性较强的点。
  • 特征点定位:在每个候选位置上,通过一个拟合精细模型(尺度空间DoG函数进行曲线拟合)来确定位置尺度,关键点的选取依据他们的稳定程度。
  • 特征方向赋值:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向,后续的所有操作都是对于关键点的方向、尺度和位置进行变换,从而提供这些特征的不变性。
  • 特征点描述:在每个特征点周围的领域内,在选定的尺度上测量图像的局部梯度,计算块内梯度直方图,生成具有独特性的向量。

2.HOG:Histogram of Oriented Gradient,方向梯度直方图。

  • 颜色空间归一化:为了减少光照因素的影响, 首先需要将整个图像归一化。因为颜色信息作用不大,通常先转化为灰度图。
  • 梯度计算:计算图像横坐标和纵坐标方向的梯度,并据此计算每个像素位置的梯度方向值;求导操作不仅能捕获轮廓,还能进一步弱化光照的影响。
  • 梯度方向直方图:将图像分成若干个cell,对cell内每个像素用梯度方向在直方图中进行加权投影(映射到固定的角度范围),就可以得到这个cell的梯度直方图。
  • 将每几个cell组成一个block(例如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。
  • 组成特征:将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor。

3.LBP:Local Binary Pattern,局部二值模式。

原始的LBP算子定义在像素3*3的邻域内,以邻域中心像素为阈值,相邻的8个像素的灰度值与邻域中心的像素值进行比较,若周围像素大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经过比较可产生8位二进制数,将这8位二进制数依次排列形成一个二进制数字,这个二进制数字就是中心像素的LBP值,LBP值共有28种可能,因此LBP值有256种。中心像素的LBP值反映了该像素周围区域的纹理信息。


<img src="https://pic2.zhimg.com/50/v2-8a5d2fe6460c0b0ac34fe2eda15ce935_hd.jpg" data-rawwidth="692" data-rawheight="184" class="origin_image zh-lightbox-thumb" width="692" data-original="https://pic2.zhimg.com/v2-8a5d2fe6460c0b0ac34fe2eda15ce935_r.jpg">


二、三者的优缺点及适用范围

<img src="https://pic2.zhimg.com/50/v2-a32ed84b2ba0302483bf23e60592ecf9_hd.jpg" data-rawwidth="712" data-rawheight="395" class="origin_image zh-lightbox-thumb" width="712" data-original="https://pic2.zhimg.com/v2-a32ed84b2ba0302483bf23e60592ecf9_r.jpg">


参考文献:

1.【SIFT特征详解

2.【LBP特征原理及代码实现

3.【目标检测的图像特征提取之(一)HOG特征

猜你喜欢

转载自blog.csdn.net/Jack_Sarah/article/details/80001963
今日推荐