Trace and Pace: Controllable Pedestrian Animation via Guided Trajectory Diffusion

论文信息: CVPR 2024, Davis Rempe et al., NVIDIA/Stanford/CMU/SFU/Toronto

Link: CVF Open Access


一、核心问题

1.1 研究背景

行人动画是自动驾驶、城市规划和建筑设计等领域的核心问题。一个完整的行人动画系统需要生成真实的 2D 轨迹全身动作

现有方法的局限

方法类型代表工作局限性
规则/算法模型最短路径、社会力模型轨迹不自然,看起来机械
学习型预测模型单次前向传播预测控制能力有限,只能采样或潜在空间遍历
物理基控制器AMP、ASE需要针对每个任务重新训练规划器
VAE 轨迹模型STRIVE需要耗时的测试时优化

1.2 核心问题

如何构建一个行人动画系统,能够

  1. 在测试时通过用户指定的目标(如路径点、速度、社交组)进行控制
  2. 生成真实自然的轨迹和全身动作
  3. 适应不同地形(楼梯、斜坡、不平整地面)
  4. 支持不同体型的人物角色
  5. 避免碰撞(障碍物之间、行人之间)

1.3 本文方法

论文提出了 Trace and Pace 框架,包含两个核心组件:

1. TRACE (TRAjectory Diffusion Model for Controllable PEdestrians)

  • 基于扩散模型的轨迹生成器
  • 测试时通过 guidance 实现控制
  • 支持路径点、避障、社交组等控制目标

2. PACER (Pedestrian Animation ControllER)

  • 基于强化学习的物理控制器
  • 使用对抗运动先验学习真实动作
  • 支持不同体型和地形

系统架构

TRACE (高层规划器)
    ↓ (2D 轨迹)
PACER (底层控制器)
    ↓ (关节控制)
物理仿真环境
    ↓ (状态反馈)
TRACE (重新规划)

二、核心贡献

  1. TRACE:可控制的轨迹扩散模型

    • 使用 classifier-free sampling 实现测试时控制
    • 提出 clean guidance 公式,在干净轨迹上操作
    • 支持多种分析性引导目标(路径点、避障、社交组)
  2. PACER:通用行人动画控制器

    • 从少量动作数据学习真实步态
    • 地形感知:楼梯、斜坡、不平整地面
    • 社交感知:避免与其他行人碰撞
    • 体型感知:支持不同身体形态
  3. 闭环行人动画系统

    • TRACE 和 PACER 独立训练,运行时闭环集成
    • 使用 PACER 的价值函数指导 TRACE 去噪
    • 支持大规模人群仿真

三、大致方法

3.1 框架概述

┌─────────────────────────────────────────────────────────────────┐
│                  Trace and Pace System                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  TRACE: 轨迹扩散模型 (高层规划器)                        │   │
│  │  - 输入:过去轨迹 + 邻居轨迹 + 语义地图                    │   │
│  │  - 输出:未来 5 秒 2D 轨迹 (x, y, θ, v)                    │   │
│  │  - 控制:测试时 guidance (路径点、避障、社交组)           │   │
│  └─────────────────────────────────────────────────────────┘   │
│                              ↓                                  │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  PACER: 物理控制器 (底层执行器)                          │   │
│  │  - 输入:2D 轨迹 + 环境特征 + 体型参数                     │   │
│  │  - 输出:PD 控制器目标 (关节角度/速度)                    │   │
│  │  - 学习:对抗运动先验 + PPO                               │   │
│  └─────────────────────────────────────────────────────────┘   │
│                              ↓                                  │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │  物理仿真 (Isaac Gym)                                    │   │
│  │  - 地形:楼梯、斜坡、障碍物                              │   │
│  │  - 反馈:角色状态 + 高度图                               │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
│  闭环:每 2 秒重新规划,PACER 状态反馈给 TRACE                    │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.2 核心组件

(1) TRACE:轨迹扩散模型

