发布时间:2026/6/18 3:27:54
DVMSLAM中的sim3变换
DVM-SLAM 中的 Sim(3) 变换从地图合并到持续对齐核心结论Sim(3) 是 DVM-SLAM 解决“单目多机器人坐标系不一致”的几何工具它负责把不同 agent 的地图从各自 world frame 对齐到同一个 group frame。1. 一句话解释 Sim(3)在 DVM-SLAM 中每个机器人本地运行单目 ORB-SLAM并独立建立自己的地图。由于是单目相机每个机器人得到的地图尺度并不天然一致robot A 认为走廊长 10 个单位robot B 可能认为同一段走廊长 7 个单位。因此两个地图不能只靠旋转和平移拼接还需要估计一个尺度因子。Sim(3) 变换可以写成x′sRxt \mathbf{x} s\mathbf{R}\mathbf{x} \mathbf{t}x′sRxt其中符号含义在 DVM-SLAM 中解决的问题sssscale尺度单目地图尺度不一致R\mathbf{R}Rrotation旋转两个 agent 坐标轴方向不同t\mathbf{t}ttranslation平移两个 agent 地图原点不同齐次矩阵形式TSim(3)[sRt0T1] T_{Sim(3)} \begin{bmatrix} s\mathbf{R} \mathbf{t} \\ \mathbf{0}^T 1 \end{bmatrix}TSim(3)​[sR0T​t1​]总共 7 个自由度。在 g2o 中用 g2o::Sim3 表示通常记作 gScwSim3 from world to camera。单目 SLAM 每台机器人独立建图时两张地图在 overlap 区域的真实几何关系就是 Sim3世界坐标系原点和朝向 是任意的arbitrary。绝对尺度 也是任意的同一物理场景A 机器人地图里 1m 可能在 B 机器人地图里是 0.7m 或 1.3m。符号,含义 gScw,当前相机在世界系下的 Sim3 位姿 gSiw,第 i 个 KeyFrame 在世界系下的 Sim3 gScm,Current KF 与 Matched KF对端之间的 Sim3 mg2oMergeScw,最重要Merge 确认后当前锚点 KF 在目标 Merge 世界系下的 Sim32. 为什么 DVM-SLAM 不能只用 SE(3)SE(3) 只包含旋转和平移x′Rxt \mathbf{x} \mathbf{R}\mathbf{x} \mathbf{t}x′Rxt它默认两个地图的尺度已经相同。但 DVM-SLAM 是纯单目 decentralized C-SLAM每个 agent 都可能在任意未知位置独立初始化没有全局尺度先验。论文也强调许多去中心化系统不用单目视觉的重要原因之一就是单目会引入 arbitrary map scale 和更频繁的定位丢失问题。SE3刚体变换只有 6 DoF固定 s1。Sim3 允许整张地图整体缩放但保持形状角度和相对比例不变。因此在 DVM-SLAM 里机内局部跟踪 / 局部 BA主要在本机地图尺度下工作跨机地图合并必须估计 Sim(3)否则不同尺度地图会被错误焊接合并后的地图校准仍需要周期性重新估计 Sim(3)防止早期合并误差逐渐放大。3. Sim(3) 在 DVM-SLAM 中出现的两个关键位置3.1 第一次地图合并Map MergingDVM-SLAM 的地图合并不是一开始就传整张地图而是先通过 BoW 判断“是否可能看到了同一个地方”。流程可以理解为渲染错误:Mermaid 渲染失败: Parse error on line 8: ...-- H[估计 T_j→i ∈ Sim(3)] H -- I[agent -----------------------^ Expecting SQE, DOUBLECIRCLEEND, PE, -), STADIUMEND, SUBROUTINEEND, PIPE, CYLINDEREND, DIAMOND_STOP, TAGEND, TRAPEND, INVTRAPEND, UNICODE_TEXT, TEXT, TAGSTART, got PS关键点BoW 阶段只负责找候选它判断“两个关键帧看起来像不像同一地点”。真正合并时需要完整地图信息候选成立后才交换地图执行几何验证和地图焊接。合并成功后得到Tj→iT_{j\rightarrow i}Tj→i​如果ijijij论文描述为 agent j 将自己的坐标空间变换到 agent i 的地图中并把这个变换传播给自己组内成员。组内 agent 共享同一坐标系只有这样后续 keyframe / mappoint 才能无需再次变换地插入本地共享地图副本。3.2 合并后的持续校准Map Alignment RefinerDVM-SLAM 使用“早期合并”策略只要发现足够强的重叠证据就会尽早合并地图。这样有利于快速建立 group但也会带来一个问题刚合并时重叠区域很小Sim(3) 估计可能有轻微尺度、旋转或平移误差。地图越长这个误差越容易被放大最终导致共享地图逐渐发散。为了解决这个问题DVM-SLAM 在合并后持续执行Map Alignment Refiner。其核心流程是渲染错误:Mermaid 渲染失败: Parse error on line 7: ...T_local→leader ∈ Sim(3)] G -- H[Apply -----------------------^ Expecting SQE, DOUBLECIRCLEEND, PE, -), STADIUMEND, SUBROUTINEEND, PIPE, CYLINDEREND, DIAMOND_STOP, TAGEND, TRAPEND, INVTRAPEND, UNICODE_TEXT, TEXT, TAGSTART, got PS这里的优化目标可以写成Tlocal→leader∗arg⁡min⁡s,R,t∑k∈M∥pkleader−(sRpklocalt)∥2 T^*_{local\rightarrow leader} \arg\min_{s,R,t} \sum_{k \in \mathcal{M}} \left\| \mathbf{p}^{leader}_k - (sR\mathbf{p}^{local}_kt) \right\|^2Tlocal→leader∗​args,R,tmin​k∈M∑​​pkleader​−(sRpklocal​t)​2其中M\mathcal{M}M是通过 UUID 找到的共同 MapPoint 集合。RANSAC 用来剔除误匹配Kabsch-Umeyama 用来求最小 RMSE 的 Sim(3)。4. Sim(3) 与 UUID 的关系为什么“同一个点”必须能被精确指认Sim(3) 的估计需要共同关键帧或共同地图点。如果 robot A 和 robot B 都有一个本地mnId 5这并不能说明它们是同一个物理对象因为mnId只在本机内部有意义。因此 DVM-SLAM 的通信与序列化地图中必须携带 UUID对象本机编号跨机身份KeyFramemnIduuidMapPoint本地对象指针 / iduuidUUID 在 Sim(3) 相关流程中的作用BoW 去重对方发来的关键帧 BoW 是否已经处理过merge 对齐merge_candidate_key_frame_uuids指明候选公共关键帧地图重连serialized map 中的 KF / MP 按 UUID 在本地数据库中查找并重新连接Map Alignment Refiner按 UUID 找到双方共同观测到的 MapPoint再求Tlocal→leaderT_{local\rightarrow leader}Tlocal→leader​。可以把它理解为Sim(3) 是“怎么对齐”UUID 是“对齐谁和谁”。5. Sim(3) 与去中心化 PGO 的关系DVM-SLAM 的去中心化 PGO 不是传统意义上的全网分布式矩阵求解而是通过增量、异步的关键帧和地图点共享完成的。合并后同一 group 内 agent 已经处在共同坐标系中因此外部 keyframe 和 mappoint 可以直接移动到本地 map无需再次做坐标变换。随后本地执行插入外部关键帧kextk_{ext}kext​重连共视关键帧和观测地图点合并重复 MapPoint围绕kextk_{ext}kext​执行局部 PGO。所以二者关系是模块作用是否直接做 PGOBoW / Visual Word Set找 merge 候选否Sim(3) Map Merge建立共同坐标系否主要是坐标系对齐与地图焊接Map Alignment Refiner周期性修正尺度/旋转/平移误差否主要是几何校准External Keyframe Inserter Local PGO插入外部 KF/MP 后优化本地共享图是一句话Sim(3) 先把地图放到同一个坐标系PGO 再在这个共同坐标系内优化关键帧与地图点关系。6. 和通信流程的对应关系可以按三阶段解释 Sim(3)阶段主要通信Sim(3) 角色Merge 前new_key_frame_bows暂无 Sim(3)只找候选Merge 中get_current_map/map_to_attempt_merge通过完整地图尝试求Tj→iT_{j\rightarrow i}Tj→i​Merge 后change_coordinate_frame/successfully_merged传播 Sim(3)让组内 agent 进入同一 reference frame协作期new_key_frames/get_map_points同坐标系增量同步必要时 refinement 重新估计 Sim(3)7.总结DVM-SLAM 是纯单目多机器人 SLAM因此每个机器人独立建图时不仅坐标原点和朝向不同地图尺度也可能不同。普通 SE(3) 只能处理旋转和平移无法解决尺度不一致所以 DVM-SLAM 在跨机器人地图合并时必须使用 Sim(3)也就是同时估计尺度、旋转和平移。在系统流程中Sim(3) 第一次出现在 map merging 阶段。机器人先通过 BoW 和 UUID 发现潜在重叠区域候选成立后才交换完整地图并尝试几何合并。如果合并成功系统会估计从高 ID 或待合并 agent 坐标系到 leader 坐标系的 Sim(3) 变换并通过 ChangeCoordinateFrame 等消息传播给组内其他机器人使整个 group 进入同一坐标系。但是 DVM-SLAM 采用早期合并策略初始重叠区域可能较小因此 Sim(3) 会存在轻微误差。随着地图扩展这种尺度、旋转和平移误差可能被放大。为此系统又设计了 Map Alignment Refiner通过 UUID 找到双方共同 MapPoint用 RANSAC 剔除错误匹配再用 Kabsch-Umeyama 算法重新估计 Sim(3)周期性把本地地图重新对齐到 leader 的 reference frame。因此Sim(3) 可以理解为 DVM-SLAM 去中心化协同建图中的“坐标系胶水”它不等同于 PGO但它为后续外部关键帧插入、地图点重连和局部 PGO 提供了统一的几何基础。8. 记忆版总结单目多机为什么要 Sim(3) 因为不同 agent 的地图尺度不一致。 Sim(3) 在哪里用 1) 初次 map merge估计 T_j→i把 peer map 拉到 leader map。 2) map alignment refiner用共同 MapPoint 周期性重估 T_local→leader。 UUID 为什么重要 UUID 决定“哪个 KF/MP 是同一个物理对象”Sim(3) 决定“如何把它们对齐”。 和 PGO 什么关系 Sim(3) 负责统一坐标系PGO 负责在统一坐标系内优化图。

