autowzry-agent

2025-11-14 数据架构重构

时间: 2025-11-14 下午 主题: 数据收集架构重构和问题修复

核心改进:逐帧标注架构实现

新增模块

  1. data/raw_frame_collector.py - 纯帧收集器(视频离线版本)
    • 只保存原始图片 + 时间戳
    • 不做任何推断、计算、检测
    • 单帧失败不影响其他帧
    • 支持跳帧和压缩选项
  2. data/online_frame_collector.py - 在线实时收集器
    • 从设备实时截图
    • 支持Ctrl+C优雅退出
    • 支持时间/帧数双重限制
    • 与视频版本相同的HDF5格式
  3. data/per_frame_annotator.py - 逐帧标注器
    • 离线标注action/reward/done等字段
    • 每帧单独处理,某帧失败不影响其他帧
    • 某字段失败不影响其他字段
    • 支持增量标注和覆盖标注
  4. data/flexible_frame_loader.py - 灵活加载器
    • 自动检测每帧可用字段
    • 缺失字段可以填充默认值或跳过
    • 提供统计分析和兼容性检查
    • 支持导出为传统格式

设计理念

数据格式特性

frame_000000/
├── image (必须)
├── timestamp (必须)
├── action (可选)
├── reward (可选)
├── is_dead (可选)
└── done (可选)

测试结果

问题修复

Windows兼容性修复

compatibility.py 核心问题修复

  1. 导入错误 (line 27-35)
    • 错误:从image.py示例文件导入
    • 修复:直接从autowzry库导入,失败则使用本地fallback
  2. 参数类型错误 (line 64)
    • 错误:Settings.Config()期望字符串路径,传入了字典
    • 修复:参数类型从Dict改为str
  3. 设备连接管理 (line 122-165)
    • 添加:周期性检查设备连接状态(默认30s)
    • 添加:两级重试机制(连接设备 → 重启重连设备)
    • 避免:每次操作都检查(浪费时间)

autowzry库坐标参数修复

collect_spectate.py 动作编码修复

文档更新

  1. quickstart.md
    • 更新为新的三步流程(收集 → 标注 → 加载)
    • 添加视频/在线两种模式说明
    • 移除过时的collect_spectate.py说明
  2. docs/data_format.md
    • 完全重写,说明两种格式
    • 逐帧格式为推荐方式
    • 传统格式用于向后兼容
    • 详细的字段说明和使用示例
  3. docs/per_frame_annotation_design.md
    • 详细的架构设计文档
    • 代码示例和使用场景
    • 优势分析
  4. docs/data_collection_refactor.md
    • 整体重构方案
    • 实施建议
  5. docs/compatibility_fix_log.md
    • 记录三个关键修复
  6. docs/BUGFIX_collect_spectate_actions.md
    • 动作编码格式修复

待完成任务

  1. 创建FlexibleReplayBuffer - 适配新逐帧格式的训练数据加载器
  2. 更新scripts脚本 - 适配新的数据流程
  3. 在线收集测试 - 需要设备连接后测试
  4. 训练流程验证 - 使用新格式数据训练