论文链接:


一、引言:两份受限条件下的答卷

把一个很强的 AI 模型放进真实世界,往往不是把它原样搬过去,而是回答一个更刁钻的问题:在给定的约束下,这个模型的最小合理形态是什么?

2026 年 10 月底的两篇论文分别给出了两个典型约束下的答卷。

第一个约束是算力。无人机上的视觉-语言导航(VLN)模型要么依赖离板计算——导航回路被通信可用性与延迟绑架,要么把模型塞进机载算力,却被稠密视觉历史与多步去噪的动作生成拖垮。OpenFlyV2 的回答是:1B 参数(0.8B Qwen3.5-VL 骨干 + 0.2B 动作专家)单模型同时支持语义理解、视觉接地、空间推理与闭环导航,全部推理在大疆 M30T 挂载的一块 Jetson Orin NX 上以 10 Hz 完成,真实世界零样本导航成功率 48%。它靠的不是把大模型压小,而是两个针对性设计:把历史从「一堆图」改成「按运动切分的事件 token」(MAM),把动作生成的起点从纯噪声改成「上下文选出的运动原型」(MSP)。

第二个约束是结构。游戏与虚拟形象的风格化头发不是连续曲面,而是几十到上百张由艺术家摆放的「头发卡」(hair card),再挂上弹簧骨链让头发随头部摆动。此前的生成器要么输出写实发丝、要么输出一整块融合网格——都没有「卡」这个结构;唯一的卡生成器 CHARM 把数百到上千个控制点逐个自回归吐出,又慢又容易把卡的朝向做错。HairDeck 的回答是一个近乎格言式的规则:卡式发型是艺术家定义基元的无序集合,那就一卡一个 token、全部一起生成——集合扩散 transformer 一次去噪整个发型,Chamfer 距离较 CHARM 降 44%,朝向误差减半有余,速度快 33 倍,且同样的配方再生成弹簧骨链,产出直接可动画、可导出的资产。

两篇论文一个在天上飞、一个在屏幕里长头发,表面上毫无交集。但逐段读完全文后会发现它们在方法论上惊人地同构:当外部的算力预算(机载硬件)或输出的结构语法(艺术家工作流)不允许「越大越好、越长越好」时,正确的动作不是继续堆规模,而是重新选择生成的原子单位,并按问题本来的组织方式重排记忆与顺序。OpenFlyV2 把「帧序列的历史」重组为「运动事件的记忆」,HairDeck 把「控制点的长序列」重组为「卡的无序集合」——一个是把记忆的单位对齐运动的节奏,一个是把生成的单位对齐创作的基元。

本篇按惯例先逐篇深读(题目/背景/定位/问题定义/解法/知识反推/通用灵感七部分),最后回到具身与 3D 生成的对比与交汇。


第一篇:OpenFlyV2——把视觉-语言-动作模型装进一块机载板卡

二、论文一:题目与背景

2.1 题目拆解

「OpenFlyV2: An onboard vision-language-action model for aerial perception and navigation」的题眼有三个。onboard(机载)是全文最重的词:所有理解、推理与动作生成都在飞行器本地完成,不依赖离板算力与通信;vision-language-action(VLA)声明能力范围横跨感知理解与连续控制,而非单一任务专用模型;aerial perception and navigation 把场景钉在航空领域——长距离观测、快速视点变化、部分可观测与三维运动,全是地面具身智能不会遇到的全难度加成。

2.2 背景:从「专用件」到「认知系统」

论文的出发点是一个人类认知的类比:人的认知系统用同一套感知基础去理解环境、注意被指称的实体、推理空间关系并采取行动,不同功能按需调用、协同工作。而现有的空中机器人系统恰恰相反——往往是单能力专用件:VLN 模型只管把指令变成轨迹,VQA 与指称理解基准只考察理解与接地,二者互不相通;即使有模型尝试统一,也普遍依赖离板推理或无法在资源受限平台上维持闭环运行。

离板推理看似省事,实则把导航回路交给了通信链路:带宽、延迟、可用性都成了系统的单点故障。机载执行则要求多模态理解、时序上下文处理与航点生成全部挤进有限的算力,还要在飞行中响应新观测。论文特别点出一个容易被忽视的效率细节:无人机固然可以减速或悬停等待下一次预测,但频繁中断会拉低平均飞行速度与任务效率,白白浪费飞行器固有的机动性。机载 VLA 的算力约束不是「能不能跑」的问题,而是「跑得够不够密」的问题。

2.3 三重耦合的挑战

作者把困难归纳为三条互相缠绕的挑战。其一是能力整合:单模型既要支持多样的视觉-语言能力,又要在需要时把同一份感知与语言上下文接到连续飞行动作上。其二是监督:训练需要大规模航空数据,把场景语义、空间关系与语言条件飞行行为跨视点、跨三维环境连起来。其三是机载执行:模型要在硬件延迟约束内处理视觉历史并生成连续指令。三条挑战不可分割——能力整合决定架构、监督决定数据、执行决定表征,任何一条单打独斗都不成立。

三、论文一:定位与问题定义

3.1 定位:一块板卡上的「空中大脑」

OpenFlyV2 的定位是一句话摘要里那个「aerial brain」:从人类意图与感知出发,经推理到物理动作的完整闭环,让飞行器在真实世界里理解并自主飞行。它不是导航专用模型加一个聊天头的拼装,而是共享的视觉-语言表征同时服务两类输出——文本回答(语义理解、接地、空间推理)与短视距连续航点(导航),按任务需求取用。论文用同一个最终检查点完成全部视觉-语言、仿真导航与物理飞行评测,这一点值得强调:不是多模型各评各的,是一个 1B 检查点通吃。

3.2 问题形式化

在导航决策步 t,模型接收当前航拍图像 I_t、语言指令、机器人状态 s_t 与编码近期视觉-动作历史的 MAM token,输出动作块 (\hat{A}_t \in R^{H \times 4}),视距 H = 12;每个动作含三个机体系运动增量(XYZ,用训练数据 min-max 统计归一化)与一个停止信号。视觉-语言查询时,同一骨干改走文本解码通路。输出通路按任务选择,这是整个架构「一脑两用」的形式化表达。

需要注意两个容易混淆的时间概念:动作视距与流积分步数是两回事——每个流步更新的是整个 12 航点块,单步生成照样预测全部 12 个条目;导航时间在观测之间推进,而流时间参数化的是一次预测内部的精修。

