一种人体检测方法及装置与流程

文档序号:11323688阅读:285来源:国知局
一种人体检测方法及装置与流程

本发明涉及计算机视觉技术领域,特别涉及一种人体检测方法及装置。



背景技术:

目前,人体检测是计算机视觉领域的研究热点,对于人体的识别和特征提取有很高的科研和商业价值,具有广阔的应用前景。传统的人体检测主要基于单目照相机获得的二维图像或单目摄相机获得的视频数据进行的。由于单目照相机或单目摄像机中的单一传感器获取信息的能力有限,人体特征提取主要依赖图像的颜色及梯度特征,检测的精度和速度都较为有限。

随着深度相机的出现,例如双目相机、结构光相机和tof相机等,深度相机获取的点云数据可以直接获得图像中特定点的三维信息,获取的信息更加丰富,弥补了传统的单目照相机或单目摄像机的不足,提高了人体检测的精度。

在现有技术中,深度相机在进行人体检测时,首先采用随机抽样一致(randomsampleconsensus,ransac)算法确定地平面的点云数据并删除。其次采用欧式距离聚类对剩余的点云数据进行聚类,初步确定可能存在人体的点云数据簇。然后通过投影直方图确立波峰波谷解决聚类产生的多人一类和多类一人的问题,再次确定可能存在人体的点云数据簇。最后采用方向梯度直方图(histogramsoforientedgradients,hog)特征训练支持向量机(supportvectormachine,svm)分类器进行人体检测。但是当环境复杂,两个甚至多人前后平行重叠站立,通过投影直方图确立波峰波谷解决聚类产生的多人一类和多类一人的问题时,该两人或多人在xoy平面上的投影位于同一个投影直方图中,从而造成人体检测的准确性不高。



技术实现要素:

本发明提供一种人体检测方法及装置,用以解决现有技术中当有两人甚至多人前后平行重叠站立时,在进行人体检测时,准确性不高的问题。

为达到上述目的,本发明实施例公开了一种人体检测方法,所述方法包括:

针对待检测的初步确定为人体的第一点云数据簇,将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇;

根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点,如果两个局部最高点在水平面上的投影距离小于设定的第一阈值,将该两个局部最高点所在的第一子点云数据簇对应的区域内的第一子点云数据簇合并为第二点云数据簇,如果局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点的第二点云数据簇;

针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标方向梯度直方图hog值,根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像。

进一步地,确定第一点云数据簇的过程包括:

获取待检测的图像的点云数据;

采用随机抽样一致ransac算法在所述图像的点云数据中确定地平面的点云数据,在所述图像的点云数据中删除所述地平面的点云数据;

在删除地平面的点云数据后的点云数据中按照预设聚类半径进行聚类,将聚类后得到的每个类别确定为第一点云数据簇。

进一步地,所述将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇之前,所述方法还包括:

识别每个第一点云数据簇中的最高点和最低点;

如果第一点云数据簇中的最高点高于设定的最高点阈值,或最低点低于设定的最低点阈值,则将该第一点云数据簇删除。

进一步地,所述将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇包括:

将所述第一点云数据簇按照预设的长度和宽度将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇,其中所述预设的长度和宽度小于人体立方体对应的长度和宽度。

进一步地,所述根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点包括:

针对每个第一子点云数据簇中的最高点,判断该第一子点云数据簇中的最高点是否为与其相邻的预设数量的第一子点云数据簇中的最高点,如果是,将该第一子点云数据簇中的最高点作为第一点云数据簇中的局部最高点。

进一步地,所述如果局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点第二点云数据簇包括:

根据该局部最高点及预设的圆柱体半径,确定圆柱体,将位于所述圆柱体内的所有点云数据确定为第二点云数据簇。

进一步地,所述获取该第二点云数据簇对应图像的目标hog值之前,所述方法还包括:

针对每个第二点云数据簇,识别该第二点云数据簇中的点云的数量;

将点云的数量小于预设的第二阈值的第二点云数据簇删除。

进一步地,所述针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标hog值包括:

针对每个第二点云数据簇,识别该第二点云数据簇中的最高点,根据所述最高点及预设的高度与宽度的比例关系,确定所述第二点云数据簇对应的图像中的人体区域;

获取所述人体区域的目标hog值。

本发明实施例公开了一种人体检测装置,所述装置包括:

划分模块,用于针对待检测的初步确定为人体的第一点云数据簇,将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇;

