点击下方卡片,关注「计算机视觉工坊」公众号
选择星标,干货第一时间送达
「3D视觉从入门到精通」知识星球(点开有惊喜) !星球内新增20多门3D视觉系统课程、入门环境配置教程、多场顶会直播、顶会论文最新解读、3D视觉算法源码、求职招聘等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!
作者:郑纯然Range(HKU博士生)
连接:https://zhuanlan.zhihu.com/p/1925623885379909421
空间智能Spatial AI的概念,早在18年的《FutureMapping: The Computational Structure of Spatial AI》白皮书中就被Andrew教授提出了。大概从五年前到现在,Andrew老爷子做了多次题为From SLAM to Spatial AI的报告,内容也在不断更新。我听了他最近几年在MIT CSAIL研讨会、MIT Robotics线上研讨会以及Imperial College线上讲座上的报告,结合这两年看的文章,我终于想清楚了最近心中的一些疑惑/bushi:在AI横行,技术迭代如此之快的时代,我们SLAMer应该做些什么研究,或者说该如何自处?
Andrew教授是我非常崇拜的学者,现在是帝国理工戴森实验室主任,2004年的时候就做了第一个仅靠单目相机的实时SLAM系统MonoSLAM,2011年最早将GPU加速用于稠密场景重建KinectFusion,2017年提出了首个能实时Metric Semantic Mapping的系统SemanticFusion,他始终引领着机器人领域的发展方向,推动了许多重大变革。Andrew教授所获成果繁多,此处按下不表。每每谈及他,我都能感受到SLAM领域的厚重与积淀,我一直把他视为SLAM领域的鼻祖。 不多废话,我理解有价值的研究方向可以总结为三条。
1.寻找一个长期的,轻量化的SLAM地图表征
未来SLAM系统需要能长期运行且占用资源极小的地图表示方法。这要求我们抛弃传统笨重、无限增长的地图结构,转向更紧凑且可持续更新的表征。
1.1 隐式表征:早期的隐式神经SLAM方法,采用单一的多层感知机MLP作为场景的唯一表示,如iMAP。通过逐帧训练,iMAP实现了实时定位与建图,能够对未观测区域进行平滑推断,填补背面等缺失区域。其模型参数量很精简约1MB,内存小,但计算成本很高,参数更新很消耗资源。另外单一MLP的表征能力也很有限,难以处理大规模场景,且容易出现灾难性遗忘。
为了解决这些问题,NICE-SLAM提出了混合表示方法:将显式的分层网格特征与隐式MLP解码器结合。在三维空间中构建了多级 (粗、中、细) 体素网格,每个网格存储可学习的局部特征向量。这些特征向量通过预训练的MLP解码器转化为密度和颜色信息。这种分层结构避免了单一MLP的限制,支持局部更新,保持了对未观测区域的合理推断。自然的,在大规模室内场景会有更精细的几何和纹理重建效果。隐式MLP表征此处仅以这两篇经典文章为例。
除了iMAP和NICE-SLAM,这类源于NeRF的方法,还推荐去看看丁文超老师的Swift-Mapping,O2V-Mapping这些工作,他们对这种大场景的在线神经隐式地图 (Online Neural Impicit Mapping) 很有研究,比如,他们利用Octotree来管理特征向量,这其中涉及了很多细节处理。如何在volume render时去索引Octotree,如何动态增删地图,如何处理移动物体等等,这些也都是我们后来的工作GS-LIVO里重点解决的。
丁老师他们还做了一些对稠密点云数据进行神经编码 (Neural Descriptor) 的工作DeepPointMap。但用的不是MLP了,是更复杂的一些网络,用DPM来做encoder和decoder,将点云数据编码为一些稀疏的高维特征向量。后面他们干脆不做decoder了,直接用特征向量完成了LiDAR SLAM所有的事,比如scan-to-map和loop-closure。这些特征向量是比较容易通过网络判断出相似性的,泛化性还很好,,,写到这儿不得不感叹下,这是真在玩科研。
在下一代DeepPointMap2里,他们还把视觉的数据也编码进来了,做了视觉和LiDAR点云多模态对齐,这不就是VLM和VLA里面想要的多模态数据对齐的embedding么...
前融合有很多范式,FAST-LIVO2就是最直接的,用准确的correspondence将点云用视觉去上色,但对内外参和相机时刻pose很敏感。现在常见的多模态架构一般用cross attention去做融合,但这是一种非对称融合,通常以激光为主。他们这里用的是一个对称融合(Multi-Model Transformer),他们学的是Query Gen,可以双向去query另一个sensor的数据,任何一个fail了,另一个都可以work。除此之外,他们还思考了能不能利用视觉和LiDAR显式的先验对齐关系,去改进attention (Spatial-Aware Attention), 以此加速收敛。这里有点写多了,我想表达的是他们的工作让我看到了SLAM的广阔research空间。
1.2 显式物体级语义地图 (Hierarchical Scene Graph):借助VLM工具,如GroundingDino目标检测、SAM精细mask和CLIP的组合拳,能够构建基于开集 (open-vocabulary) 的高质量object/instance-level点云或Mesh地图。这种地图形式早在17年的SemanticFusion中就被提出了,但这些VLM工具使得zero-shot像素级语义分割成为可能,从而让物体级地图又火了起来。
在Luca等人提出的Kimera系列中,3D Dynamic Scene Graphs进一步引入了动态性和更高效的空间表示。动态场景图不仅表示物体的几何和语义信息,还能捕捉物体和环境的时间变化。
Dyn Scene Graph的数据结构:
节点:表示场景中的实体,包含其几何信息 (如位置、尺寸、姿态等) 和语义信息 (如物体类型、状态等)。
边:表示节点之间的关系,包括空间关系和语义关系。在动态场景中,边还可能涉及时间维度,表示物体之间随着时间的变化而带来的关系变化。
时间戳和状态更新:每个节点和边都包含时间戳,记录物体的动态变化,如位置变化或被移动等,使Scene Graph能反映动态环境中的变化。
层级结构:场景的不同抽象级别组织为多个层次。例如,底层是metric-semantic Mesh/点云,表示场景的dense三维模型;中间层是objects;再高层次是places,表示可导航的空间区域及其连接性。(论文中有5层,还有room和building,此处仅简述) 这种层级结构使得场景的表征更加组织化,对空间感知和任务规划很友好。
由于实例地图的构建过程结合了多帧图像mask的CLIP向量pooling average+对应的空间分布组合编码,从而区分出不同物体,地图和自然语言指令间能以O(1)时间复杂度完成关联。这种地图结构增强了空间理解,帮助机器人执行语义导航等高级任务。通过将稠密点云转换为抽象的图结构,避免了因细节增多而产生的冗余,使得地图在长期使用中保持高效和一致。
1.3 显式各向异性Gaussian地图:Andrew教授的Gaussian Splatting SLAM工作较早地将各向异性3D高斯椭球作为统一的地图表示方法应用于实时视觉SLAM系统。场景通过大量具有位置、方向、伸展程度、颜色和不透明度的高斯椭球进行建模,但相比稠密点云较为稀疏。原本3DGS中为了表示view-dependent的颜色信息,要使用球谐函数。为了提高效率,GS-SLAM代码中通常仅使用0阶球谐 (即常数项) 来表示颜色。
高斯表示的优势在于:一方面它像点云/曲面片一样局部且高效,允许动态增加以自适应场景细节;另一方面由于高斯是连续分布,天然适合于可微渲染,可用于直接与图像像素对齐优化,适用于大范围的形变校正。要注意在优化相机位姿时,图像平面上的2d Gaussians的均值和协方差都对相机pose有导数。这种高效的光栅化和梯度计算 (CUDA显式计算所有参数的导数),以及high fidelity的渲染效果,都是Gaussian Map能用于SLAM系统的关键。
2.充分利用AI赋予的能力,给图像提供先验
充分利用Transformer‑driven的模型,为图像提供几何先验。
深度图,如Depth Anything V2;法向量图,如SuperPrimitives;深度协方差图,如Como;处理图像pair生成3d点云,如MAST3R;还有VGGT输入一组图像,输出每张图的相机内外参、深度图、点图和用于track的特征图。基于这种rgbd/rgbn输入来做SLAM,目前看来效果非常之惊艳。主要是因为MAST3R在不同视角下生成的point map 之间仅差一个Sim(3) ,没有系统性bias,因此有很强的几何一致性,这对LiDAR/visual SLAM是非常友好的。
最近几个月测试了VGGT和MAST3R,后者的鲁棒性明显要好很多,下一篇文章主要从传统SLAMer的角度讲讲MAST3R-SLAM,以及其后续的工作可以怎么开展。
3.用超低成本全固态雷达做LiDAR SLAM
这个和第2条一样,属于深度有瑕疵的rgbd模态。不过,目前Flash LiDAR的深度质量可能会更差 。实测过lmgz的spad,整体效果一般,边角容易出现多径效应,平面点云易分层。详细原理见我之前写的文章:
一文看懂主流深度测距技术:iToF、dToF、结构光、主动双目、被动双目
因此需要进一步矢量化surfel-based map,仅保留关键面片 (类似视觉中的稀疏特征点地图),去优化地图中面片的位置和方向。因为这种sensor本身body系下的深度就有问题,如果按照传统LiDAR SLAM的pipeline,仅优化位姿,重复扫描相同区域时,地图一定会越来越糊。
未来的SLAM一定还是运行在端测。但需要降低成本,可能选择更便宜的全固态雷达,或者不再依赖LiDAR,转而利用AI赋予我们的先验能力,同时探索一种长期且轻量化的地图表征。
我们面前有两座大山,一座是"Trivial",另一座是"Impossible"。航行于斯库拉 (平凡) 与卡律布狄斯 (不可能) 之间,我们需要找到那条细如剃刀刃的创新之路,凭借敏锐的直觉与扎实的基本功,才能突破这道缝隙。
本文仅做学术分享,如有侵权,请联系删文。
3D视觉1V1论文辅导
苏州三迪斯维!KW系列结构光3D相机!精度高、体积小、稳定性强、SDK超好用!
机械臂抓取项目实战!基于KW-3D相机!
重磅升级!精迅V2!从零开始搭建一套面结构光三维扫描仪[硬件+源码+视频+答疑]
多传感器融合科研神器!HandBot-S1!硬件算力开源、数据开源、支持开源算法运行!支持二次开发!
科研级!DriveBot-Q1 | 从零搭建一套智能无人车[硬件+源码+答疑]!配套实战课程
御风250!四旋翼无人机(基于PX4)(激光雷达版)
如何快速上手全球最强开源飞控px4?
终于来了!3D视觉!保姆级从入门到进阶系统学习教程!相机标定、SLAM、三维重建、自动驾驶等
推荐两款高精度圆点/棋盘格标定板
科研级-深迅V1|3D线结构光三维扫描仪套件[硬件+源码+视频课程+答疑]
重磅!单目/双目相位偏折术2.5D测量科研套件
3D视觉硬件,官网:www.3dcver.com
3D视觉学习圈子
「3D视觉从入门到精通」知识星球(点开有惊喜) !星球内新增20多门3D视觉系统课程、入门环境配置教程、多场顶会直播、顶会论文最新解读、3D视觉算法源码、求职招聘等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!