四、论文一:解法(Method)

4.1 架构总览:共享前缀 + 紧凑专家

OpenFlyV2 = 0.8B Qwen3.5-VL 骨干 + 0.2B 动作专家。视觉-语言前缀由四部分拼成:MAM token、当前图像 token、语言 token 与一个指定的运动 token(motion token)。骨干为动作生成提供两个互补条件:运动 token 的隐状态 h_t 与完整编码前缀 c_t。h_t 连同状态 s_t 条件化 MSP,构造初始动作样本;动作专家再把该样本变换为最终动作块,同时 attend 整个前缀。专家后缀由投影状态 token 与编码当前动作样本及流时间的动作 token 组成。

一个精妙的工程细节在缓存策略上:每个动作生成周期开始时用最新观测与更新后的记忆编码前缀,其 KV 缓存在该块的流积分步之间复用——未变化的视觉与语言 token 不重复处理;精修期间只重算专家后缀,前缀留到下一个预测周期再刷新。「前缀算一次、专家反复算」的缓存分工是机载实时性的重要一环。

4.2 MAM:把历史切成运动事件

时序上下文对语言条件导航至关重要——过去的观测与执行过的动作影响指令解读与后续决策。既有方法用拓扑地图或视频历史表示上下文,但稠密视觉历史推高计算成本,形成「保留有用上下文」与「维持高效机载推理」的拉锯。MAM(Motion-Adaptive Memory)的解法是把飞行历史表示为有界的运动事件集合:

  1. 事件分割:历史动作按因果序处理,相邻动作变化超过阈值、或段达到规定的最大长度时提出事件边界(事件间还有最小间隔约束)。每个事件包含对应的动作段与其起止两张锚定图像。边界只由已发生的动作决定——这是纯因果的切分。
  2. 事件编码:对事件 j,时间卷积编码器 + 掩码池化把动作段压成紧凑表示,投影与可学习的 token 偏移产出 P 个动作查询 Q_j;两张锚图经与当前图像共享的视觉塔得到 patch 特征 V_j;动作查询经交叉注意力从视觉特征取回信息,再过残差前馈与归一化。事件记忆为 M_{t,j} = F_MAM(Q_j, V_j) + E_age(d_{t,j}),其中事件年龄嵌入 E_age 在视觉-动作融合之后加入。

两个设计都为机载效率服务。其一,最多 M 个事件、每事件 P 个 token,前缀中的记忆 token 有硬上限 M×P。其二,年龄后置:已完成事件的动作与锚图不再变化,其内容可以跨预测周期缓存(只有年龄在变,拼装新预测时现加即可);而编码前缀缓存只在单周期内复用——两级缓存的生命周期被干净地分开。可学习的偏移让动作查询从事件中取回不同侧面,无论段多长都输出 P 个 token;当前图像不受历史预算限制、始终直接可见。

效果直接体现在数字上:基线用四张历史图加当前图需 446 个输入 token,换成 MAM 事件 token 后至多 218 个,降幅至少 51.1%,而且表示的是更长的飞行历史;Jetson Orin NX 上单步动作专家去噪时间从 80 ms 降到 20 ms,这一阶段提速四倍。

4.3 MSP:给流匹配一个会挑起点的源分布

第二个省算力的组件瞄准动作生成本身。扩散式动作生成需要多步去噪;而论文观察到一个结构性事实:短视距无人机轨迹集中在一小撮复发运动模式上。MSP(Motion-Structured Prior)把这个结构编码进流生成的源分布:

  • 离线建原型库:取训练动作块的一个非平稳子集,重建成相对块原点的三维轨迹并按总路径长度归一化(把轨迹形状与行程距离解耦),展平后做 K-means(K = 4)。聚类中心定义固定的运动原型——步进水平距离比例、yaw 剖面与垂直剖面;其余训练块按最近中心分配运动类标签与类内动作统计量。
  • 在线选原型:运动预测头接收上下文表征 h_t 与当前状态 s_t,预测类别 logits 与类特定系数(运动长度 L_t、累积 yaw Φ_t)。取先验校正后 logits 最高的类 k_t 及其系数,调整所选原型的水平幅度、垂直剖面与累积 yaw,转成机体系 XYZ 并映射到归一化动作空间,得到均值轨迹 μ_{k_t}(L_t, Φ_t)。预测头用最近中心类标签及长度、累积 yaw 目标监督。
  • 采样源块:以类内动作协方差的 Cholesky 因子 C_{k_t} 构造类相关噪声,z_XYZ = μ + αCε(α 控制扰动幅度;固定坐标不参与调整与扰动),停止位独立采样 z_stop = ε_stop。XYZ 协方差捕捉跨动作步与坐标的相关性,调整后的均值提供连贯运动模式、协方差保留坐标与时间维的变异。

动作专家用条件流匹配把 z 变换为最终动作块:训练时 x_τ = τz + (1−τ)A*,目标速度 u_τ = z − A*,损失只在有效非条件条目上评估;推理从 x_1 = z 出发、用 Euler 步向 τ = 0 积分(Δτ < 0),终末样本 x_0 即预测动作块。关键在于:运动结构条件化的是起始分布,并不把输出锁死在所选原型上——速度场学的是修正量,专家仍可生成原型之外的轨迹。单步生成即从 τ = 1 到 0 的一次 Euler 更新,额外步数只在中途样本上重估速度场。

4.4 OpenFlyV2-130K:三种渲染源的数据管线

训练监督横跨理解与导航,论文为此建了可扩展的数据管线:4 个 AirSim 环境 + 2 个 UE 城市场景提供引擎建模场景;7 个环境由团队用 3D Gaussian Splatting 重建——5 个大学校园 + 2 个灾后废墟,布局与外观来自真实影像。13 个环境合计 254.81 km²,导航侧 72,352 条语言条件轨迹,VQA 侧 60,006 对问答(颜色识别 4,285、物体描述 7,650、距离估计 9,490、空间关系 19,975、视觉接地 18,606——空间关系与接地合计约 64%,理解数据的重心明显偏向空间语义)。轨迹生成从栅格地图中的地标出发:随机选目标地标、按场景资产投影采样无遮挡起点、循环拼成多地标连续轨迹,最后做轨迹优化并采集图像与相机位姿。GPT-5 从观测序列生成导航指令、从单张渲染航拍视图生成问答对。

