目录

DiffusionDriveV2 代码结构图

DiffusionDrive/

├── 📄 setup.py                          # 项目安装配置
├── 📄 environment.yml                   # Conda 环境依赖
├── 📄 requirements.txt                  # pip 依赖
├── 📄 kmeans_navsim_traj_20.npy         # K-Means 轨迹聚类锚点

├── 📂 docs/                             # 文档
   ├── DiffusionDrive_Architecture.md   # 架构说明
   ├── install.md                       # 安装指南
   └── train_eval.md                    # 训练与评估指南

├── 📂 assets/                           # 图片资源

├── 📂 gtrs_traj/                        # Ground-truth 参考轨迹
   └── 16384.npy

├── 📂 download/                         # 数据集下载脚本
   ├── download_maps.sh
   ├── download_mini.sh
   ├── download_navtrain.sh
   ├── download_trainval.sh
   ├── download_test.sh
   ├── download_private_test_e2e.sh
   └── super_download.sh

├── 📂 scripts/                          # 运行脚本
   ├── 📂 training/                     # 训练脚本
      ├── run_ego_mlp_agent_training.sh
      └── run_transfuser_training.sh
   ├── 📂 evaluation/                   # 评估脚本
      ├── run_metric_caching.sh
      ├── run_transfuser.sh
      ├── run_cv_pdm_score_evaluation.sh
      ├── run_ego_mlp_agent_pdm_score_evaluation.sh
      └── run_human_agent_pdm_score_evaluation.sh
   └── 📂 submission/                   # 提交脚本
       ├── run_cv_create_submission_pickle.sh
       └── run_merge_submission_pickles.sh

├── 📂 tutorial/                         # 教程
   └── tutorial_visualization.ipynb

