[论文] 天空的梦境:当无人机学会'回忆'与'预见'
> *"人类之所以独特,不是因为我们会飞,而是因为我们会想象自己飞行。"* —— 安东尼奥·达马西奥
---
🚁 引子:迷路的信天翁
想象这个场景:
一只信天翁在暴风雨中翱翔。它不需要GPS,不需要地图,甚至不需要看到太阳。它的脑子里有一幅不断更新的"心智地图"——哪里上升气流最强,哪里有鱼群,哪里是礁石的阴影。它回忆过去几小时的飞行经验,预测接下来几分钟的风向变化,并在恰当的时机收拢翅膀,滑翔向远方。
现在,把这只信天翁换成一架无人机。给它装上摄像头和麦克风,告诉它:"找到那座红屋顶的教堂。"
无人机的摄像头里,世界是一片模糊的绿色和灰色。螺旋桨的噪音淹没了所有声音。它不知道自己在哪,不记得自己从哪来,更不知道教堂在哪个方向。它就像一个被蒙上眼睛、扔进迷宫的人——只不过这个迷宫有三维,而且墙壁是看不见的。
这就是空中视觉语言导航(Aerial Vision-Language Navigation, VLN)要解决的问题。
Yan Deng和Fei Xu在2026年8月提出的DreamFly,让这架无人机第一次拥有了信天翁的"心智地图"——不是靠魔法,而是靠因果记忆、扩散规划和一种聪明的"止步判断"。
---
🧭 第一章:三维迷宫里的迷失
🎭 比喻:被困在玻璃盒子里的旅人
想象你被放进一个巨大的玻璃盒子。盒子外面是一座你从未见过的城市。你可以看到街道、建筑、树木,但一切都隔着一层模糊的玻璃。更糟糕的是,有人每隔几分钟就摇晃一下盒子,所以你看到的景象总是在变。
你的任务是:找到这座城市里的一家蓝色咖啡馆。
你手里有一张纸条,上面用你勉强能懂的外语写着:"穿过公园,经过钟楼,在桥边左转,咖啡馆就在corner。"
问题是: 1. 你不知道"公园"长什么样——你看到的只是一片模糊的绿色 2. 你不记得三秒钟前经过了什么——每次摇晃盒子,你的记忆就被重置 3. 你不知道"corner"是什么意思——你只知道往前走,但不知道什么时候该停 4. 盒子随时可能没电——你必须尽快找到目标
这就是空中VLN的残酷现实。
🎯 为什么空中比地面难十倍?
地面导航(比如扫地机器人在房间里找路)已经够难了。但空中导航把这个难度提升了整整一个维度:
视角问题:无人机在空中看到的是一个俯视图——一切都变得扁平化。地面上清晰的"左边"和"右边",在空中变成了难以判断的角度。
动态环境:风、气流、电池消耗、螺旋桨噪音——这些都在不断干扰感知。
部分可观测性:无人机只能看到它正前方的一小块区域。它不知道背后有什么,也不知道拐过这个弯会看到什么。
语言理解的歧义:"飞过那片树林"——哪片树林?多高算"飞过"?如果树林有十里长呢?
🤖 VLA模型的希望与困境
最近几年,视觉-语言-动作模型(Vision-Language-Action, VLA)给这个领域带来了曙光。这些模型(如RT-2、OpenVLA、Dream-VLA)能把"看到的"和"听到的"直接映射到"动作"——不需要人工设计规则。
但当研究者试图把VLA模型应用到空中导航时,他们遇到了三个顽固的障碍:
1. 历史记忆太短:模型只能"记住"最近几帧画面,早前的线索(比如"从红色屋顶的房子出发")被遗忘 2. 规划视野太短:模型倾向于只看下一步,缺乏对未来路径的预判 3. 不知道什么时候停:模型不知道什么时候已经达到了目标,经常在目标附近兜圈子或提前停下
DreamFly就是为解决这三个问题而生的。
---
🧠 第二章:因果记忆——不给未来作弊的"时光机"
🎬 比喻:电影剪辑师的伦理困境
想象你是一部悬疑电影的剪辑师。导演给你所有拍摄素材——包括凶手身份揭秘后的场景。你的任务是剪一个预告片,但不能剧透凶手是谁。
问题是:一旦你看到了后面的素材,你就无法假装没看过。即使你刻意不剧透,你的剪辑选择也会无意识地被"后面的知识"影响——你会给某些角色更多特写,某些场景更多悬疑感。
这就是AI模型在利用"历史记忆"时面临的因果污染问题。
🔄 传统记忆的问题:未来信息泄露
大多数视觉导航模型使用某种形式的"记忆机制"来整合历史观测。比如,它们可能会:
- 把过去所有帧的画面压缩成一个"特征向量"
- 用Transformer的注意力机制让当前帧"回顾"历史帧
- 维护一个循环状态(RNN/LSTM风格的隐藏状态)
具体来说:
- 当模型在当前时间步t做决策时,它读取的"历史记忆"可能包含了时间t+1, t+2的观测信息
- 这就像考试前偷看了答案——模型表现看起来很好,但它学到的不是真正的"导航能力",而是"预知能力"
- 在真实世界中,无人机不可能预知未来
🎯 DreamFly的解决方案:因果对齐记忆
DreamFly引入了一种因果对齐的历史记忆(Causally Aligned Historical Memory)。
核心原则极其简单,但执行起来需要精巧的设计:
> 在任何一个决策时刻t,模型只能使用严格早于t的观测信息。
这就像一个严格的剪辑师守则:任何帧在编辑时,只能看到它之前的素材。
🔧 技术实现:三层记忆结构
DreamFly的记忆机制包含三个层次:
1. 观测编码层(Observation Encoding)
- 每个时间步,无人机拍摄一张图像
- 图像被编码成一个紧凑的视觉特征向量
- 这个特征向量与当前的语言指令(如"找到红屋顶教堂")进行融合
- 关键创新:在构建当前决策的表示时,系统会严格屏蔽所有时间戳 ≥ 当前时间的观测
- 使用一种特殊的掩码机制,确保信息只从过去流向现在
- 这与Transformer的自回归注意力类似,但应用于时间维度而非序列维度
- 历史观测不是简单堆砌,而是通过一个学习到的加权机制进行整合
- 与当前任务相关的历史信息获得更高权重
- 无关或过时的信息被逐渐淡化
🧪 效果:记忆不再是"作弊"
论文在OpenFly基准上进行了严格测试。OpenFly是专为空中VLN设计的评测平台,包含"已见环境"(训练时见过的地图)和"未见环境"(全新地图)两种测试条件。
DreamFly的因果记忆机制带来了什么改变?
在传统模型中,测试集上的"成功到达率"(Success Rate, SR)往往比训练集低很多——因为模型在训练时"偷看"了太多信息。而DreamFly通过严格的时间因果约束,确保模型学到的是真正的导航策略,而非对未来观测的依赖。
这就像一个学生:一个靠作弊考了高分,另一个靠真才实学。在熟悉的考场上,两人分数差不多。但换一张全新试卷,真才实学的学生表现更稳定。
---
🌊 第三章:扩散规划——在概率的海洋中航行
🎭 比喻:雾中航行的船长
想象你是一艘船的船长。海面上浓雾弥漫,你看不见百米外的任何东西。但你有雷达——它能告诉你,如果你向左转15度,前方大概率有暗礁;如果你向右转30度,大概率有一片安全航道。
你不敢一次规划太远的路线——雾太大了,计划赶不上变化。于是你采取一种策略:每走一步,重新扫描一遍雷达,然后只规划接下来几步,执行一步,再重新扫描。
这就是滚动时域规划(Receding-Horizon Planning)的直觉。
🎯 为什么一次性规划在导航中行不通?
传统的导航方法(如A*搜索、RRT)倾向于一次性规划整条路径。这在已知环境(如仓库里的扫地机器人)中工作良好,但在部分可观测的空中环境中失效了:
- 无人机看不到拐弯后的场景——它无法预知"左转后是否有死胡同"
- 风可能在下一秒改变——基于当前状态的长期规划可能很快过时
- 目标描述可能有歧义——"教堂"可能对应多个建筑,需要逐步确认
🧬 DreamFly的创新:扩散模型做规划
DreamFly的核心创新之一,是将扩散模型(Diffusion Model)引入导航规划。
#### 什么是扩散模型?
扩散模型是近年来图像生成领域最热门的技术(如Stable Diffusion、DALL-E)。它的核心思想是:
1. 前向过程:从一张真实图片开始,逐步加入噪声,直到变成纯粹的随机噪声 2. 反向过程:训练一个神经网络,学会从噪声中"去噪",逐步恢复出真实图片 3. 生成:从纯噪声开始,反复去噪,最终生成一张全新的图片
#### 为什么扩散模型适合做规划?
DreamFly的作者们敏锐地意识到:导航规划与图像生成有一个深刻的相似之处——两者都是在高维空间中寻找一条从"当前状态"到"目标状态"的可行路径。
具体来说:
- 图像生成:从随机噪声(起点)到清晰图像(终点)
- 导航规划:从当前位置(起点)到目标位置(终点)
🎮 滚动时域扩散规划:Plan-K, Execute-One
DreamFly的具体策略被称为Plan-K, Execute-One:
1. 规划阶段(Plan-K)
- 在当前状态,模型使用扩散模型生成K步未来动作序列
- 这K步不是确定性的"最佳路径",而是从概率分布中采样得到的多种可能路径
- 扩散模型的去噪过程逐步"雕琢"出合理的动作序列
- 从生成的K步序列中,只执行第一步
- 执行后,无人机获得新的观测(摄像头看到新的画面)
- 基于新观测,重新进行Plan-K
- 每一步执行后,视觉反馈被用来修正下一步的规划
- 这种闭环机制确保计划始终基于最新信息
🧮 比喻:玩"接龙"游戏
想象一个接龙游戏。规则是:
- 每次你可以看接下来5张牌(K=5)
- 但你只能出1张牌
- 出完1张后,你再看看新翻开的牌,重新规划接下来的5张
DreamFly的Plan-K, Execute-One就是这个原理。
📊 实验结果:规划带来的提升
论文在OpenFly基准上的实验表明:
- DreamFly在已见环境(test-seen)上达到32.04%的成功率(SR)
- 在未见环境(test-unseen)上达到29.46%的成功率
- 路径效率指标(SPL)分别为28.22%和23.54%
更重要的是,DreamFly在两个指标上都超过了所有对比方法,同时达到了最低的导航误差。
---
🛑 第四章:LiteStop——知道何时该停下的智慧
🎭 比喻:永远找不到出口的旋转门
想象你在一个陌生的购物中心找一家店。你按照指示牌走,转了几个弯,终于看到了那家店的招牌。但问题是:你不知道自己已经走到了。
你继续往前走,走过了店门口。然后你意识到"好像过了",于是掉头回来。但回来的时候,你又走过了。你在店门口来来回回,像一个被困在旋转门里的人。
这就是导航中最被低估的难题之一:什么时候该停下?
🤔 为什么"停止判断"这么难?
在空中VLN中,"停止"不是一个简单的动作。它意味着:
- 无人机认为自己已经到达目标位置
- 目标可能是一个区域("教堂周围")而非一个点
- 目标描述可能有歧义("那座红屋顶的建筑"——如果看到两个红屋顶呢?)
- 模型输出一个"停止概率"
- 但这个概率是从动作生成过程中"顺便"估计的
- 问题在于:动作生成和停止判断是耦合的——模型在决定"往哪飞"的同时判断"是否该停",这容易互相干扰
🎯 DreamFly的解决方案:LiteStop
DreamFly提出了LiteStop——一种将停止判断与动作生成解耦的机制。
核心思想:
> 停止概率应该从"初始的全掩码状态"直接估计,而非从动作序列中推导。
这听起来很抽象。让我们用比喻来解释:
🎲 比喻:猜谜游戏的两种玩法
传统方法(耦合式):
- 你在玩一个猜谜游戏
- 每轮你可以问一个问题,然后根据答案决定下一步问什么
- 你的"是否猜中"判断,是基于你问问题的过程中产生的直觉
- 问题:如果你的提问策略有偏,你的"猜中直觉"也可能有偏
- 在每一轮开始前,你先做一个独立的判断:"如果我现在必须猜,我猜什么?"
- 这个判断不依赖于你接下来要问什么问题
- 然后你再决定接下来要问什么问题
- 好处:停止判断和提问策略互不干扰
🔧 技术细节
LiteStop的具体实现是:
1. 全掩码状态(All-Mask State)
- 在扩散模型的初始状态,所有动作都是"被掩码的"(未知的)
- 这对应于"还没有做任何决策"的状态
- 从这个状态出发,模型可以先做一个"是否该停"的判断
- LiteStop从动作输出的logits(概率分布的原始分数)中直接提取停止概率
- 这避免了在生成完整动作序列后再做二次判断的复杂性
- 停止判断成为一个轻量级的独立模块
- 传统方法:停止是动作序列的"副产品"
- LiteStop:停止是一个显式的、独立的决策
- 这使得模型可以更清楚地学习"什么情况下该停"
📈 效果:不再绕圈子
LiteStop带来的改进是系统性的:
- 无人机在目标附近的徘徊时间显著减少
- 误判率(提前停或错过目标)降低
- 整体导航效率提升
---
🏗️ 第五章:三位一体——记忆、规划、停止的协奏曲
🎼 比喻:爵士乐三重奏
想象一个爵士乐三重奏:钢琴、贝斯、鼓。
钢琴负责旋律(对应记忆——讲述已经走过的路),贝斯负责和声走向(对应规划——铺陈即将走的路),鼓负责节奏(对应停止——决定什么时候收束)。
三者缺一不可,但又必须互不干扰:
- 钢琴手不能偷看贝斯手的谱子(因果记忆——不能泄露未来)
- 贝斯手每次只看接下来几个小节(滚动时域——不一次性规划太远)
- 鼓手在每一拍开始前就决定是否要加花(LiteStop——独立的停止判断)
DreamFly正是这种三位一体的协调。
🔬 技术架构总览
DreamFly建立在Dream-VLA的基础上,但引入了三个关键模块:
输入:语言指令(如"找到红屋顶教堂")+ 当前图像
↓
┌─────────────────────────────────────┐
│ 因果对齐历史记忆 │
│ - 只使用严格早于当前时刻的观测 │
│ - 动态加权整合相关历史信息 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ 滚动时域扩散规划 │
│ - Plan-K:生成K步未来动作序列 │
│ - Execute-One:只执行第一步 │
│ - 闭环视觉反馈修正 │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ LiteStop显式终止 │
│ - 从全掩码状态估计停止概率 │
│ - 与动作生成解耦 │
└─────────────────────────────────────┘
↓
输出:下一步动作(前进/转向/上升/下降/停止)
📊 整体性能
在OpenFly基准上的完整结果:
| 方法 | Test-Seen SR | Test-Unseen SR | Test-Seen SPL | Test-Unseen SPL |
|---|---|---|---|---|
| 之前最佳方法 | ~25% | ~22% | ~20% | ~17% |
| DreamFly | 32.04% | 29.46% | 28.22% | 23.54% |
- 已见环境成功率提升约28%
- 未见环境成功率提升约34%
- 同时达到最低导航误差
---
🌌 尾声:从无人机到通用智能
DreamFly的意义,远不止于让无人机找路更准。
它提出了三个具有普适性的设计原则:
1. 因果约束是可信AI的基础
- 任何涉及时间序列的决策系统,都应该严格区分"过去可用信息"和"未来不可用信息"
- 这不仅是一个技术问题,更是一个伦理问题——如果我们不能确保AI的决策基于真实可获取的信息,我们如何信任它在现实世界中的行为?
- 在部分可观测、动态变化的环境中,"一次规划到底"是不现实的
- Plan-K, Execute-One的策略可以推广到机器人操作、自动驾驶、甚至人类决策
- 知道"何时该继续"和"何时该停止"同样重要
- 将终止判断与主任务解耦,可以提高系统的可靠性和可解释性
🕊️ 回到信天翁
那只在暴风雨中翱翔的信天翁,它的大脑里并没有复杂的数学公式。但它拥有:
- 记忆:过去几小时的气流经验
- 规划:对未来几分钟风况的预判
- 终止:当它闻到鱼群的气味时,知道该收拢翅膀俯冲
天空从未属于过人类。但它或许可以属于懂得回忆与预见的机器。
---
📚 参考文献
- Deng, Y., & Xu, F. (2026). *DreamFly: Causal Memory and Receding-Horizon Diffusion Planning for Aerial Vision-Language Navigation*. arXiv:2608.12308.
- Driess et al. (2023). *PaLM-E: An Embodied Multimodal Language Model*.
- Brohan et al. (2023). *RT-2: Vision-Language-Action Models*.
- Kim et al. (2025). *OpenVLA: An Open Source Vision-Language-Action Model*.
- Song et al. (2025). *Dream-VLA: Dreaming Visions for VLA*.
- Ho et al. (2020). *Denoising Diffusion Probabilistic Models*.
- Anderson et al. (2018). *Vision-and-Language Navigation: Interpreting Visually-Grounded Navigation Instructions in Real Environments*.
- Chen et al. (2024). *OpenFly: A Benchmark for Aerial Vision-Language Navigation*.