Mobile3DRecon:手机上的实时单眼3D重建
今天为大家带来的文章是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线程上集成,每一个关键帧只更新一部分立方体块。除此之外,本文为每一个体素定义了一个状态变量,用来判断更新,添加,通用和删除。更新和提取的三角网格只来自于添加和更新的立方体块。最后,再利用深度细化神经网络来提高平面网格的质量。
三、主要结果
我们的单眼深度估计是根据序列“室内楼梯”和“沙发”的两个代表性关键帧得出的:
原关键帧图像及其两个选定的参考关键帧图像;“室内楼梯”参考帧中的两个代表性像素及其极线绘制出从前端的6DoF跟踪来证明某些相机姿态误差的数据。
通过反投影进行的多视图SGM和相应点云的深度估计结果。
基于置信度的深度滤波后的结果及其对应的结果
在基于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。
本文转载自:泡泡机器人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视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。
下载2
在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。
下载3
在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
Mobile3DRecon:手机上的实时单眼3D重建相关推荐
- 谷歌手机pixel4 夜景_如何在Google Pixel手机上使用实时字幕
谷歌手机pixel4 夜景 Google 谷歌 Live Caption automatically adds captions for any audio playing on your phone ...
- 如何解决vsCode上编写代码,手机上不能实时更新查看效果的问题?
最近在使用vscode的过程中,发现一个问题.后台开发使用idea和eclipse启动的项目,有Tomacat,所以项目的前缀是localhost:端口号的格式,而在vscode中启动的项目是绝对路径 ...
- 用手机就能实时给图像直线描边,速度不亚于目标检测,在线Demo可玩
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 没想到,现在手机上就能做实时线段检测了. 速度丝毫不比目标检测慢,而且检测效果还非常不错: 线段是计算机建立视觉认知的基础元素,利用LSD可 ...
- 3D感应手机Project Tango 拆机 ,实时三维场景重建
Google Project Tango室內建模能力抢先看 视频 http://www.cnbeta.com/articles/273437.htm 2014-02-23 07:16:40 4106 ...
- KinectFusion:用运动的深度相机进行实时3D重建及交互
KinectFusion的GPU Pipeline实现, 涉及到的两篇原理和实现中的一篇,两年前翻译的,那时候多数不理解,再拿出来整理一下,也是加深理解,配图来自原论文,文字为本人翻译,如有不正,敬请 ...
- H5调用手机摄像头,实时拍照上传(旧)
H5调用手机摄像头,完成拍照,实时上传(旧) 项目开发中,偶尔会遇到网页中调用手机摄像头,通过相册选择或直接实时拍照的方式,完成图片上传的功能型需求. 今天,就通过一个小的案例,演示一下完整的实现流程 ...
- 机械手末端执行器设计,YA32_1000KN四柱万能液压机设计,3D打印机,健身跑步机设计模型,摆动活塞式发动机的结构设计,手机上盖注塑模具设计与仿真加工,汽车防误踏油门机构的设计……
顶升移载输送机SW 机械手 机械手末端执行器设计模型 机械手 凸轮驱动机构 升降机 机床设计 飞机02 YA32_1000KN四柱万能液压机设计(毕业论文+CAD图纸) 同步带及顶升机构 焊接成型机架 ...
- 【Let It Be Color!——3D重建之纹理重建】02-基于映射的纹理重建算法(上)
文章转自:https://bbs.huaweicloud.com/blogs/195742 原文作者:景末 来自:华为云社区 1 引言 在上一篇博文中,我们已经提到过纹理重建的主流方案可以分成基于融合 ...
- 使用iPhone相机和OpenCV来完成3D重建(第三部分)
正文字数:4509 阅读时长:2分钟 欢迎来到本教程的第三部分,也是最后一部分关于立体重建的教程. Posted by Omar Padierna url : https://medium.com/ ...
最新文章
- ServiceProcessInstaller 类
- 判断能被N整除的字符串
- python跳转到程序顶部_python-如何使Tkinter窗口跳到最前面?
- JS之获取指定位置Unicode的charCodeAt()方法
- 高校教师职称制度将迎重大改革,教师怎么看?
- java接口fastjson_走进Java接口测试之fastjson指南
- 医学方面的创业计划书_【就业创业】设计学院开展2019“汉军杯”大学生创业大赛 初评及复评工作...
- windows server 2003 or 2008 远程登录时超过最大连接数的解决办法
- 利用apache的ab命令做服务器压力测试
- Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结
- java读取配置文件的详细写法,Properties配置文件读取相关java知识
- 把ts自动合并 下载网页视频并自动合成视频
- 递归下降分析法java_Atitit 表达式原理 语法分析 原理与实践 解析java的dsl 递归下降是现阶段主流的语法分析方法...
- 汽车车载电子设备可靠性标准及项目汇总
- Kettle连接 SAP Hana 数据库
- IntelliJ IDEA 最新版完美破解激活(转)
- python多线程读取列表
- Learning Kali Linux 学习Kali Linux Lynda课程中文字幕
- 打游戏计算机内存不足,玩游戏内存不足? 教你轻松几步升级电脑内存
- 布局管理器的嵌套实现微信朋友圈界面
热门文章
- C++迪杰斯特拉算法求最短路径
- NE 题库 38个知识点总结
- ERP 已死,中台已凉,DDD 称王!
- 某大龄程序员哀叹:夫妻双失业后还不起房贷,被迫断供!四年还了80万,60多万都是利息!...
- 一文读懂物联网 MQTT 协议之基础特性篇
- 一次性搞懂Spring Boot 注解原理与自动装配原理,图文并茂,万字长文!
- 急需降低系统复杂性,我们从 Kafka 迁移到了 Pulsar
- 37张图详解MAC地址、以太网、二层转发、VLAN
- 就在几天前,听说用了 YYYY-MM-dd 的程序员,都在加班改 Bug !
- 机器学习在高德搜索建议中的应用优化实践