确定模块,用于根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点,如果两个局部最高点在水平面上的投影距离小于设定的第一阈值,将该两个局部最高点所在的第一子点云数据簇对应的区域内的第一子点云数据簇合并为第二点云数据簇,如果局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点的第二点云数据簇;

检测模块,用于针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标方向梯度直方图hog值,根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像。

进一步地,所述确定模块,还用于获取待检测的图像的点云数据;采用随机抽样一致ransac算法在所述图像的点云数据中确定地平面的点云数据,在所述图像的点云数据中删除所述地平面的点云数据;在删除地平面的点云数据后的点云数据中按照预设聚类半径进行聚类,将聚类后得到的每个类别确定为第一点云数据簇。

进一步地,所述装置还包括:

第一识别删除模块,用于识别每个第一点云数据簇中的最高点和最低点;如果第一点云数据簇中的最高点高于设定的最高点阈值,或最低点低于设定的最低点阈值,则将该第一点云数据簇删除。

进一步地,所述划分模块,具体用于将所述第一点云数据簇按照预设的长度和宽度将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇,其中所述预设的长度和宽度小于人体立方体对应的长度和宽度。

进一步地,所述确定模块,具体用于针对每个第一子点云数据簇中的最高点,判断该第一子点云数据簇中的最高点是否为与其相邻的预设数量的第一子点云数据簇中的最高点,如果是,将该第一子点云数据簇中的最高点作为第一点云数据簇中的局部最高点。

进一步地,所述确定模块,具体的根据该局部最高点及预设的圆柱体半径,确定圆柱体,将位于所述圆柱体内的所有点云数据确定为第二点云数据簇。

进一步地,所述装置还包括:

第二识别删除模块,用于针对每个第二点云数据簇,识别该第二点云数据簇中的点云的数量;将点云的数量小于预设的第二阈值的第二点云数据簇删除。

进一步地,所述检测模块,具体用于针对每个第二点云数据簇,识别该第二点云数据簇中的最高点,根据所述最高点及预设的高度与宽度的比例关系,确定所述第二点云数据簇对应的图像中的人体区域;获取所述人体区域的目标hog值。

本发明实施例公开了一种人体检测方法及装置,所述方法包括:针对待检测的初步确定为人体的第一点云数据簇,将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇;根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点,如果两个局部最高点在水平面上的投影距离小于设定的第一阈值,将该两个局部最高点所在的第一子点云数据簇对应的区域内的第一子点云数据簇合并为第二点云数据簇,如果局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点的第二点云数据簇;针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标方向梯度直方图hog值,根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像。由于在本发明实施例中,针对待检测的初步确定为人体的第一点云数据簇,以第一点云数据簇中的局部最高点在水平面上的投影距离进行再聚类,确定第二点云数据簇。通过获取第二点云数据簇对应图像的目标hog值,确定所述第二点云数据簇对应的图像是否为人体图像。这种确定人体的方式,更能区分两人甚至多人前后平行重叠站立的情况,提高了人体检测的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1提供的一种人体检测过程示意图;

图2为本发明实施例3提供的一种人体检测过程示意图;

图2a为本发明实施例提供的一种第一点云数据簇示意图;

图3为本发明实施例7提供的一种人体检测过程示意图;

图4为本发明实施例提供的一种人体检测结果示意图;

图5为本发明实施例1提供的一种人体检测装置结构图;

图6为本发明实施例提供的一种人体检测装置结构图。

具体实施方式

为了提高在两人甚至多人前后平行重叠站立时的人体检测的准确性,本发明实施例提供了一种人体检测方法及装置。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1:

图1为本发明实施例提供的一种人体检测过程示意图,该过程包括以下步骤:

s101:针对待检测的初步确定为人体的第一点云数据簇,将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇。

本发明实施例提供的人体检测方法可以应用于电子设备,所述电子设备可以是深度相机。所述电子设备中保存有待检测的初步确定为人体的第一点云数据簇,并且保存有将所述第一点云数据簇划分为多个第一子点云数据簇的预设的规则。

在本发明实施例中,电子设备保存的第一点云数据簇中的点云数据基于的坐标中,是以x轴与y轴构成的平面为地平面即水平面,z轴垂直于xy平面构建的。针对其他实施例中的第一点云数据簇或其他点云数据簇中的点云数据亦是基于此坐标系的如此。