数据质量关卡值得一提:全部自动标注经 200 人标注池人工核验,导航指令检查地标描述能否无歧义定位目标,问答对检查指称清晰与答案正确;严格标准下只有 60% 的生成样本通过,最终数据集只含过审样本。9 个环境用于训练,4 个(AirSim 16、UE Big City、GS NWPU 01、GS Ruins 02)同时从 VLN 与 VQA 训练中排除。所有任务相关的训练观测均为渲染或仿真采集,策略训练未用任何真实飞行演示。

4.5 三阶段训练

训练分两段监督加一段强化。第一段:base 模型在 VLN + VQA 训练子集联合训练两个 epoch,导航视觉输入是四张历史图加当前图,MAM 与 MSP 均未启用——先建立用历史观测的能力,再上压缩表征。第二段:启用 MAM 与 MSP 再联合训练三个 epoch,MAM 以事件 token 替换历史图输入,MSP 提供运动条件源分布,当前图像始终直接可见。消融表(Table 1)各变体均为五个监督 epoch、强化后训练之前评估。第三段:把 GRPO 式的组相对优化适配到随机流策略上做导航后训练——从 9 个训练环境中的 8 个采样 4,000 个任务,rollout 从记录的转弯/停止点开始(前段观测由专家轨迹供给、后段由仿真器生成),对转弯起点的扰动暴露策略于恢复决策;每租四条 rollout 共享初始条件,回报综合任务进展与终端结果加朝向与恢复项,惩罚碰撞、无效停止、执行长度与位置偏差;只更新动作专家,视觉编码器、VL 骨干、MAM 与 MSP 全部冻结;正则对冻结初始专家约束更新幅度。后训练用两个随机流积分转移,最终评估与物理部署用单步积分、不加转移噪声、保留采样的 MSP 源。

4.6 机载部署:异步块执行与动作前缀条件化

物理执行时预测的 XYZ 增量反归一化后交给飞控接口,底层控制器跟踪航点。为了推理期间指令不断供,系统用异步块执行加训练时动作前缀条件化:下一个块在当前块仍在执行时生成,条件于推理间隔内已承诺的指令;训练损失只施加在剩余条目上,教会专家「接着已承诺的运动继续」而无需推理期梯度引导。论文特意区分了两类时序信息的角色:记忆描述已经历的观测与运动,前缀给出继续执行的边界条件——最新的观测与更新的记忆只影响每个新块中未承诺的部分。

五、论文一:实验证据

5.1 航空感知:0.8B 骨干对齐闭源旗舰

五类感知任务上,OpenFlyV2 的 0.8B 骨干总体与 GPT-5.5 相当,超过 Qwen3.5-9B 与 Gemini 3 Flash。最大的增益恰在最需要空间语义的两项:视觉接地 Acc@0.5 达 67.1%(GPT-5.5 为 61.6%);距离估计平均绝对误差 47.32 m 对 52.62 m、相对误差 0.27 对 0.34。描述质量 6.38 对 6.36(满分 10)打平,颜色识别与空间推理分数接近 GPT-5.5。定性示例里,距离估计误差可到 1 m(179 m 对参考约 180 m),接地框 IoU 0.753——这是把旗舰级航空理解装进「与导航共享的紧凑骨干」的直接证据。

5.2 仿真导航:领先 24 个点

800 个已见环境 + 300 个未见环境 episode 上,四个开源基线(AeroVLA、DualVLN、OpenUAV 导航模型、OmniNav)保留各自原设计与训练流程、只用本文导航数据做任务训练,与 OpenFlyV2 在相同 episode 上评测(成功要求在目标 25 m 内显式停止)。OpenFlyV2 已见/未见 SR 分别为 62.88% / 52.67%,超 DualVLN 的 38.88% / 36.67% 达 24.00 与 16.00 个百分点;终端导航误差已见 33.72 m、未见 38.81 m(DualVLN 分别 65.75 m、57.98 m);OSR 与 SPL 同样两个 split 全部最高。更值得玩味的一句注脚:这些基线没有一个能跑在物理飞行所用的 Jetson Orin NX 上——仿真对比的胜负之外,机载门槛本身就把现有对手挡在了真实世界门外。

5.3 消融:MAM 与 MSP 各管一摊资源账

Table 1 把 Base、MAM、MAM+MSP 在一步/两步流积分下对比(五个监督 epoch、1,100 个 episode 池化)。三组事实:

  • MAM 全面改善且大幅提速。一步 SR 从 49.82% 升到 53.45%(NE 49.18 → 37.54 m),两步 SR 从 56.36% 到 59.45%;同时输入 token 从 446 降到至多 218(≥51.1%),机载去噪 80 ms → 20 ms。四个导航指标在两种积分预算下全部改善——压缩历史不是牺牲精度换速度,而是两头赚。
  • MSP 的收益集中在单步预算。加上 MSP 后单步 SR 从 53.45% 升至 57.09%、NE 降至 33.55 m;组合单步模型在全部四项指标上超过 base 的两步版本(57.09% 对 56.36%)——结构化初始化让一次 Euler 更新顶得上两次。积分预算放开到两步时,组合模型仅微升至 57.73%,而两步下最强的是 MAM 单独(59.45%)。结论干净:MSP 是「预算被锁死在一部时」的正确投资。
  • OSR 与 SR 的缝隙提示改进方向。组合单步模型 OSR 68.36% 显著高于 SR 57.09%——进入目标区域与成功终止之间还有差距,停止决策是下一版应补的短板。

5.4 真实世界:四环境零样本 48%

物理部署在大疆 M30T + Jetson Orin NX 上进行,不做任何真实飞行轨迹的额外训练、不做测试场地微调。评测覆盖四个环境:两个在 3DGS 训练环境中出现过(NWPU 02、SJTU 01),两个完全未见(NWPU 01、上海世博文化公园)。100 次试验(50 单地标 + 50 双地标指令),操作员输入初始指令后全程无人工接管;成功由人工判定,双地标任务还要求按指定顺序到达两地标(跳过第一地标或超时均记失败)。汇总成功率 48%,成功案例包括顺序地标引导与依赖指令的转向,需要随运动不断重新解读语言目标。飞行中最终策略以单步流积分在每个块上生成 12 航点、10 Hz 运行,视觉处理、记忆更新与动作生成全部在机上完成。

5.5 局限与作者的自省

