
# 面向杂乱环境中基于RGB-D的精确三维人体检测与定位

Timm Linder $^{1}$, Dennis Griesser $^{2}$, Narunas Vaskevicius $^{3}$ 和 Kai O. Arras $^{3}$

摘要——本文聚焦于在存在频繁严重遮挡的RGB-D场景中准确检测和定位人体三维质心的问题，这类场景在工业和服务机器人用例中十分常见。近年来，在二维目标检测领域已经取得了巨大进展，这类方法通常在图像空间中以边界框重叠度作为评估标准，而机器人系统往往依赖度量三维世界坐标来完成各类应用，例如跨传感器边界的人体跟踪、社会感知运动规划，或是安全与碰撞避障。本文基于最先进的二维单阶段检测器，研究了如何将坐标鲁棒地提升至三维空间，从而以每秒50帧的速度实现优于现有技术的RGB-D人体检测效果。在来自内部物流仓库的Kinect v2数据集上的评估表明，相较于二维边界框，可能存在更适合该任务的中间表示，例如实例分割掩码或关键点估计。作为另一种策略，我们还将本文方法与近期提出的自下而上三维人体姿态估计方法进行了比较。我们发现，本文的自上而下二维人体检测器可实现更高的最大召回率，而自下而上三维人体姿态估计方法则能达到更高的精度。

## I. 引言

对周边人类的鲁棒跟踪对于内部物流场景中的车辆安全高效运行至关重要。这要求人体检测器能够在度量三维空间中输出鲁棒的检测结果[^1]。本文聚焦于人体质心，因为相比于完整三维边界框，质心更易标注，且足以满足许多不存在机器人与人类直接交互的用例需求——在需要直接交互的场景中，三维关节关键点会是更优的选择。诸如Kinect v2这类飞行时间RGB-D传感器非常适合多种室内环境：它们价格低廉，能提供比同类立体相机系统更优的深度估计，且比激光雷达或二维激光提供更密集的信息。

计算机视觉领域中，基于现代两阶段检测器的二维图像目标检测已经取得了显著进展，例如基于Faster R-CNN的方法[^2] [^3] [^4]。这类方法的变体也已被应用于RGB [^5] 和RGB-D数据[^6] [^7] [^8]中的人体检测。另一方面，SSD [^9] 或YOLO [^10]这类单阶段方法在其后续版本中鲁棒性已得到大幅提升[^11]，[^12]，同时仍能在高帧率下保持实时运行能力。这使得它们对计算资源有限的移动机器人应用颇具吸引力

![Image](images/e49538c94e07b0b1f200ba1af3c3dc5802dfee81d00e3bfeea6d2d0b628bfa8c.jpg)

<div style="text-align: center;">Fig. 1: We want to robustly detect and localize 3D person centroids in RGB-D data from real-world robotics scenarios (bounding boxes are just for illustration).</div>

资源。将这类方法应用于RGB-D数据时面临的挑战是，如何充分利用额外的深度模态，同时仍能受益于在大规模标注RGB数据集上的预训练。大多数所谓的2.5D方法[^13]从二维颜色/深度图像空间的特征表示入手[^8]，[^13] [^14] [^15] [^16] [^17]，以便利用稠密彩色图像实现高召回率，只有少数方法从点云的三维表示开始[^7]。近年来，实时RGB(-D)三维人体姿态估计方法被相继提出[^17]。

### II. 数据集

目前已公开的用于人体检测的Kinect v2数据集多采集自大学校园[^6]、[^18]或医院[^7]的室内外环境。部分数据集在深度信息不可用时缺少人体标注[^6]，还有部分数据集面向包含使用助行器人群的多类别检测任务设计[^7]。为了得到更贴合我们目标领域——场内物流的检测精度评估结果，我们使用一台水平固定在AGV行驶方向、高度为1.5米的Kinect v2传感器采集了自定义数据集。该数据集包含一段在真实仓库中采集、时长跨度为三天的序列，以及一段来自机器人实验室的10分钟较短序列，该实验室配备了典型的仓库货架和托盘搬运车。序列中的多名人员分别穿着食品工业常见的防护服，或是反光安全背心。我们对两个序列的选定部分完成了细致标注：在约1200帧图像中标注了二维边界框，还标注了时长3分钟的三维质心轨迹。标注过程中使用了激光雷达等额外传感器提供辅助。

