ICCV 2023 | R3D3:从多视图像实现动态场景的密集三维重建-程序员宅基地

技术标签: 3d  

作者:Scentea  | 来源:3D视觉工坊

在公众号「3D视觉工坊」后台,回复「原论文」即可获取论文pdf。

添加微信:dddvisiona,备注:三维重建,拉你入群。文末附行业细分群。

R3D3是一种用于密集三维重建和自我运动估计的多摄像头算法,该方法通过迭代地结合多摄像头的几何估计和单目深度细化来实现一致的密集三维重建。R3D3的核心思想是将单目线索与来自多摄像头的空间-时间信息的几何深度估计相结合,通过在共视图中迭代密集对应关系,计算准确的几何深度和位姿估计。为了在多摄像头设置中确定共视帧,作者提出了一种简单而有效的多摄像头算法,用于平衡性能和效率。深度细化网络以几何深度和对应的不确定性为输入,并生成细化深度,以改善例如移动物体和低纹理区域的重建,细化的深度估计作为下一次几何估计迭代的基础,从而在增量几何重建和单目深度估计之间闭合循环。R3D3在DDAD和NuScenes基准测试中实现了最优异的多摄像头深度估计性能,与单目SLAM方法相比有更高的精度和鲁棒性。这里也推荐「3D视觉工坊」新课程彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进

1. 引言

密集三维重建和自我运动估计是自动驾驶和机器人领域的关键挑战。与当前复杂的多模态系统相比,多摄像头系统提供了一种更简单、低成本的替代方案,然而,基于摄像头的复杂动态场景的三维重建一直面临极大的困难,因为现有的解决方案通常会产生不完整或不连贯的结果。作者提出了R3D3,一种用于密集3D重建和自我运动估计的多摄像头系统,通过迭代地结合多摄像头的几何估计和单目深度细化来实现一致的密集三维模型。

将感知输入转化为环境的密集三维模型,并跟踪观察者的位置是机器人学和自动驾驶的主要研究内容之一。现代系统依赖于融合多种传感器模态,如摄像头、激光雷达、雷达、惯性测量单元等,使硬件和软件栈变得复杂且昂贵,相比之下,多摄像头系统提供了一种更简单、低成本的替代方案,已广泛应用于现代消费者汽车。然而,基于图像的密集3D重建和自我运动估计在大规模动态场景中仍是一个开放性的研究问题,因为移动物体、重复纹理以及光学退化等方面都带来了显著的算法挑战。

b5667d4a789760582846fd484d28b2e0.png图 1 R3D3网络结构概略图这篇论文的主要贡献包括以下三点:

  1. 提出了一种用于密集三维重建和自我运动估计的多摄像头算法R3D3。

  2. 通过一种新颖的多摄像头密集束调整(DBA)方法和多摄像头共视图,实现了准确的几何深度和位姿估计。

  3. 通过深度细化网络,整合了先验几何深度和不确定性以及单目线索,从而提高了密集三维重建的质量。

2. 相关工作

这篇论文的相关工作部分主要讨论了多视点立体(MVS)方法、视觉SLAM方法和自监督深度估计方法。MVS方法旨在从具有已知位姿的一组图像中恢复密集的3D场景结构;视觉SLAM方法关注从视觉输入中联合映射环境和跟踪观察者的轨迹,即一个或多个RGB摄像头;自监督深度估计方法关注从单目线索预测密集深度,如透视物体表面和场景上下文。

Multi-view Stereo(MVS)方法旨在从具有已知位姿的一组图像中恢复密集的3D场景结构。尽管早期的研究主要关注经典优化方法,但近年来,许多研究开始利用卷积神经网络(CNN)来估计多个深度假设平面上的特征匹配,从而在3D代价体中进行匹配。早期方法采用多个图像对之间的多个代价体,而最近的方法则使用整个图像集的单一代价体,这些方法假设在一个受控环境中有许多高度重叠的图像和已知的位姿来创建三维代价体。相反,本文的目标是从未知轨迹的移动平台上的任意多摄像头设置中实现稳健的密集3D重建。

