点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

今天为大家带来的文章是Mobile3DRecon: Real-time Monocular 3D Reconstruction on a Mobile Phone。在手机上实现实时的单眼3D重建。

此文由浙江大学和商汤合作完成,在ISMAR2020 上获得BestPaper的研究。

本文展示了在手机上实现实时单眼3D重建的系统,称为Mobile3DRecon。该系统使用嵌入式单眼相机,在后端提供了在线网格生成功能,并在前端提供了实时6DoF姿势跟踪,以供用户在手机上实现具有真实感的AR效果。

与大多数现有的仅使用基于点云的3D模型在线生成技术或离线的表面网格生成技术不同,本文提供了一种全新的在线增量网格生成方法来实现快速的在线密集表面网格重建,以满足实时的AR应用需求。

对于6DoF跟踪的每个关键帧,本文使用多视图半全局匹配(SGM)的方法进行的单眼深度估计,然后进行深度细化处理。生成模块将每个估计的关键帧深度图融合到在线密集表面网格上,这对于实现逼真的AR效果(例如碰撞和遮挡等)。

本文在两个中距离移动平台上验证了实时重建的结果,通过定量和定性评估的实验证明了所提出的单眼3D重建系统的有效性。该系统可以处理虚拟物体与真实物体之间的遮挡和碰撞场景以实现逼真的AR效果。

一、背景与贡献

  • 本文提出了以中多视图关键帧深度估计方法,该方法即使在具有一定姿态误差的无纹理区域中也可以鲁棒地估计密集深度,消除由姿势误差或无纹理区域引起的不可靠深度,并通过深度神经网络进一步优化了噪声深度。

  • 本文提出了以中有效的增量网格生成方法,该方法可以融合估计的关键帧深度图以在线重建场景的表面网格,并逐步更新局部网格三角。这种增量网格方法不仅可以为前端的AR效果提供在线密集的3D表面重建,还可以确保将网格生成在后端CPU模块上的实时性能。这对于以前的在线3D重建系统来说是有难度的。

  • 本文提出了带有单眼相机的实时密集表面网格重建管线,在手机上实现了单眼关键帧深度估计和增量网格更新的执行速度不超过后端的125ms/关键帧,在跟踪前端6DoF上快速到足以超过每秒25帧(FPS)。

二、算法流程

图1—系统简图

整个系统的处理图如图1所示,当用户使用手机上的单眼相机导航到他的环境时,本文提供的管道会使用基于关键帧的视觉惯性SLAM系统跟踪手机的6DoF姿势,该系统跟踪前端的6DoF的同时,也可以保证关键帧后端具有全局优化模块,以优化所有关键帧的姿势,并将其反馈给前端跟踪。本文在管道中使用了SenseAR SLAM进行姿势跟踪,并且任何基于关键帧的VIO或SLAM系统(例如谷歌的ARCore)目前都是适用的。

在前端正常初始化6DoF姿势跟踪之后,对于具有全局优化姿势的关键帧池中的最新传入关键帧,其密集深度图是通过多视图SGM在线估计的,其中先前的关键帧的一部分会被作为参考帧。卷积神经网络和多视图SGM被用来细化深度噪声,然后通过融合细化的关键帧深度图以生成周围环境的密集表面网格。这里的管道是用来执行增量在线网格生成,这更适合于手机平台上AR应用程序对实时3D重建的要求,深度估计和增量网格划分都作为后端模块进行。随着密集网格逐渐在后端被重建出来,高级别的AR应用程序可以使用这种实时的密集网格和6DoF SLAM的姿势为前端用户提供逼真的AR效果,比如遮挡和碰撞等。

1.单眼深度估计

单眼深度估计首先利用本文提出的多视图SGM方法进行立体匹配,然后基于置信图对深度信息进行滤波,最后利用深度学习细化深度信息。

立体匹配部分, 本文对深度空间的逆进行均匀采样,然后利用人口普查变换(CT)作为特征值描述子来计算补丁相似度(patch similarity)。这里通过查找表来计算两个人口普查位串之间的汉明距离,遍历每个带有标签I的切片的像素,来计算立体匹配的成本。之后,会得到的大小为W * H * L尺寸的成本量,其中W和H是框架的宽度和高度。然后汇总成本量,采用Winner-Take-All的策略获得初始深度图。

本文通过惩罚像素邻域的深度标记变化添加了额外的正则化来支持平滑度。对于带有标签l的图像像素x,成本的汇总是通过递归计算相邻方向的成本来完成的。

