ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

论文解读与思考:基于场所地图的标识感知机器人探索方法及工程参考的价值

论文解读与思考:基于场所地图的标识感知机器人探索方法及工程参考的价值

本文围绕IEEE Robotics and Automation Letters 2025录用论文《Signage-Aware Exploration in Open World using Venue Maps》展开技术拆解,结合启元机器人的产品场景与开发者生态,分析该方案的落地价值与工程实现路径。文中所有实验数据均来自原论文表II、表III、表IV,技术参数均对应原论文表。

一、论文概述

基础信息

  • 论文全称:Signage-Aware Exploration in Open World using Venue Maps
  • 发表渠道:IEEE Robotics and Automation Letters(RA-L),2025年4月正式录用
  • 研究团队:香港大学计算机科学系相关研究团队
  • 应用场景:大型商场、楼宇等未知室内开放环境的机器人地标搜索与自主探索

核心问题

机器人在未知开放环境中搜索店铺、房间等地标时,普遍存在两类瓶颈:一是传统几何驱动的探索方法无语义引导,遍历效率低,容易错过侧向标识;二是闭集训练的OCR模型难以适配开放场景中多样的标识字体、视角与光照,识别准确率不足。同时,日常随处可得的2D场所示意图(商场导览图、户型图)包含丰富的地标拓扑信息,但此前的导航方案并未充分挖掘标识文字与地图地标的关联价值。

图 1 基于场所地图与标识匹配的机器人探索概念

来源:Chen et al., Signage-Aware Exploration in Open World using Venue Maps, IEEE RA-L 2025

核心贡献

论文提出一套完整的标识感知探索系统,核心分为两部分:

  1. 标识理解模块:采用扩散式文本实例检索+2D-3D语义融合策略,无需针对新场景微调模型,即可提升开放场景下的标识识别准确率。
  2. 探索规划模块:设计场所地图引导的探索-利用规划器,用地标拓扑关系做方向引导,平衡“未知区域探索”与“标识凑近识别”两类行为,大幅提升搜索效率。

启元技术关联点

启元T1移动机器人具备轮足切换、室内通行能力,当前主打家庭场景,未来可拓展商超导览、楼宇配送等公共场景。该方案的“低精度场所地图+视觉语义识别”路线,无需依赖提前高精度建图,可显著降低消费级机器人的场景适配成本,同时可作为标准能力开放给开发者生态,丰富Skill场景库。

二、核心技术方法拆解

2.1 标识理解:扩散式文本实例检索 + 2D-3D语义融合

该模块解决的核心问题是:开放场景下标识样式多变、单视角噪声大,传统OCR识别准确率不足。其核心思路是绕开“文字内容识别”,直接通过图像特征匹配完成标识与地标的关联,适配不同字体、视角与语言。

(1)离线阶段:扩散模型生成标识特征库
  1. 输入:从2D场所地图中提取的全部地标名称(如店铺名、房间名)。
  2. 生成工具:采用AnyText v1.0多语言文本扩散模型,将每个地标名称渲染为接近真实场景的标识图像,模拟不同字体、排版与背景风格。
  3. 特征提取:使用ESTextSpotter文本检测模型,对生成的标识图像提取文本特征,构建离线特征池。
  4. 核心优势:无需针对新场景收集标注数据、微调OCR模型,仅需地标名称列表即可快速生成场景专属特征库,迁移成本极低。
(2)在线阶段:2D检测与3D多视角融合
  1. 单帧2D检测:使用同一ESTextSpotter模型,从机器人当前RGB帧中检测文本区域,提取对应2D特征。
  2. 2D转3D投影:结合深度图、机器人实时位姿、相机内参,将2D文本区域投影到3D空间,生成空间文本实例。
  3. 3D特征融合:将新检测到的3D文本实例与已构建的3D文本库匹配,满足特征相似度阈值γ_s=0.5且空间距离阈值γ_d=3米时,对两个实例的特征做加权平均融合,更新库中特征。
  4. 实例检索:将融合后的3D特征与离线特征池做余弦相似度匹配,输出最相似的地标名称作为识别结果。

图 2 标识理解模块流水线:(a) 离线阶段生成特征库;(b) 在线阶段 2D-3D 融合与检索 来源:Chen et al., 2025

该设计的核心价值在于:通过多视角观测累积抵消单视角噪声,同时用图像特征匹配替代文字内容识别,规避了复杂字体、低分辨率下的OCR误差,尤其适配中文等方块字场景。

2.2 探索规划:场所地图引导的探索-利用平衡

该模块解决的核心问题是:纯随机探索效率低,机器人无法自主判断“该往哪走”“什么时候该凑近识别标识”。论文引入场所地图的拓扑信息作为先验,通过双效用函数平衡两类行为。

图 3 系统整体框架:场所地图拓扑构建 + 标识理解 + 探索 - 利用规划 来源:Chen et al., 2025

(1)前置:场所地图拓扑构建
  1. 从2D场所地图中提取所有地标节点,以γ_map=150像素为距离阈值,将距离小于阈值的节点连边,构建拓扑图。
  2. 使用TSP(旅行商问题)求解器规划地标遍历顺序,作为机器人的全局探索序列,避免完全盲走。