└── 📂 navsim/                           # ========== 核心代码 ==========
    
    ├── 📂 agents/                       # ===== 智能体 (Agent) =====
       ├── abstract_agent.py            # 抽象基类 Agent
       ├── constant_velocity_agent.py   # 恒速 Baseline Agent
       ├── ego_status_mlp_agent.py      # MLP Baseline Agent
       ├── human_agent.py               # 人类驾驶 Agent
       
       ├── 📂 transfuser/              # ---- TransFuser Agent ----
          ├── transfuser_agent.py      # Agent 入口
          ├── transfuser_config.py     # 配置
          ├── transfuser_backbone.py   # 骨干网络 (ResNet + Transformer)
          ├── transfuser_model.py      # 完整模型
          ├── transfuser_features.py   # 特征提取与目标构建
          ├── transfuser_loss.py       # 损失函数
          └── transfuser_callback.py   # 训练回调
       
       ├── 📂 diffusiondrive/          # ---- DiffusionDrive v1 ----
          ├── transfuser_agent.py      # Agent 入口
          ├── transfuser_config.py     # 配置
          ├── transfuser_backbone.py   # 骨干网络
          ├── transfuser_model_v2.py   # 扩散模型 (核心)
          ├── transfuser_features.py   # 特征提取与目标构建
          ├── transfuser_loss.py       # 损失函数
          ├── transfuser_callback.py   # 训练回调
          └── 📂 modules/             # 扩散模块
              ├── blocks.py            # 基础网络块 (SinusoidalPosEmb, ResBlock 等)
              ├── conditional_unet1d.py# 条件 UNet1D 去噪网络
              ├── multimodal_loss.py   # 多模态损失
              └── scheduler.py         # 扩散调度器 (DDPM/DDIM)
       
       └── 📂 diffusiondrivev2/        # ---- DiffusionDrive v2 ----
           ├── diffusiondrivev2_rl_agent.py   # RL Agent 入口
           ├── diffusiondrivev2_rl_config.py  # RL 配置
           ├── diffusiondrivev2_model_rl.py   # RL 模型
           ├── diffusiondrivev2_sel_agent.py  # Selection Agent 入口
           ├── diffusiondrivev2_sel_config.py # Selection 配置
           ├── diffusiondrivev2_model_sel.py  # Selection 模型
           ├── transfuser_backbone.py   # 骨干网络
           ├── transfuser_config.py     # 基础配置
           ├── transfuser_features.py   # 特征提取与目标构建
           ├── transfuser_loss.py       # 损失函数
           ├── transfuser_callback.py   # 训练回调
           └── 📂 modules/             # 扩散模块 (同 v1)
               ├── blocks.py
               ├── conditional_unet1d.py
               ├── multimodal_loss.py
               └── scheduler.py
    
    ├── 📂 common/                       # ===== 公共数据结构 =====
       ├── dataclasses.py               # 核心数据类 (Scene, Frame, Trajectory 等)
       ├── dataloader.py                # 数据加载器
       └── enums.py                     # 枚举定义
    
    ├── 📂 evaluate/                     # ===== 评估 =====
       └── pdm_score.py                 # PDM 评分计算
    
    ├── 📂 visualization/               # ===== 可视化 =====
       ├── bev.py                       # 鸟瞰图 (BEV) 可视化
       ├── camera.py                    # 相机视图可视化
       ├── lidar.py                     # LiDAR 点云可视化
       ├── config.py                    # 可视化配置
       └── plots.py                     # 绘图工具
    
    └── 📂 planning/                     # ===== 规划系统 =====
        
        ├── 📂 training/                 # ---- 训练框架 ----
           ├── abstract_feature_target_builder.py  # 特征/目标构建抽象类
           ├── agent_lightning_module.py            # PyTorch Lightning 训练模块
           ├── dataset.py                           # 数据集定义
           └── 📂 callbacks/
               └── time_logging_callback.py         # 训练时间日志回调
        
        ├── 📂 metric_caching/           # ---- 指标缓存 ----
           ├── caching.py               # 缓存逻辑
           ├── metric_cache.py          # 缓存数据结构
           ├── metric_cache_processor.py# 缓存处理器
           └── metric_caching_utils.py  # 缓存工具函数
        
        ├── 📂 scenario_builder/         # ---- 场景构建 ----
           ├── navsim_scenario.py       # NavSim 场景定义
           └── navsim_scenario_utils.py # 场景工具函数
        
        ├── 📂 simulation/              # ---- PDM 仿真规划器 ----
           └── 📂 planner/pdm_planner/
               ├── abstract_pdm_planner.py          # PDM 规划器抽象类
               ├── abstract_pdm_closed_planner.py   # 闭环 PDM 规划器抽象类
               ├── pdm_closed_planner.py            # 闭环 PDM 规划器实现
               ├── 📂 observation/                  # 观测处理
                  ├── pdm_observation.py           # 观测数据
                  ├── pdm_occupancy_map.py         # 占用栅格地图
                  └── pdm_object_manager.py        # 目标物管理
               ├── 📂 proposal/                     # 轨迹提案生成
                  ├── pdm_proposal.py              # 提案定义
                  ├── pdm_generator.py             # 提案生成器
                  └── batch_idm_policy.py          # 批量 IDM 策略
               ├── 📂 scoring/                      # 轨迹评分
                  ├── pdm_scorer.py                # 评分器
                  ├── pdm_scorer_utils.py          # 评分工具
                  └── pdm_comfort_metrics.py       # 舒适度指标
               ├── 📂 simulation/                   # 运动学仿真
                  ├── pdm_simulator.py             # 仿真器
                  ├── batch_kinematic_bicycle.py   # 批量自行车运动学模型
                  ├── batch_lqr.py                 # 批量 LQR 控制器
                  └── batch_lqr_utils.py           # LQR 工具
               └── 📂 utils/                        # 工具函数
                   ├── pdm_path.py                  # 路径处理
                   ├── pdm_geometry_utils.py         # 几何工具
                   ├── pdm_array_representation.py  # 数组表示
                   ├── pdm_emergency_brake.py       # 紧急制动
                   ├── pdm_enums.py                 # 枚举
                   ├── route_utils.py               # 路线工具
                   └── 📂 graph_search/             # 图搜索
        
        ├── 📂 script/                   # ---- 运行入口脚本 ----
           ├── run_training.py                      # 训练入口
           ├── run_pdm_score.py                     # PDM 评分入口
           ├── run_pdm_score_fast.py                # 快速 PDM 评分
           ├── run_pdm_score_from_submission.py     # 从提交文件评分
           ├── run_metric_caching.py                # 指标缓存入口
           ├── run_dataset_caching.py               # 数据集缓存入口
           ├── run_create_submission_pickle.py      # 创建提交文件
           ├── run_merge_submission_pickles.py      # 合并提交文件
           ├── utils.py                             # 脚本工具
           ├── 📂 builders/             # 构建器
              ├── observation_builder.py           # 观测构建器
              ├── planner_builder.py               # 规划器构建器
              ├── simulation_builder.py            # 仿真构建器
              └── worker_pool_builder.py           # 工作池构建器
           └── 📂 config/              # Hydra 配置文件
               ├── 📂 common/
                  ├── default_common.yaml
                  ├── default_evaluation.yaml
                  ├── 📂 agent/        # Agent 配置 (7种)
                  ├── 📂 train_test_split/  # 数据集划分配置
                  └── 📂 worker/       # 并行 Worker 配置
               ├── 📂 training/         # 训练配置
               ├── 📂 metric_caching/   # 指标缓存配置
               └── 📂 pdm_scoring/      # PDM 评分配置
        
        └── 📂 utils/                    # ---- 工具 ----
            └── 📂 multithreading/
                └── worker_ray_no_torch.py  # Ray 分布式 Worker
