当前位置:首页 期刊杂志

基于HOG和block权重的快速人体检测方法

时间:2024-07-28

石志强,赵向东,李文军,张 挺

(航天科工集团第二研究院 207所,北京 100854)

计算机视觉处理是计算机人工智能的一个重要研究方向,它的最终目标是通过计算机模拟人类视觉,实现对现实场景的理解和推理。其中,对于输入场景通过计算机实现目标的自动识别分类,即目标识别,是实现计算机视觉的一个基础部分,也是目前的一个研究热点。比较成功的商业化应用实例是人脸识别系统,它是通过计算机对人脸的智能识别,实现对不同人身份的确认。在人体识别方面,由于人体自身姿态、衣着的多样性以及人体外观变化大,目前尚没有较为成熟的算法。

目前,人体识别主要有基于多模板匹配[1]、基于边缘轮廓特征[2]和基于运动特征[3]等各种方法。然而,从实际效果来看,目前最好的是DALAL N和TRIGGS B提出的基于HOG特征的人体检测方法[4]。DALAL N等人通过使用16×16大小的块在检测窗口中滑动,然后按一定方式统计块中的梯度向量直方图,将各个块的梯度向量直方图串联,组成特征向量,最终利用SVM对获取的特征向量进行训练,获取分类器。按照该方法,如果选择检测窗口大小是 128×64,block 大小为 16×16,cell大小为4×4,bin分为 9个方向,每次 block移动 8,那么获得的向量大小为3 780维,检测效果虽然理想,但是耗时,难以达到实时性的要求。

本文通过对基于HOG特征的人体检测算法进行分析,提出了一种基于感兴趣区域进行HOG提取的算法。该算法在适当影响检测效果的条件下,能够较好地减少计算量,达到提高计算速度的目的。

1 行人检测算法

1.1 特征选取

HOG是DALAL N等人在2005年提出的一种基于梯度的特征提取过程,它的内容主要有4点:(1)使用梯度作为特征提取对象,将梯度向量划分为统计bin;(2)将梯度向量图划分为网格状的cell,以cell为单位统计梯度向量直方图;(3)以 block为单位,对 cell进行统计,得到三维梯度向量直方图,并进行归一化,减少局部光照的影响;(4)收集所有的 block,合并成最终图像的HOG特征向量。

输入图像像素点(x,y)的梯度按如下方式来计算:

其中,Gx(x,y)、Gy(x,y)、H(x,y)分别表示图像像素点(x,y)处 x方向、y方向的梯度以及原始点像素值。像素点(x,y)的梯度和梯度方向定义为:

整个提取过程各概念之间的关系如图1所示。

图1 block和cell示意图

在HOG特征提取过程中,block窗口按固定方式在检测窗口的梯度向量图上进行扫描获取block块内的局部特征,特征向量是通过对每个block块的特征进行统计获得的,整个HOG计算过程以block为单位。由图1(b)可以看到,检测窗口的大量block块并不包含目标信息,真正包含信息的block是包含行人边缘轮廓的block。为了提高检测效率,可以采取降维的方式,通过选取包含人体信息、对分类有显著影响的block作为最终的特征,剔除掉不包含信息的block,可以显著地减少行人的特征维数,达到快速检测的目的。

1.2 线性SVM

SVM[5]是基于Vapnik等发展的统计学习理论的支撑向量机,具有相对优良的性能指标。通过算法的学习过程,SVM可以自动寻找出那些对分类有较好区分能力的支持向量,构造出性能良好的分类器。

线性SVM假设样本是线性可分的情况下,寻找到一个可以使训练样本完全可分的超平面将样本分开,其本质上是一个凸二次规划问题。该超平面描述为:

其中,“·”是点积,w是n维向量,b为偏移量。

已知一组独立同分布的训练样本:

和假设函数集:

其中,Rd表示输入空间。

线性支撑矢量机可以归纳为如下二次规划:

最小化:

约束条件:

其中,C>0为惩罚因子,其取值越大,对经验误差的惩罚也越大。

取p=1,通过Lagrange乘子方法,求原规划式的Wolfe对偶规划。