(2)候选位姿分类

机器人每一步的候选位姿分为两类:

  • 前沿点:未知区域的边界点,对应“探索”行为,目的是发现新的标识与区域。
  • 视点:疑似标识附近的观测位姿,对应“利用”行为,目的是调整距离与角度,提升识别准确率。
(3)效用评估与位姿选择

分别计算两类候选位姿的效用值,选择最高值作为下一步目标:

  1. 前沿效用函数:由方向启发值与导航成本加权得到。方向启发值衡量当前前沿点与下一个目标地标的方向一致性,越靠近目标方向得分越高;导航成本为机器人到该点的欧氏距离。
  2. 视点效用函数:由对应标识的识别置信度与导航成本加权得到,置信度越高,越值得凑近观测。
  3. 平衡参数β:控制探索与利用的权重,论文默认值为9。β越小越偏向探索,β越大越偏向利用。
  4. 路径规划采用Open Motion Planning Library的RRT*算法,保证碰撞-free通行。
(4)坐标动态对齐

当机器人识别到2个及以上地标后,通过RANSAC+ICP算法,将在线构建的环境地图与2D场所地图做坐标变换对齐,后续即可用地标相对位置做精确的方向引导。

图 4 基于坐标变换的下一个地标方向估计 来源:Chen et al., 2025

三、实验结果与性能边界

3.1 标识识别性能

测试设置:2个真实商场场景,18个店铺标识,每个标识采集5个不同视角的图像;对比4类主流方法。

实验结果(来源:原论文表II):

方法Recall@1Recall@2
CLIP28.9%35.6%
中文CLIP28.9%45.6%
ESTextSpotter(纯OCR)52.2%52.2%
字体渲染检索62.2%73.3%
本文方法(DiffusionRR)77.8%87.8%

结论:

  • 本文方法较纯OCR方案Recall@1提升25.6个百分点,较字体渲染检索方案提升15.6个百分点,证明扩散生成的图像更贴近真实场景,特征匹配效果更优。
  • Recall@2较Recall@1提升10个百分点,说明结合邻场地标缩小匹配范围,可进一步提升识别准确率。

图 5 开放场景标识识别效果对比:左侧为真实多视角图像,右侧为扩散生成图像 来源:Chen et al., 2025

3.2 探索效率

测试设置:两个商场场景(场景1含4个地标,场景2含9个地标),基线为传统RRTs前沿探索方法;评价指标为标识覆盖数量、单标识平均探索时间。

实验结果(来源:原论文表III,场景2起点1):

方法标识覆盖数(共9个)平均探索时间
RRTs基线3.33 ± 0.58186.67s
本文方法7.00 ± 1.0093.40s

结论:

  • 9地标场景下,本文方法标识覆盖数提升110%,单标识探索时间缩短约50%。
  • 场景规模越大、地标越多,方案的效率优势越明显,核心原因是场所地图的方向引导大幅减少了无效探索路径。

图 6 四种场景下的探索轨迹对比:绿色为 RRT 基线方法,红色为本文方法 来源:Chen et al., 2025

图 7 探索进度曲线:横轴为时间,纵轴为已覆盖标识数量 来源:Chen et al., 2025

3.3 消融实验:平衡参数β的影响

测试设置:场景2起点1,验证β=3、9、15三种取值的性能差异(来源:原论文表IV)。

β取值标识覆盖数(共9个)平均探索时间特性说明
36.00 ± 1.00143.17s偏向探索,易漏检近距离标识
9(默认)7.00 ± 1.0093.40s探索与利用平衡最优
156.67 ± 0.58123.99s偏向利用,难以触达远处地标

3.4 局限性与适用边界

  1. 稀疏标识场景效果下降:环境中标识数量过少时,会影响坐标对齐精度,需结合传统几何SLAM方案补充。
  2. 特殊标识适配不足:LED发光标识易出现过曝,影响检测效果;多语言混合标识会产生特征干扰。
  3. 场景验证范围:目前仅在室内商场场景完成验证,户外复杂光照、严重遮挡场景的性能需进一步测试。

图 8 不同 β 值的探索轨迹对比:(a)β=3 偏探索;(b)β=15 偏利用 来源:Chen et al., 2025

四、对启元机器人开发实践的参考

4.1 场景价值适配

(1)家庭场景:降低语义导航门槛

启元T1机器人当前涉及家庭服务场景,可基于该方案优化“找房间”“找物品”类导航功能:

  • 用用户上传的户型图作为场所地图,结合房间门牌、家具标识、物品标签构建特征库,无需提前完成全屋高精度激光建图,即可实现粗粒度语义导航。
  • 搭配T1的四足通行能力,可适配复式、多楼层家庭场景,通过楼层标识与户型图匹配,自动切换楼层地图。
(2)商用场景:快速部署轻量导览

