配置管理统一化与离线测试模式
日期: 2025-11-21
类型: 功能开发、架构优化
状态: 已完成
📋 开发内容
1. 配置管理统一化
问题
- 各脚本的配置参数不统一
- 部分脚本缺少–config参数
- 配置文件概念混淆(agent配置 vs autowzry配置)
解决方案
- 统一所有脚本支持–config参数(指向agent配置文件)
- agent配置文件包含autowzry_config字段(指向autowzry库配置)
- 所有脚本默认使用Config.default(),可通过–config覆盖
修改的脚本
- collect_from_video.py:添加–config参数
- collect_from_device.py:修正–config参数说明和实现
- label_data.py:添加–config参数
- extract_data.py:添加–config参数
- check_buffer.py:修正–config参数
- train.py:已有–config参数
- battle.py:重构–config参数逻辑
2. battle.py 离线视频模式
新增功能
- 支持离线视频测试模式(–video参数)
- 支持在线对战模式(–config参数)
- 自动模式选择(根据参数判断)
参数调整
- –interval默认值:0.1秒 → 1.0秒
- 添加–video参数(离线模式)
- 添加–max-steps参数(限制测试步数)
- –config改为可选(离线模式不需要)
实现细节
- 离线模式使用CompatibilityLayer(mode=’offline’, video_path=…)
- 在线模式使用CompatibilityLayer(mode=’online’, autowzry_config=…)
- 添加StopIteration异常处理(视频结束)
- 离线模式跳过execute_action调用
3. test_pipeline.py 完善
改进内容
- 创建固定测试配置文件(config/test_pipeline.config.yaml)
- 为所有6个步骤添加–config参数
- 添加Step 6:battle.py离线测试
6步完整流程
- 从视频收集数据
- 标记数据(动作+奖励)
- 提取数据子集
- 检查buffer数据
- 训练模型
- 测试模型(离线)
4. 脚本–output参数支持
添加–output参数的脚本
- collect_from_video.py
- collect_from_device.py
- extract_data.py
- train.py
- check_buffer.py
用途
- 支持固定文件名(便于测试)
- 默认自动生成时间戳文件名
5. 数据管理重构(之前完成)
核心改进
- 添加_get_frame_list()辅助方法
- 重构load()支持非连续帧编号
- 重构label()使用帧列表迭代
- 添加save_dataset()支持自定义帧名称
- 修改extract_data.py使用新方法
6. 项目区分说明
添加说明的位置
- config/config.py:模块说明
- environment/compatibility.py:文件头部说明
- README.md:相关项目部分
区分内容
- autowzry-agent:本项目,AI训练框架
- autowzry:图像识别库
- autowzry_lite:精简版本
📝 文档更新
1. quickstart.md
- 添加配置文件说明(区分两种配置)
- 更新所有脚本参数说明(–output、–config)
- 更新battle.py部分(离线/在线两种方式)
- 添加开发者工具部分(test_pipeline.py)
- 删除常见问题、数据格式、模型架构、下一步章节
- 精简collect_from_video示例
2. ARCHITECTURE.md
- 添加”4. 数据格式”章节
- 更新config/config.py说明(autowzry_config字段)
- 删除check_buffer.py和extract_data.py详细说明
- 删除”快速开始流程”章节
- 删除”常见问题”章节
- 删除”关键参数”章节
- 删除”更新记录”部分
- 重构”数据流”为”数据类型与流转”
3. README.md
- 在”相关项目”部分添加autowzry和autowzry_lite说明
4. 删除文件
- scripts/README_PIPELINE.md(内容整合到quickstart.md)
🔧 技术细节
配置文件层次
agent.config.yaml (autowzry-agent配置)
├── training参数
├── buffer参数
└── autowzry_config: "config/config.device.yaml"
└── config.device.yaml (autowzry库配置)
└── 设备连接信息
battle.py模式选择逻辑
if args.video:
mode = 'offline'
compat = CompatibilityLayer(mode='offline', video_path=args.video)
else:
mode = 'online'
config = Config.from_yaml(args.config) if args.config else Config.default()
compat = CompatibilityLayer(mode='online', autowzry_config=config.autowzry_config)
📊 修改统计
代码文件
- 修改:10个脚本文件
- 修改:3个核心模块文件
- 删除:1个文档文件
文档文件
配置文件
- 添加:test_pipeline.config.yaml(自动生成)
- 更新:.gitignore
✅ 测试验证
测试内容
- test_pipeline.py完整流程测试
- extract_data.py单次提取测试
- extract_data.py二次提取测试
- check_buffer.py数据验证
测试结果
🎯 成果
- 配置管理统一:所有脚本使用一致的配置方式
- 离线测试支持:battle.py可用视频测试模型
- 完整测试流程:test_pipeline.py自动化6步流程
- 文档精简优化:quickstart和ARCHITECTURE更加清晰
- 项目概念清晰:明确区分autowzry-agent和autowzry