0. 这篇文章干了啥?
从二维图像中重建三维场景的立体图像处理技术在许多领域都变得越来越重要。这些算法为诸如地球科学、文化遗产、考古学、地球科学及行星科学和用于太空探索的机器人技术等广泛而多样的领域带来了新的分析视角。当相机或相机组围绕场景移动时,相机平面中的感知运动(即视差)可用于确定物体的距离。随着相同的物体在多个图像中被观察到,一系列强大的算法(包括同时定位与地图构建(SLAM)和运动恢复结构(SfM))可用于构建场景的三维模型。
这些立体重建算法通常识别并匹配对应于场景中点的视觉特征或连接点(即轨迹),在所有可用图像中,并在给定已知或估计的相机位置和方向(即姿态)的情况下,通过三角测量来估计三维点云。然后,这些算法运行束调整(Bundle Adjustment,BA)以最小化跨多个参数(通常是数千个相机和三维点)的总重投影误差,并生成一个单一的拟合优度统计量。这个单一的标量值代表了立体重建中复杂的一组相互作用的参数,但没有提供关于单个残差(可能受到不准确的姿态和结构估计的影响)如何影响优化过程的信息。该度量标准也无法洞察特定图像、光照条件、相机位置或远程环境形态的细节如何相互作用以在特定输出中产生不准确性。在需要高精度地形重建以影响结果的领域(如科学或太空探索,其中没有地面实况,且不准确的重建可能导致错误结果或危及价值数十亿美元的航天器)中,这些未知因素的影响更为复杂。令人担忧的是,尽管许多领域中的立体算法层出不穷,但很少有人对这类过程的误差进行可视化,也很少有人研究单个异常值对结果准确性的影响。
为此,我们开发了VECTOR,这是一款用于相机连接点、方向和残差的视觉编辑的视觉分析应用程序。VECTOR是一个交互式可视化工具,它展示了在光束法平差(Bundle Adjustment,简称BA)之前(即在特征跟踪、姿态估计和三角测量过程中)以及之后(即所有参数之间的相互作用)的场景结构灵敏度,从而更好地描述了模型输出、误差和噪声。此外,VECTOR的用户可以通过视觉方式分析输出结果,从而加快算法调试的速度。因此,VECTOR加速了算法的开发,并使得运营决策更加明智。
下面一起来阅读一下这项工作~
1. 论文信息
标题:Opening the Black Box of 3D Reconstruction Error Analysis with VECTOR
作者:Racquel Fygenson, Kazi Jawad, Isabel Li, Francois Ayoub, Robert G. Deen, Scott Davidoff, Dominik Moritz, Mauricio Hess-Flores
机构:California Institute of Technology、Carnegie Mellon University
原文链接:https://arxiv.org/abs/2408.03503v1
代码链接:https://github.com/NASA-AMMOS/VECTOR
2. 摘要
从二维图像重建三维场景是一项技术挑战,其影响范围从地球和行星科学、太空探索到增强现实和虚拟现实。通常,重建算法首先识别图像中的共同特征,然后在估计地形形状后最小化重建误差。这一捆绑调整(Bundle Adjustment,BA)步骤围绕一个单一的、简化的标量值进行优化,该标量值掩盖了可能导致重建误差的多种原因(例如,相机位置和方向的初步估计、光照条件、地形中特征检测的难易程度)。重建误差可能导致不准确的科学推断或危及探索遥远环境的航天器。为应对这一挑战,我们提出了VECTOR,这是一种视觉分析工具,用于改进立体重建BA中的误差检查。VECTOR为分析人员提供了之前无法获得的特征位置、相机姿态和计算出的三维点的可见性。VECTOR是与美国宇航局喷气推进实验室的毅力号火星车和机智号火星直升机地形重建团队合作开发的。我们报告了该工具如何用于调试和改进火星2020任务的地形重建。
3. 效果展示
用于火星车导航的立体系统通常以一组图像作为输入(图1步骤1),然后计算图像中的特征和轨迹(图1步骤2),并使用线性代数和优化技术来生成所观察场景的地图,并微调安装在火星车上的相机姿态(图1步骤3),这些相机姿态信息通过遥测接收。通常,如结构从运动(SfM)和即时定位与地图构建(SLAM)等重建算法通过束调整(Bundle Adjustment,BA)来最小化所有相机中所有计算点的总重投影误差。
多视图重建的准确性依赖于准确的特征跟踪和匹配。连接点(Tiepoints)可以使用密集或稀疏算法进行计算,并通过轨迹进行连接。由于误差会在下游计算中累积,因此轨迹匹配的准确性会极大地影响整个场景重建的保真度。即使是鲁棒估计程序也对光照条件和遮挡敏感。由于这些误差,计算出的三维点不会在每个图像的初始连接点位置上完全重投影(见图1,步骤2)。因此,束调整的目标是调整参数,以最小化三维点相对于每个相机中对应连接点的总重投影误差。该误差对应于每个三维点在每个图像平面上相对于其对应连接点的残差平方和。可以通过Levenberg-Marquardt(LM)等算法实现此最小化。
在没有真实地面信息的情况下,尽管束调整容易陷入局部最小值,但它仍然是评估准确性的唯一有效几何方法。此外,束调整输出一个单一的、最小化的标量,几乎不提供有关优化过程、哪些变量对其结果影响最大、严重扭曲过程的离群值以及其他可用于提高重建准确性的有价值信息。例如,如果少数具有高残差误差的特征轨迹占总重投影误差的很大比例,则可以删除或校正这些轨迹,以使束调整更快收敛,并更有可能达到全局最小值。
4. 主要贡献
本文介绍了VECTOR及其在火星毅力号火星车和机智号直升机任务操作中表征立体重建误差的应用。具体而言,本文做出了以下贡献:
推出了首款视觉分析应用程序,以促进立体重建算法的误差分析。
描述了行星机器人探索背景下立体重建的误差分析过程。
展示了如何通过视觉编码和交互来解决地形重建面临的挑战。
5. 基本原理是啥?
为了理解立体重建科学家如何进行误差分析,我们与NASA喷气推进实验室的一支专家团队合作了一年多。我们进行了半结构化访谈,并创建了迭代式共同设计和评估的原型。以下,我们将详细介绍我们发现的主要用户目标,以及VECTOR的设计如何促进每个目标的实现。
特征轨迹和调整后相机位置与方向上的残差大小和方向的差异可以揭示比总重投影误差更有用的参数信息,并可用于改进光束法平差(Bundle Adjustment, BA)的性能。理想情况下,残差应具有最小长度并在二维方向上均匀分布。立体科学家通过分析获得的残差模式来评估BA的性能,这些残差可能数以千计。解决残差问题支持以下三个主要目标:
识别导致大BA误差的具体特征轨迹或这些轨迹的部分。特征轨迹在多幅图像中识别物体或地形,而典型的重建包含数千条轨迹。即使只有少数特征轨迹的残差较高,也可能导致整个物体或场景的精确建模出现偏差,因此立体科学家经常尝试定位和修正具有大残差的轨迹。
删除高误差特征轨迹。在识别出具有大残差或残差集中指向某一方向的特征轨迹后,科学家可以选择删除这些轨迹并重新运行BA。特征轨迹通过唯一的标识符字符串进行表征。
比较删除特征轨迹前后的模型以评估改进。在找到并删除易出错特征轨迹后,科学家重新运行BA并调查轨迹删除是否改善了模型性能。在VECTOR之前,这需要通过在每个模型的残差长文本文件之间切换来完成,对于大型数据集来说,这是一项难以处理的任务。
VECTOR在理解JPL(喷气推进实验室)的SLAM(即时定位与地图构建)、立体视觉、导航和地形测绘方法中的误差来源和大小方面发挥了关键作用,特别是对于火星2020毅力号火星车和机智号直升机而言。VECTOR提供了一个综合性的平台,用于数据过滤、编辑和迭代分析,以解决上述三个主要用户目标,为用户工作流程增添了比等效非交互式可视化更多的价值。在以下小节中,我们将描述VECTOR的每个面板以及它们是如何被用于发现和纠正机智号第26次飞行中的问题。该数据集包含122张图像,其中使用改进的SIFT算法[23]计算了11380条轨迹。该数据集包括直升机的直线运动和急转弯,在这些区域中,三角测量更容易失败。在这些区域,JPL的科学家发现许多地面点被错误地计算。使用VECTOR,操作团队在几分钟内移除了异常轨迹并重新计算了第26次飞行的3D重建,而不是像之前那样将资源投入到手动解析大型文本文件中。这个VECTOR用例是在MacBook Pro笔记本电脑上使用Google Chrome网络浏览器进行的。
6. 总结 & 未来工作
本文介绍了VECTOR(相机连接点、方向和残差的可视化与编辑)软件,该软件目前被NASA喷气推进实验室(NASA-JPL)用于其地面数据处理流程中立体算法的评价和误差分析。VECTOR的诞生源于在常见的三维立体过程(如SfM和SLAM)中可视化误差和重建参数的需求,并且正在火星2020任务的操作中使用。未来的工作可以通过开发验证指标来改进VECTOR,以提高优化的确定性。虽然目前的VECTOR用户报告称在查找错误方面有了显著改善,但用户无法确定错误是否已达到全局最小值。VECTOR还在JPL包含数百张图像和数千条轨迹的数据集上进行了测试,但还需要探索如何扩展到数百万条数据集的规模。未来的工作还可以识别在大量立体应用和其他困难优化问题中可能从VECTOR中受益的其他领域。为此,该软件作为开源软件在NASA-AMMOS上供公众使用。
对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~
本文仅做学术分享,如有侵权,请联系删文。
3D视觉交流群,成立啦!
目前我们已经建立了3D视觉方向多个社群,包括
2D计算机视觉
、
最前沿
、
工业3D视觉
、
SLAM
、
自动驾驶
、
三维重建
、
无人机
等方向,细分群包括:
工业3D视觉
:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。
SLAM
:视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。
自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。
三维重建
:3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等
无人机
:四旋翼建模、无人机飞控等
2D计算机视觉
:图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等
最前沿
:具身智能、大模型、Mamba、扩散模型等
除了这些,还有
求职
、
硬件选型
、
视觉产品落地、产品、行业新闻
等交流群
添加小助理: dddvision,备注:
研究方向+学校/公司+昵称
(如
3D点云+清华+小草莓
), 拉你入群。
3D视觉工坊知识星球
「
3D视觉从入门到精通
」知识星球,已沉淀6年,星球内资料包括:
秘制视频课程近20门
(包括
结构光三维重建、相机标定、SLAM、深度估计、3D目标检测、3DGS顶会带读课程、三维点云