HOG算法总结
1.HOG特征提取所针对的图像的尺寸是固定的。输入的图像应首先resize到这个尺寸。
2.尺寸的划分3个等级:window,block,cell
window即输入的需要提取特征的图片大小。然后将window划分为众多block,这些block之间有相互重叠的部分。
每一个block又划分为多个cell,cell之间紧邻且不重叠。block沿着水平和垂直方向滑动,按照固定的步长进行滑动,
最后就形成了block相互之间的重叠。
常见的尺寸:window:64x128; block:16x16; cell:8x8; step:8
3.HOG特征:
HOG特征也是基于梯度的,首先计算出输入图像中各个像素点的梯度(大小和方向),然后就需要进行一定的处理以
保证特征的鲁棒性。对每个cell中的所有像素点的梯度进行统计,统计出一个梯度直方图,(就是不关心具体每个点的
梯度而是关心在此cell范围内的点的梯度的分布)。然后将一个block中各个cell得到的梯度直方图数据(一维向量)串
接起来,就得到了该block的特征,但是还要对该向量进行归一化,(缓解局部光照变化的影响,有时还需要剔除噪声
点然后进行第二次归一化)。最后将window中所有的block的特征串联起来就得到了输入图像的HOG特征。
4.HOG特征总数的计算:
按如下尺寸:window:64x128; block:16x16; cell:8x8; step:8; num_of_bin:9
block总数:(64/8 - 1)*(128/8 - 1) {即: (window_width / step -1)*(window_height / step -1)}
blcok中特征数:9 * (16/8) * (16/8) {即: num_of_bin * (block_width/cell_width)*(block_height/cell_height)}
总特征数:block总数 × block中特征数 = (7×15) × (9×2×2) = 3780
5.线性插值:
整个特征都是基于像素点的梯度。在统计梯度直方图的时候,按照梯度方向找到直方图中对应的bin,按照梯度的大小
对相应的bin进行累加。所以整个线性插值的过程就是如何分配每个像素梯度的大小,也就是处理好分配权值的问题。
权值的分配分为:梯度直方图中相邻方向bin之间的插值 和 block空间尺度中邻接的像素点之间的插值 以及 整个blcok
中类似于高斯形式的权值分配(突出中间区域的重要性)。
权值的分配比例都是根据距离比例进行的,
具体可以参考这篇博客( http://hi.baidu.com/susongzhi/item/3a3c758d7ff5cbdc5e0ec172 )
至此所有的权值分配都计算出来之后,将像素的梯度大小按照这些权值分配到对应的直方图的bin中就行了。
具体还可以参考这些比较全面的博客(感谢他们的分享):
http://www.cnblogs.com/tornadomeet/archive/2012/08/15/2640754.html
HOG算法总结的更多相关文章
- HOG算法资源备忘
最近再研究这个算法,找了不少资料来研究,发现这方面的资料好的并不多,今天就把找到的经典的资料做一个汇总,方便后续查阅吧. 一 基本概念和推导: 1 解释最清楚的:中文网站:https://blog.c ...
- Opencv学习之路——自己编写的HOG算法
#include<opencv2\core\core.hpp> #include<opencv2\highgui\highgui.hpp> #include<opencv ...
- HOG算法基础
实现思路步骤: 1.对原图像gamma校正,img=sqrt(img); 2.求图像竖直边缘,水平边缘,边缘强度,边缘斜率. 3.将图像每16*16(取其他也可以)个像素分到一个cell中.对于256 ...
- Opencv学习之路—Opencv下基于HOG特征的KNN算法分类训练
在计算机视觉研究当中,HOG算法和LBP算法算是基础算法,但是却十分重要.后期很多图像特征提取的算法都是基于HOG和LBP,所以了解和掌握HOG,是学习计算机视觉的前提和基础. HOG算法的原理很多资 ...
- 特征提取算法(2)——HOG特征提取算法
histogram of oriented gradient(方向梯度直方图)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的梯度方向直方图来构成特征.H ...
- paper 80 :目标检测的图像特征提取之(一)HOG特征
1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的 ...
- HOG 梯度方向直方图简介(转载)
一.基本HOG算法 HOG特征最早出现在SIFT算法中,由于其极强的图像特征描述能力,逐渐被人们熟知和广泛运用,其在目标检测方面表现尤为突出. HOG特征提取过程 步骤一:遍历图像每个像素点,以其为中 ...
- 图像特征提取之(一)HOG特征
1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的 ...
- 目标检測的图像特征提取之(一)HOG特征
1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检測的特征描写叙述子.它通过计算和统计图像局部区 ...
随机推荐
- Spring boot dubbo+zookeeper 搭建------基于gradle项目的消费端与服务端分离实战
1. Dubbo简介 Dubbo是Alibaba开源的分布式框架,是RPC模式的一种成熟的框架,优点是可以与Spring无缝集成,应用到我们的后台程序中.具体介绍可以查看Dubbo官网. 2. Why ...
- C# 安全性
一.标识和Principal static void Main(string[] args) { AppDomain.CurrentDomain.SetPrincipalPolicy(System.S ...
- 多次读取HttpServletRequest的inputstream方法 问题解决
原因:我要收集所有来自前台请求的参数信息,无论在任何地方的.当前请求参数都是json格式,都写在httpservlet的body中.这个只能通过流进行获取.然后问题来了,HttpServletRequ ...
- [Functional Programming] Using ComposeK for both get State and modify State
We have State like this: const state = { cards: [ { id: "green-square", color: "green ...
- ajax 页面无刷新
<!-- 使用原生Ajax 和 $.ajax 实现局部刷新的过程 --><!-- 封装通用XMLHttpRequest对象 --><!DOCTYPE html>&l ...
- 顺序表Vector
程序中会使用数据结构:例如:顺序表.链表.二叉树: 数据结构在底层中本质上只有两种:数据之间挨着和不挨着: 1.关于Vector
- sigprocmask , sigpending 和 sigsuspend函数
转自 http://blog.csdn.net/elbort/article/details/7594772 sigprocmask函数:功能描述:设定对信号屏蔽集内的信号的处理方式(阻塞或不阻塞). ...
- 前端使用lodop如何获取打印状态
前面已经说过,如何简单使用lodop了,今天说一下如何获得lodop的打印状态? 在教程里面找了半天,摸索出来了一套. template: <!-- 实验代码 --> <div> ...
- flex的圣杯布局记录 (flex : 0 0 80px)
- Python学习日记(四)——Python基本数据类型梳理(int、str、list、tuple、dict)
数字(int) 1.创建方式 n1 = 123 n2 = int(123) 2.内存分配 #共同用一个内存地址的情况 n1 = 123 n2 = n1 #用两个内存地址的情况 n1 = 123 n2 ...