OpenCV关于hog特征向量的个数

转载 2013年12月01日 22:15:09

转载来自:http://gz-ricky.blogbus.com/logs/85326280.html



  • 今天脑袋终于开窍了, 把hog的特征个数弄懂了一点
     
    其实原理是很简单的, 在OpenCV实现的是R-HOG, 即对图像img->窗口window->块block->细胞单元cell进行向量统计
    首先看描述器的构造函数, 我用
            HOGDescriptor *desc=new HOGDescriptor(cvSize(40,80),cvSize(10,20),cvSize(5,10),cvSize(5,5),9);
    进行测试..
     
    这里的window为(40, 80), block为(10, 20), block的步进stride是(5, 10), 细胞单元cell是5 * 5像素, 每个cell的直方图bin是9.
    于是,
    对每一个cell, 有9个向量
    对每一个block, 有2*4个cell, 所以有72个向量
    对于window而言, 计算block个数的方法是, 对两个方向计算 (window_size - block_size)/block_stride + 1, 算得共有7*7 个block, 共有72*49=3528个向量
     
    在搜索img, 计算图片特征的时候, 调用desc->compute(img,w,cvSize(10,20),cvSize(0,0));
    其中img是输入图像, w是保存向量的vector, 第三个是window的步进, 第四个是padding, 用于填充图片以适应大小的.
     
    当设置padding为默认(0,0)时, 计算(img_size - window_size) / window_stride +1 不一定为整数
    在compute函数中可以看到:
        padding.width = (int)alignSize(std::max(padding.width, 0), cacheStride.width);
        padding.height = (int)alignSize(std::max(padding.height, 0), cacheStride.height);
    即padding的大小会自动适应stride的值.
    gz_ricky输入的图片是96*160的, 对应了5.6 * 5, 经函数调整后变成6 * 5 =30
     
     所以对这张96*160的图片, 共有105840个特征向量
     
    PS. 如果设置了padding的值, 图片就会先伸展padding*2, 或许是和内部那个paddingTL和paddingBR两个有关, 即在Top-Left和Button-Right两个方向都扩展. 计算特征数方法同上.
     

    hog特征值会生成以后,  可以转入svm训练的阶段了..


80行Python实现-HOG梯度特征提取

本文用80行代码的Python实现了HOG算法,代码在Github Hog-feature,虽然OpenCV有实现好的Hog描述器算法,但是本文目的是完全理解HOG特征提取的具体方法和实现原理,以及检...
  • ppp8300885
  • ppp8300885
  • 2017年05月02日 12:42
  • 3696

【图像特征提取1】方向梯度直方图HOG---从理论到实践------附带积分图像的解析

(一)特征检测算法的综述                   计算机视觉理论中的特征描述是常见的目标分析技术之一,关键点的检测和关键点的提取是目标分析的重要手段和重要步骤之一。局部图像特征描述的核心...
  • maweifei
  • maweifei
  • 2017年03月15日 16:31
  • 5377

OpenCV中基于HOG特征的行人检测

目前基于机器学习方法的行人检测的主流特征描述子之一是HOG(Histogram of Oriented Gradient, 方向梯度直方图)。HOG特征是用于目标检测的特征描述子,它通过计算和统计图像...
  • dcrmg
  • dcrmg
  • 2016年11月05日 19:23
  • 5118

OpenCV关于hog特征向量的个数

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://www.blogbus.com/gz-ricky-logs/85326280.html 今天脑袋终于开窍了, 把...
  • childbor
  • childbor
  • 2017年03月11日 17:18
  • 92

OpenCV_HOG特征维数计算

hog(cv::Size(64,48),cv::Size(8,6),cv::Size(8,6),cv::Size(4,3),9);   其中,cvSize(64,48)表示窗口的大小,cvSize(8...
  • xiao_lxl
  • xiao_lxl
  • 2015年05月13日 15:14
  • 1190

HOG特征提取代码(opencv处理基本数据,c语言实现基本算法)

#include #include using namespace cv; using namespace std; IplImage *bgrtogrey(IplImage*img) { ...
  • u013163281
  • u013163281
  • 2017年07月10日 17:50
  • 927

目标检测—HOG特征和OpenCV中的实现

转载请注明出处!!!http://blog.csdn.net/zhonghuan1992 目标检测—HOG特征和OpenCV中的实现 关于HOG特征可以看http://blog.csdn.net/zo...
  • u013035103
  • u013035103
  • 2014年08月24日 03:00
  • 7542

图像识别--Java中使用openCV提取Hog特征通过SVM训练实现图像识别

图像识别大致可以分为这么几步: 1.对训练图片进行预处理 2.对预处理的图片进行Hog特征提取 3.使用SVM分类器对特征进行分类形成模型 4.根据模型对测试图片进行预测   以下都是通过...
  • M_WBCG
  • M_WBCG
  • 2017年07月13日 22:16
  • 666

opencv-积分直方图加速HOG特征计算

注:转自  http://grunt1223.iteye.com/blog 方向梯度直方图(Histograms of Oriented Gradients,简称HOG特征)结合支持向量机( sup...
  • yhb_yhb_
  • yhb_yhb_
  • 2014年08月29日 11:01
  • 669

Hog特征与opencv实现

转载地址:http://blog.csdn.net/xw20084898/article/details/21078801 1、HOG算子定义 HOG又叫梯度直方图特征,是一种对图像局部重...
  • bishuilinglan
  • bishuilinglan
  • 2015年01月15日 09:37
  • 536
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCV关于hog特征向量的个数
举报原因:
原因补充:

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