传统的SLAM系统通常分为不同阶段,首先将图像处理为关键点匹配,然后使用这些匹配来估计3D场景几何和相机轨迹,另一类方法直接基于像素强度优化3D几何和相机轨迹。最近的方法将基于CNN的深度和姿态预测集成到SLAM流程中,这些方法面临的共同挑战是由于低纹理区域、动态物体或光学退化引起的像素对应中的离群值,需要使用鲁棒估计技术来过滤这些离群值。

自监督深度估计的开创性工作是由Zhou等人[1]提出的,他们通过最小化视图合成损失来学习深度估计,该损失使用几何约束将参考视图中的颜色信息变形到目标视图。后续的研究主要关注改进网络架构、损失正则化和训练策略,最近的方法从多视图立体视觉中汲取灵感,提出使用3D代价体来整合时间信息。然而,这些方法仍然关注单摄像头、前向场景,而这并不能反映自动驾驶汽车中真实世界的传感器设置。另一类最近的研究关注利用多摄像头设置中重叠摄像头的空间信息,这些方法利用空间上下文来提高准确性,并实现绝对尺度深度学习。然而,这些方法忽略了时间域,而时间域对深度估计提供了有用的线索。

3.方法

R3D3 算法通过结合单目视觉线索和来自多摄像头的空间-时间信息的几何深度估计,实现了在动态室外环境中的密集、一致的三维重建。该方法首先利用多摄像头系统的空间-时间信息进行几何深度估计和相机位姿估计,为了提高几何深度不可靠的区域(如移动物体或低纹理区域)的重建质量,作者引入了一个深度细化网络,该网络接受几何深度和不确定性作为输入,并产生细化后的深度。此外,细化后的深度估计作为下一次几何估计迭代的基础,从而在增量几何重建和单目深度估计之间形成闭环。97d68213684c23f6ec1c7e89b817e7dd.png

图 2 R3D3网络结构图

3.1 特征提取和相关性

本小节详细介绍了如何从每个图像中提取相关特征和上下文特征,以及如何构建共视图和计算特征相关性。主要内容包括:

  • 特征提取:通过深度相关编码器(ϕ)和上下文编码器(φ)从每个图像中分别提取相关特征和上下文特征。

  • 共视图:将相关特征和上下文特征存储在一个图中。作者构建了具有三种边的共视图:时间边、空间边和空间-时间边。为了在多摄像头设置中实现高效的共视图构建,作者设计了一个简单而有效的共视图构建算法。

  • 特征相关性:对于图中的每条边,计算特征相关性。通过点积计算4D特征相关体,并使用查找操作符限制相关搜索区域。

这一部分的核心是如何从图像中提取特征并构建共视图,以便在后续步骤中进行几何深度估计和相机位姿估计。

3.2 深度和位姿估计

阐述了如何根据共视图中的每条边来估计相对位姿和深度。这部分主要包括流量校正、多相机密集束调整以及深度和位姿聚合。首先,给定和的初始估计,计算诱导流以采样相关体;然后将采样的相关特征、上下文特征ψ和诱导流输入到卷积GRU中。GRU预测流残差和置信权重;接着,作者提出了一种多相机密集束调整(DBA)算法,用于在共视图中的每条边上迭代地优化深度和相对位姿估计;最后,在多次迭代后,作者使用加权平均法聚合每个节点的深度和位姿估计,以得到最终的深度图和相机位姿。

3.3 深度细化

本小节提出了一种深度优化方法,通过结合几何深度估计和单目视觉线索,可以在几何估计不可靠的情况下改善重建效果。作者使用了一个由参数表示的卷积神经网络,将深度、置信度和对应的图像作为输入。网络预测改进后的密集深度。通过使用每个边缘置信度权重的最大值,计算每个帧的深度置信度。对于低于阈值β的置信度区域,将输入深度和置信度权重设为零。将这些与图像进行连接,并将深度和置信度与1/8缩放的特征进行连接。与之前的方法类似,输出深度在四个尺度上进行预测。为了适应传感器设置中不同摄像头之间的焦距差异,对输出进行焦距缩放。

不同于几何方法,单目深度估计器从语义线索中推断深度,这使得它们在不同领域之间的泛化能力受到限制。因此,作者在原始的真实世界视频上通过自监督的方式训练,最小化视图合成损失。通过计算目标图像Itc和参考图像It'c'在目标视点上的光度误差,实现自监督深度估计。自监督深度估计是一个经过充分研究的领域,作者遵循了应用正则化技术过滤光度误差的通用做法。

