本文介绍用飞桨PaddleDetection框架零编码实现《明日方舟》每日轮换任务检测。先下载安装该框架,建议用AIStudio避免本地安装问题。接着准备数据,替换数据集、修改配置文件,再用GPU训练模型,最后评估效果,检测出任务位置后可结合脚本工具完成任务。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

零编码在手游《明日方舟》中实现目标检测
一、前言
之前分享过使用飞桨强化学习框架PARL玩游戏《明日方舟》。有群友问:“我用OCR检测游戏场景中的文字,然后加上NLP也能实现这个效果!!!”。
的确,在玩游戏这个应用场景下,多种人工智能方法都有可能达到目标。
本文要分享的方法是:采用飞桨PaddleDetection框架,零编码实现。
二、目标定义
一般来说,我们用人工智能,就是想让它帮我们玩游戏。比如我这种上班族,根本没有时间玩。
具体到上图中的目标:《明日方舟》游戏任务页,每日都会更新新的任务。我们当然可以把截屏传递给强化学习算法,让算法学习应该点击哪个任务,最终通过adbutil发出指令来完成任务。
但是有没有比强化学习更巧妙的方法呢?
就让我们一起来取巧吧!!!
三、PaddleDetection实现《明日方舟》每日轮换任务检测
本文分享一种无编码的方法实现《明日方舟》每日轮换任务的目标检测。检测出每日任务的位置后,我们可以直接用App脚本工具完成该任务,实现起来非常简单。
下载PaddleDetection
# 从国内Mirror下载PaddleDetection%cd ~ !git clone https://gitee.com/paddlepaddle/PaddleDetection
安装PaddleDetection
%cd ~/PaddleDetection/!python setup.py install !pip install -r requirements.txt
检查PaddleDetection是否安装成功
%cd ~/PaddleDetection/!python ppdet/modeling/tests/test_architectures.py
注意:最简单的方法是用AIStudio,因为本机安装(GPU)可能会遇到以下问题:
- 使用Win10+conda环境,清华源镜像可能会莫名其妙下载失败。
- 使用pip安装,有几个依赖关系需要自行解决,需要你对pip工具有一定熟悉程度才行。
- 如果"家境贫寒",需要调整batch_size,否则可能报GPU内存大小不够。而初学者找不到参数在哪里改。
AIStudio的使用步骤执行本文后面的“Code部分”即可。
四、数据准备
- 上传制作好的voc格式的标注数据集到 ~/work下(我已经制作好了,可以直接用)
- 解压~/work/voc.zip,删除原voc文件夹并替换它(PaddleDetection/dataset/voc)
- 拷贝PaddleDetection/configs/yolov3目录下的yolov3_mobilenet_v1_270e_voc.yml文件,复制为arknight_voc.yml
- 修改arknight_voc.yml文件中配置项../dataset/voc.yml为 ../dataset/arknight_voc.yml;修改配置项weights: output/arknight_voc/model_final
- 在PaddleDetection/configs/datasets目录中,复制配置 voc.yml 为 arknight_voc.yml,匹配上一条的改动
- 修改arknight_voc.yml文件中配置map_type为integral;修改配置num_classes: 9; 训练文件名修改为train.txt;测试文件名修改为valid.txt,匹配数据集对应的目录
五、模型训练
开启AIStudio的GPU版本,并允许下面代码,我加了eval参数,你可以看到mAP数值的变化,不知道mAP是啥的同学请百度。
%env PYTHONPATH=/home/aistudio/PaddleDetection %cd /home/aistudio/PaddleDetection/!export CUDA_VISIBLE_DEVICES=0!python -u tools/train.py -c configs/yolov3/arknight_voc.yml --eval
经过大约10多分钟的训练,我们可以获得训练模型
六、评估效果
- 上传测试图片文件1621734815.679468-1024x576-1.jpg到PaddleDetection/demo目录下
- 执行下面的预测命令,去infer_output目录查看结果
!python tools/infer.py -c configs/yolov3/arknight_voc.yml --infer_img=demo/1621734815.679468-1024x576-1.jpg --output_dir=infer_output/ -o weights=output/arknight_voc/model_final
效果图
七、总结
- 人工标注voc数据可以用labelImg工具,在Mac和Win都可以安装此软件。
- num_classes参数表示目标的总的分类数目。
- 本文采用yolov3算法,backbone采用了mobilenet_v1,使用了预训练集。所以你可以看到,我才标注了十几张图片,就可以非常准确的识别到目标了。
- map_type是一个很容易被忽略的参数,这里我把它设置为integral。目前并没有找到关于这个参数的官方的说明文档。大家依葫芦画瓢设置呗。
- 飞桨升级到2.x版本后,PaddleDetection改动比较大,我之前做过一个可乐瓶检测的项目,比现在麻烦一些,建议大家用2.x以后的PaddleDetection版本。
- 实测用CPU训练是非常慢的,请一定要用GPU版本,百度AIStudio每日赠送的算力完全够用。
附录:可在AIStudio上运行的代码如下:
# 下载PaddleDetection%cd ~ !git clone https://gitee.com/paddlepaddle/PaddleDetection
# 安装%cd ~/PaddleDetection/ !python setup.py install !pip install -r requirements.txt
%cd ~/PaddleDetection/ !python ppdet/modeling/tests/test_architectures.py
- 上传制作好的voc格式的明日方舟每日轮换数据集到 ~/work下
- 备份 ~/PaddleDetection/dataset/voc 目录
- 解压~/work/voc.zip,删除原voc文件夹并替换它
- 拷贝yolov3_mobilenet_v1_270e_voc.yml,重命名为arknight_voc.yml
- 修改配置项../dataset/voc.yml为 ../dataset/arknight_voc.yml;修改配置项weights: output/arknight/model_final
- cd /home/aistudio/PaddleDetection/configs/datasets,复制配置cp voc.yml arknight_voc.yml
- 修改配置map_type为integral;修改配置num_classes: 9; 训练文件名修改为train.txt;测试文件名修改为valid.txt
%env PYTHONPATH=/home/aistudio/PaddleDetection %cd /home/aistudio/PaddleDetection/ !export CUDA_VISIBLE_DEVICES=0!python -u tools/train.py -c configs/yolov3/arknight_voc.yml --eval
- 上传测试图片文件1621734815.679468-1024x576-1.jpg到demo目录
- 执行下面的预测命令,去infer_output目录查看结果
!python tools/infer.py -c configs/yolov3/arknight_voc.yml --infer_img=demo/1621734815.679468-1024x576-1.jpg --output_dir=infer_output/ -o weights=output/arknight_voc/model_final