相关新闻

一阶直线倒立摆LQR控制器MATLAB实操包(含可运行Simulink模型与响应曲线)
2026/6/17 1:29:39

一阶直线倒立摆LQR控制器MATLAB实操包(含可运行Simulink模型与响应曲线)

本文还有配套的精品资源,点击获取 简介:直接上手就能跑的一阶直线倒立摆LQR控制仿真资源,包含主控脚本main_lip1.m、参数调节函数change.m、LQR封装函数lqr1_funtion.m,以及已验证可用的Simulink模型lip_lqr.slx(含…

阅读更多
Windows本地GUI工具:拖拽式批量伪造文件MD5值(含备份与皮肤切换)
2026/6/15 5:50:26

Windows本地GUI工具:拖拽式批量伪造文件MD5值(含备份与皮肤切换)

本文还有配套的精品资源,点击获取 简介:一套在Windows上离线运行的图形化工具,专为需要可控修改文件MD5哈希值的场景设计。主程序BatchMD5Modify.exe支持拖放添加多个文件,一键批量写入指定MD5值,同时自动保存原始哈…

阅读更多
手把手教学:AI智能体辅助临床科研——数据清洗、分析、论文写作全流程
2026/6/16 19:02:40

手把手教学:AI智能体辅助临床科研——数据清洗、分析、论文写作全流程

手把手教学:AI智能体辅助临床科研——数据清洗、分析、论文写作全流程 当“AI辅助科研”从概念走向实践,最大的痛点不再是“AI能做什么”,而是“我该怎么用”。本文将提供一个可复现的全流程实战指南,从数据清洗到论文初稿&#x…

阅读更多
3分钟实战人脸识别:face-api.js一站式解决方案深度揭秘
2026/6/18 2:58:44

3分钟实战人脸识别:face-api.js一站式解决方案深度揭秘

3分钟实战人脸识别:face-api.js一站式解决方案深度揭秘 【免费下载链接】face-api.js JavaScript API for face detection and face recognition in the browser and nodejs with tensorflow.js 项目地址: https://gitcode.com/gh_mirrors/fa/face-api.js 在…

阅读更多
新手学网安踩无数坑?这份 2026 完整学习路线,零基础从入门到进阶,附带资源与避雷方案
2026/6/18 2:58:44

新手学网安踩无数坑?这份 2026 完整学习路线,零基础从入门到进阶,附带资源与避雷方案

零基础入门到进阶:2026网络安全学习路线图(附资源避坑指南) 摘要:网络安全行业人才缺口持续扩大,薪资领跑IT领域,但很多零基础学习者陷入“无从下手”“学了不会用”的困境。 一、学习总纲领:明…

阅读更多
时间序列过拟合的三大陷阱与业务感知型检测法
2026/6/18 2:58:44

时间序列过拟合的三大陷阱与业务感知型检测法

时间序列建模中,过拟合(Overfitting)不是“模型太复杂”这么一句轻飘飘的结论就能打发的。它是一类极具欺骗性的失效模式——模型在训练集上表现惊艳,验证误差却突然飙升;预测曲线贴合历史波动分毫不差,但一…

阅读更多
NumExpr:让 NumPy 数组运算更快更省内存
2026/6/18 2:58:44

NumExpr:让 NumPy 数组运算更快更省内存

文章目录NumExpr:让 NumPy 数组运算更快更省内存核心能力:表达式求值加速安装与使用无 GIL 支持适合谁用NumExpr:让 NumPy 数组运算更快更省内存 NumExpr 是一个针对 NumPy 的数值表达式加速库,目前在 GitHub 上获得了 2,487 个 …

阅读更多
3分钟掌握全网小说离线阅读:novel-downloader小说下载器终极指南
2026/6/18 2:58:44

3分钟掌握全网小说离线阅读:novel-downloader小说下载器终极指南

3分钟掌握全网小说离线阅读:novel-downloader小说下载器终极指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否曾经遇到过这样的困境:追更的小说突然…

阅读更多
不同需求怎么选MBA面试辅导机构?2026场景攻略
2026/6/18 1:58:44

不同需求怎么选MBA面试辅导机构?2026场景攻略

MBA面试辅导机构挑选3个核心误区 在2026年的MBA申请季,提前面试辅导已经成为大多数考生绕不开的一环。市面上提供MBA面试辅导的机构数量逐年增加,从老牌联考培训学校到个人IP型导师,选择面广了,选错的可能性也大了。初次接触MBA面…

阅读更多
别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)
2026/6/17 23:21:18