Discussion 一节相当克制:可靠的真机航空 VLN 仍是重大挑战;偏差检测、错误恢复与观测变化下的导航恢复是明确待解方向;语言引导巡检(导航到地标 + 对结果视图提问)、跨请求的指称跟踪、导航与问答并行、乃至飞行中的对话式澄清,都是自然的延伸场景。

六、论文一:知识反推——复现它你需要知道什么

领域层:

  • VLN 的任务谱系(指令跟随、多语言、连续环境)与航空特有难点(AerialVLN 所刻画的远距观测、快速视点变化、部分可观测、三维运动),这是理解「为什么历史与动作都要特殊设计」的背景板;
  • 动作分块(action chunking)传统:一次输出预测多个连续指令、后续预测周期纳入新观测——MSP 的 12 航点块站在 ACT/RT 系列的肩膀上;
  • 流匹配与扩散策略的数学:条件流匹配的直线路径、速度场回归目标、Euler 积分;rectified flow 「少步可积」的动机——MSP 的单步收益必须放在这条线上才能读懂;
  • 概率运动基元(Probabilistic Movement Primitives):把可复用运动模式表示为轨迹分布——MSP 的原型库 + 类内协方差正是它的离散化变体;
  • VLA 谱系:PaLM-E 的具身推理、RT-1/RT-2/OpenVLA/Octo 的通用策略、π0 的流式 VLA——OpenFlyV2 是这条线在航空域与机载约束下的实例化。

方法论层:

  • 事件边界的因果切分规则:动作变化阈值 + 最大段长 + 最小事件间隔,三个参数共同决定记忆的粒度;
  • 年龄嵌入后置的两级缓存:完成事件内容跨周期缓存、编码前缀单周期复用——复现机载 10 Hz 时这是成败细节;
  • 原型库的离线构造纪律:路径长度归一化解耦形状与距离、非平稳子集筛选、最近中心打标签——K = 4 而非更大的 K,说明短视距航迹的模式数本来就少;
  • 仿真到真实的桥:3DGS 重建真实校园/废墟进训练分布、无真实数据零样本迁移,与域随机化互补;
  • RL 后训练的纪律性:只更新动作专家、冻结其余全部、对冻结初始专家正则——能力保全与策略精化的折中;
  • 数据管线的质量关:GPT-5 生成 + 200 人核验 + 60% 通过率,规模化自动标注的「人工兜底」范式。

融合关键节点:意识到机载延迟的两笔账要分开算——历史处理的账(token 数)与动作生成的账(去噪步数)由两个正交组件分别偿还,MAM 还的是前者、MSP 还的是后者;组合起来才把「视觉-语言理解 + 闭环控制」同时塞进一块 Orin NX。消融表里两步预算下 MAM 单独最强、单步预算下 MAM+MSP 最强的交叉 pattern,是这个正交性最直接的实验显影。

七、论文一:通用灵感

  1. 记忆的单位应该对齐行为的节奏,而不是传感器的节奏。MAM 不按帧存历史、按「运动事件」存——事件边界由动作变化定义,锚图只取起止两张。任何长时序系统(对话、操作、巡检)都值得问:我的历史切分方式是不是被采样率绑架了?
  2. 生成难的时候,先改起点再谈步数。MSP 的全部智慧在于把「多步去噪收敛」换成「从正确的分布出发、一步到位」。起点含的结构信息直接兑换成推理步数——凡是迭代式生成(规划、代码、设计稿),给初始化注入领域结构都是省算力的第一杠杆。
  3. 能力整合的正确姿势是共享前缀而非共享任务头。理解与动作消费同一份编码前缀,KV 缓存天然复用,精修时只重算专家后缀。「一个表征、多个读出」比「一个模型、多个头」的耦合更松、缓存更友好。
  4. 评测要与部署工况对齐。基线们「没有一个能跑在 Jetson Orin NX 上」这一事实,比仿真榜上的 24 个点更能定义这项工作的价值。给具身系统定基准时,把算力预算写进赛规,赛道才会真实。
  5. 自动标注要配人工核验的闸门。72,352 条轨迹 + 60,006 对 VQA 背后是 200 人核掉 40% 样本的把关。规模化数据的可信度不来自生成的量,而来自过滤的严。

第二篇:HairDeck——一张卡一个 token,一个发型一次生成

八、论文二:题目与背景

8.1 题目拆解

「HairDeck: Animation-Ready Stylized Hair Cards from a Single Image」每个词都在划定与既有工作的分界。Stylized Hair Cards:不是写实的 alpha 纹理卡(贴图顶替发丝的平面条),而是游戏与虚拟形象风格化角色的专用结构——菱形或三角形截面、宽度厚度沿卡变化的条带,其几何本身就是可见的头发;Animation-Ready:不止几何,还要带上驱动动画的弹簧骨链,输出直接可导入下游引擎;from a Single Image:输入只要一张任意画风的图。

8.2 背景:艺术家的工作流里没有「一整块网格」

论文开篇点出 3D 生成与美术管线的错位:单图 3D 生成器已经能产出可信形状,但产不出艺术家构建资产所用的结构。风格化角色的头发是典型案例——几十到上百张艺术家手摆的卡,配弹簧骨链(Unity 的 Dynamic Bone、VRChat 的 PhysBones、UE 的 Kawaii Physics、Godot 的 SpringBoneSimulator3D 一类的每帧模拟短骨链)让头发甩动并安定。艺术家逐卡摆放、逐链绑定的手工量巨大,而现有自动方法没有一种输出这个资产:发丝生成器(含接受风格化输入的近期工作)输出的是写实发丝表示;卡提取把发丝转成写实 alpha 卡;图生 3D 输出单块融合网格、无卡可动画;CHARM 是唯一的风格化卡生成器,却以自回归方式把发型吐成数百到上千个离散 token 的长序列。

8.3 关键洞察:发型是无序集合

HairDeck 的核心观察一句话可以说完:卡式发型是艺术家定义基元的无序集合,那就按集合来生成。CHARM 的自回归序列化强加了一个本不存在的顺序,还让误差沿序列累积;每张卡本是艺术家的一次完整决策,那就让每张卡成为一个 token,让所有 token 一起被去噪。这条「一基元一 token、基元间无序」的简单规则,是全文一切设计的原点。

九、论文二:定位与问题定义

9.1 定位:不只更快更准,还要「动画就绪」

