基于强化学习/模仿学习算法,实现原神的基于动作生成的AI。
目前处于开发阶段,开发计划见issue。 大致计划是先模仿学习,然后通过强化学习进行微调。
apps/cpp写的apps,每个cpp文件对应一个应用bb_utils.hbitblt截屏的utils,copy from cvat.ms_kb_utils.h使用interception库进行键鼠录制的utilsbitblt_test.cpp基于生产者消费者模型的bitblt截屏测试jsonl_test.cppjsonl文件的读写测试ms_kb_recorder.cpp键盘+鼠标的录制测试ms_kb_test.cpp键盘+鼠标的捕获测试yaa_recorder.cpp进行人类示教的录制程序
cmake/第三方库的recipesdetr/模型的定义,modified from act, which is also modified from detr.doc/亿点文档pics/图片validates/初期的python验证脚本,基本都没用imitate_learning.pyBC训练,目前可用act/mlpinfer.pyBC推理,目前可用act/mlpconfig.py训练和推理的配置constants.pypy脚本中共享的常量gi_env.pyGI环境的类gym.env封装policy.pyACT/MLP BC policy的定义print_dataset_stats.py打印示教数据集的normalize statsprint_hdf5.py打印重采样录制数据集的结构和维度数据shell_scripts/一些shell脚本record.ps1windows下的录制脚本vis.sh简化参数运行 visualize_hdf5.py 的脚本
utils.py数据集定义和处理的utils,以及其他一些utilsresample_record.py重采样录制到指定频率visualize_hdf5.py可视化重采样后的录制数据集
分为录制示教、训练和推理三个阶段。 目前推理还在使用pytorch,没有做任何部署和量化。
可使用notebook + colab的方式进行训练和推理: 名椎滩好感原始录制数据和使用colab进行训练notebook见这里。
工作流为:录制 -> 重采样到20Hz -> 训练 -> 推理
基于CPP。
- Windows 10
- MSVC 我也不知道需要什么版本
- CMake 3.14 单纯是凑个π,我也不知道需要什么版本
CPP的依赖库通过CMake下载,所以不需要额外的依赖。
运行时需要手动下载opencv编码视频依赖的dll,见运行时opencv的提示,有网页链接。
编译:
mkdir build
cd build
cmake ..
MSBuild.exe ALL_BUILD.vcxproj /p:Configuration=Release运行:
./bin/release/yaa_recorder.exe --help录制将会输出到:
// output_path / task_name /
// {episode_id}.mp4
// {episode_id}_alpha.mp4
// {episode_id}_mskb.jsonl
// {episode_id}_video.json| 名字 | 内容 |
|---|---|
| {episode_id}.mp4 | 主画面 |
| {episode_id}_alpha.mp4 | alpha通道 |
| {episode_id}_mskb.jsonl | 键鼠事件 |
| {episode_id}_video.json | 视频帧时间戳 |
基于Python。
环境配置与act一致。见act install。
重采样录制数据集到20Hz:
python resample_record.py --help训练:
python act_imitate_learning.py --help基于Python。
推理:
python infer.py --helpTODO,coming soon