谷歌开源:使用MediaPipe在移动设备上进行实时3D对象检测

 

计算机视觉大部分研究都集中在二维对象预测上。虽然2D预测只提供2D边界框,但是通过将预测扩展到3D,可以捕捉到物体在世界上的大小、位置和方向,从而在机器人、自动驾驶车辆、图像检索和增强现实等领域有着广泛的应用。虽然二维目标检测技术已经比较成熟,在工业上得到了广泛的应用,但是由于数据的缺乏和一个类别内目标的形状和外观的多样性,从二维图像中进行三维目标检测是一个具有挑战性的问题。

 

谷歌开源:使用MediaPipe在移动设备上进行实时3D对象检测_第1张图片

 

最近,谷歌宣布发布MediaPipe Objectron,这是一个针对日常对象的移动实时3D对象检测管道。此管道检测二维图像中的对象,并通过机器学习(ML)模型估计其姿势和大小,该模型在新创建的三维数据集上进行训练。Objectron在MediaPipe中实现,这是一个开源的跨平台框架,用于构建管道来处理不同模式的感知数据。Objectron在移动设备上实时计算面向对象的三维边界框。

 

谷歌开源:使用MediaPipe在移动设备上进行实时3D对象检测_第2张图片

从单个图像中检测三维物体。MediaPipe Objectron在移动设备上实时确定日常对象的位置、方向和大小。

 

获取真实世界的三维训练数据

 

虽然有大量的街道场景三维数据,但由于对依赖于激光雷达等三维捕获传感器的自动驾驶汽车的研究的普及,对于更细粒度的日常物体,带有地面真实三维注释的数据集极其有限。为了解决这一问题,我们利用移动增强现实(AR)会话数据开发了一种新的数据管道。随着ARCore和ARKit的到来,数以亿计的智能手机现在具备了AR功能,并能够在AR会话期间捕获附加信息,包括相机姿势、稀疏的3D点云、估计的照明和平面。为了标记地面真实数据,我们构建了一个新的用于AR会话数据的注释工具,它允许注释器快速标记对象的3D边界框。此工具使用拆分屏幕视图显示二维视频帧,其中左侧是覆盖的三维边界框,右侧是显示三维点云、相机位置和检测到的平面的视图。注释器在三维视图中绘制三维边界框,并通过查看二维视频帧中的投影来验证其位置。对于静态对象,我们只需要在一个帧中标注一个对象,然后利用AR会话数据中的地面真像摄像机姿态信息将其位置传播到所有帧中,这使得该过程具有很高的效率。

 

三维物体检测的真实世界数据标注。右:三维边界框在三维世界中使用检测到的曲面和点云进行注释。左:带注释的三维边界框的投影覆盖在视频帧的顶部,使验证注释更容易。

 

AR合成数据生成

 

一种流行的方法是用合成数据来补充真实数据,以提高预测的准确性。然而,这样做的尝试通常会产生糟糕的、不现实的数据,或者在真实感渲染的情况下,需要大量的努力和计算。我们的新方法,称为AR合成数据生成,将虚拟对象放置到具有AR会话数据的场景中,这允许我们利用相机姿势、检测到的平面表面和估计的照明来生成物理上可能的位置,并使用与场景匹配的照明。这种方法可以生成高质量的合成数据,其中的渲染对象尊重场景几何体并无缝地适应真实背景。将真实数据与AR合成数据相结合,可以使精度提高10%左右。

AR合成数据生成的一个例子。虚拟的白棕色麦片盒被渲染成真实的场景

 

一种用于三维目标检测的ML流水线

 

我们建立了一个单阶段模型,从一个单一的RGB图像预测物体的姿态和物理尺寸。模型主干具有基于MobileNetv2的编码器-解码器体系结构。我们采用多任务学习方法,通过检测和回归联合预测物体的形状。形状任务根据可用的地面真值注释(例如分割)预测对象的形状信号。如果训练数据中没有形状批注,则此选项是可选的。对于检测任务,我们使用带注释的边界框并将高斯拟合到框中,中心位于框的质心,标准差与框的大小成正比。检测的目标是预测这种分布,其峰值代表物体的中心位置。回归任务估计八个边界框顶点的二维投影。为了获得边界框的最终三维坐标,我们使用了一种建立良好的姿态估计算法(EPnP)。它可以在不预先知道物体尺寸的情况下恢复物体的三维边界盒。给定三维包围盒,可以方便地计算出物体的姿态和大小。下图显示了我们的网络架构和后处理。该模型足够轻,可以在移动设备上实时运行(Adreno 650移动GPU上的每秒26帧)。

 

谷歌开源:使用MediaPipe在移动设备上进行实时3D对象检测_第3张图片

三维目标检测的网络结构和后处理。

谷歌开源:使用MediaPipe在移动设备上进行实时3D对象检测_第4张图片

网络样本结果-[左]原始二维图像估计边界框,[中]目标检测高斯分布,[右]预测分割掩模。

 

MediaPipe中的检测与跟踪

 

当该模型应用于移动设备捕获的每一帧时,由于在每一帧中估计的3D包围盒的模糊性,它可能会受到抖动的影响。为了缓解这种情况,我们采用了最近在我们的二维目标检测和跟踪解决方案中发布的检测+跟踪框架。此框架减少了在每一帧上运行网络的需要,允许使用更重的模型,因此更精确,同时保持管道在移动设备上的实时性。它还跨帧保留对象标识,并确保预测在时间上一致,从而减少抖动。为了进一步提高移动管道的效率,我们每几帧只运行一次模型推断。下一步,我们采取预测,并跟踪它随着时间的推移使用的方法,在我们以前的博客中描述的即时运动跟踪和运动静像。当进行新的预测时,我们将检测结果与基于重叠区域的跟踪结果合并。为了鼓励研究人员和开发人员基于我们的产品线进行实验和原型制作,我们正在MediaPipe中发布我们的设备内ML产品线,包括端到端的演示移动应用程序,以及我们针对鞋和椅子两类产品的培训模型。我们希望与广大的研究和开发社区分享我们的解决方案,将激发新的用例、新的应用程序和新的研究工作。在未来,我们计划将我们的模型扩展到更多的类别,并进一步提高我们的设备上性能。

 

框架地址:

https://github.com/google/mediapipe/

项目地址:

https://github.com/google/mediapipe/blob/master/mediapipe/docs/objectron_mobile_gpu.md

更多论文地址源码地址:关注“图像算法”微信公众号

你可能感兴趣的:(图像算法)