码迷,mamicode.com
首页 > 其他好文 > 详细

【人脸检测——基于机器学习4】HOG特征

时间:2018-10-04 22:04:36      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:技术分享   中间   info   重叠   根据   oci   结合   算法   滑动   

前言

HOG特征的全称是Histograms of Oriented Gradients,基于HOG特征的人脸识别算法主要包括HOG特征提取和目标检测,该算法的流程图如下图所示。本文主要讲HOG特征提取。

技术分享图片

 

HOG特征的组成

技术分享图片

Cell:将一幅图片划分为若干个cell(如上图绿色框所示),每个cell为8*8像素

Block:选取4个cell组成一个block(如上图红色框所示),每个block为16*16像素。Block的滑动步长为8像素,如黄色箭头所示

Detection Window:令64*128像素大小的图片为检测Win,在其中共计有105个block。

HOG 特征要完全描述一个obj的所有信息,它的维度=窗体中所有block个数(105)*每个block中cell的个数(4)*每个cell中Bin的个数(9)=3780(维),每一维就是一个bin

 

HOG特征的提取

  1. Gamma/Colour Normalization

在Navneet Dalal的实验 [1]中Gamma/Colour Normalization对于检测器的性能仅仅有些许的影响,他猜测是后续的描述子归一化能实现相同的功能。

  1. Gradient Computation

Dalal的实验[1]中最简单的一维中心对称模板技术分享图片技术分享图片处的高斯模板下效果最好。根据具体的检测目标采取不同的梯度计算方法。

人脸识别中可以采用如下特征模板计算像素的梯度:

水平方向上的模板为:技术分享图片技术分享图片:左中右三个像素分别与模板相乘=相邻像素之差

竖直方向上:技术分享图片;b也就是上下像素之差

整个梯度的幅值 :技术分享图片

角度:技术分享图片

  1. Spatial/Orientation Binning

这里我们定义了新的概念bin。Bin可以是技术分享图片(无符号的梯度),也可以是技术分享图片(有符号的梯度)。对于人体检测系统来说,由于不同人着装的颜色和背景变化太大,梯度方向的符号不是很重要,而对其他的刚性对象如花瓶、茶杯、摩托车等梯度符号信息非常重要。

我们这里的人脸检测中,将bin定义在技术分享图片,并将其分为9份,因此,每个cell都有9个bin。上一小节我们计算出 了像素的梯度与角度。我们要在cell中统计每个梯度的幅值总和。

bin的投影操作可如下所示(并不唯一)

Bin的投影

Bin 将0-360划分为9块,每块为40度,这40度中,每20度为连续的。

例如 0-40度中

Bin1 为0- 20 在这个范围 180-200 当在这两个范围内的 被认为在一个bin上

例如(有很多方法)

对于某个像素ij,计算出来的幅值为f,角度为a=10,在0-20,那么就投影在bin1上

若 a=190,在180-200之间,那么也在bin1上。

投影幅值为:

若 a=10/190,刚好位于中间,这,投影幅值就为f

若a=25,那么投影将被分解为在Bin1 和bin2上

技术分享图片技术分享图片

 

计算整体的hog特征

3780维==win(block cell bin),每个维度就是一个bin

对于3780维的某一维,就是某一个窗体win下的某个block中的某个cell的某个bin

对于一个block中的4个cell

Cell0: bin0 bin 1 … bin8

Cell1: bin0 bin 1 … bin8

Cell2: bin0 bin 1 … bin8

Cell3: bin0 bin 1 … bin8

 

对于第ij(第i行j列)个像素,投影在cell0中的Bin0上,那边bin0中的内容就是f0:bin0中描述的就是当前像素的梯度

对于第i+1j像素,若也投影在cell0中的Bin0上,那么Bin0中的内容就是f1

当投影完后, 求 sumbin0 --------就是最后的bin0 权重的累加

 

 

  1. Normalization and Descriptor Blocks

原因:梯度算子容易受到噪声如光照和背景对比度的影响,为了减少这种影响需要对局部cell进行归一化处理

基本思想:将相邻的cell组成可重叠的block,以有效的利用重叠的边缘信息,然后对每个块分别进行归一化处理。

Dala文章中介绍了四种常见的block归一化算法,其中(1),(2),(4)的性能大致相同,而(3)则降低了性能

(1)L2-norm: 技术分享图片

(2)L2-Hys:先做一次L2-norm归一化,然后把大于等于0.2的分量赋值为0.2再做一次L2-norm

(3)L1-norm:技术分享图片

(4)L1-sqrt:技术分享图片,采用了L1-norm的平方根式

其中, 技术分享图片表示v的k阶范数,技术分享图片为一个小数值的常量,它的存在是必要的

统计好每一个block内的梯度信息并形成描述子后,将检测窗口(win)内所有信息收集起来并结合成的向量即为HOG特征向量。

参考与致谢

Dalal N, Triggs B. Histograms of oriented gradients for human detection[C]//Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on. IEEE, 2005, 1: 886-893.

【人脸检测——基于机器学习4】HOG特征

标签:技术分享   中间   info   重叠   根据   oci   结合   算法   滑动   

原文地址:https://www.cnblogs.com/gfgwxw/p/9743511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!