问题定义

  • 输入:ego 行人过去轨迹 \(x_{ego} = [s_{t-T_p}, ..., s_t]\)
  • 输入:邻居行人过去轨迹 \(X_{neigh} = {x_i}_{i=1}^N\)
  • 输入:语义地图 \(M \in \mathbb{R}^{H \times W \times C}\)
  • 输出:未来轨迹 \(\tau = [\tau^s; \tau^a]\)
    • 状态 \(\tau^s = [s_{t+1}, ..., s_{t+T_f}]\),\(s = [x, y, \theta, v]^T\)
    • 动作 \(\tau^a = [a_{t+1}, ..., a_{t+T_f}]\),\(a = [\dot{v}, \dot{\theta}]^T\)

扩散过程

  • 前向:添加高斯噪声 \(\epsilon \sim \mathcal{N}(0, I)\) $$\tau^k = \sqrt{\bar{\alpha}_k} \tau^0 + \sqrt{1-\bar{\alpha}_k} \epsilon$$
  • 反向:学习去噪分布 $$p_\phi(\tau^{k-1} | \tau^k, C) := \mathcal{N}(\tau^{k-1}; \mu_\phi(\tau^k, k, C), \Sigma_k)$$

训练目标: $$\mathcal{L} = \mathbb{E}_{\epsilon, k, \tau^0, C} \left[ ||\tau^0 - \hat{\tau}^0||^2 \right]$$

(2) Classifier-Free Sampling

目的:提高测试时对条件输入的遵循能力

训练:随机丢弃条件输入(10% 概率)

  • 同时学习条件模型 \(\mu_\phi(\tau^k, k, C)\)
  • 同时学习无条件模型 \(\mu_\phi(\tau^k, k)\)

测试时组合: $$\tilde{\epsilon}\phi = \epsilon\phi(\tau^k, k, C) + w \left( \epsilon_\phi(\tau^k, k, C) - \epsilon_\phi(\tau^k, k) \right)$$

  • \(w > 0\):增强条件影响
  • \(w < 0\):减弱条件影响
  • \(w = 0\):纯条件模型
  • \(w = -1\):纯无条件模型

(3) Clean Guidance

问题:传统 guidance 在噪声轨迹上评估损失函数,需要训练噪声鲁棒的损失函数

解决方案:在干净轨迹预测 \(\hat{\tau}^0\) 上操作

传统方法 (Noisy Guidance): $$\tilde{\mu} = \mu - \alpha \Sigma_k \nabla_\mu \mathcal{J}(\mu)$$

本文方法 (Clean Guidance): $$\tilde{\tau}^0 = \hat{\tau}^0 - \alpha \Sigma_k \nabla_{\tau^k} \mathcal{J}(\hat{\tau}^0)$$

优点

  • 可以直接使用分析性损失函数
  • 不需要训练噪声鲁棒的损失函数
  • 样本质量更好,目标遵循度更高

(4) 引导目标函数

路径点引导: $$\mathcal{J}{waypoint}(\tau) = ||(x{target}, y_{target}) - (x_T, y_T)||^2$$

障碍物避免: $$\mathcal{J}{obs}(\tau) = \sum_t \max(0, r{ped} + r_{obs} - ||p_t - p_{obs}||)^2$$

行人避免: $$\mathcal{J}{agent}(\tau) = \sum_t \max(0, 2r{ped} - ||p_t - p_{neighbor}||)^2$$

社交组: $$\mathcal{J}{group}(\tau) = \sum_t ||(x_t, y_t) - (x{group}, y_{group})||^2$$

3.3 PACER:物理控制器

状态空间

$$s_t = [h_t, o_t, \beta, \tau^s]$$

  • \(h_t\): 角色状态(关节位置/速度/旋转)
  • \(o_t \in \mathbb{R}^{64 \times 64 \times 3}\): 局部高度图和速度图
  • \(\beta\): SMPL 体型参数
  • \(\tau^s\): 目标 2D 轨迹

动作空间

$$a_t = \text{PD 控制器目标}$$

  • 目标关节旋转
  • 目标关节速度

奖励函数

$$r_t = r^{amp}_t + r^{\tau}_t + r^{energy}_t$$

  • \(r^{amp}_t\): 对抗运动奖励(来自判别器)
  • \(r^{\tau}_t\): 轨迹跟踪奖励
  • \(r^{energy}_t\): 能量惩罚

对称性损失

问题:RL 训练可能产生不对称步态(如跛行)

