HOG特征:方向梯度直方图(Histogram of Oriented Gradient,)特征是一种全局图像特征描述子。

它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。

参考原文:目标检测之特征提取之—HOG特征  如有疑义,请拜访原文。

RGB的DPM检测特征和其级联方法是最后一个有效的传统的目标检测方法,翻译见DPM原理详解,此后,如有疑义,请拜访原文,作者的主页面:http://www.rossgirshick.info/

DPM项目主页:Object Detection with Discriminatively Trained Part Based Models

       See also, CACM Research Highlight:

Visual Object Detection with Deformable Part Models
       P. Felzenszwalb, R. Girshick, D. McAllester, D. Ramanan   Communications of the ACM, no. 9 (2013): 97-105

一、HOG+SVM模型

1、HOG描述子的计算过程

输入图像image:

1)灰度化( 将图像看做一个x,y,z(灰度)的三维图像);

2)采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;

3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。

4)将图像划分成小cells(例如6*6像素/cell);

5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor; 原始HOG特征划分为9个直方图区间。

意义:计算梯度直方图,可以降低光线明暗变化带来的影响,保持良好的光照不变性和特定的旋转不变性。

6)将每几个cell组成一个block(例如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。(此处cell和block,每个block可以多个cell,相邻cell之间产生特定像素的重叠,可以有效的抵挡偏移影响。行人检测的最佳参数设置是:3×3细胞/区间、6×6像素/细胞、9个直方图通道。则一块的特征数为:3*3*9)
      意义:覆盖划分区域用于降低图像块偏移带来的影响;并同时保持特定区域相关性。

7)将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。

220X310大小图像为例,经过缩放处理后为216x304,但并不直接提取整个图像的HOG特征,而是用一个固定大小的窗口在图像上滑动,滑动的间隔为8个像素,opencv中默认的窗口大小为128x64(高128,宽64),即有(128÷8)x(64÷8)=16x8cell,也即有15x7block,这样一来一幅图像就可以取到(27-16)x(38-8)=11x30=330个窗口。现在提取每个窗口的HOG特征,则可得到 105x36=3780HOG特征向量。
2、HOG特征的全局性质

HOG特征并非固定长度约束的特征描述子。向量的维数和图像大小和Cell大小有关。每一个Cell里面统计梯度直方图,形成每个Cell的梯度特征。其中每个Cell里面提取的特征可以使用其他块特征取代。

2.1. HOG优点:

与其他的特征描述方法相比,HOG有很多优点。首先,由于HOG是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。因此HOG特征是特别适合于做图像中的人体检测的。

全局变形性,局部不变形,在区分行人特征和左右眼特征时具有天然的优势。当然,HOG思想是一个算法族,Cell和Block思想是主要思想,重叠度直方图分区块大小可以根据实际情况进行调参,在一定的数据集上,力求达到最佳效果。

3、使用OpenCV进行HOG特征计算

OpenCV的ObjectDetect模块包含了HOG计算的源代码,使用例程如下

  1. bool CEyeClassify::GetHogFeature(const cv::Mat& imggray, std::vector<float>& vecFeature)
  2. {
  3. const int cnSizeW = CEyeClassify::m_PatchWidth;
  4. const int cnSizeH = CEyeClassify::m_PatchHeight;
  5. {
  6. cv::Mat imggray1;
  7. resize(imggray, imggray1, cv::Size(cnSizeW, cnSizeH), 0, 0, CV_INTER_LINEAR);
  8.  
  9. cv::HOGDescriptor hog(imggray1.size(), cv::Size(16, 16), cv::Size(8, 8), cv::Size(8, 8), 9); // 48x32 540
  10. hog.compute(imggray1, vecFeature);
  11. }
  12.  
  13. return true;
  14. }

二、DPM+LatentSVM模型

     DPMDeformable Part Model),正如其名称所述,可变形的组件模型,是一种基于组件的检测算法,其所见即其意。该模型由大神Felzenszwalb在2008年提出,并发表了一系列的cvpr,NIPS。并且还拿下了2010年,PASCAL VOC的“终身成就奖”。

1、DPM描述子的计算过程

输入图像image

2、DPM描述子的检测过程

输入图像image

3、Latent SVM模型

输入图像image

参考资料:

1.HOG维基百科:https://en.wikipedia.org/wiki/Histogram_of_oriented_gradients

2.图像检测法三大法宝:HOG,LBP,HAAR特征。