---

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Average precision at threshold:</td><td style='text-align: center; word-wrap: break-word;'>0.25m</td><td style='text-align: center; word-wrap: break-word;'>0.50m</td><td style='text-align: center; word-wrap: break-word;'>Hz</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>MobilityAids (RGB-CNN) [^7]</td><td style='text-align: center; word-wrap: break-word;'>0.580</td><td style='text-align: center; word-wrap: break-word;'>0.717</td><td style='text-align: center; word-wrap: break-word;'>15</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>YOLO v3 [^12], naive depth</td><td style='text-align: center; word-wrap: break-word;'>0.718</td><td style='text-align: center; word-wrap: break-word;'>0.809</td><td style='text-align: center; word-wrap: break-word;'>50</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>+ instance masks [^4]</td><td style='text-align: center; word-wrap: break-word;'>0.738</td><td style='text-align: center; word-wrap: break-word;'>0.829</td><td style='text-align: center; word-wrap: break-word;'>4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mask R-CNN [^4] + masks</td><td style='text-align: center; word-wrap: break-word;'>0.795</td><td style='text-align: center; word-wrap: break-word;'>0.888</td><td style='text-align: center; word-wrap: break-word;'>4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>RGB-D Pose 3D [^17]</td><td style='text-align: center; word-wrap: break-word;'>0.751</td><td style='text-align: center; word-wrap: break-word;'>0.802</td><td style='text-align: center; word-wrap: break-word;'>2</td></tr></table>

<div style="text-align: center;">Fig. 2: Initial quantitative results for person detection on our annotated 3D test set (without fine-tuning) at two thresholds.</div>

![Image](images/05405b5e99921028daff057ed52df81007eff27adf8710586ba8262d6fceca83.jpg)

<div style="text-align: center;">Fig. 3: Detections of our YOLO v3-based method in blue, Mobility Aids in magenta, RGB-D Pose 3D in red. Upper row shows false alarms of [^7], [^17], lower row a false depth estimate of [^17], which we avoid via instance segmentation.</div>

### III. 实验与初始结果

我们采用了一个简单高效的基线方法（在我们的AGV平台上可达到50Hz运行速度）：使用在MS COCO上训练得到的YOLO v3 RGB检测器[^12] [^19]。本次实验中我们没有在自有数据上进行微调，因为我们希望分析被测方法对新场景的迁移能力。为了在三维世界坐标系下完成评估，我们采用简单的三维映射方法，即计算二维边界框内深度值的中位数。无需像[^6]、[^8]所提出的方法那样融合深度信息，该方法的性能就已经超过了[^7]的结果，这很可能得益于性能更优的二维检测器。我们引入了可离线获取[^4]但也支持实时处理[^20]的二维实例分割掩码，来提升严重遮挡下深度估计的鲁棒性，如图2所示，平均精度（AP）提升了2个百分点。

既然分割掩码被证明有效，我们好奇：在我们的检测任务中，三维人体关节姿态估计能否取得相近甚至更优的结果。在调整参数提升[^17]的召回率后我们发现，该方法在0.25米的评估阈值下确实能达到更高的最大精度和平均精度（AP），而我们基于YOLO的方法可以获得稍高的召回率，并且在0.5米评估阈值下的AP指标优于[^17]；更多实验细节可参见我们的海报。

从定性角度分析，所有被测方法在我们数据集上面对的主要挑战包括：严重遮挡（由其他人员、AGV或仓库静态物体造成）、光照变化与局部低对比度、运动模糊，以及玻璃和金属表面的反射，在检测阶段融入深度信息可以部分改善这些问题。为了提升严重遮挡下的召回率，我们认为合成遮挡增强[^21]能够提供帮助。不过我们也观察到，反光安全背心偶尔会导致Kinect v2传感器得到完全错误的深度读数。图3展示了各被测方法的检测示例。

