视频介绍:使用 MediaPipe 在移动设备上进行实时 3D 对象检测
对象检测是一个广泛研究的计算机视觉问题,但大部分研究都集中在2D 对象预测上。虽然 2D 预测仅提供 2D 边界框,但通过将预测扩展到 3D,人们可以捕捉物体在世界中的大小、位置和方向,从而在机器人、自动驾驶汽车、图像检索和增强现实等领域得到广泛应用。尽管 2D 物体检测相对成熟并已在行业中得到广泛应用,但由于缺乏数据且类别内物体的外观和形状具有多样性,因此从 2D 图像中检测 3D 物体是一个具有挑战性的问题。
今天,我们宣布发布 MediaPipe Objectron,这是一种用于日常物体的移动实时 3D 物体检测管道。该管道检测 2D 图像中的对象,并通过在新创建的 3D 数据集上训练的机器学习 (ML) 模型估计它们的姿势和大小。在MediaPipe 中实现,这是一个开源跨平台框架,用于构建管道以处理不同模态的感知数据,Objectron 在移动设备上实时计算面向对象的 3D 边界框。
虽然街景有大量的 3D 数据,但由于对依赖 3D 捕获传感器(如LIDAR)的自动驾驶汽车的研究的普及,数据集具有用于更细粒度的日常对象的地面实况 3D 注释非常有限。为了克服这个问题,我们开发了一种使用移动增强现实(AR) 会话数据的新型数据管道。随着的到来ARCORE和ARKit,数以百万计的智能手机现在有AR能力和捕捉AR会话期间的额外信息,包括摄像头的姿势,稀疏的能力三维点云,估计照明和平面。
为了标记真实数据,我们构建了一个新颖的注释工具,用于 AR 会话数据,它允许注释者快速标记对象的 3D 边界框。此工具使用分屏视图来显示 2D 视频帧,其左侧是重叠的 3D 边界框,右侧是显示 3D 点云、相机位置和检测到的平面的视图。注释者在 3D 视图中绘制 3D 边界框,并通过查看 2D 视频帧中的投影来验证其位置。对于静态对象,我们只需要在单个帧中注释一个对象,并使用来自 AR 会话数据的地面实况相机位姿信息将其位置传播到所有帧,这使得该过程非常高效。
一种流行的方法是用合成数据补充现实世界的数据,以提高预测的准确性。然而,这样做的尝试通常会产生糟糕的、不真实的数据,或者在照片级渲染的情况下,需要大量的努力和计算。我们的新方法称为 AR 合成数据生成,将虚拟对象放置到具有 AR 会话数据的场景中,这使我们能够利用相机姿势、检测到的平面和估计的照明来生成物理上可能的位置并使用与场景匹配的照明. 这种方法产生高质量的合成数据,其中渲染对象尊重场景几何形状并无缝融入真实背景。通过结合真实世界数据和 AR 合成数据,我们能够将准确率提高约 10%。
我们构建了一个单阶段模型,用于从单个 RGB 图像预测对象的姿势和物理尺寸。模型主干具有基于MobileNetv2的编码器-解码器架构. 我们采用多任务学习方法,通过检测和回归联合预测对象的形状。形状任务根据可用的地面实况注释(例如分割)来预测对象的形状信号。如果训练数据中没有形状注释,则这是可选的。对于检测任务,我们使用带注释的边界框并将高斯拟合到框上,中心在框质心处,标准偏差与框大小成正比。检测的目标是预测该分布,其峰值代表对象的中心位置。回归任务估计八个边界框顶点的二维投影。为了获得边界框的最终 3D 坐标,我们利用了一个完善的姿态估计算法(EPnP)。它可以恢复对象的 3D 边界框,而无需先验了解对象尺寸。给定 3D 边界框,我们可以轻松计算对象的姿势和大小。下图显示了我们的网络架构和后处理。该模型足够轻,可以在移动设备上实时运行(在Adreno 650 移动 GPU上以 26 FPS 运行)。
当模型应用于移动设备捕获的每一帧时,由于在每一帧中估计的 3D 边界框的模糊性,它可能会受到抖动的影响。为了缓解这种情况,我们采用了最近在我们的2D 对象检测和跟踪解决方案中发布的检测+跟踪框架。该框架减轻了在每一帧上运行网络的需要,允许使用更重且因此更准确的模型,同时在移动设备上保持管道实时。它还保留跨帧的对象身份并确保预测在时间上一致,从而减少抖动。
为了进一步提高我们的移动管道的效率,我们每几帧只运行一次模型推理。接下来,我们使用我们之前的博客中描述的即时运动跟踪和Motion Stills方法进行预测和跟踪。当进行新的预测时,我们根据重叠区域将检测结果与跟踪结果合并。
为了鼓励研究人员和开发人员基于我们的管道进行实验和原型设计,我们将在MediaPipe中发布我们的设备上 ML 管道,包括端到端演示移动应用程序和我们训练的两类模型:鞋子和椅子. 我们希望与广泛的研发社区分享我们的解决方案将激发新的用例、新的应用程序和新的研究工作。未来,我们计划将我们的模型扩展到更多类别,并进一步提高我们的设备性能。
联系客服