解决方案:运动对称性损失

$$\mathcal{L}{sym}(\theta) = ||\pi{PACER}(h_t, o_t, \beta, \tau^s) - \Phi_a(\pi_{PACER}(\Phi_s(h_t, o_t, \beta, \tau^s)))||^2$$

  • \(\Phi_s\): 沿矢状面镜像状态
  • \(\Phi_a\): 沿矢状面镜像动作

3.4 价值函数引导

目的: tighter coupling between TRACE and PACER

方法:使用 PACER 的 RL 价值函数 \(V(s)\) 作为引导

$$\mathcal{J}{value}(\tau) = -V(s{follow}(\tau))$$

  • \(s_{follow}(\tau)\): 跟随轨迹 \(\tau\) 的状态
  • \(V(s)\): 预测未来期望奖励

优点

  • 价值函数感知身体姿态、地形、其他行人
  • 引导 TRACE 生成更容易跟随的轨迹
  • 不需要额外训练奖励函数

四、训练细节

4.1 TRACE 训练

参数
过去轨迹长度3s (30 帧 @ 10Hz)
未来轨迹长度5s (50 帧 @ 10Hz)
扩散步数 K100
条件丢弃概率10% (地图和邻居独立)
网络架构U-Net + 1D 时序卷积
地图编码2D CNN → 特征网格

训练技巧

  • 混合数据集训练(有地图 + 无地图)
  • Classifier-free sampling 权重 \(w \in [-0.5, 0]\)

4.2 PACER 训练

参数
控制频率30Hz
RL 算法PPO
地形类型楼梯、斜坡、不平整地面、障碍物
体型变化从 AMASS 采样性别和体型
模拟器NVIDIA Isaac Gym

训练技巧

  • 对抗运动先验(AMP)
  • 对称性损失
  • 碰撞终止(学习避障)

4.3 数据集

数据集特点用途
ORCA-Maps合成数据,多障碍物,少行人避障训练
ORCA-Interact合成数据,无障碍物,多行人社交交互训练
ETH/UCY真实数据,密集人群,无地图真实性训练
nuScenes真实数据,街道场景,详细地图地图条件训练

五、实验与结论

5.1 评估指标

控制能力

  • 引导误差:目标达成程度(如路径点误差)
  • 碰撞率:障碍物碰撞、行人碰撞