图像的全局特征--HOG特征、DPM特征的更多相关文章

  1. 目标检测的图像特征提取之(三)Haar特征

    1.Haar-like特征 Haar-like特征最早是由Papageorgiou等应用于人脸表示,Viola和Jones在此基础上,使用3种类型4种形式的特征. Haar特征分为三类:边缘特征.线性 ...

  2. 目标检测的图像特征提取之(二)LBP特征

    LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像年提出,用于纹理特征提取.而且,提取的特征是图像的局部的纹理特征: 1.LBP特征的描述 原始的LBP算子定义为在3* ...

  3. OpenCV特征点检测------ORB特征

    OpenCV特征点检测------ORB特征 ORB是是ORiented Brief的简称.ORB的描述在下面文章中: Ethan Rublee and Vincent Rabaud and Kurt ...

  4. OpenCV特征点提取----Fast特征

    1.FAST(featuresfrom accelerated segment test)算法 http://blog.csdn.net/yang_xian521/article/details/74 ...

  5. Spark连续特征转化成离散特征

    当数据量很大的时候,分类任务通常使用[离散特征+LR]集成[连续特征+xgboost],如果把连续特征加入到LR.决策树中,容易造成overfit. 如果想用上连续型特征,使用集成学习集成多种算法是一 ...

  6. 处理离散型特征和连续型特征共存的情况 归一化 论述了对离散特征进行one-hot编码的意义

    转发:https://blog.csdn.net/lujiandong1/article/details/49448051 处理离散型特征和连续型特征并存的情况,如何做归一化.参考博客进行了总结:ht ...

  7. 【目标检测】基于传统算法的目标检测方法总结概述 Viola-Jones | HOG+SVM | DPM | NMS

    "目标检测"是当前计算机视觉和机器学习领域的研究热点.从Viola-Jones Detector.DPM等冷兵器时代的智慧到当今RCNN.YOLO等深度学习土壤孕育下的GPU暴力美 ...

  8. 图像特征--HOG特征

    1.HOG特征:方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的梯 ...

  9. 图像的全局特征--LBP特征

    原文链接:http://blog.csdn.net/zouxy09/article/details/7929531#comments 这个特征或许对三维图像特征提取有很大作用.文章有修改,如有疑问,请 ...

随机推荐

  1. Python 4 循环语句while

    while  [条件]:        条件这里满足布尔运算True则无限循环while里面代码. 固定条件的 基本的while循环, 如果if匹配那么 则执行打印登录成功,和break跳出整个循环, ...

  2. noip模拟赛 幻灯结界

    题目描述59式给你出了一道**题:有n个防御人(守方)还有n个攻击坦克(攻方)每个防御人有护甲a[i],而攻击方每个坦克有火力b[i]如果一个防守方的护甲不小于攻击方的攻击力,就可以防的住然而我们保持 ...

  3. poj 1724 最短路+优先队列(两个约束条件)

    /*两个约束条件求最短路,用优先队列*/ #include<stdio.h> #include<string.h> #include<queue> using na ...

  4. sqlServer杂计

    In与Exists的区别 这两个函数是差不多的,但由于优化方案不同,通常NOT Exists要比NOT IN要快,因为NOT EXISTS可以使用结合算法二NOT IN就不行了,而EXISTS则不如I ...

  5. 使用Visual Studio Code调试Electron主进程

    1.打开VS Code,使用文件->打开,打开程序目录 2.切换到调试选项卡 3.打开launch.json配置文件 4.在“附加到进程”节点上增加localhost配置 5.使用命令行启动el ...

  6. jQuery Validate Ajax 验证

    jQuery Validate Ajax 验证 <script type="text/javascript"> $(function() { $('#formCityL ...

  7. Android面试准备 第一天 第2-4例

    參考:http://blog.csdn.net/lmj623565791/article/details/24015867. .假设有个100M大的文件.须要上传至server中.而serverfor ...

  8. nyoj 1238 最少换乘 (河南省第八届acm程序设计大赛)

    题目1238 题目信息 执行结果 本题排行 pid=1238" style="text-decoration:none; color:rgb(55,119,188)"&g ...

  9. apache禁止訪问某些文件或文件夹的方法

    [apache配置禁止訪问] 1. 禁止訪问某些文件/文件夹 添加Files选项来控制,比方要不同意訪问 .inc 扩展名的文件,保护php类库: <Files ~ "\.inc$&q ...

  10. 【Discuz】去除版权信息,标题栏与底部改动

    这篇文章尽管是介绍怎么把Discuz!的版权信息怎么搞得无影无踪,可是还是建议在不影响论坛视觉效果的情况下,保留Discuz的版权信息,毕竟它为我奉献了一个这么出色的开源论坛的phpproject.主 ...