【机器学习】传统目标检测算法之HOG
转载+理解:hog:https://www.cnblogs.com/wyuzl/p/6792216.html
hog:https://blog.csdn.net/masibuaa/article/details/14056807
基础知识:http://blog.sina.com.cn/s/blog_60e6e3d50101bier.html
非极大值抑制NMS:https://www.cnblogs.com/makefile/p/nms.html
概述
CVPR2005这篇文章中,HOG是用来做行人检测的。作者研究了行人检测的特征集问题,局部归一化的HOG描述子相比于现存的特征集(包括小波)有更好的表现。相比于边缘方向直方图(Edge Orientation Histograms)、SIFT描述子、形状上下文(Shape Contexts),HOG是在网格密集的大小统一的细胞单元(dense grid of uniformly spaced cells)上进行计算,而且为了提高性能,还采用了重叠的局部对比度归一化(overlapping local contrast normalizations)。作者用行人检测(行人是大部分可见的并且基本上是直立的)进行测试,为了保证速度和简洁性,使用线性SVM作为分类器。
作者在文中提到他们的非正式实验表明,即使截止到05年最好的基于特征点的方法,在行人检测方面比本论文的方法的错检率也要高上至少1-2个数量级,主要是因为这些基于特征点的检测器不能可靠地检测行人结构。HOG有个优点,提取的边缘和梯度特征能很好的抓住局部形状的特点,且因是对图像做了Gamma校正和采用cell方式进行梯度方向量化,在局部进行提取,所以对几何和光学变化都有很好的不变性,变换或旋转对于足够小的区域影响很小。对于行人检测,在粗糙空域采样(coarse spatial sampling)、精细方向采样(fine orientation sampling)和强局部灰度归一化(strong local photometric normalization)这些条件下,只要行人大体上能够保持直立的姿势,就容许有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。综上,HOG特征很适合于做图像中的人体检测。
1 Overview of the Method
HOG方法是基于对稠密网格中归一化的局部方向梯度直方图的计算。此方法的基本观点是:局部目标的外表和形状可以被局部梯度或边缘方向的分布很好的描述,即使我们不知道对应的梯度和边缘的位置。在实际操作中,将图像分为小的元胞(cells),在每个元胞内累加计算出一维的梯度方向(或边缘方向)直方图。为了对光照和阴影有更好的不变性,需要对直方图进行对比度归一化,这可以通过将元胞组成更大的块(blocks)并归一化块内的所有元胞来实现。归一化的块描述符就叫作HOG描述子。将检测窗口中的所有块的HOG描述子组合起来就形成了最终的特征向量,然后使用SVM分类器进行行人检测。如上图描述了特征提取和目标检测流程。检测窗口划分为重叠的块,对这些块计算HOG描述子,形成的特征向量放到线性SVM中进行目标/非目标的二分类。检测窗口在整个图像的所有位置和尺度上进行扫描,并对输出的金字塔进行非极大值抑制来检测目标。
详细的过程在上面的博客中写的很清楚了。我就简单说一下流程。
拿到图片,先做预处理,规范化之类的,然后把图片分成很多block,再把block分成很多cell,分别求出每个cell的梯度,然后做每个cell的空间/方向bin统计,再对block做归一化,得到图片的所有特征,输入svm做分类。再对分类得到的检测框做NMS处理。
非极大值抑制
- 对得到的所有检测框按照得分进行排序。
- 选出得分最大的检测框,分别计算它与剩下的所有框之间的IOU,选定一个阈值,去除IOU大于这个阈值的。
- 把得分最大的检测框标记出来,保留并不再参与接下来但比较。
- 重复做1-3步,直到所有但框都是被标记过的。
【机器学习】传统目标检测算法之HOG相关推荐
- 【机器学习】传统目标检测算法总结
目标检测是什么 object detection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.所以,object detection要解决的问题就是物体在哪里以及是什么的整个流程问题. ...
- 2D: 传统目标检测算法综述
一. 目标检测的发展历程 1. 2001年,V-J检测器诞生,主要用于人脸的检测: 2. 2006年,HOG + SVM的方法出现,主要用于行人的检测: 3. 2008年,rgb大神(记住这个人,后面 ...
- 【机器学习】传统目标检测算法之DPM
前面介绍了一下HOG,HOG有一个缺点:很难处理遮挡问题,人体姿势动作幅度过大或物体方向改变也不易检测. 继2005年HOG提出之后,DPM模型在借鉴了HOG之后也被提了出来同时还取得了不错的成绩. ...
- 【机器学习】传统目标检测算法之Haar分类器
引言 Haar分类器又称Viola-Jones识别器,是Viola和Jones分别在2001年的<Rapid Object Detection using a Boosted Cascade o ...
- 【机器学习】传统目标检测算法之级联分类器Cascade
先附上参考文章吧. 文章其实是"P. Viola, M. Jones. Rapid Object Detection using a Boosted Cascade of Simple Fe ...
- 目标检测算法实战综述
目录 一.目标检测问题定义 二.目标检测问题方法 三.常见传统目标检测算法 3.1 Viola-Jones (人脸检测) 3.2 HOG+SVM (行人检测.Opencv实现) 3.3 DPM (物体 ...
- 学习笔记之——基于深度学习的目标检测算法
国庆假期闲来无事~又正好打算入门基于深度学习的视觉检测领域,就利用这个时间来写一份学习的博文~本博文主要是本人的学习笔记与调研报告(不涉及商业用途),博文的部分来自我团队的几位成员的调研报告(由于隐私 ...
- 计算机视觉目标检测算法总结1——简介
目标检测是在图片中对可变数量的目标进行查找和分类 目标种类和数量问题 目标尺度问题 外在环境干扰问题 目标检测方法(深度学习) 基于一体化卷积网络的检测:Overfeat->YOLO->S ...
- 目标检测 Chapter1 传统目标检测方法
文章目录 目标检测问题定义 介绍 目标检测和图像分类.图像分割的区别 目标检测问题方法 传统目标检测 深度学习目标检测 传统 Vs 深度学习 传统目标检测综述 Viola-Jones HOG+SVM ...
最新文章
- 十一运夺金基础数据采集工具
- shell 中一个进制转换的小技巧
- 朋友圈里的一张组合逻辑图
- Java学习笔记_类和对象
- React-引领未来的用户界面开发框架-读书笔记(八)
- pyhon-matplotlib包-数据图形化
- 2017河北对口计算机试题,2017河北省对口升学计算机专业理论试题(附答案解析).doc...
- 【纯干货】4年前想解决的事情,今天才实验成功
- Extjs 学习总结-Ext.define自定义类
- Playmaker与iTween
- 【Java后端】技术文档模板
- 滚动条组件,react-custom-scrollbars
- Windows调出屏幕键盘的步骤
- 堆优化版迪杰斯特拉(Dijkstra)算法简单分析
- python培训班一般多少钱-Python培训班多少钱
- 魅族16php7.3系统,魅族16th官方稳定版固件rom系统刷机包:Flyme 7.3.0.0A
- javaScript中创建对象和Java创建对象的区别
- vue一些比较重要知识点的复习
- 中国式社交网络就一个“约”字而已
- 设计数据密集型应用 第四章:编码与演化
热门文章
- 炫界 (667) -(回应骑两小)_为什么那么多人喜欢骑地平线
- vue项目和react项目中禁止eslint
- 前端设置使用rem最经典代码
- localStorage.setItem()前后端分离情况下使用
- 微信小程序系列-wx.request 请求中文乱码问题
- 三维重建:PNG格式详解-与LibPNG使用
- 三维重建4:Jacobian矩阵和Hessian矩阵
- Ubuntu14.04引导菜单修复
- java util包类_java.util包下的类及常用方法
- Centos/ubuntu配置SVN服务