• HOG算法总结


    1.HOG特征提取所针对的图像的尺寸是固定的。输入的图像应首先resize到这个尺寸。

    2.尺寸的划分3个等级:window,block,cell  

      window即输入的需要提取特征的图片大小。然后将window划分为众多block,这些block之间有相互重叠的部分。

      每一个block又划分为多个cell,cell之间紧邻且不重叠。block沿着水平和垂直方向滑动,按照固定的步长进行滑动,

      最后就形成了block相互之间的重叠。

      常见的尺寸:window:64x128;  block:16x16;  cell:8x8; step:8

    3.HOG特征:

      HOG特征也是基于梯度的,首先计算出输入图像中各个像素点的梯度(大小和方向),然后就需要进行一定的处理以

      保证特征的鲁棒性。对每个cell中的所有像素点的梯度进行统计,统计出一个梯度直方图,(就是不关心具体每个点的

      梯度而是关心在此cell范围内的点的梯度的分布)。然后将一个block中各个cell得到的梯度直方图数据(一维向量)串

      接起来,就得到了该block的特征,但是还要对该向量进行归一化,(缓解局部光照变化的影响,有时还需要剔除噪声

      点然后进行第二次归一化)。最后将window中所有的block的特征串联起来就得到了输入图像的HOG特征。

    4.HOG特征总数的计算:

      按如下尺寸:window:64x128;  block:16x16;  cell:8x8; step:8;  num_of_bin:9

      block总数:(64/8 - 1)*(128/8 - 1)   {即: (window_width / step -1)*(window_height / step -1)}

      blcok中特征数:9 * (16/8) * (16/8)  {即: num_of_bin * (block_width/cell_width)*(block_height/cell_height)}

      总特征数:block总数 × block中特征数 = (7×15) × (9×2×2) = 3780

    5.线性插值:

      整个特征都是基于像素点的梯度。在统计梯度直方图的时候,按照梯度方向找到直方图中对应的bin,按照梯度的大小

      对相应的bin进行累加。所以整个线性插值的过程就是如何分配每个像素梯度的大小,也就是处理好分配权值的问题。

      权值的分配分为:梯度直方图中相邻方向bin之间的插值 和 block空间尺度中邻接的像素点之间的插值 以及 整个blcok

      中类似于高斯形式的权值分配(突出中间区域的重要性)。

      权值的分配比例都是根据距离比例进行的,

      具体可以参考这篇博客( http://hi.baidu.com/susongzhi/item/3a3c758d7ff5cbdc5e0ec172 )

      至此所有的权值分配都计算出来之后,将像素的梯度大小按照这些权值分配到对应的直方图的bin中就行了。

      具体还可以参考这些比较全面的博客(感谢他们的分享):

      http://www.cnblogs.com/tornadomeet/archive/2012/08/15/2640754.html

    Trouble is a Friend
  • 相关阅读:
    精英讲师培训笔记12-即兴演讲如何与众不同
    精英讲师培训笔记11-上台演讲前
    精英讲师培训笔记10-上台演讲三技巧
    精英讲师培训笔记09-如何化解提问无人回答
    精英讲师培训笔记08-如何快速吸引学员注意力
    精英讲师培训笔记07-如何设计你的演讲,让更具吸引力
    精英讲师培训笔记06-学员不回答问题,课堂死气沉沉怎么办
    精英讲师培训笔记05-8个字搞定即兴演讲
    精英讲师培训笔记04-学员在玩手机、聊天、睡觉、走神怎么办?
    编程生涯——追逐朝霞的日子
  • 原文地址:https://www.cnblogs.com/sunniflyer/p/3737869.html
Copyright © 2020-2023  润新知