基于置信度的深度滤波利用SGM中的不确定度测量来计算置信度,同时也考虑了局部深度一致性。

深度信息的细化是基于深度神经网络的,这是由一个两阶段的细化神经网络来组成。第一阶段是图像引导子网络CNNG,它将滤波后的深度与相应的关键帧上的灰度图像相结合得到粗细化的结果Dct,其中,灰度图像充当深度优化的引导,用以提供CNNG的物体边缘和语义信息的先验。第二阶段是残差U-Net CNNR,它可以进一步细化之前粗细化后的噪声结果得到最终的精细化深度信息。U-Net结构主要有助于使学习过程更加稳定并克服特征退化的问题。这里的训练集是采用Demon数据集进行训练。

2.渐进式网格生成

去除动态物体后,利用TSDF对体素进行融合。每一个估算出来的深度图都被集成到TSDF体素上,然后通过链接生成和更新的体素来重建3D物体,生成渐进式网格。

实时的网格更新是将渐进式移动的立方体块在单个CPU线程上集成,每一个关键帧只更新一部分立方体块。除此之外,本文为每一个体素定义了一个状态变量,用来判断更新,添加,通用和删除。更新和提取的三角网格只来自于添加和更新的立方体块。最后,再利用深度细化神经网络来提高平面网格的质量。

三、主要结果

我们的单眼深度估计是根据序列“室内楼梯”和“沙发”的两个代表性关键帧得出的:

  1. 原关键帧图像及其两个选定的参考关键帧图像;“室内楼梯”参考帧中的两个代表性像素及其极线绘制出从前端的6DoF跟踪来证明某些相机姿态误差的数据。

  2. 通过反投影进行的多视图SGM和相应点云的深度估计结果。

  3. 基于置信度的深度滤波后的结果及其对应的结果

  4. 在基于DNN的参考及其相应的点云之后的最终深度估计结果。

OPPO R17 Pro捕获的四个实验序列“室内楼梯”,“沙发”,“桌面”和“内阁”的表面网格生成结果:

a.显示了每个序列的一些代表性关键帧。没有基于DNN的深度细化的每个序列的生成 的全局表面网.

c.我们的基于DNN的深度细化的生成的全局表面网格。

我们报告了我们的Mobile3DRecon和[11,27,40]的深度和表面网格结果的RMSE和MAE,这些结果是由我们的五个实验序列(由OPPO R17 Pro捕获的,ToF深度测量为GT)进行深度评估的,仅像素在GT和估计深度图中都有有效深度的情况下,将参与误差计算;对于通用深度评估,所有方法和GT中只有具有有效深度相同的像素才参与评估;

请注意,对于REMODE,我们仅考虑计算对于REMODE,由于深度小于35 cm,我们无法获得深度融合结果;对于网格评估,我们使用CloudCompare 2通过将每种方法的深度融合到GT网格(通过融合ToF深度)来比较网格结果。对于REMODE,由于深度误差严重,我们无法获得深度融合结果。

我们在所有子步骤中报告Mobile3DRecon的详细每关键帧时间消耗(以毫秒为单位),时间统计信息在两个移动平台上给出:带SDM710的OPPO R17 Pro和带SDM845的MI8。

点击阅读原文获取完整文章下载链接,提取码:  pzg5

本文转载自:泡泡机器人SLAM

标题:Mobile3DRecon: Real-time Monocular 3D Reconstruction on a Mobile Phone

作者:Xingbin Yang, Liyang Zhou, Hanqing Jiang, Zhongliang Tang, Yuanbo Wang, Hujun Bao, Member, IEEE, and Guofeng Zhang, Member, IEEE

机构:浙江大学;商汤科技

来源:ISMAR 2020

编译 : 张海晗

审核:管培育

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。

下载2

在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。

下载3

在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