┌─────────────────────────────────────────────────────────────────┐
                        scripts/ (Shell)                         
              训练 / 评估 / 提交 启动脚本                          
└──────────────────────────┬──────────────────────────────────────┘
                            调用
                           
┌─────────────────────────────────────────────────────────────────┐
                  navsim/planning/script/                         
         run_training.py  |  run_pdm_score.py  |  ...            
                    (Hydra 配置驱动)                               
└──────┬──────────────┬──────────────┬───────────────┬────────────┘
                                                  
                                                  
┌────────────┐ ┌────────────┐ ┌───────────┐ ┌──────────────┐
  training/    builders/   metric_     scenario_    
                           caching/    builder/     
 Lightning    构建观测/                             
 训练模块     规划器/仿真│  指标缓存    场景构建     
└─────┬──────┘ └─────┬──────┘ └─────┬─────┘ └──────┬───────┘
                                                 
                                                 
┌─────────────────────────────────────────────────────────────────┐
                      navsim/agents/                              
  ┌──────────────────────────────────────────────────────────┐   
                abstract_agent.py (抽象基类)                    
  └──────┬──────────┬──────────────┬────────────┬────────────┘   
                                                              
                                                              
  ┌──────────┐ ┌──────────┐ ┌───────────┐ ┌──────────────┐      
  TransFuser Diffusion  Diffusion    Baseline           
             Drive v1   Drive v2     Agents             
   model                 (RL/Sel)    (CV/MLP/           
   backbone   model_v2   model_rl     Human)            
   features   backbone   model_sel                      
   loss       features   backbone                       
   callback   loss       features                       
  └──────────┘  callback   loss       └──────────────┘      
                modules/   callback                          
                  UNet1D  modules/                          
                  blocks    UNet1D                         
                  sched.    blocks                         
                  mm_lss    sched.                         
               └──────────┘    mm_lss                         
                            └───────────┘                        
└─────────────────────────────────────────────────────────────────┘
                           
                           
┌─────────────────────────────────────────────────────────────────┐
                      navsim/common/                              
         dataclasses.py  |  dataloader.py  |  enums.py           
                   (公共数据结构与加载)                             
└─────────────────────────────────────────────────────────────────┘
                           
                           
┌─────────────────────────────────────────────────────────────────┐
              navsim/planning/simulation/                         
                    PDM Planner 仿真系统                           
  ┌────────────┐ ┌──────────┐ ┌─────────┐ ┌──────────────┐      
   observation   proposal   scoring   simulation         
   观测处理      轨迹提案   轨迹评分│  运动学仿真         
  └────────────┘ └──────────┘ └─────────┘ └──────────────┘      
└─────────────────────────────────────────────────────────────────┘
                           
                           
┌─────────────────────────────────────────────────────────────────┐
                    navsim/evaluate/                              
                     pdm_score.py                                 
                   (PDM 评分指标计算)                              
└─────────────────────────────────────────────────────────────────┘

相关内容