HairDeck 的定位有三层。其一,作为生成器,它从单张图(或 CHARM 基准的点云)生成完整卡式发型;其二,作为资产管线,它同时产出弹簧骨链与固定几何蒙皮,导出即用的下游格式(含 VRM);其三,作为方法论,它提出并验证了一条面向「艺术家基元集合」类资产的通用生成范式——论文结尾明说:由面板缝制的服装、由笔画构成的画作,都可循同一条路生成。

9.2 问题定义的三个子问题

任务被拆成三段:把变长的卡编码为定长 token(表示问题);从点云或单图条件一次性生成全部卡 token(生成问题);再从卡 token 生成驱动它们的弹簧骨链(动画问题)。三段共用「集合 + 一致 token + 一起扩散」的同一配方,这种自相似性是设计的优雅之处。

十、论文二:解法(Method)

10.1 卡的表示:控制点之外,补上截面与根法向

沿用 CHARM,每张卡由 n 个控制点 (p_i, w_i, h_i) 描述(位置、宽度、厚度);HairDeck 补上两个被原表示漏掉的属性:截面类型 s(菱形记 −1、三角记 +1——原方法全体卡片一律菱形截面)与根法向 d_1(卡在根部处的宽度方向,直接读自艺术家网格,而非从首三个控制点估计)。建卡网格时,d_1 沿折线用旋转最小化(Bishop)帧传播,得到每个控制点的宽度方向 d_i,再把截面沿其扫掠成面。

根法向为什么必须显式给出?附录 C 的解剖给出铁证:CHARM 的模板从首三点取根方向,控制点量化(每轴 512 级)会把根方向平均拧偏 23.6°;即使用原始网格的根方向,量化点上 Bishop 传播的朝向误差也只有 8.2°,而「原始网格根方向 + Bishop」在艺术家放置点上低至 7.5°(Table 9,也是表 1 注中「艺术家卡 mesh 基准 7.5°」的出处)。朝向误差的主要来源不是传播方式,而是起点被量化污染——显式存根法向是治本的。

10.2 Card VAE:变长控制点 → 32 维 latent

生成器需要定长 token,卡的控制点数却各不相同。Card VAE 把控制点(相对根位置)编码进 z ∈ R^32:编码器是控制点上的 transformer,每点带弧长分数 u_i 的标签,外加一个学习到的摘要 token [CLS],其输出单独给出 z 的均值与对数方差。解码器从 z 用分类头预测控制点数 n,再在 n 个均匀间隔的弧长分数处求值卡——分数以低频 Fourier 特征嵌入,transformer 经 adaLN-Zero 被 z 调制。损失是世界单位下位置/宽度/厚度的平方误差,加 n 的交叉熵与一个小 KL 项。

弧长解码是平滑性的关键。Table 8 的 VAE 设计消融:按索引解码(像 StrokeFusion 解码笔画点那样)重建卡级 CD 为 4.17×10⁻³、转折角 25.3°;改弧长解码骤降到 0.98×10⁻³、15.6°;再叠 adaLN 调制与世界单位损失到 0.70×10⁻³、13.7°(最终版加均匀目标后 turn 14.3°)。对照艺术家卡的 turn 中位数 14.1°——VAE 重建出的卡和艺术家画的卡一样平滑,而按索引解码的卡是锯齿的。

10.3 卡 token 与集合扩散

每张卡成为一个 40 维 token x = (p_1, d_1, z, s, e):根位置、根法向、latent、截面类型与存在标志(有卡 e = +1,空槽除 e = −1 外全零;采样后按符号读取 s 与 e)。一个发型是 N = 192 个 token 槽的集合(训练集中超 192 卡的发型仅 0.6%,弃用)。

Set DiT 是去噪这 N 个槽的扩散 transformer,共 12 层、宽 768、181.3M 参数。它没有位置编码——因此对槽的置换等变,卡序从未被定义;每个块做槽间自注意力、对条件 token 的交叉注意力与 MLP,全部由时间步与池化条件经 adaLN-Zero 调制。条件:点云走冻结的 Dora-VAE 编码器(512 个 token);单图走冻结的 DINOv3 ViT-L/16 对「头发 + 脸」方形裁剪的输出(野外图由 SAM 3 给出头发与脸的掩码)。训练用流匹配:X_t = (1−t)X_0 + tε,回归直线速度,加权损失把根位置与存在标志的权重设为 4(其余 1);条件以 0.1 概率丢弃以支持分类器自由引导。测试时 50 个 Euler 步、引导尺度 2,解码每个 e > 0 的槽。存在标志让「几张卡」这件事与卡的形状一起在去噪中沉淀——附录的去噪过程图显示,早期干净集只有寥寥几张卡,卡随着存在标志安定而逐渐长出。

10.4 单图生成:头部坐标系 + 两种风格增广

单图路径有三件配套。头部坐标系:发型的大小与位置跟随头,而数据集坐标系把每个角色按身高归一——有的角色耳朵计入身高、头被压低,头部在数据集系里大小高低不一。于是定义以脸锚定的头帧:映射 p ↦ k·p + b,k = W/w 把角色脸宽 w 缩放到训练集中位脸宽 W(W = 0.1276),b 把脸的顶中点搬到共同点 O;宽厚随 k 缩放。渲染测试角色上再用自己的 k、b 映回去,头发便落在真实的头上。训练渲染:Blender 4.2 从 8 个视角渲染每个训练角色(768 px),随机身体姿态、弹簧骨模拟带来的发丝动态(35% 静止,其余甩动/安定;30% 视角把发丝重力设为 0.1–0.6)、从头前到头后的相机分布(正面与四分之三视图占 80%),目标恒为静止姿态的卡集合。风格增广双管齐下:合成式增广(半调、XDoG 线稿、平涂、绘画滤镜、厚墨线、边缘光等一整套)提升对风格化输入的精度;再用 Qwen-Image-Edit-2511 把渲染图重绘成三种画风——抽卡(手游)风、厚涂、半写实——SAM 3 轮廓与原图重叠达标(头发 IoU ≥ 0.85、角色 ≥ 0.9)才收进 21,336 张的池子,训练时以 0.33 概率抽取。

10.5 弹簧骨链:同一配方的第二次调用