最大化:

约束条件:

求解上述二次规划问题,得到最优的Lagrange乘子ai,那些对应于Lagrange乘子大于零的训练样本被称为支持矢量。最终线性支持矢量机的判决函数具有如下形式:

将式(14)继续整理,得:

得到:

由式(17)可知,|wj|越大,表示 xj是在行人识别中起较大作用的分量。因此,可以通过给出一个衡量block对分类影响大小的量block权重因子,通过对每个block权值的统计,寻找出在人体检测中有较大区分能力的block,重新组成表征行人的特征向量。

首先对判决函数按block重新整理:

定义第k个block权重因子:

图2为改进的二次训练对block重新选择的过程。训练过程分为以下4步:

(1)利用线性SVM分类器对依据传统HOG方法提取出来的特征进行训练,得到支持向量的决策函数;

(2)根据式(19)对步骤(1)得到的决策函数中的wkj进行计算,得到各个block的权重因子;

(3)设定合适的阈值,选取权重因子高于阈值的block,即对分类影响较大的block作为二次训练的block;

(4)以选择的block组成特征向量重新训练,得到最终支持向量的决策函数。

图2 二次block选择过程

2 实验结果

为了证明该方法的有效性,本文在INRIA样本库上进行验证。使用LIBSVM 2.88作为SVM工具,训练样本选取正样本3 542个,负样本4 542个,测试样本选取正样本1 000个,负样本1 000个。

原始HOG算法每个block由36维特征构成,总共由105个block构成,描述行人的特征向量长度为3 780维。

其中感兴趣block通过手动标定,选取包含轮廓特征的block组成特征向量。实际操作过程中,选取了41个包含轮廓特征的block形成1 476维特征向量,经过训练获取SVM决策函数。

二次block选取过程基于block权重因子对block进行选择,选取符合条件的block重新提取特征向量进行训练,获取SVM决策函数。在实际实验中,首先通过原始HOG学习过程获取SVM决策函数,经过计算,获得block权重因子,选取阈值为0.5,对block权重因子进行筛选,得到实际符合条件的block为20个,如图3所示,利用这20个block重新生成720维的特征向量,经过训练获取SVM决策函数。

图3 block权重因子以及检测阈值

分别利用3种不同的方法通过改变决策函数中的阈值b对测试样本进行检测,得到漏警率和虚警率的关系如图4所示。

图4 三种不同方法效果比较

由图4可以看出,在3种检测方式中,原始HOG检测方式检测效果最好;通过人工选择感兴趣区域,保留41个block后提取特征向量进行分类,检测效果有一定的下降,这主要是由于人类主观经验的不足,不能完全合理确定起主要作用的特征,导致特征选择不充分的原因。

二次block训练的方法通过引入block权重的概念,利用原始训练得到的决策函数中的信息来确定感兴趣block,在选取的block数目减少到原始的1/5即20个时,在显著提高计算速度的情况下仍然能够得到较精确的分类器。

实验结果证明,本文提出的两种减少特征维数、提高分类效率的算法在实际的应用中较为有效。

HOG特征是目前在行人检测过程中较为有效的一种方法,在人体检测过程中有着很高的识别率,然而HOG由于计算量较大、检测速度慢,因此限制了HOG的应用。本文通过对HOG的分析,发现可以通过减少HOG中冗余block,从而减少计算量,提高检测速度。

[1]吕治国,徐昕,贺汉根.基于可变模板和支持向量机的人体检测[J].计算机应用,2007(9):2258-2261.

[2]陈实,马天骏,黄万红,等.基于形状上下文描述子的步态识别[J].模式识别与人工智能,2007(6):794-799.

[3]韩鸿哲,王志良,刘冀伟,等.基于线性判别分析和支持向量机的步态识别[J].模式识别与人工智能,2005(2):160-164.

[4]DALAL N,TRIGGS B.Histograms of oriented gradients for human detection[C].CVPR’05, 2005.

[5]焦李成,周伟达,张莉,等.智能目标识别与分类[M].北京:科学出版社,2010.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!