法律状态公告日
法律状态信息
法律状态
2012-11-14
授权
授权
2011-08-24
实质审查的生效 IPC(主分类):G06T7/00 申请日:20110125
实质审查的生效
2011-07-13
公开
公开
技术领域
本发明涉及到图像处理领域,特别涉及到一种基于深度图像进行人体检测的方法。
背景技术
目前对图像进行人体检测的算法都是在普通图像(二维数据)上进行,图像中的每个像素点的值表示的是物体的亮度,如白色衣服的亮度比黄色皮肤的亮度要高。因此普通图像的像素值只与物体表面颜色、反射的光线强度或发射的光线强度有关,与物体到相机的距离无直接关系,因此而造成的缺陷是难以克服光照变化和复杂背景干扰,普通图像中因光照引起的人的阴影、图像背景上的复杂纹理(如墙上画的人体形状),都会对人体检测造成干扰,将一些非人体区域误识别为人体,误检测率高。
发明内容
本发明的主要目的是提出一种基于深度图像进行人体检测的方法,利用深度图像的像素提取图像特征,以实现人体检测,降低了误检测率。
本发明提出的一种基于深度图像进行人体检测的方法,包括:
根据所采集的深度图像的像素提取图像特征;
将所述图像特征输入预设的分类模型,以得出所述深度图像是否包含人体。
优选地,所述根据所采集的深度图像的像素提取图像特征包括:
对所述深度图像的像素进行深度差运算或局部二值运算。
优选地,所述对深度图像的像素进行深度差运算包括:
根据下列程式计算各像素的深度差:
Gx(x,y)=D(x+1,y)-D(x-1,y),Gy(x,y)=D(x,y+1)-D(x,y-1),所述Gx(x,y)为(x,y)位置的X方向深度差,Gy(x,y)为(x,y)位置的Y方向深度差,D(x,y)为(x,y)位置的深度值;
统计所有像素的深度差,形成图像特征。
优选地,所述统计所有像素的深度差包括:
以预设的角度值为单位,累加各单位的深度差;
组合所有单位的深度差。
优选地,在执行所述根据所采集的深度图像的像素提取图像特征之前,还包括:
在所述深度图像中选择一或多个区域;或检测所述深度图像中变化的区域,在该变化的区域中选择一或多个区域。
优选地,所述将图像特征输入预设的分类模型包括:
当选择的区域为多个时,分别将各区域的图像特征输入预设的分类模型,以得出各区域中是否包含人体。
优选地,在执行分别将各区域的图像特征输入预设的分类模型之后,还包括:
保存包含人体的区域的位置和大小;
合并所有包含人体的区域的位置和大小,得到所述人体的信息,所述信息包括人体的位置、大小和/或数量。
优选地,在执行所述根据所采集的深度图像的像素提取图像特征之前,还包括:
采集深度图像,该深度图像包括人体区域和非人体区域;
根据所述人体区域和非人体区域的像素提取图像特征;
根据提取的图像特征进行训练并建模,获得所述分类模型。
优选地,所述图像特征包括图像纹理特征。
优选地,所述分类模型为支持向量机模型。
本发明提出的一种基于深度图像进行人体检测的方法,在深度图像(三维数据)上进行人体检测,基于深度图像的像素建立模型,由于深度图像的像素值只与距离有关,与物体表面的亮度和颜色无关,因此本发明可以去除光照变化和复杂背景的干扰,使人体检测准确率高,误检测率低。
附图说明
图1为本发明一种基于深度图像进行人体检测的方法一实施例的流程示意图;
图2为本发明一种基于深度图像进行人体检测的方法一实施例中计算深度差的流程示意图;
图3为本发明一种基于深度图像进行人体检测的方法一实施例的深度差的示意图;
图4为本发明一种基于深度图像进行人体检测的方法一实施例的深度差直方图;
图5为本发明一种基于深度图像进行人体检测的方法一实施例中统计深度图像所有像素的深度差的流程示意图;
图6为本发明一种基于深度图像进行人体检测的方法又一实施例的流程示意图;
图7为本发明一种基于深度图像进行人体检测的方法另一实施例的流程示意图;
图8为本发明一种基于深度图像进行人体检测的方法再一实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,提出本发明一种基于深度图像进行人体检测的方法一实施例,包括:
步骤S101,根据所采集的深度图像的像素提取图像特征;
利用深度相机或激光测距扫描仪等设备采集深度图像。用深度相机或激光测距扫描仪进行拍摄,可记录下环境的三维数据,也即深度信息,深度信息以深度图像(三维数据)的方式存储。深度图像中每个像素点的值表示物体到相机的距离,像素值越大,表示物体离相机越远,深度图像的像素值只与物体到相机的距离有关,与物体表面的亮度和颜色无关。根据采集到的深度图像的像素提取图像特征,提取的图像特征通常为图像纹理特征,可以表现为深度差直方图或局部二值方图,该深度差直方图或局部二值方图表示为一个向量(数组)。
步骤S102,将图像特征输入预设的分类模型,以得出深度图像是否包含人体。
将提取的图像特征输入预设的分类模型,分类模型可以是支持向量机模型,也可以是AdaBoost模型等,以判断深度图像中是否包括人体。所述人体可以是整体或局部如头、肩、人体上半身等。分类模型为预先设置,通常是预设采集一个同时包含人体和环境的深度图像,对该深度图像提取图像特征进行训练并建模获得。
本发明提出的一种基于深度图像进行人体检测的方法,在深度图像(三维数据)上进行人体检测,基于深度图像的像素建立模型,由于深度图像的像素值只与距离有关,与物体表面的亮度和颜色无关,因此本发明可以去除光照变化和复杂背景的干扰,使人体检测准确率高,误检测率低。本发明能够自动判断周围环境中是否有人存在,具有更高的智能性,可以应用于汽车、机器人或监控系统等多个领域,提高系统的智能性。
在本发明一种基于深度图像进行人体检测的方法一实施例中,步骤S101可包括:
对深度图像的像素进行深度差运算或局部二值运算。
提取深度图像的图像特征有多种方式,较佳方式是根据深度图像的像素进行深度差运算,也可采用局部二值运算,局部二值运算是按照一定的规则将整幅深度图像划分为N个窗口,对这N个窗口中的每一个窗口再按照一个统一的阈值T将该窗口内的像素划分为两部分,进行二值化处理。除深度差运算和局部二值运算以外的其它可利用深度图像的像素提取图像特征的方式也适用于本发明。
本实施例中,采用深度差运算或局部二值运算提取深度图像的图像特征,较好的实现了图像特征的提取。
参照图2,在本发明一种基于深度图像进行人体检测的方法一实施例中,对深度图像的像素进行深度差运算可包括:
步骤S1011,根据下列程式计算各像素的深度差:
Gx(x,y)=D(x+1,y)-D(x-1,y),Gy(x,y)=D(x,y+1)-D(x,y-1),所述Gx(x,y)为(x,y)位置的X方向深度差,Gy(x,y)为(x,y)位置的Y方向深度差,D(x,y)为(x,y)位置的深度值;
将深度图像分割成M*N个区域;M和N为大于或等于1的自然数。对每一区域里的所有像素进行深度差计算。深度差有两个方向,X方向(横向)和Y方向(纵向)的深度差,分别为:
Gx(x,y)=D(x+1,y)-D(x-1,y)
Gy(x,y)=D(x,y+1)-D(x,y-1)
其中,Gx(x,y)为(x,y)位置的X方向深度差,Gy(x,y)为(x,y)位置的Y方向深度差,D(x,y)为(x,y)位置的深度值,计算得出的深度差可以用如图3所示带有方向和大小的向量表示,可用如图4所示的深度差直方图直观表示。
步骤S1012,统计所有像素的深度差,形成图像特征。
统计每一区域所有像素的深度差,再将M*N个区域的深度差直方图连成一个大的向量(数组),形成深度图像的图像特征。
本实施例中,设置深度图像的像素的深度差运算公式,并以深度差直方图形式直观表现。
参照图5,在本发明一种基于深度图像进行人体检测的方法一实施例中,步骤S1012可包括:
步骤S10121,以预设的角度值为单位,累加各单位的深度差;
步骤S10122,组合所有单位的深度差。
由于深度差的方向范围在0~360度,可以以一预设值例如40度(或其他值)为一个范围,对不同角度的深度差进行统计,统计出的深度差直方图可表示为一个向量(数组)。然后将这些直方图连成一个大的向量(数组),得到最终的深度图像的深度差直方图。
本实施例中,以预设角度统计深度图像各像素的深度差并组合。
参照图6,提出本发明一种基于深度图像进行人体检测的方法又一实施例,在上述实施例中,在执行步骤S101之前,还包括:
步骤S1001,在深度图像中选择一或多个区域;或检测深度图像中变化的区域,在该变化的区域中选择一或多个区域。
当深度图像的数据量大时,可在深度图像中选择一或多个区域,分别提取所选择的一或多个区域的图像特征,通常的方式是以一预设的方式对深度图像进行扫描,例如从左上角开始,以一预设的区域范围进行扫描,以进行后续的特征提取,该方法全面精确,避免遗漏。或者可检测深度图像中变化的区域,假设该变化的区域为人体,再在该变化的区域中选择一或多个区域提取图像特征,该方法实现快速判断,提高了效率。
本实施例中,可根据需要采用按区域提取图像特征的方式。
在本发明一种基于深度图像进行人体检测的方法又一实施例中,将图像特征输入预设的分类模型包括:
当选择的区域为多个时,分别将各区域的图像特征输入预设的分类模型,以得出各区域中是否包含人体。
本实施例中,当选择多个区域对深度图像提取图像特征时,分别判断各区域的图像特征是否包含人体。
参照图7,提出本发明一种基于深度图像进行人体检测的方法另一实施例,在上述实施例中,在执行步骤S102之后,还包括:
步骤S103,保存包含人体的区域的位置和大小;
当某一选择的区域中包含人体时,保存该区域的位置和大小。
步骤S104,合并所有包含人体的区域的位置和大小,得到人体的信息,该信息包括人体的位置、大小和/或数量。
扫描完所有选择的区域后,合并所有包含人体的区域的位置和大小,也可进一步对包含人体的区域进行分析和去噪,上述合并的操作可以去除多个区域中重复的部分,得到最终的人体的信息,该信息包括人体的位置、大小和/或数量。
合并过程可如下:
假设扫描深度图像后,得到包含人体的区域R1,R2,...,Rn。这些区域都是矩形,矩形可用(x,y,w,h)表示,其中(x,y)表示左上角坐标,w和h分别表示宽度和高度。对于任意两个包含人体的矩形区域Ri和Rj,如上图所示,如果两个矩形区域重叠的面积超过任一矩形区域面积的一定比例(如60%),则认为这两个矩形区域都是指向同一个人体。将两个矩形区域合并为一个矩形,合并得到的新矩形区域为(xnew,ynew,wnew,hnew),其中:xnew=xi+xj/2,ynew=yi+yj/2,wnew=wi+wj/2,hnew=hi+hj/2。
本实施例中,在判断区域是否有人体后,还保存该区域的位置和大小,并进一步作优化处理,得到关于深度图像中关于人体的准确信息。
参照图8,提出本发明一种基于深度图像进行人体检测的方法再一实施例,在上述实施例中,在执行步骤S101之前,还包括:
步骤S98,采集深度图像,该深度图像包括人体区域和非人体区域;
采集作为训练用的深度图像,该深度图像包括人体区域和非人体区域即环境区域。
步骤S99,根据人体区域和非人体区域的像素提取图像特征;
从深度图像中标注出人体区域,将人体区域裁剪出,裁剪出的人体深度图像,可裁剪出大量人体区域深度图像,作为训练的正样本。再从深度图像中标注出非人体区域即环境区域,将非人体区域裁剪出,可裁剪出大量非人体区域,作为训练的负样本。将所有的正样本和负样本归一化到相同的宽度和高度。对所有正负样本进行图像特征的提取操作,以深度差运算为例,每个样本提取到一个深度差直方图。
步骤S100,根据提取的图像特征进行训练并建模,获得分类模型。
将所有样本的深度差直方图输入机器学习分类模型中(比如支持向量机模型),进行模型训练,最后得到一个分类模型,为人体检测作准备。
本实施例中,对三维物体的表面建立分类模型为人体检测作准备,当人体进入拍摄场景中时,可自动将人体从环境中分离出来。
在上述实施例中,图像特征包括但不限定于图像纹理特征。图像纹理特征既包括通常意义上物体表面的细小变化即物体表面上所呈现凹凸不平的沟纹,同时也包括在物体的光滑表面上的彩色图案。深度图像的图像纹理特征是指局部(小范围)的深度变化。
在上述实施例中,分类模型为支持向量机模型,也可以是其它适用于本发明的机器学习分类模型。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是基于本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
机译: 基于并行统计的3D深度图像信息人体检测方法
机译: 基于深度图像的渲染方法和基于深度图像的渲染系统
机译: 用于操作深度图像相机系统的方法,包括基于光传播时间相机的数据确定深度图,以及基于二维图像采集的二维图像的数据确定另一深度图像。