电子设备将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇。所述待检测的初步确定为人体的第一点云数据簇可以是一个,也可以是多个,每个第一点云数据簇中包含有多个点云数据。在将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇时,可以是先确定所有第一点云数据簇对应的范围在x轴方向和y轴方向的每个边界点,根据每个边界点,确定区域范围,根据预设的长度和宽度,在该区域范围内将所有第一点云数据簇划分为多个第一子点云数据簇。然后再确定出每个第一点云数据簇中包含的第一子点云数据簇。所述预设的长度为该第一点云数据簇在x轴上的划分距离间隔,所述预设的宽度为该第一点云数据簇在y轴上的划分距离间隔。一般人体立方体的长度大于30cm,宽度大于15cm。考虑到人体在空间中随意走动转动,可能会出现人体与深度相机不平行的情况,所述宽度也可以是大于30cm。所述预设的长度和宽度可以是相同,也可以是不同,当所述长度和宽度相同时,例如可以是所述长度为10cm,所述宽度也为10cm。

s102:根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点,如果两个局部最高点在水平面上的投影距离小于设定的第一阈值,将该两个局部最高点所在的第一子点云数据簇对应的区域内的第一子点云数据簇合并为第二点云数据簇,如果局部最高点在水平上的投影与任意其他局部最高点在水平面上的投影距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点的第二点云数据簇。

在本发明实施例中,每个第一子点云数据簇中包含一个或多个点云数据,每个点云数据有其对应的三维坐标的信息,该点云数据以x轴与y轴构成的平面为地平面即水平面,在z轴上的值为该点云数据对应的高度值,识别每个第一子点云数据簇中的最高点即在z轴上的为最大值的点云数据,根据每个子点云数据簇中的最高点,确定每个第一点云数据簇中的每个局部最高点。每个第一点云数据簇中的局部最高点可以是一个,也可以是多个,局部最高点可能对应人体的头部。

电子设备中预先设定有第一阈值,电子设备识别两个局部最高点在水平面上的投影距离,并且判断所述距离是否小于设定的第一阈值,如果是,则认为该两个局部最高点对应的第一子点云数据簇属于同一个人体的点云数据簇,则将该两个局部最高点所在的第一子点云数据簇对应的区域内的第一子点云数据簇合并为第二点云数据簇。

如果该局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,则根据该局部最高点,确定包含该局部最高点的第二点云数据簇。每个第二点云数据簇认为是一个人体。

所述根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点时,具体的可以是,将每个第一子点云数据簇中的最高点,通过比较确定为第一点云数据簇中的每个局部最高点。将每个局部最高点向水平面进行投影。

如果该局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,所述根据该局部最高点,确定包含该局部最高点的第二点云数据簇,具体的可以是,根据该局部最高点以及预设的长度和宽度,确定立方体,将位于所述立方体内的所有点云数据确定为第二点云数据簇。该局部最高点可以位于该立方体的顶点上。因为认为每个局部最高点为人体的头部,所以较优的,该局部最高点位于该立方体的上表面的中心位置上。每个立方体内的多有点云数据构成第二点云数据簇认为是一个人体。一般人体的长度大于30cm,这里所说的人体的长度指人体的左肩膀边缘至右肩膀边缘的距离,所述第一阈值可以为30cm。

s103:针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标hog值,根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像。

针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标hog值,根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像。在获取该第二点云数据簇对应图像的目标hog值时,可以将该第二点云数据簇向yoz平面或者xoz平面做二维投影,获取该第二点云数据簇投影后的图像的目标hog值。在根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像时,具体的可以是采用hog特征训练svm分类器进行人体识别,确定所述第二点云数据簇投影后的图像是否为人体图像。

由于在本发明实施例中,针对待检测的初步确定为人体的第一点云数据簇,以第一点云数据簇中的局部最高点在水平面上的投影距离进行再聚类,确定第二点云数据簇。通过获取第二点云数据簇对应图像的目标hog值,确定所述第二点云数据簇对应的图像是否为人体图像。这种确定人体的方式,更能区分两人甚至多人前后平行重叠站立的情况,提高了人体检测的准确性。

实施例2:

在上述实施例的基础上,在本发明实施例中,确定第一点云数据簇的过程包括:

获取待检测的图像的点云数据;

采用ransac算法在所述图像的点云数据中确定地平面的点云数据,在所述图像的点云数据中删除所述地平面的点云数据;

在删除地平面的点云数据后的点云数据中按照预设聚类半径进行聚类,将聚类后得到的每个类别确定为第一点云数据簇。

