结合图像分割的室内环境静态人体检测研究

2019-05-10 02:15聂文昌
小型微型计算机系统 2019年5期
关键词:先验阈值聚类

张 智,王 慧,苏 丽,聂文昌

(哈尔滨工程大学 自动化学院, 哈尔滨 150001)

1 引 言

人体检测是目标检测领域中不可或缺的一个分支,其中,室内环境下的静态图像中的人体检测具有比较积极的研究意义.特别是对于视觉服务机器人来说,准确的识别人体是做出下一步行动的首要前提.特别是近年来深度学习技术发展迅速,作为统计学习的方法,深度学习已在各个领域发挥重要作用[1],并已被用于人体检测、动作识别、行为理解等问题的研究[2],作为统计学习方法的一种,深度学习与传统的分类器(如SVM)相比,在准确率上提升效果显著,但深度学习往往需要足够大的样本集,且对计算系统硬件性能要求较高,所以传统方法仍然有积极的学术研究及应用价值.常见的传统的人体识别方法主要分为3类:

1)利用图割的方法进行人体检测[3],利用各种分割算法结合Ncut[4,5]方法能够准确的对图像进行分割并提取人体.但由于分割的条件不同,可能会存在目标人体分割不完整,分割块数过大或过小等问题.

2)利用统计学习的方法对人体进行检测[6],一般需要提取目标特征建立分类器模型,而后利用分类器模型对人体进行检测,该算法能达到比较好的检测效果,缺点是人体检测和建模耗时较多,实时性不能得到满足.

3)利用模型匹配的方法进行人体检测[7],该方法能够对复杂人体姿态进行精度较高的检测,但是实时性较低,复杂环境下效果较差.又由于人体的非刚性所以并不能有一个统一的模型运用于人体检测中来.

虽然传统方法能够实现目标检测,但在构建实际应用系统时,仅依靠单一方法有时难以获得理想的效果,往往需要多种方法结合,并将任务特点及先验知识有机融入算法,才能不断提高系统性能.本文相比传统的人体识别方法,加入了meanshift分割,并且加入了中间处理环节使得分割块数更加的符合检测目标的特性,并且先验知识的约束很好的解决了人体目标被分割比较零碎的情况,同时先分割后识别的策略使得人体检测时间和准确率以及完整度都得到了较大的优化.为将研究重点聚焦在方法融合上面,在统计学习方法的选择上本文仍选取简单易行的SVM[8-10]方法,训练样本集直接选用实验室环境拍摄的小样本集(SVM恰在小样本分类上具有优势),最终通过方法融合以及先验约束的加入,使得本文算法在小样本集的情况下仍获得了很好的检测结果.

2 基于HOG-SVM算法建立的分类器模型

2005年Dalal提出了HOG-SVM算法[11-13],该算法利用HOG提取人体特征,利用SVM分类.图像的边缘对应于图像的边界,HOG特征不仅能完整的提取图像的边界减少处理的信息量而且很好地保留了物体的轮廓信息.SVM可以对输入数据进行分类建立分类模型.两者结合用于人体检测,实验结果表明HOG-SVM在行人检测方面具有快速高效准确的特点,能够对场景中的人体进行识别标示.

2.1 HOG特征及SVM分类简述

梯度直方图(Histogram of oriented Gradients,HOG)是目前计算机视觉及模式识别里常见的描述图像局部纹理特征的算法,它通过计算图像某一局部区域的梯度信息,得到该区域的直方图,该直方图即为该区域的特征描述.将图片分为多个小区域,获取每一个小区域的梯度直方图,串联后即可得到整幅图片的特征描述.由Vapnik等人在1995年提出的支持向量机(Support Vector Machine,SVM),由于其较强的泛化能力及学习能力,所以常常被应用于各识别分类场景中.

2.1.1 HOG特征计算步骤

采用梯度方向直方图提取图像特征,HOG算法是将图像均匀的分成相邻的小块,采用有重叠和无重叠两种方式对所有小块进行块内直方图统计,常见的HOG结构大致有三种:矩形HOG、圆形HOG和中心环绕HOG,本文采用有重叠的矩形HOG以及最简单的[-1,0,1]算子提取特征.

特征提取具体流程如下

步骤1.将图片统一尺寸为64×128,其中以8×8的像素为一个Cell,以2×2的Cell为一个Block.采用矩形HOG重叠遍历Cell网格,即每个块之间都有重叠的Cell.

步骤2.对8×8大小的彩色图片按比例实现颜色空间归一化并对每个Cell的像素点i进行伽马校正,目的是减小光照对不同图片的影响.