3.4 推理过程

在论文的 3.4 小节中,作者详细描述了整个推理过程,包括如何从多个摄像头获取数据、估计深度和相对姿态、以及如何优化和融合这些信息以获得稠密的三维重建结果。

首先,从C个摄像头在时间t处获取帧,并将其编码并整合到具有初始深度图dtc和自我姿态Pt的共视图G=(V,E)中;然后,对于共视图中的每条边(i,j)∈E,从深度di和相对摄像头姿态(由自我姿态P和摄像头外参T导出)计算诱导流,从中聚合特征相关性,作为GRU的输入,该GRU估计流更新和置信度,通过多摄像头DBA操作在k次迭代中使用新的流估计f全局对齐深度d和姿态P;最后,对于共视图中的每个节点i∈V,文中使用深度优化网络优化深度图。

整个推理过程包括以下几个关键步骤:

  1. 将来自多个摄像头的帧编码并整合到共视图中。

  2. 估计每条边的深度和相对姿态。

  3. 使用 GRU 预测流更新和置信度。

  4. 通过多摄像头 DBA 方法全局对齐深度和姿态。

  5. 使用深度优化网络优化每个节点的深度图。

4. 实验

在实验部分,作者展示了他们的方法在两个广泛使用的多摄像头深度估计基准测试(DDAD和NuScenes)上的性能,并与现有的SOTA方法进行了比较。此外,他们还展示了与单目SLAM方法的精度和鲁棒性比较。实验结果表明,通过共同利用多摄像头约束以及单目深度线索,他们的方法在动态户外环境中实现了鲁棒的密集3D重建和自我运动估计。此外,他们还对共视图构建算法进行了评估,并将其与现有算法进行了比较,实验结果证实了他们的方法在几何深度估计、单目深度估计和完整方法之间有效地结合了各自的优势,同时避免了各自的弱点。这里也推荐「3D视觉工坊」新课程彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进

6014baf286c7b7a35c775796a488f926.png图 3 动态场景中稠密三维重建的对比实验

37b7fae072935e06d0fdc365eb765629.png图 4 在DDAD数据集上的效果

9210230b946146f65dddf30ce0410765.png图 5 在NuScenes数据集上的效果

86501d3602e538ab997f1c98d87e155e.png图 6 在DDAD数据集上的定量评价

071d4eb6823722b5272c6aa216480623.png图 7 在NuScenes数据集上的定量评价

5. 结论

R3D3算法通过共同利用多摄像头约束以及单目深度线索,在动态户外环境中实现了鲁棒的密集3D重建和自我运动估计。作者提出了一种新颖的多摄像头密集束调整方法,并设计了一个深度细化网络,将几何深度和不确定性与单目线索相结合。实验结果表明,R3D3方法在两个广泛使用的多摄像头深度估计基准测试(DDAD和NuScenes)上取得了最优异的性能,此外,与单目SLAM方法相比,R3D3算法具有更高的精度和鲁棒性。总之,R3D3方法为动态场景的密集三维重建和自我运动估计提供了一种有效的解决方案。