在本发明实施例中,电子设备获取待检测的图像的点云数据,当获取了所述图像的点云数据后,采用ransac算法在所述图像的点云数据中确定地平面的点云数据,并且在所述图像的点云数据中删除所述地平面的点云数据。将删除地平面的点云数据后的剩余点云数据,按照预设聚类半径进行聚类,将聚类后得到的每个类别确定为第一点云数据簇。所述聚类半径可以与点云的密集程度有关,点云越密集,聚类半径越小,点云越稀疏,聚类半径越大。

当电子设备为深度相机时,电子设备在获取待检测场景的图像和点云数据时,具体的可以是,深度相机被固定后,采集目标场景点云数据。深度相机采集的可以是一帧图像,也可以是一段视频。如果是一段视频,则深度相机可以在该段视频中获取每一帧图像中的点云数据。

在采用ransac算法在所述图像的点云数据中确定地平面的点云数据时,具体的可以是,在该图像的点云数据中,估算含有点云的数量最多的平面,将该平面认为是地平面。也可以是通过手动选取任意的3个地面上的点云数据,并用这3个点云数据包含的三维坐标的信息,通过公式ax+by+cz+d=0,计算出3个点云数据对应平面的方程参数,即计算出a、b、c和d的值。针对图像中的所有点云数据,计算出每个点云数据到计算出的平面之间的欧式距离,再将每个距离与设定的距离阈值进行比较,若在距离阈值对应的范围内,则将该点云数据归为“局内点”,否则,归为“局外点”,对由“局内点”组成的地平面进行校正,最后得到所有地平面的点云数据。所述距离阈值可以为15cm。

当确定了地平面的点云数据后,在所述图像的点云数据中将地平面的点云数据删除,删除的点云数据不参与接下来的各个操作。

当删除了所述地平面的点云数据后,将在删除地平面的点云数据后的剩余的点云数据中按照预设聚类半径进行聚类,将聚类后得到的每个类别确定为第一点云数据簇。具体的可以是,根据预设的聚类半径,如果剩余的点云数据中的两个相邻的点云数据之间的距离小于所述预设的聚类半径,将该两个点云数据确定为同一类别,依次遍历所有剩余的点云数据,对所有剩余的点云数据进行聚类处理,将聚类后得到的每个类别确定为第一点云数据簇。所述聚类半径与点云的密集程度有关,点云数据越密集,聚类半径越小,点云数据越稀疏,聚类半径越大,一般情况下,该聚类半径可以为12cm。

在进行聚类时,可以将点云数据中的任意一个点云记为pi,将点云数据中的所有点云存放待分类点云数据簇q中,针对q中的某一点云pi,将其取出存到在c集合的c1子集合中,识别与pi之间的距离小于聚类半径的点云pi,将每个pi从q中取出存放到c1子集合中;然后再在q剩余的点云中取出另一个点云,将其存到在c集合的c2子集合中,重复上述聚类半径的识别,依次重复执行上述过程,直到q为空,从而得到分类后的c集合中的每个子集合,将每个子集合确定为每个对应的类型,得到对应的每个第一点云数据簇。

一般,所述待检测图像中的点云数据中包含人体的点云数据、地平面的点云数据以及其他非人体的点云数据。在所述待检测图像中的点云数据中删除地平面的点云数据,针对剩余的点云数据按照预设聚类半径进行聚类,聚类后的每个第一点云数据中包含人体的点云数据,但是也有可能包含非人体的点云数据。每个第一点云数据簇中可能包含一个或多个人体。因此将聚类后的第一点云数据簇称为初步确定为人体的第一点云数据簇,可以针对该第一点云数据簇进行后续的步骤,更加准确的确定出包含人体的第二点云数据簇,进而检测出人体。

实施例3:

为了避免墙体,桌子等过高或过低的物体的干扰,进一步提高人体检测的准确性,在上述各实施例的基础上,在本发明实施例中,所述将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇之前,所述方法还包括:

识别每个第一点云数据簇中的最高点和最低点;

如果第一点云数据簇中的最高点高于设定的最高点阈值,或最低点低于设定的最低点阈值,则将该第一点云数据簇删除。