卡不会自己动,艺术家靠弹簧骨链——从头部垂下的短骨链、末端每帧模拟,头发随之甩动安定。HairDeck 用与卡生成完全相同的配方生成链:每条链一个 27 维 token(按弧长 8 点的路径 + 关节数 + 刚度 + 存在标志),一个发型最多 48 条链;Chain DiT 与 Set DiT 同块设计(8 层、宽 384、30.5M),在头帧里流匹配生成全部链 token,交叉注意力读卡 token——训练时条件于真值卡 token,测试时读生成的卡(点云来的卡先映入头帧再用卡 VAE 重编码)。链数据来自训练角色的 VRM 文件:36,440 个训练发型中 32,979 个有链,去掉超 48 链或超 192 卡者余 32,599 个发型、438,672 条链。

之后是固定几何蒙皮:关节沿生成路径均匀放置;一张卡若其中心线下 60% 与某链平均距离低于 0.4 脸宽则跟随该链,否则刚性随头运动;卡上每点跟随该链最近的段,在关节半段范围内与邻段线性混合,权重从链根的 0 在 0.05 脸宽弧长内升至 1。两个阈值(指派距离 0.4、坡长 0.05)在 200 个带链训练角色上对着艺术家的蒙皮权重扫参调定(备选 0.15/0.25/0.4/0.6 与 0.01–0.3,运动相关性 0.84)。模拟遵循 UniVRM 的 VRM 弹簧骨参考更新:每帧骨端保留 (1−drag) 的先前位移、向被父级旋转后的静止方向移动 stiffness×dt、沿重力下落 gravity×dt、再拉回骨长;无碰撞体、60 fps;生成链用预测的刚度、drag 0.4、无重力。

10.6 训练开销:单卡 A6000 上的「小而美」

Card VAE 8.07M 参数训 4 小时;点云模型(80K 步、batch 64)约 10 小时;Chain DiT 约 3 小时;图像模型从点云模型暖启(100K 步、batch 48)约 27 小时——全部单张 RTX A6000。Set DiT 181.3M、Chain DiT 30.5M,在如今动辄数十亿参数的 3D 生成语境下轻得像个手工品。

十一、论文二:实验证据

11.1 点云生成:CD 降 44%、朝向减半、33× 加速

CHARM 的 100 个测试发型、CHARM 自己的协议(Table 1):

方法CD↓EMD↓HD↓IoU↑朝向↓时间↓
MeshAnything V20.01660.01820.06300.671–176 s
DeepMesh0.03570.03810.10010.530–1050 s
BPT0.04460.05070.10630.451–351 s
CHARM0.01170.01280.04980.75340.0°33.7 s
检索最近训练发型0.01190.01190.05050.73224.8°–
卡级自回归0.00780.00930.03560.82316.6°6.91 s
HairDeck0.00660.00840.02420.86716.8°1.01 s

三个信息量极大的参照:其一,检索(拿条件最近的训练发型直接返回)CD 0.0119——CHARM 的生成精度约等于「背出训练集」,它并未真正泛化;其二,卡级自回归(用 HairDeck 自己的卡 token、卡 VAE、数据与条件,按 CHARM 式顺序逐卡生成,参数量与 Set DiT 相当)CD 已降到 0.0078——一卡一 token 的表示改造单独就吃掉了大部分精度收益;其三,集合生成在同一表示上再降到 0.0066、且比卡级自回归快 6.8 倍(后者还会提前停、平均只出 60.8 张卡,Set DiT 出 68.9、真值 67.4)。表示(token 化)与顺序(集合 vs 序列)两步改动的贡献被干净解耦。朝向误差 40.0° → 16.8°(降一半以上),耗时 33.7 s → 1.01 s(33 倍)。

11.2 单图生成:失败率低一个数量级

76 个可渲染测试角色 + 40 张按发型分层的真实插画(Table 2,对齐后指标):HairDeck 对齐 CD 0.0089(次佳 TRELLIS.2 的 0.0139)、IoU 0.725;失败率测试集 3.5%、野外 10.0%——对比方法分别 13.2%–34.2% 与 17.5%–77.5%;单图 1.33 s(对比 15.6–83.0 s)。级联方案(图生 3D 采样点云再喂点云生成器)最好的组合也只有 0.0138 的对齐 CD 与 22.4%/76.7% 的失败率——绕道融合网格再拆卡,不如直接从图到卡。定性图里 TRELLIS.2 对两张插画都输出一块朝向相机的平板,DiffLocks 转换的卡在写实肖像上「头顶秃、发尾成块」。

11.3 消融:每个组件都在其位

  • 卡 token:VAE latent 对原始控制点 CD 0.0066 对 0.0068,平滑度 14.2° 对 21.9°(艺术家 14.1°)——latent 不仅省维度,还顺手把锯齿磨平;按索引解码的 VAE 0.0079、25.3°;PCA 64 系数 0.0078 且「比艺术家的卡更直」。
  • 根法向:去掉后朝向误差 16.8° → 26.4°——一个属性的显式化值约 10°。
  • 存在标志:换成「先预测卡数的头」会出卡不足(62.8 对 68.9 张)。
  • 数据与容量:用 CHARM 的卡模板训练,朝向 26.7°(再次证明根方向数据质量的重要性);换 CHARM 的 Michelangelo 编码器或缩到 54.6M 参数(比 CHARM 的 61.2M 还小),CD 仍 0.0068/0.0072,远低于 CHARM 的 0.0117——赢的主要是表示与范式,不是参数量。
  • 图像模型:无头帧,对齐前 CD 0.0136 → 0.0189、重投影重叠 0.829 → 0.798(对齐后不变 0.0089)——头帧解决的是「头发坐在哪」,不改变「头发长什么样」;无重绘图,restyled 输入的根精度 0.781 → 0.849 之间那一档丢失(模型会「凭空起卡」),无重绘图 + 无风格增广则对齐 CD 退到 0.0100。

11.4 弹簧骨:生成链 vs 检索链 vs 程序化规则

58 个带链测试发型上(Table 4,艺术家卡输入时):Chain DiT 的链位置 CD 0.279(脸宽单位),recall 0.625 / precision 0.585——检索最近训练发型的链只有 0.289 / 0.285,程序化规则 rig 更低至 0.397 / 0.110。运动层面更说明问题:四种头部运动(转头、点头、跳跃、侧摆)下卡上每点位移与艺术家链驱动的相关性,生成链 0.702,检索 0.622,程序化 0.538;平均位移幅度 0.0167 W 对艺术家链的 0.0157 W(程序化的 0.0473 甩过头了)。生成的卡上,链 recall 从点云路径的 0.542 到单图的 0.390,但对卡的贴合度稳定在 0.95——从生成的卡出发也能绑出可用的链,这意味着 Chain DiT 还能反过来给艺术家手做但没绑骨骼的发型补 rig(论文明说这是第 4.6 节的应用之一)。

