APP下载

基于优化HOG特征计算的非完整人体特征检测

2018-11-28,,

计算机测量与控制 2018年11期
关键词:腿部梯度头部

,, ,

(杭州电子科技大学 自动化学院,杭州 310018)

0 引言

移动机器人救援是指在已知或未知的环境中搜索待救援目标人员,主要应用地震、矿难、核灾难等领域中的辅助搜救工作[1]。在灾后的搜救工作中,对人体进行检测是任务的关键,基于机器视觉的识别方法是人体识别的关键手段之一。由于灾难中的被困人员肤色通常被灰尘遮蔽,不适合利用肤色检测来识别人体[2];而且被困人员的体温被附近热源干扰,不适合利用基于红外温度的人体检测[3]。非完整人体特征检测是指基于部分人体特征的人体检测技术,如:手势识别[4]、人脸识别等[5],然而这些基于位姿的非完整人体检测方法不适于灾难环境。

针对复杂环境下的人体检测,需要定义好一些特征来区分人体和背景,最直接的办法就是在图像中根据人体典型部位的形状特征对人体进行识别。在根据人体形状特征进行人体匹配时,特征提取和分类器设计是可靠的人体检测的两个关键步骤。目前关于特征提取的方法主要有HOG特征[6]、Haar特征[7]、Shapelet特征[8]和Edgelet特征[9]等。但是由于在复杂环境下的人体检测,使用单一的特征检测方法往往很难适应复杂环境,针对这种情况,国内外学者和研究人员也提出了多种特征信息融合的方法。例如文献[10]中提出了基于头部和腿部特征组合的方法进行人体检测;文献[11]中使用使用HOG和Edgelet两种局部特征,并通过SVM与Adaboost分别训练各自的分类器,也取得了比较好的结果。

目前针对人体轮廓进行特征匹配比较主流的算法是HOG与SVM(支持向量机)进行结合,这种算法的缺点是检测过程非常缓慢。通过多种特征组合或多特征方法融合可以提高检测精度,但是如何快速高效的提取人体典型部位的有效特征并且合理的选择特征组合仍然是一个难题。为了解决以上问题,提出了一种先构造相交检测窗口,重新检测目标图像块内特征,并结合基于子单元差值计算块内特征的方法,从而实现了基于优化HOG特征计算的非完整人体特征检测。

1 基于经典HOG与SVM的人体检测

1.1 HOG与SVM组合概述

HOG 与SVM组合的人体检测算法的成功在于其区分HOG特征和基于边缘的线性SVM分类器。HOG 与SVM算法组合主要研究轮廓与背景的对比[12]。不同的人可能有不同的穿着外观,但他们的轮廓是相似的。因此,轮廓对于区分人和非人是有区别的。HOG与SVM算法组合概述如下。

输入:按比例缩放的输入图像。滑动检测窗口的大小为64×128。滑动步长d(例如d= 8)。

输出:大小为64×128的子图像的位置,设定这些子图像包含人类。

步骤1:对于整个图像的每个像素,计算梯度▽f(x,y)的大小|▽f(x,y)|和方θ(x,y)。

步骤2:从上到下,从左到右,用64×128窗口扫描整个图像。从检测(扫描)窗口覆盖的子图像中提取3 780个HOG特征,然后将倾斜SVM分类器应用于高维HOG特征向量,将子图像分为人和非人两类。

1.2 简述HOG特征提取计算

HOG提取的第一步是计算梯度▽f(x,y)的大小|▽f(x,y)|和方向θ(x,y)。HOG提取的第二步是从方向和幅度导出方向直方图。检测窗口的大小是64×128,被检测窗口覆盖的子图像被划分为7×15个重叠区块。每个块由4个单元组成,每个单元有8×8像素,如图1(a)。在每个像元中,方向直方图有9个像元,它们对应于方向i×π×9,i=0,1....8 ,如图1(b)。因此每个块包含4×9 = 36个特征,每个64×128的子图像包含7×15×36 = 3 780个特征。

