「从室内走向城市低空」
目录
01 从卫星地图构建长程视觉语言导航任务
02 现有模型在 SatNav 上的表现
03 SwiftVLN:比较不同记忆设计的效果
04 从卫星图像训练到真实无人机飞行
05 写在最后
“沿着这条路飞,在第三个路口左转,到红色屋顶旁停下。”完成这条指令,无人机需要看懂周围环境,记住经过了几个路口,再找到指定位置停下。外卖配送、沿线巡检和区域巡航,都涉及这样的长程导航需求。
许多视觉语言导航(VLN)研究在室内开展。受房间、走廊的空间和通行条件限制,室内很难构建丰富的长距离路线,模型的长期记忆和连续决策能力也难以得到充分测试。城市低空则天然适合研究长程导航:无人机可以跨越街区、沿河道飞行或绕建筑巡航,在更长的路线中持续执行语言指令。
现有城市级无人机 VLN 基准主要面临两个问题。一是观测视角。许多工作延续了室内导航常用的前视设置,对无人机俯视视角的利用较少。二是数据规模。导航画面的生成通常依赖城市三维资产,例如点云或 3D Gaussian Splatting(3DGS)场景。这些资产需要采集和制作,已有场景数量有限,扩展到更多城市的成本也高。
无人机向下看时,道路、湖泊边界和建筑布局都能成为导航线索。卫星地图也保留了这些信息。因此,SatNav 可以选择用卫星图像裁剪来近似无人机的俯视观测:根据当前位置和朝向,对地图进行旋转、裁剪,生成模型每一步看到的局部 画面。这套流程可以复用于不同地区,方便地扩展路线和任务。
香港科技大学(广州)与 IDEA 低空经济研究院的研究团队据此构建了SatNav,覆盖18 座城市、59 个场景、118,494 条任务,平均轨迹长度379 米。工作已被NeurIPS 2026 Evaluations & Datasets接收。团队还让卫星图像上训练的模型使用真实俯视画面进行导航,完成了在真实无人机上的测试和部署。
论文:SatNav: A Scalable Benchmark for Long-Horizon UAV Vision-Language Navigation from Satellite Imagery(https://arxiv.org/abs/2609.31507)
项目主页:SatNav:交互演示、实验结果与实机视频(https://eku127.github.io/SatNav/)
01 从卫星地图构建长程视觉语言导航任务
SatNav 先将卫星图像与 OpenStreetMap(OSM)标注对齐,提取区域边界、地标、道路和水道,再生成路线。语言模型根据沿途地标、转弯方向和路口顺序撰写指令,给出详细、自然和简洁三种表达,并检查指令与路线是否一致。最终,每条任务包含场景、语言指令和参考轨迹,可用于模型训练与评测。
图 1|结合卫星图像和 OSM 标注,提取地理线索,自动生成路线与指令。
围绕城市中的建筑、湖泊和道路,SatNav 设计了三类任务:
- Boundary:绕行与回环。沿湖泊、体育场或建筑边界飞行,绕行一段、完整一圈,或绕完一圈后再前进一 段。起点和终点可以重合,模型需要记住已经飞过的路线,判断何时停止。
- Landmark:依靠地标确定朝向。例如“向左转,直到体育场出现在视野右上方,再继续前进”。模型需要认出体育场,再根据它在画面中的位置判断转向是否完成。
- Route:沿路线飞行并计数。根据“在第一座桥左转”“到第三个路口停下”等指令,沿道路、水道或混合路线移动,记住已经经过了几座桥、几个路口。
这类长距离绕行、连续转向和路口计数任务,在室内较难大规模构建。室外有丰富的建筑、湖泊和道路,借助卫星地图,可以方便地生成不同长度和布局的任务。三类任务分别检验导航智能体的长期记忆与进度判断能力、地标识别与相对空间推理能力,以及路线跟踪与顺序计数能力。
02 现有模型在 SatNav 上的表现
团队在 SatNav 上评测了Seq2Seq、CMA、OpenFly、NaVILA、UniNaVid 和 StreamVLN,并与 SwiftVLN 参考模型进行比较。
表 1|各模型在 Test Seen 和 Test Unseen 上的表现。SR 为到达目标附近并正确停止的任务比例,OS 为途中曾到达目 标附近的任务比例。
表中的*表示模型已经接受过导航训练,再用 SatNav 数据继续微调;不带星号的模型从对应的基础模型开始训练。所有方法都使用 SatNav 训练集,并在相同测试集上评测。
换到未见过的场景,成功率普遍下降。成功率最高的 StreamVLN* 在 Test Seen 上达到67.3%,在 Test Unseen 上降至58.4%。
导航预训练有助于学习俯视任务。UniNaVid 使用已有导航训练的权重,再在 SatNav 上微调,相比从通用基础模型开始训练,在 Test Seen 和 Test Unseen 上的成功率分别提升24.6、16.3 个百分点。
三类任务的难点各不相同。Boundary 中常见的问题是到达目标附近后继续移动:在 Test Seen 上,CMA 的 OS 达到92.4%,SR 只有12.4%。Landmark 需要准确识别和定位地标,SwiftVLN 的成功率从 Test Seen 的71.6%降至 Test Unseen 的58.5%。Route 中,分岔选择和计数错误容易沿路线累积;SwiftVLN 的最终导航误差从 Test Seen 的36.35米增至 Test Unseen 的90.03米。
SatNav 对现有导航模型仍有挑战:模型既要记住走过的路线、认准地标,也要在正确的时刻转向和停止。在未见过的场景中,这些问题更加突出。
03 SwiftVLN:比较不同记忆设计的效果
为了研究长程导航中的记忆,团队基于 ms-swift 重构 StreamVLN 的训练与评测流程,搭建了SwiftVLN。最近几轮的图像和动作保存在短期窗口中,更早的画面由长期记忆模块处理。框架支持更换历史帧的选取和压缩方式,也可以加入位姿等信息,在其他设置相同的条件下比较不同记忆方案。
图 2|SwiftVLN 根据语言指令、短期窗口和长期记忆中的信息预测后续动作。
表 2|SwiftVLN 的记忆设计消融。各设置分别与参考模型比较,ΔSR、ΔOS 表示相对参考模型的百分点变化。
长期记忆和短期窗口的连续性都很重要。移除长期记忆后,Test Unseen 成功率从53.7% 降至 32.4%。另一组实验在短期窗口更新时保留 4 轮重叠内容,成功率提升至60.3%。保留较早的经历、衔接最近几步的观察和动作,都能帮 助模型完成长程任务。
历史画面的选取和顺序也会影响结果。随机选取历史帧,Test Unseen 成功率降至41.1%;增加近期画面的采样比例,成功率达到55.8%。压缩记忆时,先按时间分段、再分别对视觉 token 聚类,效果也优于将全部历史一起聚类, 说明保留先后顺序有助于导航。
加入起点画面后,到达率提高了,成功率却有所下降。加入初始观测后,Test Unseen 的 OS 从64.1% 提升至 67.5%,SR 从53.7% 降至 52.6%。模型更容易经过目标附近,但停止判断仍是一个难点。
04 从卫星图像训练到真实无人机飞行
卫星图像与无人机俯视图呈现了相近的地面布局,光照、清晰度和拍摄角度则存在差异。团队收集约2.4 万对无人机—卫星图像,用于训练和验证一个轻量级视觉适配器。适配器将无人机图像的特征对齐到卫星图像的特征空间,让 SatNav 上训练的导航模型能够使用真实无人机画面。
图 3|配对图像来自 GTA-UAV、UAV-VisLoc、DenseUAV 和 SUES,共 24,467 对,其中 21,216 对用于训练、3,251 对用 于验证。右侧展示对应的卫星与无人机视角。
团队用真实场景的点云和 3DGS 渲染无人机俯视画面,测试了94 条导航任务。加入适配器后,成功率从34.0% 提升 至 43.6%;在曝光变化和画面抖动的条件下,成功率从28.7% 提升至 39.4%。
实机测试使用DJI Matrice 4D。无人机的俯视画面和状态经遥控器传到配有单张 RTX 4090 的工作站,SwiftVLN 根据画面和语言指令预测下一步动作,再将动作指令传回无人机执行。
图 4|实机测试流程:无人机与 DJI RC Plus 2 遥控器通过图传链路通信,遥控器与工作站之间传输视频、状态和控制指令。
实机测试共包含18 条任务,三类任务各 6 条。加入适配器后,成功任务数由7/18增至10/18,总体成功率从38.9% 提升至 55.6%。
图 5|真实 Boundary 任务:无人机按指令沿建筑边界绕行,完成一圈后回到出发位置停止。
05 写在最后
从卫星图像训练到真实无人机飞行,中间还隔着一道域差。团队用2.4万对无人机-卫星图像训练了一个轻量适配器,让卫星图像上训练的模型能处理真实俯视画面。实机测试18条任务,加入适配器后成功率从38.9%提升到55.6%。这个数字离“可靠部署”还有距离,但至少证明了一条路径:卫星地图上训练的导航模型,经过适配后可以迁移到真实无人机上。
对于城市低空的长程导航来说,SatNav补上的是数据和评测这一环。剩下的问题也很明确——停止判断、分岔计数、未见场景泛化,都需要在更长、更复杂的真实任务里继续验证。
项目与实机视频:SatNav 主页(https://eku127.github.io/SatNav/)
代码:SatNav (https://github.com/Eku127/SatNav)· SwiftVLN(https://github.com/Eku127/SwiftVLN)
数据:任务数据集(https://huggingface.co/datasets/Eku127/SatNav-Episodes-v0.1) · 卫星场景(https://huggingface.co/datasets/Eku127/SatNav-Scenes-v0.1)
模型:SatNav Model Zoo(https://huggingface.co/collections/Eku127/satnav-baseline-model-zoo)