移动端实时3D目标检测,谷歌开源出品,安卓下载就能用
选自Google AI Blog
作者:Adel Ahmadyan、Tingbo Hou
机器之心编译
机器之心编辑部
常规目标检测,已经不能满足移动端了,谷歌开源的 3D 实时目标检测了解一下?
目标检测是一个得到广泛研究的计算机_ Z ! C x 4 )视觉问题,但大多数研究侧重于 2H ~ j MD 目标检测。值的注意的是,2D 预测仅能提供 2D 边界框。所以,如果扩展至 3D 预测,人们可以捕捉到目标的大小、位置与方向,从而在机器人、无人驾驶、图像检索和 AR 等领域得到更广泛的应用。
尽管 2D 目标检测已经相当成熟,并在工业界广泛应用,但由于数据缺乏以及同类别下目标形状和外观的多样性,从 2D 转向 3D 目标检测依然会面临较大的挑战。
今日,谷歌宣布推出 MediaPipe Objectron,这是J I R T D q ) $一种适用于日常物体的移动端实时 3D 目标检测 pipeline,它能够检测 2D 图像中的目标,并通过新创( 3 @ h 建 3D 数据集上训练的机器学习模型来估计这些目标的姿态和大小。
具体而言,MediaPipe 是一个用于构建 pipeline 进而处理不同模态感知S N ? A 9数据的跨0 j H & * z ^ C %平台开源框架,Objectron 则在 MediaPipe 中实现,其能够在移动设备上实时计算目标的定向 3D 边界框。
从c 6 $ ! @ ] x单个图像进行 3D 目标检测。MediaPipe 可以在移动端上实} ; 4 $ i时确认目标对象的位置、方向以及大小。) + z Y )整个模型非常精简,速度也? u 7 d Z F非常快,研究者将整套方案都开源了出来。
- 框架地址:https://github.com/google/mediaq P opipe/
- 项目地址:https://githu( W $ *b.com/google/mediapipe/blob/master/mediaZ & 9 a C D K ~pipe/docs/objectron_mobile_gpu.md
MediaPipe 是谷歌去年 7 月份发布的一个多媒体框架,它在安卓、IOS 网页等各种平台上都能应用机器学习媒体模型。昨日 MediaPipe 发布 0.7 版,并加入了移动端试试 3D 检测模型。目前 MediaPipe 包含人脸检测、手部检测、头发分割和视频自动横竖屏转换等功能。
获取真实的 3D 训练数据
随着依赖于 3D 传感器(如 LIDAR)的自动驾驶行业发展普及,现在已有大量街道场景的 3D 数据,但对于日常生活中拥有更细颗粒度的目标来说,有标注的 3D 数据集就非常有限了。所以,为了解决此问题,谷f @ V R i歌团队使用了 AR7 s , ; $ ] F 会话(Session)数据开, 5 I发了一种全新的数据 Pipeline。
此外,随着 ARCore 以及 ARkit 的出现,数亿体量的智能手机拥有了 AR 功能,并且能够通过 AR 会话取获取更多的信息,包括相机姿态、稀疏 3D 点云、光照估计以及平面区域估计。
为了标记真实数据,团队构建了一个全新的标注工具,并且与 ARh u % W & 会话数据一起t | g f使用,该标注工具使标注者得以快速 x r n j @ -标记目标@ D Y )的 3D 边界框。
该工具使用了分屏视图来显示 2D 的视频帧,同时在其左侧叠W / L ?加 3D 边界框,并在右侧显示 3D 点云,摄像机方位以及所检测到的水平面。标注器在 3D 视图中绘制 3D 边界框,并通过查看 2D 视频帧中的投影来验证其位置。
左:带标注的 3D 边界框所形成的投影展示在边界框顶部,更易于验证标注;右:通过检` p i测到的目标表面以及稀疏点云数据,可以为不同的相机姿态标注真实世界中的 3D 边界框。
AR 合成数据
之前常用的方法会根据合成数据补充真实数据,以提高预测的准确性。然而这样的做法通常: J ; % @ , X =会导致质量低下D r ; T、不真实的数据,且如果要执行图像的- K m真实感渲染,又需要更多的计算力。
研究者采用了$ U B 6 /另一种称之为3 b P ] ~ * f b AR 合成数据(AR Synthetic Data Generation)的方法,只要将对象放到 AR 系统的工作场景中,我们就- t @ o w X N K能利用相机姿态估计、水平面检测、光照估计生成物3 @ 2 # i @ E l @理上可能存在的位置及场景。这种方法能生成高质量合成数据,并无缝匹配实际背景。通过结合真实数据与 AR 合成数据,研究者能将模型的准确性提高约 10%。
AR 合成数据的生成示例,在蓝色书籍旁边,虚拟的白色盒子可以渲染到真实场景中。
3D 目标检测的流程是什么样的
对于 3D 目l v w Z M m g = T标检测,研究者先构建了一个单阶段模型 MobilePose,以预测单张 RGB 图像中某个目标的姿g G j F _ j c态和物; * T m理大小。该模型的主干是一v U S个编码器-解码器架q + $ u k构,其构建在 MobileNet VL s { g R2 的基础上。研究者应用了多任务学习方法,来从检测与回N X D 9归的角度联合预测目标的形状,且在预测形状的过程中,其只依赖于标注的分割图像。
MobilePose-Shape 网络在中间层会带Z x 8 $有形状预测模块。
在模型的训练中,m 8 - 9 R ( n s如果数据没有标注形状,那也是可行的。只不过借助检测边界框,研究者可以预测形状中心与分布。
为了获得边界框的最终 3D 坐标,研究者利用了一种完善的姿态估计算法(EPnP),它可以恢复对象的 3D 边界框,而无需知道对象维度这一先验知W s q F =识。给定 3D 边界框,我们可] G K以轻松计算对象的姿态和大小。
下图显示了网络架构和后+ s +处理过程,该模型q 6 O ^ S l ;轻巧到可以在移动设备上实时运行(在 Adreno 650 mobile GPU 上以e 5 Z g 26 FPS 的速度运行)。
3D 目标检测的神经网络架构与后处理过程。
模型的示例结果,其中左图为估计边界框的原始 2D 图像,中间为带高斯分布的目标检测,最右边为预9 M 9 b K测的分割 Mask。
在 MediaPipe 中进行检? k N B测和追踪
当模型对移动设备获得的每一帧图像s s 0 Y # a M W进行计算的时候,它可能会遇到晃动的~ Z D o h x情况,这是因为每一帧对目标边界框预测本身的模糊性造t M #成的。为了缓解这个问题,研究者采用了检测+追踪的框架,这一框架近期被用于 2D 检测和追踪中。这个框架减少了需[ L : s 2要在每一帧上运行网络的要求,因2 S C W + E s 此可以让模型的检f f ) Y M测更为精确,同时保证在移动端上的实时性。它同时还i @ H - X f A _能保持识别帧与帧之间, ` ; J % % 3的目标,确保预测的连贯性,减少晃动。
为了进一步提升这一 pipeline 的效率,研究者设置x ` y :模型在每几帧后再进行一次模型推理。C j O ! 8 u P之后,他们使用名为快速动作追踪(instant motion tracking)和 Motion Stills 技术进行预测和追踪。当模型提出一个} , P G { U T d新的预测时,他们会根据重叠区域对检测结果进行合并。
为了鼓励研究者E A - 0 U和开发者基于这一 pipeline 进行试验,谷1 s m 1 2 ; B W d歌目前已经将研究成果开源到了 MediaPipe 项目中,包括端到端的移动设备应用 demo,以及在鞋、椅子两个分类中训练好的模型。研究者希望这S j y一解决方案能够更好地帮助F P 2到社区,并产生新的方法、应用和研究成果。团队也希望能够扩大模型到更多类别d K 2 m ! n A j中,进一步提升在移动端设备的性能表现。
室内和户外 3D 目标检测示例。
原文链接:https://ai.googleblog.com/2020/03/real-time-3d-object-detectg d @ yion-on-mobile.html