[1] Zhou T, Brown M, Snavely N, et al. Unsupervised learning of depth and ego-motion from video[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1851-1858.

—END—

高效学习3D视觉三部曲

第一步 加入行业交流群,保持技术的先进性

目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。[三维重建方向]NeRF、colmap、OpenMVS等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。

a05b34b81f3ad3c1d591ceefafff80a5.jpeg
添加小助理微信:cv3d007, 拉你入群
第二步 加入知识星球,问题及时得到解答
3.1 「3D视觉从入门到精通」技术星球

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

学习3D视觉核心技术,扫描查看,3天内无条件退款 6d146750172d3913b7748913da216460.jpeg
高质量教程资料、答疑解惑、助你高效解决问题
3.2 3D视觉岗求职星球

本星球:3D视觉岗求职星球 依托于公众号「3D视觉工坊」和「计算机视觉工坊」、「3DCV」,旨在发布3D视觉项目、3D视觉产品、3D视觉算法招聘信息,具体内容主要包括:

  • 收集汇总并发布3D视觉领域优秀企业的最新招聘信息。

  • 发布项目需求,包括2D、3D视觉、深度学习、VSLAM,自动驾驶、三维重建、结构光、机械臂位姿估计与抓取、光场重建、无人机、AR/VR等。

  • 分享3D视觉算法岗的秋招、春招准备攻略,心得体会,内推机会、实习机会等,涉及计算机视觉、SLAM、深度学习、自动驾驶、大数据等方向。

  • 星球内含有多家企业HR及猎头提供就业机会。群主和嘉宾既有21届/22届/23届参与招聘拿到算法offer(含有海康威视、阿里、美团、华为等大厂offer)。

  • 发布3D视觉行业新科技产品,触及行业新动向。

9620b5a077a546b345b076b7329df610.jpeg
扫码加入,3D视觉岗求职星球,简历投起来
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行

如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com

科研论文写作:

[1]国内首个面向三维视觉的科研方法与学术论文写作教程

基础课程:

[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶

[2]面向三维视觉的Linux嵌入式系统教程[理论+代码+实战]

[3]如何学习相机模型与标定?(代码+实战)

[4]ROS2从入门到精通:理论与实战

[5]彻底理解dToF雷达系统设计[理论+代码+实战]

工业3D视觉方向课程:

[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]

[2]保姆级线结构光(单目&双目)三维重建系统教程

[3]机械臂抓取从入门到实战课程(理论+源码)

[4]三维点云处理:算法与实战汇总

[5]彻底搞懂基于Open3D的点云处理教程!

[6]3D视觉缺陷检测教程:理论与实战!

SLAM方向课程:

[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战

[1]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战

[2](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化

[3]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析

[4]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)

[5](第二期)ORB-SLAM3理论讲解与代码精析

视觉三维重建:

[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进

自动驾驶方向课程:

[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)

[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程

[3]单目深度估计方法:算法梳理与代码实现

[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)

[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)

无人机:

[1] 零基础入门四旋翼建模与控制(MATLAB仿真)[理论+实战]

最后

1、3D视觉文章投稿作者招募

2、3D视觉课程(自动驾驶、SLAM和工业3D视觉)主讲老师招募

3、顶会论文分享与3D视觉传感器行业直播邀请

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Yong_Qi2015/article/details/133191431

智能推荐

html编辑器 br 被div,UEditor百度编辑器中各种html标签被过滤掉的解决办法-程序员宅基地

文章浏览阅读449次。在之前的文章编写过程中,插入JS代码后,第一次文章会显示正常,而之后在后台编辑器中再打开看, 发现好多标签竟然被删掉了。后来发现解决办法非常简单。我们在插入代码后,源码模式下,看起来是正常的,但是为什么保存完之后,数据库中正常,但是编辑器中不正常呢?很多富文本编辑器都有两种初始化方式,以UEditor为例,一种是textarea标签,一种是script标签。举例textarea方式:这里写你的初始..._百度富文本编辑器过滤了html标签

Java大厂笔试&&面试集合大全目录,java笔试面试宝典-程序员宅基地

文章浏览阅读661次,点赞6次,收藏20次。最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)**(img-0bihoba1-1713545040863)]JAVA相关笔试题,祝各位找到好工作!Java网络安全面试题系列。

Latex 反斜对角省略号实现_latex 省略号-程序员宅基地

文章浏览阅读1.1w次,点赞9次,收藏36次。Latex 反斜对角省略号_latex 省略号

python爬图mzitu_[Python]爬取mzitu网站-程序员宅基地

文章浏览阅读5.7k次。1 importio2 importos3 importre4 importsys5 importdatetime6 from bs4 importBeautifulSoup7 from pxydowwload importrequest8 from pymongo importMongoClient910 sys.stdout = io.TextIOWrapper(sys.stdout.buff..._mzitu

Python从入门到入坟(6)-程序员宅基地

文章浏览阅读170次。2020/06/01 面向对象编程面向对象(object oriented programming,OOP)编程的思想主要是针对大型软件设计而来的。面向对象编程使程序的扩展性更强、可读性更好,使得编程可以像搭积木一样简单。Python中一切皆对象。Python支持面向过程、面向对象、函数式编程等多种编程范式。面向对象和面向过程的区别面向过程思维:更加关注的是“程序的逻辑流程”,是一种“执行者”思维,适合编写小规模的程序。面向对象思维:更加关注的是“软件中对象之间的关系”,是一种“设计者”思维_python从入门到入坟

用Python 绘制多个同心圆 (Python经典编程案例)_python利用负循环画10个同心圆-程序员宅基地

文章浏览阅读4.1w次,点赞12次,收藏14次。案例:绘制多个同心圆代码如下:import turtlet = turtle.Pen()my_colors = ("red", "green", "yellow", "black")t.width(4)t.speed(1)for i in range(10): # 0 1 2 3 4 t.penup() t.goto(0, -i*10) # 0, -100,-2..._python利用负循环画10个同心圆

随便推点

计算机科学与技术的难度大小,计算机科学与技术专业各科难度排行-程序员宅基地

文章浏览阅读1.6k次。该楼层疑似违规已被系统折叠隐藏此楼查看此楼大三下学期NO.1Web数据库技术(3`)专业必修课本学期最难一科,考题是默写程序!填空(通常得不到几分)简答,程序。考前认真复习,课上不上无所谓,最终你还是要背的。重点:第三章:链接herf(填空),登陆表单(html程序题,可以参考习题1)登陆表单验证(JavaScript程序题 P30)第四章:脚本段-表达式-声明-指令的区别(简答),指令元素(简..._编译原理难度排第几

原生小程序 微信小程序 使用ucharts_微信小程序引入ucharts-程序员宅基地

文章浏览阅读2.2k次。一般是uni-app项目使用ucharts在原生微信小程序也是可以使用。方法:## 使用说明请将项目根目录 微信小程序/uCharts-组件/qiun-wx-ucharts/src 下全部文件复制到指定位置,例如该项目的components/qiun-wx-uchart目录下,然后在页面的json配置文件中配置如下:配置好后即可在wxml文件中使用注:示例中uCharts组件仅做演示,实际使用请用码云或者npmjs中最新版本。_微信小程序引入ucharts

1095:数1的个数 题解 信息学奥赛 NOIP_y1095 数1的个数-程序员宅基地

文章浏览阅读1.3k次。关于内容来源于微信公众号:大神编程。已经过原文作者授权。题目:1095:数1的个数超详细动画图文题解链接题解目录(不断更新中)喜欢信息学奥赛的同学们,可以一起交流学习哦官方QQ群:893157498我的QQ群:795233394..._y1095 数1的个数

学习布局(15) 段落类的样式_段落元素设置样式-程序员宅基地

文章浏览阅读220次。line-height: 设置元素当中的每行文本的行高(行间距) .test { width: 300px; height: 40px; margin-bottom: 20px; padding: 10px; background-color:..._段落元素设置样式

opencv: 使用InRange函数进行阈值操作 Thresholding Operations using inRange_inrange和cv2.threshold一起使用-程序员宅基地

文章浏览阅读1.3k次。目标:使用OpenCV cv::inRange 函数进行基本的 阈值操作, 基于像素值在HSV色度空间的范围进行对象检测理论:前一篇文章中我们学习了如何使用cv::threshold 阈值函数进行阈值操作 本文我们将学习使用 cv::inRange 来进行处理 原理是一样的但是现在我们增加了一个我们所需要的 【像素值的范围】HSV色度空间 HSV colorspaceHSV ..._inrange和cv2.threshold一起使用

瑜伽教学法 | 为什么你说的口令会员没反应?_会员病了无法来上瑜伽课怎么说-程序员宅基地

文章浏览阅读154次。  瑜伽培训课程层出不穷,但市面上都没有教授瑜伽老师们如何“教”的系统培训。瑜伽行业表面看似繁荣,但大多数老师缺失教学的“灵魂”。  为此,心合瑜伽学院王梓涵院长结合多年来积累的经验以及瑜伽老师的痛点,与心合教学团队不断打磨,开创瑜伽培训先河,首创贴合瑜伽老师的『瑜伽教学法』,教学法正是指导瑜伽老师们如何上课的法门!  不少老师们,有时会有这样的问题:  “我把正确的口令讲出来了,但是会员好像不听我的口令,并没有按照口令去做,需要我不停地辅助和做示范才能完成...”  一个优秀的老师,总可以_会员病了无法来上瑜伽课怎么说

推荐文章

热门文章

相关标签