机器之心编译
机器之心编辑部
常规目标检测,已经不能满足移动端了,谷歌开源的 3D 实时目标检测了解一下?
目标检测是一个得到广泛研究的计算机视觉问题,但大多数研究侧重于 2D 目标检测。值的注意的是,2D 预测仅能提供 2D 边界框。所以,如果扩展至 3D 预测,人们可以捕捉到目标的大小、位置与方向,从而在机器人、无人驾驶、图像检索和 AR 等领域得到更广泛的应用。
尽管 2D 目标检测已经相当成熟,并在工业界广泛应用,但由于数据缺乏以及同类别下目标形状和外观的多样性,从 2D 转向 3D 目标检测依然会面临较大的挑战。
今日,谷歌宣布推出 MediaPipe Objectron,这是一种适用于日常物体的移动端实时 3D 目标检测 pipeline,它能够检测 2D 图像中的目标,并通过新创建 3D 数据集上训练的机器学习模型来估计这些目标的姿态和大小。
具体而言,MediaPipe 是一个用于构建 pipeline 进而处理不同模态感知数据的跨平台开源框架,Objectron 则在 MediaPipe 中实现,其能够在移动设备上实时计算目标的定向 3D 边界框。
从单个图像进行 3D 目标检测。MediaPipe 可以在移动端上实时确认目标对象的位置、方向以及大小。整个模型非常精简,速度也非常快,研究者将整套方案都开源了出来。
框架地址:https://github.com/google/mediapipe/
项目地址:https://github.com/google/mediapipe/blob/master/mediapipe/docs/objectron_mobile_gpu.md
MediaPipe 是谷歌去年 7 月份发布的一个多媒体框架,它在安卓、IOS 网页等各种平台上都能应用机器学习媒体模型。昨日 MediaPipe 发布 0.7 版,并加入了移动端试试 3D 检测模型。目前 MediaPipe 包含人脸检测、手部检测、头发分割和视频自动横竖屏转换等功能。
获取真实的 3D 训练数据
随着依赖于 3D 传感器(如 LIDAR)的自动驾驶行业发展普及,现在已有大量街道场景的 3D 数据,但对于日常生活中拥有更细颗粒度的目标来说,有标注的 3D 数据集就非常有限了。所以,为了解决此问题,谷歌团队使用了 AR 会话(Session)数据开发了一种全新的数据 Pipeline。
此外,随着 ARCore 以及 ARkit 的出现,数亿体量的智能手机拥有了 AR 功能,并且能够通过 AR 会话取获取更多的信息,包括相机姿态、稀疏 3D 点云、光照估计以及平面区域估计。
为了标记真实数据,团队构建了一个全新的标注工具,并且与 AR 会话数据一起使用,该标注工具使标注者得以快速标记目标的 3D 边界框。
该工具使用了分屏视图来显示 2D 的视频帧,同时在其左侧叠加 3D 边界框,并在右侧显示 3D 点云,摄像机方位以及所检测到的水平面。标注器在 3D 视图中绘制 3D 边界框,并通过查看 2D 视频帧中的投影来验证其位置。
左:带标注的 3D 边界框所形成的投影展示在边界框顶部,更易于验证标注;右:通过检测到的目标表面以及稀疏点云数据,可以为不同的相机姿态标注真实世界中的 3D 边界框。
AR 合成数据
之前常用的方法会根据合成数据补充真实数据,以提高预测的准确性。然而这样的做法通常会导致质量低下、不真实的数据,且如果要执行图像的真实感渲染,又需要更多的计算力。
研究者采用了另一种称之为 AR 合成数据(AR Synthetic Data Generation)的方法,只要将对象放到 AR 系统的工作场景中,我们就能利用相机姿态估计、水平面检测、光照估计生成物理上可能存在的位置及场景。这种方法能生成高质量合成数据,并无缝匹配实际背景。通过结合真实数据与 AR 合成数据,研究者能将模型的准确性提高约 10%。
AR 合成数据的生成示例,在蓝色书籍旁边,虚拟的白色盒子可以渲染到真实场景中。
3D 目标检测的流程是什么样的
对于 3D 目标检测,研究者先构建了一个单阶段模型 MobilePose,以预测单张 RGB 图像中某个目标的姿态和物理大小。该模型的主干是一个编码器-解码器架构,其构建在 MobileNet V2 的基础上。研究者应用了多任务学习方法,来从检测与回归的角度联合预测目标的形状,且在预测形状的过程中,其只依赖于标注的分割图像。
MobilePose-Shape 网络在中间层会带有形状预测模块。
在模型的训练中,如果数据没有标注形状,那也是可行的。只不过借助检测边界框,研究者可以预测形状中心与分布。
为了获得边界框的最终 3D 坐标,研究者利用了一种完善的姿态估计算法(EPnP),它可以恢复对象的 3D 边界框,而无需知道对象维度这一先验知识。给定 3D 边界框,我们可以轻松计算对象的姿态和大小。
下图显示了网络架构和后处理过程,该模型轻巧到可以在移动设备上实时运行(在 Adreno 650 mobile GPU 上以 26 FPS 的速度运行)。
3D 目标检测的神经网络架构与后处理过程。
模型的示例结果,其中左图为估计边界框的原始 2D 图像,中间为带高斯分布的目标检测,最右边为预测的分割 Mask。
在 MediaPipe 中进行检测和追踪
当模型对移动设备获得的每一帧图像进行计算的时候,它可能会遇到晃动的情况,这是因为每一帧对目标边界框预测本身的模糊性造成的。为了缓解这个问题,研究者采用了检测+追踪的框架,这一框架近期被用于 2D 检测和追踪中。这个框架减少了需要在每一帧上运行网络的要求,因此可以让模型的检测更为精确,同时保证在移动端上的实时性。它同时还能保持识别帧与帧之间的目标,确保预测的连贯性,减少晃动。
为了进一步提升这一 pipeline 的效率,研究者设置模型在每几帧后再进行一次模型推理。之后,他们使用名为快速动作追踪(instant motion tracking)和 Motion Stills 技术进行预测和追踪。当模型提出一个新的预测时,他们会根据重叠区域对检测结果进行合并。
为了鼓励研究者和开发者基于这一 pipeline 进行试验,谷歌目前已经将研究成果开源到了 MediaPipe 项目中,包括端到端的移动设备应用 demo,以及在鞋、椅子两个分类中训练好的模型。研究者希望这一解决方案能够更好地帮助到社区,并产生新的方法、应用和研究成果。团队也希望能够扩大模型到更多类别中,进一步提升在移动端设备的性能表现。
室内和户外 3D 目标检测示例。
原文链接:https://ai.googleblog.com/2020/03/real-time-3d-object-detection-on-mobile.html
用户评论
这功能真的太酷了!手机上也能做3D目标检测?我以前只能在电脑上看这种技术,这下可以用安卓手机体验一下的感觉真棒!希望以后能支持更多场景和识别物体!
有6位网友表示赞同!
谷歌开源越来越厉害了,这款软件下载试玩了一下,效果确实很不错。实时的3D显示太炫酷了,还能记录下来发给朋友分享,简直爱死了!
有16位网友表示赞同!
我之前想研究一下3D目标检测的移动端应用,现在有了这个工具真是太好了!省去了我很多时间和精力,以后可以更专注于算法改进上面。谷歌真的做实事惠民啊!
有19位网友表示赞同!
虽然说安卓容易下载,但我还是有点担心隐私问题吧。3D目标检测需要手机扫描周围环境信息,会不会收集到一些敏感数据呢?希望开发者能注意安全方面!
有8位网友表示赞同!
看起来很酷啊,但不知道这个移动端3D目标检测对硬件要求高不高?我的安卓手机配置一般般,能不能流畅运行?有点担心卡顿的情况。
有13位网友表示赞同!
谷歌开源这款工具,给国内的开发者带来了很大的启发和帮助。希望更多人加入研发行列,共同推动移动端技术的进步!
有9位网友表示赞同!
这个3D目标检测的效果真的惊艳了我的眼!感觉像是在玩游戏那样身临其境,不过不知道会不会影响手机的电池续航时间?
有9位网友表示赞同!
我试用一下发现,实时渲染速度还可以,识别也挺精准。可以用来测绘一些小型场景,想想就很方便了。
有9位网友表示赞同!
这个3D目标检测功能是不是只能在室内使用?我在户外使用的时候好像效果不太理想了……有点失望呢
有13位网友表示赞同!
说安卓下载就能用太夸张了吧!我试过了还是需要安装软件工具才能使用。这个流程有点麻烦啊,希望能简化一些!
有12位网友表示赞同!
其实对于我这种普通用户来说,移动端3D目标检测的功能使用场景不太明显吧?更期待一些生活中的便捷功能。
有18位网友表示赞同!
希望以后能支持AR增强现实的功能,这样一来3D的目标检测就能更加生动有趣了!可以用来玩体感游戏或者进行虚拟购物体验
有17位网友表示赞同!
这个技术发展很迅速啊,从电脑端到移动端,3D目标检测越来越接地气了。相信未来还会出现更多令人惊讶的应用场景!
有14位网友表示赞同!
移动端3D目标检测这块确实还是有很大进步空间,比如识别物体速度不够快,对灯光环境的要求也比较高。
有12位网友表示赞同!
看到很多人都说这个软件好用,想去试试看。谷歌开源的产品果然品质保证!期待了解更多技术细节和应用案例!
有12位网友表示赞同!
安卓下载方便是一点,但是手机性能要能支持才是硬道理。希望能够针对不同机型优化配置参数!这样才能更好地发挥移动端3D目标检测的功能优势!
有11位网友表示赞同!
这东西挺实用的,特别是对于一些需要进行现场检测的工作人员来说,可以节省很多时间和人力成本!期待更多新功能的加入!
有14位网友表示赞同!
移动端真想多关注用户体验,把软件操作界面设计得更直观、易懂,这样对新手用户更加友好!
有7位网友表示赞同!
这个技术是不是有点像科幻电影里的镜头场景?太神奇了!以后在手机上也能看3D世界是什么样子了吧?
有14位网友表示赞同!