11.5 应用与局限

条件插值:Dora 编码器的条件 token 无对应关系,用查询点位置做匈牙利匹配后线性混合两个点云的 token、共享初始噪声,插值出的发型平滑过渡。局限也交代得坦诚:训练数据全是 VRoid 风格发型,极短发与写实 alpha 卡在分布之外;只生成几何与 UV、不生成贴图;VRoid 角色常用卡建模蝴蝶结和帽子,输入里有就照生成为卡(需靠数据过滤规避);链布局跟随 VRoid 惯例,对「多条链从头顶放射」等罕见布局生成偏少。

十二、论文二:知识反推——复现它你需要知道什么

领域层:

  • 风格化卡与写实 alpha 卡的区别:前者几何即可见头发(菱形/三角截面、宽厚沿卡变化),后者贴图顶替发丝——两类「hair card」同名异物,是读这类文献的第一道坑;
  • 弹簧骨生态:Unity Dynamic Bone、VRChat PhysBones、UE Kawaii Physics、Godot SpringBoneSimulator3D,以及 VRM 规范的参考更新公式(drag/stiffness/gravity/骨长回拉)——Chain DiT 的输出要能落进这套运行时才有意义;
  • 自回归 3D 生成的谱系:网格按面/点 token 序列(MeshGPT、MeshAnything 系、BPT、DeepMesh)、UV 与三角带顺序(Strips as Tokens)、基元序列(PrimitiveAnything)——CHARM 是这条线在发型上的投影,HairDeck 的批判正对着「序列化强加顺序」这一共同假设;
  • 集合生成的先行者:3DTopia-XL(一基元一 token、无位置编码扩散)、StrokeFusion(笔画 VAE + 带存在标志的 latent 集合扩散)、DiffuScene/SALAD/MeshFlow/BrepGen/PartCrafter(场景/部件/网格三角形/CAD 面/物体部件的联合生成)——HairDeck 是把这套配方针对「卡」精调并首次接通动画链;
  • Bishop(旋转最小化)帧:宽度方向沿折线传播的工具,朝向误差解剖的舞台。

方法论层:

  • 弧长分数解码 + Fourier 特征嵌入 + adaLN-Zero 调制 + 世界单位损失——变长折线压进定长 latent 的完整四件套,任何「艺术家画的平滑曲线」类基元(笔画、缝线、轮廓)都可照搬;
  • 存在标志而非计数头:把「生成多少个」内嵌为每槽的二值属性,随去噪并行沉淀——比先数后画更符合集合语义;
  • 无位置编码 = 置换等变:集合生成的数学门票,训练时链槽随机置换是配套纪律;
  • 头部坐标系的锚定技巧:以脸宽归一、脸顶对齐,把「位置与大小的先验」从模型负担变成坐标系的性质——图像条件下「形状」与「摆放」解耦的通用手法;
  • 重绘增广的质量闸门:编辑模型重绘必须过轮廓 IoU 双阈值(发 0.85、角色 0.9)才入池——生成式增广不设验收等于埋雷;
  • 评估协议的诚实性:除 CHARM 协议(模板 ground truth)外额外对原始艺术家网格测朝向、逐卡匹配最近邻取 32 个位置的角度均值——指标对齐资产的真正语义。

融合关键节点:识别出生成的单位错了。CHARM 的失败不是模型不够大(54.6M 的 Set DiT 照赢 61.2M 的 CHARM),而是控制点级自回归把「艺术家的一次决策」拆成上百个顺序步骤;把单位抬升到「卡」、把顺序取消成「集合」,精度与速度同时到手。这是「表示先于架构」的又一次实证——与 OpenFlyV2 把历史单位从「帧」抬升到「事件」是同构的一步。

十三、论文二:通用灵感

  1. 输出要长成用户工作流的样子,而不是模型方便的样子。融合网格在几何上也许不差,但游戏管线要的是卡和链。「animation-ready」不是锦上添花,是能不能被用起来的分界线。
  2. 无序的数据别硬排顺序。自回归对天然无序的集合既强加偏差又累积误差;置换等变的集合扩散是更诚实的归纳偏置。场景物件、文档元素、体检指标集——凡「集合语义」的数据都值得一问。
  3. token 化是收益大头,架构是第二层。卡级自回归(同 token、旧范式)CD 0.0078 已胜 CHARM 的 0.0117;集合化再胜到 0.0066。改造表示的杠杆比改造架构更长。
  4. 属性该显式就显式。根法向一个字段值 10° 朝向精度;从数据里「估」出来的量(首三点定根方向)把估计误差焊死进表示。哪些量该学、哪些量该存,值得逐项审计。
  5. 验收条件要写进数据生成。轮廓 IoU ≥ 0.85/0.9 的闸门让 21,336 张重绘图全部「卡结构稳定」——增广的多样性只有在不破坏结构标签时才是纯收益。

十四、两篇对比与交汇:为受限环境重设计生成单位与记忆机制

14.1 一张表看清两篇

维度OpenFlyV2(arXiv:2610.39287)HairDeck(arXiv:2610.40599)
任务机载航空理解 + 语言条件闭环导航单图生成风格化头发卡 + 弹簧骨链
受限条件机载算力(Jetson Orin NX、10 Hz)与航空动力学输出结构语法(艺术家基元集合 + 引擎动画生态)
记忆/单位重构历史:帧序列 → 运动事件 token(MAM,token 446→218,降 ≥51.1%)发型:控制点长序列 → 一卡一 token(约 70 token/发型)
生成机制流匹配 + 运动结构先验源分布(MSP),单步积分无位置编码集合 DiT + 流匹配,192 槽一起去噪
头条数字仿真 SR 62.88%/52.67%(DualVLN 38.88%/36.67%);真机零样本 SR 48%;单步 57.09% 超 base 两步 56.36%CD 0.0066 降 44%;朝向 16.8° 对 40.0°;1.01 s 提速 33×;链 recall 0.625
数据策略13 环境 254.81 km²、72,352 轨迹 + 60,006 VQA,GPT-5 生成 + 200 人核验(60% 过审)CHARM 数据 36,440 发型,8 视角渲染 + 合成/重绘风格增广(21,336 张过闸池)
额外红利理解与导航共享一个 1B 检查点;异步块执行保命令连续Chain DiT 可给已有发型补 rig;条件可插值
团队风格上海 AI Lab 领衔七机构(国家实验室 + 高校 + TeleAI)清华 + CMU + 港中文(图形学,一作承前作 CHARM)