在手机上实现实时的单眼3D重建相关推荐

  1. Mobile3DRecon:手机上的实时单眼3D重建

    今天为大家带来的文章是Mobile3DRecon: Real-time Monocular 3D Reconstruction on a Mobile Phone.在手机上实现实时的单眼3D重建. 此 ...

  2. 怎样在手机上设置高考倒计时?查看离高考还有多长时间

    高中对于每个学生来说都是非常重要的阶段,而高考更是重中之重,因为高考成绩的好坏直接决定了绝大多数人可以去哪所大学就读.每年高考的时间基本上都定于公历的6月7日.8日这两天,无论是对于马上就要参加高考的 ...

  3. 【实战】如何在手机上实时接收微信小店订单提醒

    用户在微信小店下单之后,我们作为微信小店的管理员并不会收到订单通知,因为腾讯官方并没有订单实时通知这个功能,关于这一点我们已经调研了很久,确实无疑. 因此,要么自己花钱请软件外包团队开发,要么寻找现成 ...

  4. 不同手机型号图文预览_使用Adobe Preview 在手机上实时预览设计图

    当你做完设计稿,还要一张张发送到手机查看效果,这些琐事大大降低了设计师的工作效率.Adobe Preview 正是为了解决这个问题而生. 作为设计师,熬夜赶稿成了加成便饭.可是时间要花在刀刃上.要不然 ...

  5. AAAI 2021 | 在手机上实现19FPS实时的YOLObile目标检测

    作者|机器之心编辑部 来源|机器之心 本文提出了一套模型压缩和编译结合的目标检测加速框架,根据编译器的硬件特性而设计的剪枝策略能够在维持高 mAP 的同时大大提高运行速度,压缩了 14 倍的 YOLO ...

  6. 「推荐」怎么实时接收小程序客服消息通知,并在手机上回复

    在微信小程序开发中,可以非常方便的集成客服功能,只需要一行代码便可以将用户引导至客服会话界面.这行代码就是: <button open-type="contact" bind ...

  7. KinectFusion:用运动的深度相机进行实时3D重建及交互

    KinectFusion的GPU Pipeline实现, 涉及到的两篇原理和实现中的一篇,两年前翻译的,那时候多数不理解,再拿出来整理一下,也是加深理解,配图来自原论文,文字为本人翻译,如有不正,敬请 ...

  8. android camera 预览 数据流,camera,SurfaceView实时预览获取帧数据,在手机上总是闪退...

    请教各位关于用camera类做一个关于预览SurfaceView,然后通过 public void onPreviewFrame(byte[] data, Camera camera)获取data转换 ...

  9. NeRF-SLAM:实时密集单眼SLAM 辐射场的实时密集单眼SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨泡泡机器人 来源丨 泡泡机器人SLAM 点击进入->3D视觉工坊学习交流群 标题:Real ...

  10. 教程 | 如何在手机上使用TensorFlow

    翻译 | AI科技大本营 参与 | zzq 审校 | reason_W 我们知道,TensorFlow是一个深度学习框架,它通常用来在服务器上训练需要大量数据的大模型.随着智能手机的普及,人们也越来越 ...

最新文章

  1. 基于AI探索表观遗传药物发现的化学空间
  2. 图片上传之FileAPI与NodeJs
  3. python打开文件并读取内容-Python实现的读取文件内容并写入其他文件操作示例
  4. 数据500%暴涨的神秘公式,顶级增长黑客如何实现用户指数级增长
  5. 深入分析EnableAutoConfiguration
  6. 数据归一化 - MinMaxScaler()/MaxAbsScaler() - Python代码
  7. Apache/Tomcat/JBOSS/Nginx(2)
  8. JS操作保存cookie(转载他人)
  9. 网站页面head区代码规范[转]
  10. 【HDU 6020】 MG loves apple (乱搞?)
  11. 数据算法_JS数据结构与算法_排序和搜索算法
  12. Tomcat and solr 环境配置
  13. axure 抖音部件库_原型技巧:如何用Axure画出抖音APP页面色彩风格(干货技能)...
  14. 面试反问环节“你有什么问题想问的”踩雷一记
  15. SDN:简述对SDN的认识
  16. 【办公-WORD】Word 背景颜色层次分析
  17. Reflector使用详解
  18. [RK3288][Android6.0] 调试笔记 --- 查看broadcast对应发送者进程
  19. VMware 17 Pro安装(升级)
  20. 云服务器和共享主机,共享虚拟主机、独享虚拟主机还是云服务器?

热门文章

  1. spring 事物管理器
  2. [日常工作]非Windows Server 系统远程经常断以及提高性能的方法
  3. 诡异的dp(凸多边形分割):catalan数
  4. SpringMvc上传文件遇到重复读取InputStream的问题
  5. 在javascript中NodeList和Array的区别及转换方法
  6. 如何不运用第三方变量实现两个数的交换
  7. Android - Broadcast机制
  8. 也来说说C#异步委托
  9. NET委托:一个C#睡前故事
  10. 设备和驱动器中删除空白图标