在本发明实施例中,电子设备中保存有最高点阈值和最低点阈值。针对待检测的初步确定为人体的第一点云数据簇,识别每个第一点云数据簇中的最高点和最低点,判断每个第一点云数据簇中的最高点是否大于设定的最高点阈值,如果是,则将该最高点对应的第一点云数据簇删除。判断每个第一点云数据簇中的最低点是否小于设定的最低点阈值,如果是,则将该最低点对应的第一点云数据簇删除。

删除的第一点云数据簇不参与接下来的各个操作。所述设定的最高点阈值可以是比较大的数值,例如可以是2.3米、2.5米等,设定的最低点阈值可以是比较小的数值,例如可以是1米、1.3米等,因为一般认为人体的身高不超过最高点阈值,并且不低于最低点阈值。如果该第一点云数据簇中的最高点高于最高点阈值,例如2.3米,则认为该第一点云数据簇可能为墙面,所以将其删除。如果该第一点云数据簇中的最低点低于最低点阈值,例如1.3米,则认为该第一点云数据簇可能为桌子、椅子等非人体的第一点云数据簇,所以将其删除。

为了提高人体检测的准确性,针对待检测的初步确定为人体的第一点云数据簇,也可以是将每个第一点云数据簇中的高于设定的最高点阈值的点云数据删除,和低于设定的最低点阈值的点云数据删除。删除的点云数据不参与接下来的各个操作。

图2为本发明实施例3提供的一种人体检测过程示意图,该过程包括以下步骤:

s201:获取待检测的图像的点云数据。

s202:采用ransac算法在所述图像的点云数据中确定地平面的点云数据,在所述图像的点云数据中删除所述地平面的点云数据。

s203:在删除地平面的点云数据后的点云数据中按照预设聚类半径进行聚类,将聚类后得到的每个类别确定为第一点云数据簇。

s204:针对待检测的初步确定为人体的第一点云数据簇,识别每个第一点云数据簇中的最高点和最低点,如果第一点云数据簇中的最高点高于设定的最高点阈值,或最低点低于设定的最低点阈值,则将该第一点云数据簇删除。

s205:将剩余的所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇。

s206:根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点,如果两个局部最高点在水平面上的投影距离小于设定的第一阈值,将该两个局部最高点所在的第一子点云数据簇对应的区域内的第一子点云数据簇合并为第二点云数据簇,如果局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点的第二点云数据簇。

s207:针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标方向梯度直方图hog值,根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像。

实施例4:

为了进一步提高人体检测的准确性,所述将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇包括:

将所述第一点云数据簇按照预设的长度和宽度将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇,其中所述预设的长度和宽度小于人体立方体对应的长度和宽度。

在本发明实施例中,在将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇时,具体的可以是,将所述第一点云数据簇按照预设的长度和宽度将所述第一点云数据簇划分为多个第一子点云数据簇,其中所述预设的长度和宽度小于人体立方体对应的长度和宽度。所述预设的长度为该第一点云数据簇在x轴上的划分距离间隔,所述预设的宽度为该第一点云数据簇在y轴上的划分距离间隔。一般人体立方体的长度大于30cm,宽度大于15cm。所述预设的长度和宽度可以是相同,也可以是不同,当所述长度和宽度相同时,例如可以是所述长度为10cm,所述宽度也为10cm。

实施例5:

在将每个第一子点云数据簇中的最高点,确定为第一点云数据簇中的每个局部最高点时,可能造成后续人体检测的不准确,为了进一步提高人体检测的准确性。在上述各实施例的基础上,在本发明实施例中,所述根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点包括:

针对每个第一子点云数据簇中的最高点,判断该第一子点云数据簇中的最高点是否为与其相邻的设定数量的第一子点云数据簇中的最高点,如果是,将该第一子点云数据簇中的最高点作为第一点云数据簇中的局部最高点。

在本发明实施例中,针对每个点云数据簇,按照预设的规则划分为多个第一子点云数据簇,每个第一子点云数据簇的位置是清楚的,因此可以清楚的知道与该第一子点云数据簇的相邻的每个第一子点云数据簇。在根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点时,具体的可以是,针对每个第一子点云数据簇中的最高点,判断该第一子点云数据簇中的最高点是否为与其相邻的预设数量的第一子点云数据簇中的最高点,如果是,将该第一子点云数据簇中的最高点作为第一点云数据簇中的局部最高点。所述预设数量可以为4,也可以为8。