14.2 交汇点一:生成的「原子单位」是可以重新选择的,而且值得

这是两篇最深的共同主题。OpenFlyV2 面对的账单是「历史按帧存太贵」——它把记忆的原子从帧换成运动事件:动作变化切边界、起止两图做锚、P 个查询 token 做上限,token 降一半以上还表示了更长的历史,导航四项指标反而全面上升。HairDeck 面对的账单是「控制点序列太长且有序偏差」——它把生成的原子从控制点换成卡,序列长度从数百点缩到约 70 个 token,精度速度双收。两者证明的是同一件事:帧与控制点只是数据的原始采样单位,不是问题的语义单位;把单位对齐语义(一次运动、一次创作决策),压缩与提效可以同时发生。

14.3 交汇点二:先验结构应该进「起点」,而不是进「损失」

MSP 不在损失函数里惩罚偏离原型的轨迹,而是把 K-means 聚出的四个运动原型放进流匹配的源分布——均值给模式、Cholesky 协方差给变异幅度,一步 Euler 更新即可收敛。HairDeck 的存在标志同理:不在损失里约束卡数,而是让「几张卡」作为每槽属性随去噪自然安定。把领域先验写进生成过程的初始状态,比写进目标函数更省算力、也更不束缚输出——MSP 的终末样本可以落在原型之外,Set DiT 的卡数可以在去噪中长出来。凡是「有结构先验 + 迭代生成」的组合,这条原则都适用。

14.4 交汇点三:消融表里都藏着一次干净的「归因解耦」

OpenFlyV2 的 Table 1 把「历史表示」(Base vs MAM)与「积分步数」(一步 vs 两步)摆成 2×3 矩阵,暴露出两步下 MAM 单独最强(59.45%)、单步下 MAM+MSP 最强(57.09%)的交叉 pattern——MAM 还的是历史的账、MSP 还的是去噪的账,两个组件各管一摊、正交可加。HairDeck 的 Table 1 用「卡级自回归」参照把「token 化表示」与「集合式顺序」的贡献切开:前者 0.0117 → 0.0078,后者 0.0078 → 0.0066 再加 6.8 倍提速。好的消融不止验证组件有用,而是把增益拆给每个设计决策记账——两张表都是这类「归因型实验设计」的范本。

14.5 交汇点四:小而专的模块赢过大而泛的堆料

OpenFlyV2 的动作专家只有 0.2B,RL 后训练也只更新它、其余全冻结——能力的广度来自共享骨干,控制的精度来自小专家,各取所长。HairDeck 的 Set DiT 181.3M、Chain DiT 30.5M,缩到 54.6M 仍远胜参数更多的 CHARM。两篇共同指着一个方向:当表示与结构对了,参数就不再是瓶颈;反之表示错了,参数堆上去也只是把错误拟合得更结实(CHARM 精度约等于检索训练集便是明证)。

14.6 交汇点五:动画/执行的「最后一公里」被设计进了系统

OpenFlyV2 不止输出航点:异步块执行 + 训练时动作前缀条件化保证推理期间指令不断供,「记忆」与「前缀」两种时序信息角色分明。HairDeck 不止输出卡:链、蒙皮、VRM 规范的模拟参数一应俱全,导出即可用。两篇都拒绝「生成完就撒手」的范式——输出的价值以它能被下游执行/消费为限,最后一公里不是附件,是产品定义的一部分。

14.7 差异的启发:实时约束 vs 结构约束的两种抗压法

两篇的约束性质终究不同。OpenFlyV2 的约束是物理的——10 Hz 是硬性的,所以它的设计全在「省每一毫秒」:缓存分级、事件压缩、单步积分,每个组件都对着实测延迟(80 ms → 20 ms)说话。HairDeck 的约束是语法的——1.01 s 还是 33.7 s 在交互上差别巨大但并非不能活,真正不能妥协的是「必须是卡和链」这个结构要求,所以它的设计全在「对齐创作基元」:截面类型、根法向、存在标志、动画链。实时约束逼出缓存与步数的极致优化,结构约束逼出表示与顺序的重新选择——前者是工程强度,后者是建模洞察,一个团队两条腿,缺一都走不远。


十五、结语

这两篇论文一个让无人机自己看、自己想、自己飞,一个让一张插画里长出能甩动的头发,读完留在脑子里的却是同一件事:约束不是生成的敌人,而是生成单位与记忆机制的雕刻刀。

OpenFlyV2 用 MAM 把历史切成运动的节奏、用 MSP 把动作生成放到原型的肩膀上,1B 模型在一块 Orin NX 上以 10 Hz 闭环,真实世界零样本 48% 的成功率不耀眼,却是在「全部推理在机上」这条铁律下拿到的真数字——而所有基线连这块板卡都上不去。HairDeck 用一句「一卡一 token、卡间无序」的格言重写了风格化发型生成,44% 的 CD 降幅、33 倍的速度与「检索即 CHARM」的对照一起,把胜负的原因讲得清清楚楚;弹簧骨链的同配方生成,让这场胜利从「像不像」落到了「能不能用」。

归纳成三句话:

  1. 压缩历史与缩短序列的最优单位,由问题的语义而非数据的采样决定——运动事件对齐行为的节奏,卡对齐创作的基元;
  2. 先验放进起点比放进损失便宜——结构化的源分布与存在标志都用「初始化」换掉了「迭代」或「约束」;
  3. 输出的终点是下游的入口——机上的 12 航点块要接得住异步执行,屏里的卡要挂得上弹簧骨,最后一公里决定一切前面的分数有没有意义。

对从业者,两篇的可迁移清单很具体:你的系统里有没有一段「按传感器采样率存下来的历史」值得按事件重切?你的生成器有没有一个「本无顺序却被排成序列」的输出值得按集合重生成?你的先验是写在损失里反复拉扯,还是可以写进起点一步到位?下一个 10 Hz 与 1.01 s,或许就藏在这些从未被质疑过的默认单位里。

(完)