三线性插值被应用于计算HOG特征可以减少混叠效应[12],三线性插值可以平滑地将梯度分布到一个区块的4个储存格。在图2中,块的4个单元的中心为(xi,yi),对应于4个单元的4个直方图由h(xi,yi,θ)表示,其中i=1,2,3,4,θ∈(0×π/9,1×π/9,...,8×π/9)。对于给定的梯度▽f(x,y),它的方向于给定的梯度▽f(x,y),它的方向θ(x,y)的范围为(i×π/9,(i+1)×π/9),其中i是适当的整数。我们用θ1=i×π/9,θ2=(i+1)×π/9来描述这个范围。

图1 被检测窗口的子图像的划分

图2 每个块的单元分布(每个单元的中心坐标为(xi,yi),i=1,2,3,4。)

因此,三线性插值方法具体如下[8]:

h(xi,yi,θ1)←h(xi,yi,θ1)+

(1)

h(xi,yi,θ2)←h(xi,yi,θ2)+

(2)

其中:▽f(x,y)对h(xi,yi,θ1)和h(xi,yi,θ2)都有作用,dx=x2-x1,dθ=θ2-θ1,h(x1,y2,θ1),h(x1,y2,θ2),h(x2,y1,θ1),h(x2,y1,θ2),h(x2,y2,θ1)和h(x2,y2,θ2)都能以相同的方法计算。

1.3 简述SVM分类器

SVM是一种基于边缘的分类器。给定{xi,yi},i=1,...,N,yi∈{+1,-1},xi∈Rd线性支持向量机的目标是寻找一个最优的超平面WTX+b=0,从而获得最大的几何余量γ[13]:

(3)

其中:[·]表示两个向量之间的内积。如果训练样本是线性可分的,则SVM的优化问题可以归结为:

minw,b[w·w],yi([w·xi]+b)≥1,i=1,...,N,

(4)

如果训练样本具有噪声和异常值,则它们可能不是线性可分离的。为了抵抗噪声和野值,引入松弛变量x1,得到相应的2范数软余量支持向量机:

minw,b(w·w) +

(5)

其中:C是通过使用单独的验证集或交叉验证技术确定的自由参数。

2 两种优化的HOG特征计算方法

2.1 基于检测窗口的HOG特征的高效计算

上述方程(1)和方程(2)被用来计算16×16块内的每个像素,但是计算每个检测窗口的内的3 780维HOG特征是耗时的,而且在缩放的图像中存在大量的检测窗口,因此总的计算时间是非常大的。

针对这种情况,我们通过一次计算基于块的HOG特征并将其重用于在块处相交的所有检测窗口,从而节省重复计算相同特征快的时间,高效地计算基于块窗口的HOG特征。

如图3,对于两个相邻64×128的检测窗口,如果如果两个相邻检测窗口之间的步长适当,则这两个检测窗口相交(如图3深色和浅色虚线框为两个相交窗口),窗口内的很多块是共有的(如图3箭头所指方块为共有的)。因此,独立计算两个相邻检测窗口中的HOG特征是多余的。下面所示的算法可以减少冗余。

输入:按当前比例缩放的输入图像。滑动检测窗口的大小为64×128像素。滑动步长d(例如d= 8)。块有4个单元,块的大小是16×16 像素。

输出:大小为64×128的子图像的位置,假设其中包含人体。

步骤1:对于整个图像的每个像素,计算|▽f(x,y)|和θ(x,y)。

步骤2:从上到下,从左到右,用大小为16的块窗口扫描整个图像16×16和步长d。提取来自每个块4×9 =36维的HOG特征向量。

步骤3:从上到下,从左到右,用64×128的窗口扫面整个图像和步长d注意每个64×128检测窗盖包含7×15个块。在步骤2中获得每个块含有36维HOG特征向量。将检测窗口中的所有36维HOG特征向量叠加(而不是计算)得到7×15×36 = 3 780维特征向量。最后,将倾斜SVM分类器应用于HOG特征向量,将子图像分为人和非人两类。

图3 两个相交检测窗口

该算法假设两个相邻块之间的偏移等于检测窗口的扫描步长d。该算法的核心由步骤2和步骤3组成。在步骤2中,图3中的黑点(即块中心)的36维特征向量仅计算一次,并且将在步骤3中使用。在步骤3中所有现有的36维HOG特征向量对应一个64×128个检测窗口串联成7×15×36 =3 780维HOG特征向量。基于块的HOG特征仅计算一次,但可以对所有相交检测窗口重复使用。这就大大缩短了计算时间,提高了检测效率。