图2a为本发明实施例提供的一种第一点云数据簇示意图,由图2a可以看出,该第一点云数据簇在xoy平面的投影示意图,第一点云数据簇中包含12个第一子点云数据簇,标号为1-12。针对第6个第一子点云数据簇,与该第6个第一子点云数据簇相邻的第一子点云数据簇有8个,标号分别为1、2、3、5、7、9、10、11。当所述预设的数量为8时,则判断该第6个第一子点云数据簇中的最高点是否为与其相邻的所有的第一子点云数据簇中的最高点,如果是,将该第6个第一子点云数据簇中的最高点作为第一点云数据簇中的局部最高点。如果所述预设数量为4,则判断该第6个第一子点云数据簇中的最高点是否为与其相邻的任意4个第一子点云数据簇中的最高点,如果是,将该第6个第一子点云数据簇中的最高点作为第一点云数据簇中的局部最高点。在选择与所述第6个第一子点云数据簇相邻的4个第一子点云数据簇时,可以是在1、2、3、5、7、9、10、11中任意选择4个,较优的,选择与该第6个第一子点云数据簇相邻的上、下、左、右的第一子点云数据簇,即标号为2、5、7、10的第一子点云数据簇。

每个第一点云数据簇中的局部最高点可以是一个,也可以是多个,每个局部最高点可能对应人体的头部。

实施例6:

在上述各实施例的基础上,在本发明实施例中,所述如果局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点第二点云数据簇包括:

根据该局部最高点及预设的圆柱体半径,确定圆柱体,将位于所述圆柱体内的所有点云数据确定为第二点云数据簇。

在本发明实施例中,在根据该局部最高点,确定包含该局部最高点的第二点云数据簇时,具体的可以是根据该局部最高点及预设的圆柱体半径,确定圆柱体,将位于所述圆柱体内的所有点云数据确定为第二点云数据簇。所述圆柱体的直径可以与第一阈值相同,也可以不同,当圆柱体的直径与第一阈值相同时,所述第一阈值如果为30cm,则所述预设的圆柱体半径为15cm。所述预设的圆柱体直径大于预设的聚类半径。

实施例7:

为了进一步提高人体检测的准确性,在上述各实施例的基础上,在本发明实施中,所述获取该第二点云数据簇对应图像的目标hog值之前,所述方法还包括:

针对每个第二点云数据簇,识别该第二点云数据簇中的点云的数量;

将点云的数量小于预设的第二阈值的第二点云数据簇删除。

在本发明实施例中,电子设备中保存有预设的第二阈值。当确定了第二点云数据簇后,可以针对每个第二点云数据簇,识别该第二点云数据簇中的点云的数量,判断所述点云的数量是否小于预设第二阈值,如果是,则将点云的数量小于预设的第二阈值的第二点云数据簇删除。

当所述第二点云数据簇中的点云数量小于预设的第二阈值时,可能对应人举起了胳膊,则将该胳膊对应的第二点云数据簇删除,并不影响对人体的检测。

图3为本发明实施例7提供的一种人体检测过程示意图,该过程包括以下步骤:

s301:针对待检测的初步确定为人体的第一点云数据簇,识别每个第一点云数据簇中的最高点和最低点,如果第一点云数据簇中的最高点高于设定的最高点阈值,或最低点低于设定的最低点阈值,则将该第一点云数据簇删除。

s302:将剩余的所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇。

s303:根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点,如果两个局部最高点在水平面上的投影距离小于设定的第一阈值,将该两个局部最高点所在的第一子点云数据簇对应的区域内的第一子点云数据簇合并为第二点云数据簇,如果局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点的第二点云数据簇。

s304:针对每个第二点云数据簇,识别该第二点云数据簇中的点云的数量,将点云的数量小于预设的第二阈值的第二点云数据簇删除。

s305:针对剩余的每个第二点云数据簇,获取该第二点云数据簇对应图像的目标方向梯度直方图hog值,根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像。

实施例8:

为了进一步提高人体检测的准确性,在上述各实施例的基础上,在本发明实施中,所述针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标hog值包括:

针对每个第二点云数据簇,识别该第二点云数据簇中的最高点,根据所述最高点及预设的高度与宽度的比例关系,确定所述第二点云数据簇对应的图像中的人体区域;

获取所述人体区域的目标hog值。

在本发明实施例中,当确定了每个第二点云数据簇后,如果x轴与y轴所构成的平面为地平面,可以将该第二点云数据簇向yoz平面或者xoz平面做二维投影,识别投影后的第二点云数据簇中的最高点,根据该最高点以及预设的高度与宽度的比例关系,确定所述第二点云数据簇对应的图像中的人体区域,获取所述人体区域的目标hog值。每一个最高点认为是人的头部,最高点越高,则对应的人体区域越大。

