OpenCV HOGDescriptor 参数图解

转载 2015年07月07日 10:46:54

最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。

然而,无论是OpenCV官方说明文档还是各个中英文网站目前都没有这个类的使用说明,所以在这里把研究的部分心得分享一下。

      首先我们进入HOGDescriptor所在的头文件,看看它的构造函数需要哪些参数。 

  1. CV_WRAP HOGDescriptor() : winSize(64,128), blockSize(16,16), blockStride(8,8),  
  2.     cellSize(8,8), nbins(9), derivAperture(1), winSigma(-1),  
  3.     histogramNormType(HOGDescriptor::L2Hys), L2HysThreshold(0.2), gammaCorrection(true),   
  4.     nlevels(HOGDescriptor::DEFAULT_NLEVELS)  
  5. {}  

  1. CV_WRAP HOGDescriptor(Size _winSize, Size _blockSize, Size _blockStride,  
  2.               Size _cellSize, int _nbins, int _derivAperture=1, double _winSigma=-1,  
  3.               int _histogramNormType=HOGDescriptor::L2Hys,  
  4.               double _L2HysThreshold=0.2, bool _gammaCorrection=false,  
  5.               int _nlevels=HOGDescriptor::DEFAULT_NLEVELS)  
  6. : winSize(_winSize), blockSize(_blockSize), blockStride(_blockStride), cellSize(_cellSize),  
  7. nbins(_nbins), derivAperture(_derivAperture), winSigma(_winSigma),  
  8. histogramNormType(_histogramNormType), L2HysThreshold(_L2HysThreshold),  
  9. gammaCorrection(_gammaCorrection), nlevels(_nlevels)  
  10. {}  

  1. CV_WRAP HOGDescriptor(const String& filename)  
  2. {  
  3.     load(filename);  
  4. }  

  1. HOGDescriptor(const HOGDescriptor& d)  
  2. {  
  3.     d.copyTo(*this);  
  4. }  

  我们看到HOGDescriptor一共有4个构造函数,前三个有CV_WRAP前缀,表示它们是从DLL里导出的函数,即我们在程序当中可以调用的函数;最后一个没有上述的前缀,所以我们暂时用不到,它其实就是一个拷贝构造函数。

      下面我们就把注意力放在前面的构造函数的参数上面吧,这里有几个重要的参数要研究下:winSize(64,128), blockSize(16,16), blockStride(8,8), cellSize(8,8), nbins(9)。上面这些都是HOGDescriptor的成员变量,括号里的数值是它们的默认值,它们反应了HOG描述子的参数。这里做了几个示意图来表示它们的含义。

      窗口大小 winSize

      块大小 blockSize

      胞元大小 cellSize

      梯度方向数 nbins

      nBins表示在一个胞元(cell)中统计梯度的方向数目,例如nBins=9时,在一个胞元内统计9个方向的梯度直方图,每个方向为180/9=20度。

      HOG描述子维度

      在确定了上述的参数后,我们就可以计算出一个HOG描述子的维度了。OpenCV中的HOG源代码是按照下面的式子计算出描述子的维度的。 

  1. size_t HOGDescriptor::getDescriptorSize() const  
  2. {  
  3.     CV_Assert(blockSize.width % cellSize.width == 0 &&  
  4.         blockSize.height % cellSize.height == 0);  
  5.     CV_Assert((winSize.width - blockSize.width) % blockStride.width == 0 &&  
  6.         (winSize.height - blockSize.height) % blockStride.height == 0 );  
  7.     return (size_t)nbins*  
  8.         (blockSize.width/cellSize.width)*  
  9.         (blockSize.height/cellSize.height)*  
  10.         ((winSize.width - blockSize.width)/blockStride.width + 1)*  
  11.         ((winSize.height - blockSize.height)/blockStride.height + 1);  
  12. }  


参考文献

      OpenCV中的HOG算法来源于Histograms of Oriented Gradients for Human Detection, CVPR 2005。详细的算法可以参考这个文章。

opencv中HOGDescriptor中计算特征的个数

1 创建HOG描述子 HOGDescriptor *descriptor=new HOGDescriptor(cvSize(40,80),//winSize cvSize(10,20),//block...

HOG参数简介及Hog特征维数的计算

HOG构造函数 CV_WRAP HOGDescriptor() :winSize(64,128), blockSize(16,16), blockStride(8,8),      cellSize...
  • xl890727
  • xl890727
  • 2012年08月29日 14:51
  • 18369

TLD跟踪算法(单目标)相关资料

一、目标跟踪 TLD(Tracking-Learning-Detection)学习与源码理解之(一) TLD(Tracking-Learning-Detection)学习与源码理解之(二) TL...

opencv配置详解(含windows和linux两种平台)

含windows下QT4、VC6.0、VS2010和linux下QT4的配置 一、VS2010+opencv2.42配置 备注:本人是在sourceforge上下载的已经编译好的版本,所以解压...

OpenCV HOGDescriptor 参数图解

最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。然...

OpenCV HOGDescriptor 参数图解 .

最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HOG描述子。OpenCV中的HOG特征提取功能使用了HOGDescriptor这个类来进行封装,其中也有现成的行人检测的接口。然...

opencv中HOGDescriptor类说明

来自:http://blog.csdn.net/raocong2010/article/details/6239431 最近要做图像特征提取,可能要用下HOG特征,所以研究了下OpenCV的HO...

opencv中的 HOGDescriptor 类

【原文:http://blog.csdn.net/timidsmile/article/details/9314963】 其定义在  object.hpp中找到的: [cp...

opencv中的 HOGDescriptor 类

其定义在  object.hpp中找到的: [cpp] view plaincopy struct CV_EXPORTS_W HOGDe...

[Opencv源码阅读]HogDescriptor

Opencv中hog特征提取写在类HOGDescriptor中  默认的构造函数如下: CV_WRAP HOGDescriptor() : winSize(64,128), blo...
  • kfqcome
  • kfqcome
  • 2014年12月31日 17:33
  • 1418
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCV HOGDescriptor 参数图解
举报原因:
原因补充:

(最多只允许输入30个字)