真实性

  • EMD (Earth Mover's Distance):生成分布与真实分布的差异
  • 平均加速度:假设行人运动平滑

5.2 主要结果

ORCA 数据集对比(合成数据)

方法引导误差障碍物碰撞行人碰撞速度 EMD
VAE [45]-0.0760.1180.038
TRACE (无引导)-0.0500.1320.029
TRACE (避障)0.0140.0140.1240.020
TRACE (避行人)0.0000.0580.0000.025
TRACE (路径点)0.1050.0480.0930.057

结论

  • TRACE 优于 VAE 潜在空间优化
  • Clean guidance 优于 Noisy guidance
  • 多样本采样 + 选择 (Filtering) 提升性能

nuScenes 结果(真实数据)

训练数据w路径点误差纵向加速度横向加速度
nuScenes only-0.50.4210.1770.168
Mixed0.00.5510.1590.145
Mixed-0.50.3660.1400.132

结论

  • 混合数据训练提升 OOD 泛化
  • \(w < 0\) 提升多样性

5.3 完整系统评估

场景引导失败率轨迹跟踪误差判别器奖励
随机地形0.0930.1041.887
随机地形路径点0.1070.1112.113
障碍物0.1250.0932.512
障碍物避障0.0630.0892.521
平坦 (人群)0.0870.0822.5xx

5.4 消融实验

Clean vs Noisy Guidance

  • Clean guidance 在引导误差和真实性上都更好

TRACE-Filter vs Full Guidance

  • Filtering(多样本选择)有效但有限
  • Full guidance 进一步提升性能

Mixed Training

  • 混合数据集训练提升多样性
  • Classifier-free sampling 权重 \(w < 0\) 提升 OOD 控制

六、局限性

  1. 开环 vs 闭环

    • 长时间闭环操作可能积累误差
    • 每 2 秒重新规划缓解但未完全解决
  2. 计算成本

    • 扩散模型需要 100 步去噪
    • 虽然支持实时,但比单次前向传播慢
  3. 地形泛化

    • TRACE 不直接感知地形(通过 PACER 价值函数间接感知)
    • 极端地形可能需要额外训练
  4. 人群密度

    • 高密度人群仿真时计算成本增加
    • 需要为每个行人运行扩散模型
  5. 动作多样性

    • 依赖 AMASS 数据集的多样性
    • 数据集中没有的动作难以生成

七、启发

7.1 方法学启发

  1. 两阶段范式:规划 + 控制

    高层规划 (TRACE) → 低层控制 (PACER) → 物理仿真
          ↑_____________反馈_______________↓
    
    • 独立训练,运行时集成
    • 模块化设计便于调试和扩展
  2. Diffusion Guidance 的力量

    • 测试时控制无需重新训练
    • 分析性损失函数直接可用
    • 多个目标可以组合
  3. 价值函数作为引导

    • RL 价值函数包含丰富信息
    • 可用于指导扩散模型生成
    • 实现规划器和控制器的双向耦合

7.2 工程实践启发

  1. Classifier-Free Sampling

    • 训练时随机丢弃条件
    • 测试时灵活调整条件权重
    • 支持混合数据集训练
  2. Clean Guidance 公式

    • 在干净预测上操作
    • 避免噪声鲁棒性训练
    • 样本质量更高
  3. 对称性损失

    • 简单有效防止不对称步态
    • 无需额外监督信号

7.3 与相关工作对比

方法规划器控制器训练方式
DeepLoco分层 RLRL联合训练
ASE高层策略低级策略预训练 + 微调
CLOSD扩散规划器RL 跟踪独立训练
Trace & Pace扩散规划器RL 跟踪独立训练 + 价值引导

八、遗留问题

8.1 开放性问题

  1. 更高效的扩散采样

    • 能否用一致性模型减少采样步数?
    • 能否用蒸馏加速推理?
  2. 更长视野规划

    • 当前预测 5 秒未来
    • 能否扩展到更长时序?
  3. 多模态条件

    • 能否结合语言指令?
    • 能否结合视觉输入?
  4. 在线适应

    • 能否在测试时适应新地形?
    • 能否学习新的避障策略?

8.2 未来方向

  1. 统一扩散模型

    • 同时生成轨迹和动作
    • 端到端训练
  2. 世界模型集成

    • 学习可微物理引擎
    • 在 latent space 规划
  3. 大规模预训练

    • 类似 ASE 的预训练范式
    • 通用行人行为模型

九、关键公式总结

公式含义
\(\mathcal{L} = \mathbb{E}[
\(\tilde{\epsilon} = \epsilon + w(\epsilon_C - \epsilon)\)Classifier-free sampling
\(\tilde{\tau}^0 = \hat{\tau}^0 - \alpha \Sigma_k \nabla_{\tau^k} \mathcal{J}(\hat{\tau}^0)\)Clean guidance
\(r_t = r^{amp}_t + r^{\tau}_t + r^{energy}_t\)PACER 奖励
\(\mathcal{L}_{sym} =

十、代码与资源

  • 项目主页: https://trace-pace.github.io/
  • 代码: 项目主页提供
  • 视频: 项目主页提供演示视频

十一、与 Locomotion 控制的关系

Trace and Pace 是 locomotion 控制的一个特例,专注于行人导航场景:

  1. 高层规划:TRACE 生成 2D 轨迹(位置 + 朝向 + 速度)
  2. 低层控制:PACER 跟踪轨迹并生成物理真实的动作
  3. 闭环反馈:环境状态反馈给规划器重新规划

这种两阶段架构是 locomotion 控制的经典范式:

  • 优点:模块化、可解释、便于调试
  • 缺点:需要协调两个组件

ASE、AMP 等工作的区别:

  • Trace and Pace 专注于行人场景
  • 强调测试时控制(guidance)
  • 集成地形和社交感知

笔记说明:本文是 CVPR 2024 关于行人动画的工作,结合了扩散模型和强化学习。理解本文有助于学习 diffusion 在 locomotion 控制中的应用,以及两阶段规划 - 控制架构的设计。