C2TAM
Riazuelo 2014 · 论文
一句话总结 — C2TAM(用于协作跟踪与建图的云框架,Cloud framework for Cooperative Tracking And Mapping)开创了基于云的协作单目 SLAM,将光束法平差、重定位、场景识别和地图融合等任务卸载到服务器,而每个机器人只在本地保留轻量级的实时跟踪。
问题
协作单目 SLAM 要求每个机器人跟踪自己的位姿同时维护一个一致的全局地图——而地图端的成本(尤其是光束法平差)远远超出了轻量级嵌入式平台所能承受的范围。云计算提供了显而易见的分工方式,但也带来了成败攸关的问题:能否将 SLAM 问题拆分,使其强实时性约束不受网络延迟的影响?C2TAM 的答案是:只有相机帧率的跟踪才是延迟关键的;建图、大范围重定位、场景识别和地图融合只要将两个环路解耦,都能够容忍标准无线连接的延迟。
方法与架构
将 PTAM 的分工方案跨网络延伸。 在 PTAM 的跟踪/建图线程分解方案基础上进行扩展,跟踪客户端在机器人上运行,针对本地缓存的地图副本进行工作;建图服务运行在云端,保存 个地图 ,每个地图 由三维点和关键帧组成。每个点携带多尺度图像块描述子;每个关键帧携带一个”缩略图”全局描述子——即该帧被下采样到 40×30、经高斯滤波并均值归一化:。
云端建图 = 光束法平差。 服务器通过最小化所有点 和关键帧 上的鲁棒重投影误差来计算最大似然地图:
其中 是投影模型, 是基于中位数的噪声估计, 是 Tukey 双权函数,它会将 的残差归零以剔除异常值。
客户端跟踪。 每帧执行:(1) 恒速位姿预测;(2) 由最粗尺度的点得到粗略位姿,;(3) 再对每个尺度下的每个地图点重新优化得到精细位姿 。地图初始化用客户端上的交互式多模型滤波器取代了 PTAM 手动平移的仪式化操作,一旦视差足够,就将前两个关键帧发送给服务器。
通过网络传输的内容。 只有当图像相对于地图包含新信息时,跟踪器才会上传一个新的原始关键帧(640×480 RGB,约 1 MB);服务器则流式回传优化后的三维点。跟踪永不因网络而阻塞:它在缓存的(可能非最优的)地图上继续运行,并在更新到达时替换进去。
重定位、场景识别、地图融合——全部作为云服务。 跟踪丢失后的重定位分两步:首先按缩略图描述子之间的欧氏距离找到最近的关键帧,然后进行旋转补偿的位姿优化。场景识别在所有已存储的地图上运行相同的搜索,以识别新用户所处的地图。当一个新上传的 关键帧与 的某个关键帧匹配时,就会触发地图融合:两个地图的三维点被投影到该共同关键帧中,对应关系给出刚性变换,地图随之合并,重复的点被删除——整个过程完全在服务器端进行,而客户端则继续在其非最优地图上进行跟踪。
实验结果
所有实验都通过大学的标准 WiFi 实时运行,使用 640×480 的 RGB-D 相机(SLAM 只用 RGB,深度仅用于可视化)。
- 成本与带宽(4961 帧序列):客户端跟踪保持约 10 毫秒/帧——即使地图增长到数千个点仍保持恒定,远低于 33 毫秒的帧预算(前 20 帧的自动初始化成本约 70 毫秒/帧)。平均带宽约为 1 MB/s,而实测可用链路带宽为 1.45 MB/s;关键帧上传(约 1 MB)意味着约 1 秒的延迟,地图下载为 100-200 毫秒——两者都远高于 1/30 秒的帧周期,这证明了异步设计的合理性。
- 多地图中的重定位:三个已存储的地图(桌面、墙壁/书架、医院病房)分别被一个穿越实验室的新序列识别并扩展——桌面从 2662 点/28 关键帧增至 3313/47;墙壁从 2711 点/32 关键帧增至 3987/58;病房从 642 点/29 关键帧增至 1624/58。
- 精度:用卷尺测量的真值与地图测量值一致,精度达到毫米到厘米级,例如笔记本电脑 0.340 米对比 0.337 米,床 2.039 米对比 2.044 米,墙壁 3.105 米对比 3.096 米。
- 地图融合:一个在线的桌面 A 地图(112 关键帧,7925 点)与一个已存储的桌面 B 地图(42 关键帧,4098 点)融合;融合后约 16 MB 的下载耗时约 5 秒,而客户端跟踪未受影响地持续运行。
- 一个双用户协作实验表明,同一房间的两个独立地图在重叠区域融合,随后由两个跟踪器共同扩展。
对SLAM的意义
C2TAM 建立了 SLAM 的云机器人分工模式——繁重的优化在云端进行,边缘端进行相机帧率的跟踪——并证明了当两个环路被异步解耦时,真实的网络延迟与实时视觉 SLAM 是相容的。它的地图存储重定位和服务器端地图融合预示了将地图重用作为一种云服务(它源自 RoboEarth 项目)。它是 CCM-SLAM 的直接概念先驱,后者在 ORB-SLAM 骨架上重建了同样的架构,并采用了带宽利用效率高得多的协议(使用关键点和描述子,而非 C2TAM 的原始关键帧图像)。