数据采集

数据采集是 Sim2Real 流程的第一步。通过在模拟器中手动驾驶小车,系统会同步记录摄像头图像车辆状态控制动作,最终导出为结构化数据集供 ACT 模型训练使用。


采集的数据格式

每个时间步采集以下数据:

字段类型说明
imageRGB 图像帧模拟器前视摄像头画面
state[vel_left, vel_right]左右轮速度(当前车辆状态)
action[vel_left, vel_right]左右轮控制指令

状态维度和动作维度均为 2,分别对应左轮速度和右轮速度。


数据采集步骤

1. 启动系统

确保后端和前端均已启动(参见快速开始),在浏览器中打开 Sim 页面。

2. 控制小车

使用键盘控制小车行驶:

按键动作
W / 前进
S / 后退
A / 左转
D / 右转

3. 开始录制

点击界面上的 "开始采集" 按钮,系统进入录制模式,此时每个控制帧的图像、状态和动作均会被记录。

4. 停止录制

完成一段演示后,点击 "停止采集" 按钮。数据会自动导出到:

output/dataset/

数据集结构

导出后的数据集组织结构如下:

output/dataset/
├── episode_0/
│   ├── images/        # 每帧图像(PNG 格式)
│   ├── states.npy     # 状态序列 [N, 2]
│   └── actions.npy    # 动作序列 [N, 2]
├── episode_1/
│   └── ...
└── stats.json         # 数据集统计信息(均值、标准差)

stats.json 保存了状态和动作的归一化统计量,推理时也需要用到:

{
  "state_mean": [0.0, 0.0],
  "state_std":  [1.0, 1.0],
  "action_mean": [0.0, 0.0],
  "action_std":  [1.0, 1.0]
}

采集建议

  • 数量:建议至少采集 100 个样本(帧)才能开始训练,样本越多模型越稳定
  • 多样性:涵盖直行、左转、右转等多种驾驶场景,提升模型泛化能力
  • 一致性:每段演示应保持合理的驾驶行为,避免急停急转等极端操作

REST API(高级用法)

数据采集功能也通过 REST API 暴露,可用于自动化脚本:

方法路径说明
POST/api/episode/start开始采集
POST/api/episode/stop停止采集并导出
GET/api/episode/list列出所有 episode
DELETE/api/episode/{id}删除指定 episode

下一步

数据采集完成后,继续进行 模型训练