zoukankan      html  css  js  c++  java
  • 利用RGB-D数据进行人体检测 带dataset

    利用RGB-D数据进行人体检测

    LucianoSpinello, Kai O. Arras

    摘要

           人体检测是机器人和智能系统中的重要问题。之前的研究工作使用摄像机和2D或3D测距器。本文中我们提出一种新的使用RGB-D的人体检测方法。我们从HOG( Histogram of OrientedGradients)描述子获得灵感,设计了一个在稠密深度数据中检测人体的方法,叫做深度方向直方图HOD(Histogram of Oriented Depths)。HOD对局部深度变化的方向进行编码,依靠在预知深度信息的尺度空间的搜索来获得检测过程的3倍加速。随后我们提出了Combo-HOD,一个联合了HOD和HOG的RGB-D检测器。实验包括几个检测方法的综合比较,包括HOG,几个HOD的变种,一个用于3D点云的几何人体检测器,以及一个基于Haar特征的AdaBoost检测器。在最远8米范围内,等错误率为85%的情况下,实验表明HOD和Combo-HOD在用Kinect传感器获得的室内环境真实数据上具有鲁棒性。

    1 引言

           人体检测是很多机器人、交互系统和智能车辆的重要而基础组件。经常用于人体检测的传感器是摄像机和测距仪(Range Finder)。这两种传感器各有利弊,随着可靠而廉价的RGB-D传感器逐渐变得可用,只利用其中一种方式进行检测的方法将被淘汰。

           在机器人领域中,很多研究者利用距离数据进行人体检测。早期的研究工作利用2D距离数据[1][2]。利用3D距离数据进行人体检测是较新的问题。Navarro等[3]将3D数据分割为虚拟的2D切片,从中找到地平面上的显著垂直目标并用一系列SVM分类器特征判断是否人体。Bajracharya等[4]从立体视觉的点云中检测人体,利用固定人体模型对点云中垂直目标的一系列几何和统计特征进行判断。但这些检测方法都需要一个地平面假设,Spinello等[5]利用部分投票方法和可学习最优特征集的自顶向下的验证过程克服了这一限制。

           在计算机视觉领域中,从单张图片中检测人体的问题也已研究了很长时间。最近的研究工作如[6-10]中使用基于部件的投票方法和滑动窗口搜索方法。在前一个方法中,人体各部分独立的对人体进行投票;在后一个方法中,固定尺寸的检测窗口在图像的不同尺度空间上滑动来对每个区域进行分类。还有的研究多模型人体检测问题:[11]提出了一个可训练的2D距离数据和摄像机系统;[12]使用立体系统来联合图像数据、差异映射和光流;[13]使用灰度图和低分辨率的time-of-flight摄像机。

           本论文对人体检测领域的贡献如下:

           (1) 我们提出了一个强壮的基于稠密深度信息的人体检测方法,叫做HOD ( Histogram of Oriented Depths),灵感来自HOG方法和Kinect RGB-D传感器的深度特征。

           (2) 我们基于一个训练好的尺度到距离的映射和一种积分图[14]的新的使用方式进行预知深度信息的尺度空间搜索。

           (3) 我们提出了Combo-HOD,一个新的利用RGB-D数据进行人体检测的融合方法。

           (4) 实验包括几个检测方法的综合比较,包括HOG,几个HOD的变种,一个用于3D点云的几何人体检测器[5],以及一个基于Haar特征的AdaBoost检测器[15]

           注意我们的方法既不依赖于背景学习也不依赖于地平面假设。

           论文的结构如下:Kinect传感器特性在下一节进行讨论,随后的SectionⅢ是HOD描述子以及在RGB-D数据中检测人体的Combo-HOD方法的描述。Section Ⅳ中描述了数据集、性能度量方法和对比实验。SectionⅤ是总结。

    图1,在RGB-D数据(右图)和彩色图像数据(左图)上检测人体。此方法既不依赖于背景学习也不依赖于地平面估计。

    2 KINECT传感器特性

           我们在此节中分析和讨论实验中用到的微软Kinect RGB-D传感器的特性。Kinect传感器包括一个红外摄像机(IR Camera),一个红外发射器(IR Projector),和一个标准彩色摄像机,利用红外结构光原理[16]来测量深度。深度图分辨率为640*480,每个像素的位深度为11位。有趣的是,并不是所有的位都用来编码深度信息:超出距离范围的深度值被定位Vmax = 1084,深度最小值为Vmin = 290,所以,只有794个深度值(10位)来编码每个像素的深度信息。

           原始深度值v和以米为单位的距离d之间的关系为[17]

    其中B = 0.075m,对应红外发射器和红外摄像机之间的距离(基线),Fx是红外摄像机在水平方向的焦距长度(Focal Length)。d如果是负值则被忽略。公式(1)是双曲线关系,类似立体摄像机系统中点到点的对应关系。图2显示了v和d的关系,以及说明书[18]中给出的传感器可以可靠工作的合理距离范围(Adequate Play Space)。空间被限制在设备前最远2m到2.5m。

    图2,Kinect深度数据的特点。蓝色曲线是深度图中的像素值与以米为单位的距离值间的关系。红色线表示传感器的最小测量深度。绿色区域是Kinect说明书中建议的合理使用范围,黄色区域是本文中用来检测人体时使用的距离范围。注意到我们是在建议距离范围的几乎4倍空间内进行人体检测,所以深度分辨率变得相当粗糙。

     

           本文中,我们在0到8米的范围内检测人体,这几乎达到了建议使用范围的4倍距离,所以具有挑战性的是在深度分辨率上的损失。86.9%的深度值被用来编码0到2.5米间的深度信息,剩下仅有140个值来编码2.5到8米间的深度信息。这种效应,来自公式(1)的双曲线特征,在图3的两个不同距离的人的点云图上可以明显看出来。在前方大约2米处的人的形状很详细,而远处的目标人体仅有几个点来描述,非常粗糙。这使得传感器远处目标的3D几何信息严重损失

           另一个效应,尤其在远距离上,是对物体表面材料的敏感性。强红外吸收表面(IR-absorbing surface)会使发出去的红外返回时变得非常弱,这会导致块状的深度信息丢失,在图3的右图中有展示。

    图3,左图:双曲分辨率损失效应。传感器前不同距离的两个人的侧视图。近处的一个人被描述地精确而详细。越往远处量子化越严重,人体的形状信息损失严重。在这种数据上用于人体检测的几何方法将表现非常差。右图:远处的红外吸收表面会导致大量块状的深度数据丢失(如最左边的人的上半身,白色表示深度数据丢失)。

    3 利用RGB-D数据进行人体检测

           在此节中介绍我们提出的检测器。首先总结一下普通图像的HOG检测器,然后介绍HOD,一种灵感来自HOG的用于稠密深度数据的新方法,最后介绍结合两种数据的Combo-HOD方法。

    A. HOG : Histograms of Oriented Gradients

           由Dalal和Triggs[6]提出的HOG方法是目前应用最广的视觉人体检测方法[9][10]。此方法使用一个固定尺寸的检测窗口,窗口被划分为以cell为单位的网格。每个cell中像素的梯度方向被统计到一个一维直方图中。直观的表述就是局部外观和形状可以被局部梯度的分布很好的描述,而不需要知道这些梯度在cell中的精确位置。将一组cell聚合成block,进行局部对比度归一化。将所有block中的直方图串接起来,构成检测窗口的描述子向量,此描述子向量被用来训练线性SVM分类器。检测人体时,在图像的不同尺度空间滑动检测窗口,计算每个位置和尺度的HOG描述子,然后用学习好的SVM分类器进行分类,详见论文[6]

    B. HOD : Histograms of Oriented Depths

           基于HOG的思想,我们提出一种新的用于稠密深度数据的人体检测器HOD。

           1)操作原理:HOD在深度图像上遵循与HOG相同的处理流程。包括将固定窗口划分为cell,计算每个cell的描述子,将深度方向梯度统计到一维直方图中。四个cell组成一个block,使用L2-Hys方法进行块归一化,从而对深度噪声具有更好的鲁棒性。直观的表达就是局部深度变化数组可以很好的描述局部3D形状和外表。最后得到的HOD特征向量被用来训练一个软线性SVM分类器,使用论文[6]中给出的两部训练方法。

           2)深度图像处理:在SectionⅡ中已讨论过,原始深度图对真实距离的编码非常不均匀。对于远处的目标,一个深度值可以对应15cm的距离变化。这对于HOG/HOD框架非常重要,因为目标轮廓周围的block对结果的影响权重非常大。特别是那些对应SVM超平面的有最高正权重的block。所以,我们对带有公式(1)的原始深度图进行预处理来加强前景背景的分割。为了加强梯度计算的数值稳定性,将得到的以米为单位的距离值乘以M/Dmax,其中M = 100,是常数增益,Dmax = 20,是以米为单位的最大距离。此预处理步骤类似用于加强对比度的伽马校正的思想。我们可以利用关于传感器的一些知识来消除对模型的非线性影响。

           3)预知深度信息的尺度空间搜索:多数视觉检测方法例如HOG都使用在图像尺度空间的搜索来发现目标。在HOD方法中,可以利用深度信息来引导此搜索过程。有了深度信息进行辅助预测,搜索会更加高效精确

           我们改进搜索过程的思想是提出一个快速判断深度图中每个位置对应的尺度的方法。首先,从训练数据集中计算出平均人体高度Hm,数据集中地面位置和每个样本的高度都做了精确标注。此信息用来计算一个尺度到深度的映射(如图4中所示):

    Fy是红外摄像机在垂直方向的焦距长度,Hm = 1.74m是人体的平均高度,Hw是检测窗口在尺度为1时的高度(单位为米)。公式(2)左边的部分表示高度为Hm的半平面在距离d处垂直于摄像机的图像投影。为了限制内存使用,每1/3尺度进行一次量化。计算深度图中每个像素的尺度s,形成一个尺度映射,从中可以得到所有尺度的列表S。此列表S只包括图像中人体可能存在位置的尺度。此方法避免了在图像金字塔的所有尺度进行穷尽搜索。

           每个图像对应一个尺度列表S,然后进行尺度空间的搜素。搜索时,只有当搜索窗口的深度信息对应列表S中的尺度时,才拿到SVM分类器中进行分类。

           解决这一问题的简单做法是选择尺度列表S中的一个尺度s,看检测窗口中每个位置的深度值是否与s兼容。这种方法需要扫描搜索窗口中的每个位置并测试是否有至少一个深度值与s兼容,计算复杂度很高,尤其是遇到大尺度时。

           通过使用积分图[14],我们提出一种更快速地可在O(1)时间内完成的测试尺度是否兼容的方法。积分图是一种可快速计算矩形区域内像素值和的技术。积分图中每个点的像素值是原图中该点左上方所有点像素值的和。构建积分图的过程耗时O(N),N是原图的尺寸大小。使用积分图的主要优点是可通过4次加减法快速计算面积积分。将此原理扩展到integral tensor,即多层积分图,层数与S中的尺度个数相同。integral tensor中的每层是一个二进制图像,其非白(non-white)像素对应该层的尺度。这样就可以高效地测试给定搜索窗口是否包含某一尺度的至少一个像素。integral tensor的构建每张图片需要进行一次。

           检测时,选择S中的一个尺度s。对于每个搜索窗口位置,用integral tensor中对应尺度s的层对搜索窗口进行面积积分。如果结果大于0,说明至少有一个与尺度s兼容的深度像素,则计算HOD描述子;否则该检测窗口不被考虑,继续测试下一个窗口。

    图4,反应米制深度与检测窗口尺度关系的量化回归曲线。曲线的最大尺度限制在20,以避免过大的检测窗口。

     

     

    C. Combo-HOD : RGB-D人体检测

           上面介绍的两种检测方法都是单独考虑彩色图或深度图,为了利用RGB-D数据,我们提出Combo-HOD,一种新的联合两种数据的检测方法。这种结合意义重大:深度数据对光照变化具有不变性,但会受到返回信号强度过低的影响,并且分辨率有限。彩色图像数据颜色和纹理丰富,分辨率高,但在非理想光线下很容易变得不可用

           Combo-HOD是分别在图像数据上训练一个HOG检测器,在深度数据上训练一个HOD检测器。此方法依赖于上面介绍的预知深度信息的尺度空间搜索:每个检测窗口都有一个对应的兼容尺度,在深度图上计算HOD描述子,在彩色图的同一窗口上计算HOG描述子。当无深度数据可用时,检测器自动退化为标准HOG检测器。需要一个标定程序来计算将两种图片对应起来的外部参数。

           当HOG和HOD描述子都经过分类后,就该进行信息融合了。决策函数由HOD或HOG描述子和SVM超平面加偏移的点积的符号来给定。为了融合这两个信息,我们根据论文[19]中Platt等提出的方法,对每个SVM的输出拟合一个sigmoid函数,将输出值映射到概率。来自HOD检测器的概率pD和HOG检测器的概率pG通过以下滤波器进行融合:

    p是最终得到的检测出人体的概率, 是验证集中错误率相同时HOD出错个数占HOG出错个数的比率, 。

     

    4 实验

           为了对比和评价不同的检测方法,我们收集了大量室内人体数据。数据集是在一个大学食堂午餐时间的大厅内收集的。此外还有一个在其他大学建筑内收集的数据集,专门用来产生背景样本(负样本)。这是为了避免检测器学习到食堂大厅的背景,尤其是因为收集数据时传感器是固定的。数据集进行了人工标注,包括2D深度图中的目标包围盒和可见状态(全可见、部分遮挡)。在1088张图片中总共标注了1648个人体实例。数据集可在作者的主页上获得。

           使用的评价标准有精度-召回率(Precision-Recall)和等错误率(Equal Error Rate, ERR)。当检测结果与人工标注的目标重叠大于40%时,认为是正确检测(True Positive)。根据论文[9]中的不奖励不惩罚(no-reward-no-penalty)原则,若有检测结果与部分遮挡的人体匹配,既不记录为正确检测也不记录为误报。

           用来训练所有检测器的训练集包括1030个人体深度数据样本(及其水平翻转镜像)和5000个从背景数据集中随机选出的负样本。

    结果

           实验将新的HOD检测器和其他基于深度的检测方法,基于视觉的检测方法,以及新的多模型RGB-D检测方法Combo-HOD进行了比较。

           考虑到Kinect数据深度量化的重要性,我们评价了两种深度数据:HOD11,考虑全部可用的11位深度范围;HOD8,只使用其中8位深度数据。还将使用其他预处理技术的HOD检测器与Section Ⅲ-B中的预处理方法进行比较,考虑到了计算机视觉中的典型处理技术,包括对比度增强,光线均衡(平方根操作、对数操作)以及不做任何预处理。

           图5中的左图清楚地展示了HOD11在整个精度-召回范围内都比HOD8表现好,这说明多出的3位深度编码帮助从背景中区分出人体。在深度数据上的所有预处理操作也都起到了作用(结果未在图5中展示)。对于HOD11,最好的预处理方法是Section Ⅲ-B中描述的方法,证明了具有优秀理论的技术比启发式算法要好。特别地,HOD11的等错误率EER为83%,而最好的HOD8的EER为75%。

           谈论到RGB-D数据时,一个基本问题是深度信息对于纯视觉检测技术的贡献有多大。为估计这一问题,我们考虑使用纯RGB数据的HOG检测器和由Viola和Jones[15]最初提出的Haar-based Adaboost检测器(HA)。在图5左图中可看到,这两种方法的表现都没有HOD11和Combo-HOD好,HOG方法的EER为73%,HA方法(未在图5中展示)的EER为13%。造成此结果的主要原因是光照,拍摄数据集的环境光线不太好。黑暗区域导致了移动人体的模糊图像,Kinect RGB摄像机自动延长快门时间来产生更亮的图片。有阳光直射的背景区域会产生对比度差的饱和图像。这些现象也会导致AH方法的失败,因为Haar小波对光线变化不具备不变性。结果说明对于在变化条件下工作的人体检测系统来说,单纯使用基于视觉的检测方法已不够用,需要使用深度信息来辅助进行检测。

    图5左图:几种检测方法的精度-召回率曲线。表现最好的是结合了HOD和HOG的RGB-D检测器Combo-HOD。有两种深度数据的HOD检测器,8bit深度数据和11bit深度数据。HOD11是表现最好的基于深度的检测方法。基于视觉的HOG检测器由于光照条件表现不是很好。BUTD检测器由于Kinect数据的双曲线深度分辨率损失表现不是很好。

           同样重要的是与几何方法的对比。因此我们将HOD11与BUTD[5]进行了对比,BUTD是一个适用于稀疏3D数据(例如来自Velodyne传感器的点云数据)的人体检测器。结果HOD11表现稍微好点(见图5中图),EER为72%,但BUTD也只是差一点点,在召回率为53%时精度仍可以达到98%。然而,BUTD很大程度上依赖于形状信息,因此在距离较远处产生分辨率损失时会受很大影响。然而,在分辨率很好的近处,两个检测器在ERR为86%时表现相近(见图5中图)。

    图5中图:在Kinect建议的最大2.5米使用范围内BUTD和HOD11的对比,两种方法性能表现相似。

           图5右图展示了HOD检测器的计算性能。我们比较了使用预知深度信息的尺度空间搜索时每张图片测试的尺度个数,和没有深度信息时(标记为HOD-)测试的尺度个数。HOD-使用尺度增量为5%的金字塔搜索,不考虑图像内容,不像HOD中尺度和深度之间存在映射,每张深度图对应一个映射。在整个数据集的图像上,测试的尺度个数降低了大约3倍,因此相对于HOD-每张图片的处理时间减少了大约3倍,见图5右图。此算法完全在GPU上实现,可在Nvidia GTX480显卡上实时处理Kinect的RGB-D数据流(2*640*480,30fps)。

    图5右图:使用预知深度信息的尺度空间搜索时每张图片测试的尺度个数,和没有深度信息时(标记为HOD-)测试的尺度个数。尺度空间搜索加速了3倍。

           最终,和所有其他方法对比,本文提出的Combo-HOD检测器表现最好。Combo-HOD方法在图5中EER值最高,为85%(难道EER越高越好吗)。这说明联合使用深度信息和彩色图像信息可以提供更广泛的条件变化范围,使人体检测变得更可靠。多模态数据可在单一检测器无法处理时帮助改善人体检测。

           图6是Combo-HOD检测器的检测结果。图中显示了几个在不同距离上检测出来的人体,其中包含一些部分遮挡和出错情况。

    图6,Combo-HOD检测器在RGB-D数据上的检测结果。在不同的部分遮挡、视觉和深度情况下进行人体检测。当两种传感器的数据都不可用时会发生漏报(False Negative),当两种数据都有杂波时会发生误报(FalsePositive)。第三列中,在无深度数据可用时仍可以检测出人体。我们的方法既不依赖于背景学习也不依赖于地平面估计。

    5 总结

           本文中介绍了Combo-HOD,一种在RGB-D数据中检测人体的新方法。文中首先介绍了所用到的Kinect数据的特点,对后续的研究有指引作用。深度方向直方图HOD对局部方向变化进行编码,依靠预知深度信息的尺度空间搜索可达到3倍的加速。然后将HOD和HOG结合,提出在RGB和深度数据上进行人体检测的Combo-HOD方法。在Kinect建议操作空间的4倍距离内达到等错误率EER为85%。通过对比试验深入分析了深度数据对纯视觉方法和基于形状的3D方法的贡献。Combo-HOD比其他检测方法都要优秀,并且可在GPU上达到30fps的实时检测。

    论文下载http://download.csdn.net/detail/masikkk/6947075

    作者Dr. Luciano Spinello 个人主页http://www.informatik.uni-freiburg.de/~spinello/index.html

    论文中用到的RGB-D数据集下载http://www.informatik.uni-freiburg.de/~spinello/RGBD-dataset.html

  • 相关阅读:
    Java正则表达式学习 贪婪 勉强 侵占
    HTML meta
    URLConnection类
    Sql Server 查看所有存储过程或视图的位置及内容
    创建你的第一个游戏Pong——挑战:改进您的Pong游戏
    解决锚点在IE8中失效
    辅助类——掌握内容管道
    辅助类——随机函数(RandomHelper)辅助类
    创建你的第一个游戏Pong——疑难解答
    辅助类——概览
  • 原文地址:https://www.cnblogs.com/alexanderkun/p/4593689.html
Copyright © 2011-2022 走看看