2.2 子单元三线性插值法计算HOG特征

上一节着重于计算检测窗口的HOG特征,前提是给定块中的HOG特征,本节我们提出如何加快计算每一个块中的HOG特征。

每个块个单元中的每个HOG特征不仅通过其自身单元中的梯度插入,还通过其他3个单元中的梯度插入。平滑地将梯度分布到4个单元,这种插值有利于减小混叠效应。尽管它在抑制混叠效应方面具有优势,但是由于将每个梯度分布到所有4个单元,所以它的计算成本很大。我们称这种方法为基于单元的三线性插值。

在优化的的算法中,3种类型的子单元在计算HOG特征时具有不同的作用:

1) 由于角子单元位于块的角处且远离其它3个单元,因此角子单元中的梯度仅用于计算直方图对应于它们自己的单元。也就是说,C11、C22、C33和C44中的梯度仅分别作用于C1、C2、C3和C4的直方图。

2) 因为内部子单元接近所有4个单元,所以内部子单元中的梯度对所有4个单元的直方图有作用。

3) 在一个单元内的每个半内部子单元是唯一单元的相邻单元。因此,在计算其自身单元和其相邻单元的直方图时涉及每个半内部单元中的梯度。以半内单元C13为例,C13包含在C1中并且是C3的邻居。因此,C13中的梯度用于计算C1和C3的直方图,但它们独立于C2和C4的直方图。

设h1表示细胞C1的HOG特征。在数学上,h1的计算公式为:

hist(C41)+hist(C32)

(6)

其中:hist(Cij)表示子单元Cij的梯度的适当插入直方图。前4项与单元C1中的所有4个子单元相关联。hist(C21)和hist(C21)与半内部单元C21和C31相关联,而最后三项对应于3个内部单元C23、C41和C32。

图4 将块划分为单元与子单元

而传统的基于单元的方法为:

(7)

与提出的基于子单元的方法相比,传统方法有16项,而提出的方法有9项。因此,用该方法计算了一个块中的3 780个HOG特征的计算时间,比传统方法减少了9 / 16 = 56.25 %。

3 基于优化HOG特征计算的典型部位特征组合检测

3.1 优化HOG特征计算后的头部检测

经过分析发现,无论人体呈现什么姿势,无论是正面图还是侧面图,人体头部的轮廓变动是最小的,呈现出一定的形状。所以在进行头部匹配时,选择合适的样本,训练好样本就很容易检测出头部。而且人体的头部不容易被遮挡,所以选择头部作为典型部位的特征是非常好的选择。

图5 头部轮廓及正样本

人体头部的轮廓类似于“Ω”形,如图5(a)所示,针对这样的头部轮廓,我们选择大小为32×24像素的正样本,如图5(b)所示。

头部轮廓提取有效特征包括圆存在性[12],相比于腿部或其他部位的检测,背景环境对头部检测的影响相对较小,训练好样本之后, 对待检测图片先进行灰度处理,然后二值化处理进行边缘提取,利用优化后的算法计算轮廓特征,最后利用SVM分类器与训练的样本数据匹配,通过与设定的阈值比较来判断检测到的是否为头部。

3.2 优化HOG特征计算后的腿部检测

相比于头部特征,人的腿部特征边缘轮廓比较明显,类似于“π”,尤其是人在躺着的情况下,更加与“π”类似。而且腿部特征在某些梯度方向和梯度强度上会出现一定的峰值,其HOG特征与背景差别较大[14]。但是由于人的形态可变性比较大,那么就导致腿部的轮廓呈现一定的不定性。针对这种情况就要训练足够多的正样本。

利用上述优化过后的HOG特征提取方法先对正负样本进行特征提取,然后利用SVM实现分类。根据给定的样本集,训练出分类平面,d维空间线性判别函数的一般形式为:

g(x)=w·x+b

(8)

分类平面方程为:

w·x+b=0

(9)

然后将两类样本归一化处理,使满足:

g(x)≥1

(10)