针对商场、写字楼、展馆等商用场景,该方案可大幅降低部署成本:

  • 无需逐区域做高精度建图,仅需官方导览图、楼层示意图即可快速部署导览、配送功能。
  • T1的低噪轮式模式适配室内公共环境,四足模式可应对台阶、斜坡,结合标识感知可覆盖更多商用场景。
(3)开发者生态:标准化能力组件

可将“场所地图+标识感知”封装为标准Skill组件,开放到启元开发者社区:

  • 提供特征库生成工具、拓扑地图转换模板,开发者无需从零开发,即可快速定制场景化导航Skill,如写字楼文件配送、博物馆展品导览等。
  • 降低二次开发的技术门槛,丰富启元生态的场景覆盖。

4.2 工程落地分步建议

阶段1:标识识别模块验证
  1. 离线特征库搭建:基于模型,针对家庭/目标商用场景生成标识图像,用ESTextSpotter提取特征,构建场景专属特征库。
  2. 端侧识别适配:对接相机,接入2D文本检测与3D特征融合逻辑,验证室内常见标识的识别召回率,目标达到70%以上。
阶段2:探索规划模块集成
  1. 拓扑地图工具开发:实现2D场所图自动转拓扑图的工具,支持用户上传图片格式的户型图、导览图,自动提取地标与拓扑关系。
  2. 规划器融合:在现有导航框架基础上,增加视点效用评估逻辑,支持按场景动态调整β参数;
  3. 场景联调:在家庭、小型商超场景完成端到端测试,验证地标搜索效率与路径合理性。
阶段3:生态开放与场景拓展
  1. 将标识感知导航封装为标准Skill接口,配套开发文档与示例工程,同步上传至AtomGit社区。
  2. 拓展多模态标识能力,从纯文字标识扩展到Logo、典型物品特征,适配更多家庭与公共场景。

4.3 论文与实践的区别

  1. 不替代传统建图,二者互补:该方案适合快速部署、粗粒度语义导航,精准避障、精细操作仍需激光/视觉SLAM建图配合,不能完全替代底层建图能力。
  2. 家庭场景需补充语义维度:家庭场景标识密度远低于商场,需将“标识”范围从文字扩展到家具、家电等典型物体特征,保证定位与导航精度。
  3. 端侧算力约束:原论文实验平台为Jetson Orin NX(157TOPS),识别速度约2fps。启元端侧部署需做模型轻量化与算子优化,或采用异步处理架构,避免影响导航实时性。
  4. 参数场景化配置:不同场景采用不同β值,家庭空间小、标识少可适当调大β,侧重精准识别;大空间商场景观可适当调小β,侧重探索效率。

五、自我思考

这篇论文的核心价值,是提出了一条“低先验、低成本”的语义导航路线:无需高精度建图,仅用日常随处可得的2D场所示意图,结合视觉标识识别,即可让机器人在未知场景中高效完成地标搜索。

对启元而言,该方案既可以强化家庭场景的语义导航体验,降低用户使用门槛,也可以支撑商用场景的快速拓展,同时能够以Skill组件的形式丰富开发者生态,具备从技术验证到产品落地再到生态建设的完整参考价值。后续可优先在家庭场景开展小范围验证,逐步迭代优化。

启元机器人开发者社区 :启元机器人开发者社区 · 一站式具身智能研发平台


附录:标识特征库生成简化实现demo

import cv2 import torch import numpy as np from anytext import AnyTextPipeline from est_spotter import ESTextSpotter # 设备与模型初始化 device = "cuda" if torch.cuda.is_available() else "cpu" anytext_pipe = AnyTextPipeline.from_pretrained("anytext-v1.0").to(device) est_spotter = ESTextSpotter.from_pretrained("est_spotter-v1.0").to(device) def generate_sign_feature(landmark_name: str) -> np.ndarray: """ 输入地标名称,生成模拟标识图像并提取对应文本特征 :param landmark_name: 地标名称,如"客厅"、"便利店" :return: 512维文本特征向量 """ # 扩散模型生成真实风格标识图像 prompt = f"室内场景的标识牌,上面清晰写着'{landmark_name}',常规字体,正面视角" gen_image = anytext_pipe(prompt).images[0] image_np = np.array(gen_image) # 检测文本区域并提取特征 _, feature_list = est_spotter.detect_and_extract(image_np) # 取置信度最高的区域特征,无检测结果则返回零向量 if len(feature_list) > 0: return feature_list[0] return np.zeros(512, dtype=np.float32) def build_landmark_feature_pool(landmark_list: list, save_path: str) -> None: """ 根据地标列表构建特征库并保存 :param landmark_list: 地标名称列表 :param save_path: 特征库保存路径 """ feature_pool = {} for name in landmark_list: feature_pool[name] = generate_sign_feature(name) torch.save(feature_pool, save_path) print(f"特征库构建完成,共{len(feature_pool)}个地标,已保存至{save_path}") # 示例:构建家庭场景地标特征库 if __name__ == "__main__": home_landmarks = ["客厅", "主卧", "厨房", "书房", "卫生间"] build_landmark_feature_pool(home_landmarks, "home_feature_pool.pt")
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进