谷歌AI良心开源:一部手机就能完成3D目标检测,还是实时的那种
关注上方“深度学习技术前沿”,选择“星标公众号”,
资源干货,第一时间送达!
来源:量子位@微信公众号
导读:
昨天,谷歌开源了能在移动设备上实时计算面向对象的3D边界框的MediaPipe Objectron,这一研究使得在移动端设备上实时地确定物体的位置、方向和大小成为可能。
在2D图像中做3D目标检测很难?
现在,拿着一部手机就能做到,还是实时的那种。
这就是谷歌AI今天发布的MediaPipe Objectron,一个可以实时3D目标检测的pipeline。
分开来看:
MediaPipe是一个开源的跨平台框架,用于构建pipeline来处理不同模式的感知数据。
Objectron在移动设备上实时计算面向对象的3D边界框。
日常生活中的物体,它都可以检测,来看下效果。
它可以在移动端设备上,实时地确定物体的位置、方向和大小。
这个pipeline检测2D图像中的物体,然后通过机器学习模型,来估计它的姿态和大小。
那么,它具体是怎么做到的呢?
获取真实世界中的3D数据
我们知道,3D数据集相对于2D来说,非常有限。
为了解决这个问题,谷歌AI的研究人员使用移动增强现实(AR)会话数据(session data),开发了新的数据pipeline。
目前来说,大部分智能手机现在都具备了增强现实的功能,在这个过程中捕捉额外的信息,包括相机姿态、稀疏的3D点云、估计的光照和平面。
为了标记groud truth数据,研究人员构建了一个新的注释工具,并将它和AR会话数据拿来一起使用,能让注释器快速地标记对象的3D边界框。
这个工具使用分屏视图来显示2D视频帧,例如下图所示。
左边是覆盖的3D边界框,右边显示的是3D点云、摄像机位置和检测平面的视图。
注释器在3D视图中绘制3D边界框,并通过查看2D视频帧中的投影来验证其位置。
对于静态对象,只需要在单帧中注释一个对象,并使用来自AR会话数据的ground truth摄像机位姿信息,将它的位置传播到所有帧。
这就让该过程变得非常高效。
AR合成数据生成
为了提高预测的准确性,现在比较流行的一种方法,就是通过合成的3D数据,来“填充”真实世界的数据。
但这样往往就会产生很不真实的数据,甚至还需要大量的计算工作。
谷歌AI就提出了一种新的方法——AR合成数据生成 (AR Synthetic Data Generation)。
这就允许研究人员可以利用相机的姿势、检测到的平面、估计的照明,来生成物理上可能的位置以及具有与场景匹配的照明位置 。
这种方法产生了高质量的合成数据,与真实数据一起使用,能够将准确率提高约10%。
用于3D目标检测的机器学习pipeline
为了达到这个目的,研究人员建立了一个单阶段的模型,从一个RGB图像预测一个物体的姿态和物理大小。
模型主干部分有一个基于MobileNetv2的编码器-解码器架构。
还采用一种多任务学习方法,通过检测和回归来共同预测物体的形状。
对于形状任务,根据可用的ground truth注释(如分割)来预测对象的形状信号;对于检测任务,使用带注释的边界框,并将高斯分布拟合到框中,以框形质心为中心,并与框的大小成比例的标准差。
检测的目标是预测这个分布,它的峰值代表了目标的中心位置。
回归任务估计边界框8个顶点的2D投影。为了获得边界框的最终3D坐标,还利用了一个成熟的姿态估计算法(EPnP),可以在不知道物体尺寸的前提下恢复物体的3D边界框。
有了3D边界框,就可以很容易地计算出物体的姿态和大小。
这个模型也是非常的轻量级,可以在移动设备上实时运行。
在MediaPipe中进行检测和跟踪
在移动端设备使用这个模型的时候,由于每一帧中3D边界框的模糊性,模型可能会发生“抖动”。
为了缓解这种情况,研究人员采用了最近在“2D界”发布的检测+跟踪框架。
这个框架减少了在每一帧上运行网络的需要,允许使用更大、更精确的模型,还能保持在pipeline上的实时性。
为了进一步提高移动pipeline的效率,每隔几帧只让运行一次模型推断。
最后,这么好的项目,当然已经开源了!
戳下方传送门链接,快去试试吧~
传送门
GitHub项目地址:
https://github.com/google/mediapipe/blob/master/mediapipe/docs/objectron_mobile_gpu.md
谷歌AI博客:
https://ai.googleblog.com/2020/03/real-time-3d-object-detection-on-mobile.html
重磅!深度学习技术前沿-微信群已成立
扫码添加群助手,可申请加入 深度学习技术前沿 微信群,旨在交流深度学习方面的学习、科研、工程项目等内容,并且还会在群中分享求职内推资料。后续还会根据大家的研究方向细分技术交流群。
一定要备注:研究方向+学校/公司+姓名(如图像分割+浙大+李四),按照格式备注,可更快被通过且邀请进群。
???? 长按识别,即可加群
???? 长按识别,即可关注
谷歌AI良心开源:一部手机就能完成3D目标检测,还是实时的那种相关推荐
- 移动端实时3D目标检测,谷歌开源出品,安卓下载就能用
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟 报道 | 公众号 CVLianMeng 转载于 :机器之心 AI博士笔记系列 ...
- 谷歌最新论文:手机端的实时3-D目标检测
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者黄浴授权转载,不得擅自二次转载.原文链接:https://zhuanlan.zhihu. ...
- 重磅!谷歌发布3D目标检测数据集及检测方案
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 AI博士笔记系列推荐 周志华<机器学习> ...
- Facebook 开源3D目标检测框架VoteNet,曾刷新两大数据集最高精度
点击我爱计算机视觉标星,更快获取CVML新技术 VoteNet为Facebook何恺明等人于今年4月在论文Deep Hough Voting for 3D Object Detection in Po ...
- 最新发布!SMOKE 单目3D目标检测,代码开源!
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者| 黎国溥 编辑| 3D视觉开发者社区 SMOKE是一个one-stage的单目视觉障碍物检测模型 ...
- Top1的3D目标检测方法(已开源)
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 一.SA-SSD 在bird's eye view任务中,效率与精度并存的SA-SSD 论文:http ...
- OpenPCDet:点云3D目标检测开源库
本文转载自知乎,已获作者授权转载. 链接:https://zhuanlan.zhihu.com/p/152120636 随着自动驾驶与机器人技术的不断发展,基于点云表征的3D目标检测领域在近年来取得了 ...
- 首个实时单目3D目标检测算法:RTM3D,代码将开源
o 点击我爱计算机视觉标星,更快获取CVML新技术 基于单目图像的3D目标检测是在输入RGB图像的情况下估计目标的3D包围框,在自动驾驶领域非常有用. 今天来自中科院沈阳自动化所等单位的学者公布论文提 ...
- CV Code | 本周新出计算机视觉开源代码汇总(含自动驾驶目标检测、医学图像分割、风格迁移、语义分割、目标跟踪等)...
点击我爱计算机视觉标星,更快获取CVML新技术 刚刚过去的一周含五一假期,工作日第一天,CV君汇总了过去一周计算机视觉领域新出的开源代码,涉及到自动驾驶目标检测.医学图像分割.风格迁移.神经架构搜索. ...
最新文章
- 转发:某些函数需要将其一个或多个实参连同类型不变地转发给其他函数
- springboot集成neo4j
- P8 控制系统校正与综合-《Matlab/Simulink与控制系统仿真》程序指令总结
- 【XSS】延长 XSS 生命期
- 【转发】实现yolo3模型训练自己的数据集总结
- 教材订购模块java代码实现_java教材征订系统
- SpringMVC设置不拦截静态资源css,js
- 例4.7 素数 - 九度教程第51题(素数筛法)
- 系统地编译Hi3519过程及其处理问题思路
- IIS如何添加MIME类型.svg/.woff2/.woff
- C语言alloc函数总结
- 怎么离线发布全国谷歌高清卫星影像地图瓦片
- 一篇很好的EDP入门介绍文章——了解AUX,PSR,ASSR 以及EDP版本的差异
- mysql数据库全局搜索_数据库全局搜索
- 全国统筹明年启动,养老金发放将迎来哪些变化?
- Merriam-Webster‘s Vocabular Builder ( PAC )
- 薅资本主义羊毛新姿势,英伟达K80免费用
- 浙江省2013计算机教师招聘试题,2013年浙江省教师招聘考试真题(教育基础知识)省统考中学...
- ubuntu 安装过程中 安装界面卡死完美解决办法 笔记本
- 折腾了好久的输入法显示已禁用
热门文章
- NeHe OpenGL第十课:3D世界
- excel按季度分类汇总_Excel数据透视不会,分类汇总来帮忙,强的不是一点,学会它,错不了...
- mxnet nd中的asscalar() 向量转换为标量 转
- 什么是RSS订阅 Really Simple Syndication(聚合)
- pandas中的reset_index()
- softmax 与 logsoftmax 区别 或者说logsoftmax优点
- udacity 项目同学解决方案
- python中的[:-1] [:,:-1] python矩阵numpy中array的冒号 逗号
- 如何用c语言读取硬盘串号_如何用C语言实现OOP
- PowerDesigner 连接MySQL数据库详细步骤