【OpenCV】基于HOG与SVM的行人检测学习

最近听了关于HOG与SVM的报告,比较深刻的学习了算法原理与实现方式。这里根据一些资料作下总结,方便日后拾起:


A.方向梯度直方图(HOG,Histogram of Gradient)

将图像依次划分为检测窗口(window)、块(block)、胞元(cell)3个层次

大体流程:

  1. 逐像素计算方向梯度;
  2. 对cell中的像素根据梯度划分区间,给出统计直方图;
  3. 对于每个block中重叠的cell进行对比度归一化
  4. 把所有直方图向量组成HOG特征向量。

HOG特征向量:

60e6e3d54ca9518b964b3&690

OpenCV对于HOG描述子(即特征向量)维度的计算:

size_t HOGDescriptor::getDescriptorSize() const
{
    CV_Assert(blockSize.width % cellSize.width == 0 &&
        blockSize.height % cellSize.height == 0);
    CV_Assert((winSize.width - blockSize.width) % blockStride.width == 0 &&
        (winSize.height - blockSize.height) % blockStride.height == 0 );
    return (size_t)nbins*
        (blockSize.width/cellSize.width)*
        (blockSize.height/cellSize.height)*
        ((winSize.width - blockSize.width)/blockStride.width + 1)*
        ((winSize.height - blockSize.height)/blockStride.height + 1);
}

如以下HOG检测器:检测窗口(64,128),块尺寸(16,16),块步长(8,8),cell尺寸(8,8),直方图bin个数9

HOGDescriptor hog(Size(64,128),Size(16,16),Size(8,8),Size(8,8),9);//HOG检测器,用来计算HOG描述子的

其特征向量维度即:clip_image002


 

B.支持向量机SVM(Support Vector Machine)

它是一个有监督的学习模型,通常用来进行模式识别、分类、以及回归分析。

大体可以理解为:利用正负样本(特征)学习,确定分割两种训练样本的最佳超平面,从而用于新对象的分类、识别。这里便是提取正负样本的HOG特征进行训练,然后同样根据待分类对象的HOG特征进行归类或识别。


 

C.具体资料

支持向量机(SVM)介绍与实现: http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html

方向梯度直方图(HOG)学习笔记: http://blog.sina.com.cn/s/blog_60e6e3d50101bkpn.html

训练SVM分类器进行HOG行人检测(实例): http://blog.csdn.net/pb09013037/article/details/41256945

OpenCV HOGDescriptor 参数图解: http://blog.csdn.net/raodotcong/article/details/6239431

转载于:https://www.cnblogs.com/KC-Mei/p/4534009.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值