别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)

超越BERT:用Transformers库高效实现文本相似度计算的三种实战方案在自然语言处理领域,文本相似度计算是信息检索、问答系统和推荐系统等应用的核心技术。传统方法如TF-IDF或Word2Vec已逐渐被基于Transformer的预训练模型所取代。Hugging Face的Transform…

阅读更多
Prompt Engineering:重构人机协作的工程化方法论
2026/6/16 20:00:23

Prompt Engineering:重构人机协作的工程化方法论

1. 项目概述:这不是“写提示词”,而是重构人机协作的底层逻辑“Prompt Engineering”这个词,这两年被讲得太多,也太轻飘。很多人把它理解成“给AI发指令的技巧”,甚至简化为“多加几个形容词”“换种说法再试一次”。我…

阅读更多
Anthropic提示层归零:模型即协议的工程实践
2026/6/17 10:35:40

Anthropic提示层归零:模型即协议的工程实践

1. 项目概述:这不是一次普通更新,而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题一出来,我正在调试一个Claude调用链的终端前停了三秒。不是因为震惊,而是因为熟悉&…

阅读更多
零碳供电所照明控制系统技术解析:标准要求与产品落地
2026/6/18 0:58:44

零碳供电所照明控制系统技术解析:标准要求与产品落地

一、零碳供电所对照明控制系统的硬性要求 《零碳供电所创建与评价规范》(T/ZDL 02-2022)是全国首个零碳供电所评价的团体标准,于2022年10月1日起实施-10-2。该标准将建筑、交通、办公、能源、建设与管理等多个维度零碳评价指标融为一体&#…

阅读更多
学生党AI学习指南:GPT、Gemini、WPS AI三工具协同实战
2026/6/18 0:58:44

学生党AI学习指南:GPT、Gemini、WPS AI三工具协同实战

1. 这不是工具清单,是学生党用时间砸出来的“AI生存指南”最近在图书馆自习区,我常看见对面座位的同学盯着屏幕发呆——不是在刷短视频,而是在和某个AI对话框反复拉扯:输入问题、删掉重写、再改提示词、等结果、皱眉、刷新……半小…

阅读更多
Gemini 3.1 Pro+DeepSider:新人零门槛AI工作流实战指南
2026/6/18 0:58:44

Gemini 3.1 Pro+DeepSider:新人零门槛AI工作流实战指南

1. 为什么Gemini 3.1 Pro值得新人认真对待——不是又一个“聊天玩具”最近在几个技术社群和内容创作小组里,总能看到有人发截图:“Gemini 3.1 Pro刚跑完一份20页PDF的逻辑图谱,还顺手把矛盾点标红了”;也有人贴出对比:…

阅读更多
GIT修改用户名
2026/6/17 19:45:33

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/16 16:55:24

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/17 4:21:30

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多