在确定所述第二点云数据簇对应的图像中的人体区域时,具体的也可以是识别每个第二点云数据簇中的最高点,根据所述最高点及预设的高度与宽度的比例关系,确定矩形区域,将该矩形区域向深度相机方向延伸预设的长度,形成三维图像,将该三维图像向yoz平面或者xoz平面做二维投影,将所述二维投影确定为所述第二点云数据簇对应的图像中的人体区域。所述预设的长度为10cm。

图4为本发明实施例提供的一种人体检测结果示意图,该图4中的每个人体都被其对应的圆环套住,说明该人体被检测出来。

图5为本发明实施例1提供的一种人体检测装置结构图,所述装置包括:

划分模块51,用于针对待检测的初步确定为人体的第一点云数据簇,将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇;

确定模块52,用于根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点,如果两个局部最高点在水平面上的投影距离小于设定的第一阈值,将该两个局部最高点所在的第一子点云数据簇对应的区域内的第一子点云数据簇合并为第二点云数据簇,如果局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点的第二点云数据簇;

检测模块53,用于针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标方向hog值,根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像。

所述确定模块52,还用于获取待检测的图像的点云数据;采用ransac算法在所述图像的点云数据中确定地平面的点云数据,在所述图像的点云数据中删除所述地平面的点云数据;在删除地平面的点云数据后的点云数据中按照预设聚类半径进行聚类,将聚类后得到的每个类别确定为第一点云数据簇。

图6为本发明实施例提供的一种人体检测装置结构图,在图5的基础上,所述装置还包括:

第一识别删除模块61,用于识别每个第一点云数据簇中的最高点和最低点;如果第一点云数据簇中的最高点高于设定的最高点阈值,或最低点低于设定的最低点阈值,则将该第一点云数据簇删除。

所述划分模块51,具体用于将所述第一点云数据簇按照预设的长度和宽度将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇,其中所述预设的长度和宽度小于人体立方体对应的长度和宽度。

所述确定模块52,具体用于针对每个第一子点云数据簇中的最高点,判断该第一子点云数据簇中的最高点是否为与其相邻的预设数量的第一子点云数据簇中的最高点,如果是,将该第一子点云数据簇中的最高点作为第一点云数据簇中的局部最高点。

所述确定模块52,具体的根据该局部最高点及预设的圆柱体半径,确定圆柱体,将位于所述圆柱体内的所有点云数据确定为第二点云数据簇。

所述装置还包括:

第二识别删除模块62,还用于针对每个第二点云数据簇,识别该第二点云数据簇中的点云的数量;将点云的数量小于预设的第二阈值的第二点云数据簇删除。

所述检测模块53,具体用于针对每个第二点云数据簇,识别该第二点云数据簇中的最高点,根据所述最高点及预设的高度与宽度的比例关系,确定所述第二点云数据簇对应的图像中的人体区域;获取所述人体区域的目标hog值。

本发明实施例公开了一种人体检测方法及装置,所述方法包括:针对待检测的初步确定为人体的第一点云数据簇,将所述第一点云数据簇按照预设的规则划分为多个第一子点云数据簇;根据每个第一子点云数据簇中的最高点,确定第一点云数据簇中的每个局部最高点,如果两个局部最高点在水平面上的投影距离小于设定的第一阈值,将该两个局部最高点所在的第一子点云数据簇对应的区域内的第一子点云数据簇合并为第二点云数据簇,如果局部最高点在水平面上的投影与任意其他局部最高点在水平面上的投影的距离都不小于设定的第一阈值,根据该局部最高点,确定包含该局部最高点的第二点云数据簇;针对每个第二点云数据簇,获取该第二点云数据簇对应图像的目标方向梯度直方图hog值,根据预先训练的预测模型,确定所述第二点云数据簇对应的图像是否为人体图像。由于在本发明实施例中,针对待检测的初步确定为人体的第一点云数据簇,以第一点云数据簇中的局部最高点在水平面上的投影距离进行再聚类,确定第二点云数据簇。通过获取第二点云数据簇对应图像的目标hog值,确定所述第二点云数据簇对应的图像是否为人体图像。这种确定人体的方式,更能区分两人甚至多人前后平行重叠站立的情况,提高了人体检测的准确性。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1