

2. Fusion++的核心思想:范式转变
Fusion++彻底改变了游戏规则。它不再将世界看作一个统一的几何空间,而是将其看作由背景和多个独立的物体实例组成的集合。
思想一:实例级表示 —— 为每个物体建立独立的“数字孪生”
这是最核心的创新。Fusion++为场景中检测到的每一个物体实例(例如,一把特定的椅子、一个特定的显示器)都创建并维护一个独立的、局部的TSDF体积。
- 传统SLAM子图:基于传感器移动创建。当相机移动一定距离后,创建一个新的子图来覆盖新的空间区域。
- Fusion++ 子图:基于语义实例创建。每当检测到一个新的物体(比如通过Mask R-CNN),就为它创建一个专属的子图。

思想二:解耦的姿态估计 —— 物体姿态 + 相机姿态
在传统SLAM中,只估计一个姿态:相机相对于全局地图的姿态(Camera Pose)。Fusion++引入了第二个关键姿态:物体相对于全局地图的姿态(Object Pose)。
- Object Pose (T_W_O):描述每个物体实例在全局空间中的位置和方向。
- Camera Pose (T_W_C):描述相机在全局空间中的位置和方向。
这种解耦的表示具有巨大优势:
- 自然支持动态物体:当一个物体被移动时,只需要更新它的 Object Pose (T_W_O) 即可。物体的模型本身(TSDF体积)保持不变。背景模型和其他静态物体也完全不受影响。这从根本上解决了动态物体的“鬼影”问题。
(图示:物体姿态和相机姿态被分别估计和优化)
思想三:基于语义的、分层的的数据关联
在匹配时,Fusion++绝不进行暴力匹配。它采用了一种高效的分层策略:
- 语义筛选:当前帧检测到一个“椅子”时,系统只会去已有的实例库中寻找同为“椅子”的实例,瞬间排除了所有不相关的物体。
- 几何筛选:利用视锥体剔除等技术,进一步排除那些不在当前相机视野内的“椅子”实例。
- 外观/几何精细匹配:对剩下的极少数候选实例,进行轮廓重叠度(IoU)、外观相似度等计算,找到最匹配的实例。
这个过程高效且鲁棒,是系统能实时运行的关键。
3. Fusion++ 的工作流程
- 输入:实时的RGB-D图像流。
- 实例分割:对每一帧RGB图像使用2D实例分割网络(如Mask R-CNN),获得物体的边界框、掩码和语义标签。
- 数据关联:将检测到的实例与已有的“实例级TSDF子图库”进行匹配(使用上述分层策略)。
- 如果匹配成功:将当前帧的深度数据融合到匹配到的实例子图中,并优化该实例的物体姿态。
- 如果匹配失败(一个新物体):为该实例创建一个新的TSDF子图,并初始化其物体姿态。
- 相机跟踪:同时估计相机相对于全局场景的姿态。
- 全局优化(后端):当检测到闭环(例如,再次看到同一个物体)时,在姿态图中联合优化所有物体姿态和相机姿态,以消除累计漂移。
. 核心思想的优势总结
- 生成真正的“物体级”地图:输出是结构化的,包含语义信息,可用于高级任务(如“机器人,请拿起那个杯子”)。
- 革命性的动态物体处理:动态物体不再是问题,而是被自然地支持。
- 提升SLAM的精度和鲁棒性:物体可以作为强大的闭环约束,优化相机轨迹。
- 高效的内存和计算管理:每个物体的TSDF体积是局部的、可控的。非活跃的物体可以被交换出内存。
- 便于场景编辑和交互:可以轻松地添加、删除、移动场景中的物体。
生动的类比
想象一下重建一个乐高城堡的模型:
- 传统SLAM:你用一大桶石膏把整个乐高城堡糊住,得到一个完整的、坚硬的石膏模型。你无法再移动里面的任何一个乐高小人。
- Fusion++:你为城堡里的每一个乐高部件(每个人、每扇门、每辆车)都建立一个独立的、精确的3D模型文件。整个城堡场景就是这些模型文件的集合,每个模型都有自己独立的位置信息。你可以随意移动一辆车,而完全不影响城堡的墙壁。
总而言之,Fusion++ 的核心思想是SLAM领域的一次范式革命。它将SLAM的目标从重建“几何”提升到了理解“物体”,为机器人感知、增强现实和数字孪生等领域提供了远见卓识,指明了发展方向。