按比例颜色空间归一化

Gray=0.3R+0.59G+0.11B

(1)

R,G,B分别代表图像中的3通道,Gray为像素点三通道按比例归一化后的灰度值.

伽马校正

Y(x,y)=I(x,y)γ

(2)

其中,取γ=0.5对应伽马校正中的系数,I(x,y)代表(x,y)点像素值大小,Y(x,y)为像素点(x,y)Gamma校正后的值.

步骤3.计算每个8×8大小的cell经过颜色空间归一化及γ校正后每一个像素的梯度的大小和方向.

用[-1,0,1]梯度算子对原图像做卷积,得到水平方向梯度Gx(x,y),然后用[-1,0,1]T梯度算子对原图像做卷积,得到竖直方向梯度为Gy(x,y)

Gx(x,y)=I(x+1,y)-I(x-1,y)

(3)

Gy(x,y)=I(x,y+1)-I(x,y-1)

(4)

其中,I(x,y)对应代表各点像素值大小.

该像素点(x,y)梯度大小G(x,y)和梯度方向θ(x,y)分别为

(5)

(6)

步骤4.最后以梯度方向为依据以梯度大小为权重获取9bin的直方图统计;而后对一个Block内的像素点的直方图进行归一化处理,将所有的Block的直方图串联在一起组合成一个大的HOG特征向量.本文因采用8×8的Cell及2×2的Block,所以统一尺寸后的64×128的图片包含的维数为3780.

2.1.2 HOG-SVM模型建立

HOG-SVM模型的建立过程是:利用HOG 检测算法提取并保存图片像素梯度归一化后的信息,训练选取正负样本,图片来源为实验室双目相机在实验室环境拍摄所得.统一图片尺寸为64×128,每个图片可以得到105个Block,每个Block包含36维向量,归一化之后每幅图片可以得到3780维HOG特征和一维非(1)即(-1)的标志位共3781维.将正负样本的HOG特征输入到SVM中,选择合适的参数获取效果较好的正负支持向量机,使用得到的支持向量机去预测接下来的待检测的图像,框画出人体的位置.

3 MeanShift分割

1957年,Fukunaga等人首先提出了MeanShift理论[14],1995年经过Cheng进一步改进,直到2002年MeanShift成功的应用于图像处理和计算机视觉领域,其中就包括MeanShift算法与Ncut相结合的图像分割方法.

3.1 MeanShift算法原理

假设有任意n个样本点xi,(i=1,2,…,n),定义某一像素点x的概率密度的核函数估计为

(7)

其中,K(x)为核函数,h为带宽参数.

则MeanShift向量的数学表达式为

(8)

其中,g(x)=-k′(x),k(x)是K(x)的轮廓函数.

对于彩色图像每个像素点至少包含颜色和位置信息,因此利用颜色和特有的位置信息将彩色图像中的每一个像素点都可表示成一个五维信息向量,在表达式x=(x,y,r,g,b)中xs=(x,y)表示像素点的位置坐标信息,xr=(r,g,b)表示的是像素点的rgb颜色特征向量.

则核函数的表达式为

(9)

式中,C为归一化常量,hs为空间域带宽,hr表示色度域带宽.

3.2 MeanShift算法步骤

MeanShift分割需要依次对图片进行平滑、聚类.

步骤2.图像聚类.图片经过平滑后,将位于图像边框内并尚未标记区域的点进行聚类,将满足空间距离小于hs且颜色差值小于hr的点划分为一类.

4 基于图像分割与HOG-SVM结合的静态图像人体检测

如图1所示为训练过程.算法首先通过特征提取建立分类器模型,而后利用模型进行人体检测.具体流程如下:提取正负样本的HOG特征,将特征数据输入到SVM中进行训练,得到一个二分类器,分类器建立之后,保存模型,进行下一步的人体识别.

图1 训练流程图Fig.1 Training flow chart

具体预测过程为:首先对待检测图片进行MeanShift分割,目的是选取人体疑似区域,疑似区域经HOG特征提取和SVM1粗分类判断,目的是初步筛除部分非人体区块并确保人体区块没有完全被漏检,针对人体被分为多个零散部分进行基于先验知识的二次聚类,而后对聚类后的区域进行基于SVM2的精判断,目的是去除干扰.最后以外接矩形表示该区域为人体.

4.1 图像分割及模糊聚类

给定图像后,首先采用第3节描述方法将图像分割成小块,然后对图像进行模糊聚类,得到有限数量的图块,模糊聚类方法如下:

步骤1.对图像分割及区域标号后,任取图像区域中的一点,寻找其四邻域区域中标号不同的另外一点.

步骤2.求取当前点所在区域和邻域点所在区域rgb差值的平方为N,当前点所在区域面积为M.并设定合适的面积阈值及颜色差值阈值.

步骤3.假使当前点所在区域面积M小于设定的面积阈值900并且rgb的差值平方N也小于设定的颜色差值阈值49,则将该点所在区域与其邻域点所在区域合二为一,相对应的区域总数减少一.

图像原始分割时包含人体的小块区域较多,算法通过模糊聚类来减小分块数量,从图2图像分割及聚类结果图可以看到经分割和模糊聚类后,可以将人体所在区域分割出来,且人体和背景区域能够很好地区分,虽然有些人体区域被分成多个子块,但后续的二次聚类及粗-精识别策略能够有效解决该问题.

图2 图像分割及聚类结果Fig.2 Image segmentation and clustering results

4.2 SVM训练过程

对预测图片采用粗-精结合的方法进行人体识别(方法示意见图1),首先利用MeanShift分割对待检测图片做先期的预处理,提取出疑似人体区域后再获取该区域的HOG特征,最后将该区域的特征数据输入到不同的SVM中.当以SVM1为训练模型时阈值较为宽松,确保人体区域不存在漏识别,此过程称为粗识别;以SVM2为训练模型时采用较严格的阈值,对粗识别的区域二次聚类后,提取特征输入阈值较大的SVM2模型中,解决粗识别造成的误识别过多的问题,只留下仅包含人体的区域,此过程称为精识别.模型训练具体过程如下:

1)利用MeanShift算法分割训练图片,人为选取分割区域中的人体部位(如头部,腿部,上肢)作为正样本训练得到预测模型SVM1,当利用模型SVM1进行预测时,对应的分类阈值取较宽松的即较小的值.称利用SVM1进行预测的过程为粗识别.

2)利用剪裁的纯人体区域(只包含完整的人体,无其他干扰)作为正样本训练得到预测模型SVM2,当利用SVM2预测二次聚类后的区域时,对应的分类阈值取较严格的即较大的值.称利用SVM2进行预测的过程为精识别.

SVM阈值的大小影响人体检出率的高低.预测100张图片,其中50张为人体,50张为物体.

则粗-精识别实验数据见表1.

表1 粗-精识别实验数据
Table 1 Rough-precision identification experiment data

识别过程正样本检出率%负样本检出率%粗识别过程10036精识别过程945

注:检出率=正负样本检出个数/各自样本总数。

4.3 基于人体先验知识的二次聚类

由于粗识别后的人体仍然是分散的,所以粗识别后要对人体进行基于人体先验知识的二次聚类.主要参考的人体纵向上的先验知识是,人体的腿部框的宽度一定会小于人体的肩宽,人体的头部框的宽度也一定会小于人体的肩宽.人体横向上参考的的先验知识是当人体的胳膊有一定延展动作时,胳膊存在被Meanshift单独分割成为独立部分的可能,所以考虑胳膊所在的框画区域一定与人体存在连结性,满足连接点的横坐标必定大于身体边界区域的横坐标.基于人体各部分纵向与横向上的位置关系的知识的方法称为人体先验知识.

1)横纵向二次聚类原理示意图(图3).

图3 横纵向二次聚类示意图Fig.3 Horizontal and vertical quadratic clustering

图3中{(XHlt,yHlt),(XHlr,yHlr),(XHrb,yHrb)}分别表示人体头部外接矩形的左上、左右、右下坐标.

{(XBlt,yBlt),(XBlr,yBlr),(XBrb,yBrb)}分别表示身体外接矩形的左上、左右、右下坐标.

{(XGlt,yGlt),(XGlr,yGlr)}分别表示腿部外接矩形的左上、左右坐标.

{(XDlt,yDlt),(XDlr,yDlr),(XDrb,yDrb)}分别表示被分割出去的手部外界矩形的左上、左右和右下坐标.以图像的左上角为参考原点则:

if {XHlt> XBlt&& XHlr< XBlr&& yHrb

if { XGlt> XBlt&& XGlryBlr}则将合并的头身区域再与满足该条件的腿部区域合并.更新区域属性.

if { XDlr>XBlt&& XDlr yBlt&& yDrb< yBrb}则合并身体部位与手部部位.更新区域属性.实验室实际实验图如图4所示.

图4 人体二次聚类图Fig.4 Human quadratic clustering

图4(a)所示是实验室实际图片聚类效果演示,图4(b)粗识别后的预测结果,与粗识别前图2(b)相比较部分误识别的区域有所减少,图4(c)是对粗识别后的人体基于人体先验知识二次聚类.

从图示可以很明显的看到原本零散的人体区域,被完整地聚类到了一起.由以上两幅图可以说明,粗识别后如果不基于先验知识聚类,人体各部分零散分布,人体识别比较零碎,不能称之为识别完成.基于人体先验知识二次聚类后可以看到完整的人体,人体可以非常明显的被框示出来,总体结果很明显优于未聚类前.

4.4 基于精识别的干扰去除

粗识别之后人体各个部位零散的被框示出来,经过二次聚类人体虽能够被完整框示出来.但仍然存在部分误识别.为了有效消除误识别,本文提出精识别的思路,即利用阈值调高之后所得模型SVM2,其判决条件相比粗识别模型SVM1更加严格,所以它可以有效地消减误识别(如图5所示).

图5 精识别后Fig.5 After careful identification

5 综合实验与对比分析

本节开展基于HOG-SVM的静态人体识别的综合实验,算法在Visual C++ 6.0环境下编写,计算机配置为Intel(R)Core(TM)i3-2350 CPU @ 2.30GHz 2.30 GHz,Windows 7,4GB内存,实验中选用的图片大小均为512*384.各组图中精识别的结果图中粗线条框是使用传统的HOG和SVM实现的,人体检测细线条框是使用本文方法实现的人体检测.

图6是采用双目摄像机拍摄的某一实验室多人图片.设置MeanShift算法的参数(hs,hr,T)=(6,16,0.15),设置糊聚类的终止条件为区域大小不低于900,颜色阈值不低于49,粗识别给定的SVM1的γ值为1,阈值为-0.5,精识别给定的SVM2的γ值为4,阈值为-0.01.实验室多人实验效果图如图6所示.

图6 多人的实验图Fig.6 Multi-person experimental chart

由实验效果图可以看到,粗线条画框标识的是传统方法实现的人体识别结果,实验效果出现了目标框画不完整的现象,部分图片出现漏识别现象.试验中可验证本文方法相对传统的HOG与SVM方法,在识别人体的完整性和准确率以及时间消耗上都有明显的优势.取100张实验图片对比试验数据见表2.

检出率=检测到的人体/总的人体总数

有图表分析可得,在检出率上,由于本文首先采用Mean-shift分割算法找出疑似人体区域,而后采用HOG和SVM进行人体识别,通过模糊聚类以及“粗-精”两级识别的架构,提高了目标检出率,后期结合先验知识将过分割的人体目标二次合并,进一步解决了传统方法对人体目标定位不准确(无法框住完整人体)及漏识别的问题.在时间上,摒弃传统方法对图像采用多尺度金字塔缩放识别方法,大大减少了扫描图像的数量,单张图片处理时间缩短一半左右.

表2 HOG-SVM与Meanshft-HOG-SVM实验数据
Table 2 HOG-SVM and Meanshft-HOG-SVM experimental data

识别过程HOG-SVMMeanshft-HOG-SVM单张时间(ms)41252302检出率(%)7894

6 结束语

本文以机器人视觉中的人体识别问题为背景,研究了基于HOG-SVM的人体识别的算法,并以MeanShift分割为基础,将图像分割与统计学习结合,提出了基于粗-精两级支持向量机的人体检测方法.识别过程中首先通过分割及模糊聚类获取初步图像块集合,并结合人体先验知识对预分割的图像块进行二次合并,快速筛选疑似人体区域,使算法不仅能够有效提取图片中疑似人体区域,还能成功的融合分割过程中被零散分割的人体.两级支持向量机检测的方法能够保证尽量减少人体漏检的同时,降低误识别率.算法中分割合并以及两级检测的思想也可与其它统计学习方法结合,并可用于其它目标检测领域.

猜你喜欢
先验阈值聚类
一种傅里叶域海量数据高速谱聚类方法
改进的软硬阈值法及其在地震数据降噪中的研究
康德定言命令的演绎是一种先验演绎吗?——论纯粹知性与实践理性在先天原则证成方面之异同
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
基于暗通道先验的单幅图像去雾算法研究与实现
一种改进K-means聚类的近邻传播最大最小距离算法
AR-Grams:一种应用于网络舆情热点发现的文本聚类方法
先验想象力在范畴先验演绎中的定位研究
改进小波阈值对热泵电机振动信号的去噪研究