OpenCV_HOG特征维数计算

hog(cv::Size(64,48),cv::Size(8,6),cv::Size(8,6),cv::Size(4,3),9);  

其中,cvSize(64,48)表示窗口的大小(windowSize),

          cvSize(8, 6)表示块(blockSize)大小,

          cvSize(8,6)表示块滑动增量(blockStride)大小,

          cvSize(4, 3)表示胞元(cell)大小,

          9表示每个胞单元中梯度直方图的数量。

          (这个cell的梯度方向直方图了,就是该cell对应的9维特征向量(因为有9bin

一个块(block)包含A=(blockSize.width/cellSize.width)*(blockSize.height / cellSize.height) 

                                   = (8/4)*(6/3) = 2*2 = 4个胞元(cell),

所以一个块(block)含有9A个梯度直方图。按照所给出的数据,可得结果为36。

关于直方图,可参考  图像直方图


一个窗口包含B=((windowSize.width-blockSize.width)/(blockStrideSize.width)+1)* ((windowSize.height-blockSize.height)/(blockStrideSize.height)+1)

                       = ((64-8)/8+1)*((48-6)/6+1) = (7+1)*(7+1) = 64个块(block),

所以一个窗口包含9AB个梯度直方图。按照所给出的数据,可得结果为2304。


   在每个Cell中有独立做梯度方向统计,从而以梯度方向为横轴的的直方图,梯度方向可取0度到180度或0度~360度,但dalal实验表明,对于人体目标检测0度~180度这种忽略度数正负级的方向范围能够取得更好的结果。然后又将这个梯度分布平均分成个方向角度(orientation bins),每个方向角度范围都会对应一个直方柱。 根据Dalal等人实验,在人体目标检测中,在无符号方向角度范围并将其平均分成9份(bins)能取得最好的效果,当bin的数目继续增大效果改变不明显,故一般在人体目标检测中使用bin数目为9范围0~180度的度量方式。

      对梯度方向的投影权重方式的选取: 对于梯度方向的加权投影,一般都采用一个权重投影函数,它可以是像素点的梯度幅值,梯度幅值的平方根或梯度幅值的平方,甚至可以使梯度幅值的省略形式,它们都能够一定程度上反应出像素上一定的边缘信息。根据Dalal等人论文的测试结果,采用梯度幅值量级本身得到的检测效果最佳,使用量级的平方根会轻微降低检测结果,而使用二值的边缘权值表示会严重降低效果(约为5%个单位10-4FPPW(False Positives Per Window))。

         问:块与块之间是相互独立的么?答:通常的将某个变量范围固定划分为几个区域,由于边界变量与相邻区域也有相关性,所以变量只对一个区域进行投影而对相邻区域完全无关时会对其他区域产生混叠效应。

        分块之间的相关性问题的解决:方案一:块重叠,重复统计计算。

                                                           方案二:线性插值权重分配

         重叠块:Datal等人在他们那篇关于HOG最为经典的论文《Histogram of Oriented Gradient for Human Detection》提出了利用块与块的重叠(Overlap)来解决混叠,并且取得了不错的效果。 在重叠方式中,块与块之间的边缘点被重复根据权重投影到各自相邻块(block)中,从而一定模糊了块与块之间的边界,处于块边缘部分的像素点也能够给相邻块中的方向梯度直方图提供一定贡献,从而达到关联块与块之间的关系的作用。Datal对于块和块之间相互重叠程度对人体目标检测识别率影响也做了实验分析。

        利用线性插值的方法解决分块之间联系问题:有些文献采用的不是块与块重叠的方法,而是采用线性插值的方法来削弱混叠效应。这种方法的主要思想是每个Block都对临近的Block都有影响,这种影响,我们可以以一种加权方式附加上去。

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值