## 致谢

本研究受到欧盟“地平线2020”研究与创新项目资助，资助协议编号为732737（ILIAD项目）。

## 参考文献

[^1]: T. Linder, S. Breuers, B. Leibe, and K. O. Arras, “On multi-modal people tracking from mobile platforms in very crowded and dynamic environments,” in ICRA, 2016.

[^2]: R. Girshick, “Fast R-CNN,” in ICCV, 2015.

[^3]: S. Ren, K. He, R. Girshick, and J. Sun, "Faster R-CNN: Towards real-time object detection with region proposal networks," PAMI, vol. 39, no. 6, June 2017.

[^4]: K. He, G. Gkioxari, P. Dollár, and R. Girshick, “Mask R-CNN,” in ICCV, 2017.

[^5]: L. Zhang, L. Lin, X. Liang, and K. He, “Is Faster R-CNN doing well for pedestrian detection?” in ECCV, 2016.

[^6]: O. Mees, A. Eitel, and W. Burgard, “Choosing smartly: Adaptive multimodal fusion for object detection in changing environments,” in IROS, 2016.

[^7]: A. Vasquez, M. Kollmitz, A. Eitel, and W. Burgard, “Deep detection of people and their mobility aids for a hospital robot,” in ECMR, 2017.

[^8]: J. Guerry, B. L. Saux, and D. Filliat, “‘Look at this one’: Detection sharing between modality-independent classifiers for robotic discovery of people,” in ECMR, 2017.

[^9]: W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu, and A. C. Berg, “SSD: Single shot multibox detector,” in ECCV, 2016.

[^10]: J. Redmon, S. K. Divvala, R. B. Girshick, and A. Farhadi, “You only look once: Unified, real-time object detection,” in CVPR, 2016.

[^11]: C. Fu, W. Liu, A. Ranga, A. Tyagi, and A. C. Berg, “DSSD : Deconvolutional single shot detector,” 2017, arXiv:1701.06659.

[^12]: J. Redmon and A. Farhadi, “YOLOv3: An incremental improvement,” 2018, arXiv:1804.02767.

[^13]: Z. Deng and L. J. Latecki, “Amodal detection of 3D objects: Inferring 3D bounding boxes from 2D ones in RGB-D images,” in CVPR, 2017.

[^14]: A. Eitel, J. T. Springerberg, L. Spinello, M. Riedmiller, and W. Burgard, “Multimodal deep learning for robust RGB-D object recognition,” in IROS, 2015.

[^15]: Q. Luo, H. Ma, Y. Wang, L. Tang, and R. Xiong, “3D-SSD: Learning hierarchical features from RGB-D images for amodal 3D object detection,” 2017, arXiv:1711.00238.

[^16]: C. R. Qi, W. Liu, C. Wu, H. Su, and L. J. Guibas, “Frustum PointNets for 3D object detection from RGB-D data,” in CVPR, 2018.

[^17]: C. Zimmermann, T. Welschehold, C. Dornhege, W. Burgard, and T. Brox, "3D human pose estimation in RGBD images for robotic task learning," in ICRA, 2018.

[^18]: N. Wojke, R. Memmesheimer, and D. Paulus, “Joint operator detection and tracking for person following from mobile platforms,” in Proc. International Conference on Information Fusion (FUSION), 2017.

[^19]: T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollár, and C. L. Zitnick, “Microsoft COCO: Common objects in context,” in ECCV, 2014.

[^20]: J. Uhrig, E. Rehder, B. Fröhlich, U. Franke, and T. Brox, “Box2Pix: Single-shot instance segmentation by assigning pixels to object boxes,” in IEEE Intelligent Vehicles Symposium (IV), 2018.

[^21]: I. Sárándi, T. Linder, K. O. Arras, and B. Leibe, “How robust is 3D human pose estimation to occlusion?” in IROS - Workshop on Robotic Co-workers 4.0: Human Safety and Comfort in Human-Robot Interactive Social Environments, 2018.