若要要求所有样本正确分类,则要满足方程(4),进而构造内积函数为k(xi,xj)的SVM,并将其归结为求解条件约束二次函数的极值问题:

(11)

其中约束条件为:

构成的支持向量机为:

(12)

其中:b′是分类的阈值。

对于腿部的检测也对待检测图片进行处理后进行匹配,单独检测头部或者腿部的检测流程如图6所示。

图6 单一部位检测流程图

3.3 优化HOG特征计算后的部位特征组合检测

由于我们所采用的是基于轮廓的匹配,那么外界环境的干扰会很大,尤其是在灾后的这种复杂的环境下,利用单一部位检测判断会造成误判影响我们的检测精度。所以利用特征组合的方法进行人体检测,这样可以降低误检率,提高检测的精度。

在进行人体检测时,分别对头部和腿部进行检测,只有当头部和腿部同时存在在检测图片中,才能认定检测到人体。通过头部检测可以粗略感知此区域是否包括人,并确定感兴趣区域,再对感兴趣区域进行腿部检测,并通过是否检测到腿部来判断此区域是否包含人体,通过设定不同的阈值,来达到在复杂环境下人体检测的目的。头部和腿部特征组合的检测流程图如图7所示。

4 实验结果及分析

几种检测算法的检测速度实验如下:我们将两种优化HOG特征计算结合后的算法、未优化的HOG+SVM算法和常用的基于卷积变化的方法对进行了检测速度的比较,结果如表1所示。

表1 不同检测窗口数量下的算法检测时间统计

图7 头部和腿部组合的检测流程图

由表1的实验结果我们可以明显的看出,与未优化的HOG+SVM算法和基于卷积变化的算法相比较,利用两种优化HOG算法相结合的方法,检测速度得到明显提升,相比于未优化的HOG+SVM算法,优化后的算法比原来的HOG+SVM算法快了约5倍,比基于卷积变化的算法快了约2倍。利用此优化后的算法可以大大减少检测时间,提高检测效率。

优化HOG特征计算方法下的特征组合人体检测实验如下:我们通过收集自己的人体数据集,将包含头部和腿部的正样本,与背景环境的负样本进行分类训练。测试图像大小是320×240像素,头部检测窗口是32×24,腿部检测窗口为64×32。图8的两幅图像分别是在头部未遮挡时两种不同姿势的检测结果;图9是在头部被遮挡住的检测结果。

由图8和图9两种情况下的检测结果我们可以得知,在头部未遮挡时两种姿势下都可以检测到腿部和头部,可以检测出人体。但是在头部被遮挡住情况下,则不能检测出头部,只能检测到腿部,不能检测出人体。本算法在利用特征组合进行人体检测时,有一定的局限性,虽然在部位未遮挡的情况下能较好识别出人体,但是当选取部位被遮挡则不能较好的识别出人体。同时,由于团队能力和时间的约束下,对负样本数量的训练数量较少,导致背景环境的实验的影响也较大。

图8 头部未遮挡时两种姿势下的检测结果

图9 头部遮挡时两种姿势下的检测结果

5 结论

本次优化了HOG特征检测方法,先构造相交检测窗口,重新检测目标图像块内的HOG特征,并结合基于子单元插值的方法计算块内特征,使检测速度得到了极大的提升。利用头部和腿部特征组合的方法,可以有效的降低误检率,提高人体检测的精准度。最后,根据实验结果表明,通过不同部位特征组合的方法可以有效地的检测出复杂环境下的人体,并排除一定的漏检可能。

在此次实验中,由于选取部位被遮挡导致检测结果不准确,需进一步研究部位被遮挡时的检测,此外设可以计不同部位的匹配优先级来进一步提高检测精准度,但是团队能力有限并未涉及到。

猜你喜欢

腿部梯度头部
磁共振梯度伪影及常见故障排除探讨
分体式腿部气动按摩装置设计
自动驾驶走向L4 企业头部效应显现
火箭的头部为什么是圆钝形?
一个具梯度项的p-Laplace 方程弱解的存在性
基于AMR的梯度磁传感器在磁异常检测中的研究
基于数字虚拟飞行的民机复飞爬升梯度评估
快速瘦腿小妙招
脚下放靠垫睡觉更解乏
脚下放靠垫睡觉更解乏