Skip to content

IrisRainbowNeko/genshin_auto_fish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
Dec 15, 2023
Feb 22, 2022
Feb 22, 2022
Sep 20, 2021
Sep 20, 2021
Aug 18, 2023
Feb 28, 2022
Sep 25, 2021
Feb 22, 2022
Aug 18, 2023
Sep 20, 2021
Sep 20, 2021
Sep 20, 2021
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022
Feb 22, 2022

Repository files navigation

Introduction

现已支持不同分辨率屏幕

原神自动钓鱼AI由YOLOX, DQN两部分模型组成。使用迁移学习,半监督学习进行训练。 模型也包含一些使用opencv等传统数字图像处理方法实现的不可学习部分。

其中YOLOX用于鱼的定位和类型的识别以及鱼竿落点的定位。DQN用于自适应控制钓鱼过程的点击,让力度落在最佳区域内。

安装使用流程

安装python运行环境(解释器),推荐使用 anaconda.

python环境配置

打开anaconda prompt(命令行界面),创建新python环境并激活:

conda create -n ysfish python=3.8
conda activate ysfish

推荐安装python3.8或以下版本。

下载工程代码

使用git下载,git安装教程:

git clone https://github.com/7eu7d7/genshin_auto_fish.git

或直接在github网页端下载后直接解压。

依赖库安装

切换命令行到本工程所在目录:

cd genshin_auto_fish

执行以下命令安装依赖:

python -m pip install -U pip
python requirements.py

如果要使用显卡进行加速需要 安装CUDA和cudnn 安装后无视上面的命令用下面这条安装gpu版:

pip install -U pip
python requirements.py --cuda [cuda版本]
#例如安装的CUDA11.x
python requirements.py --cuda 111
#或者使用代理加速
python requirements.py --cuda 111 --proxy http://127.0.0.1:1080 # use proxy to speed up

可能会有Time out之类的报错,多试几遍,github太卡。

安装yolox

切换命令行到本工程所在目录,执行以下命令安装yolox:

python setup.py develop

预训练权重下载

下载后将权重文件放在 工程目录/weights

运行钓鱼AI

原神需要以1080x1920的分辨率运行,分辨率高的屏幕可以开窗口模式。

命令行窗口一定要以管理员权限启动

显卡加速

python fishing.py image -f yolox/exp/yolox_tiny_fish.py -c weights/best_tiny3.pth --conf 0.25 --nms 0.45 --tsize 640 --device gpu

cpu运行

python fishing.py image -f yolox/exp/yolox_tiny_fish.py -c weights/best_tiny3.pth --conf 0.25 --nms 0.45 --tsize 640 --device cpu

运行后出现init ok后按r键开始钓鱼,原神需要全屏。出于性能考虑检测框不会实时显示,处理运算后台进行。

YOLOX训练工作流程

<只用来钓鱼不需要训练,直接用预训练权重就可以>

YOLOX部分因为打标签太累所以用半监督学习。标注少量样本后训练模型生成其余样本伪标签再人工修正,不断迭代提高精度。 样本量较少所以使用迁移学习,在COCO预训练的模型上进行fine-tuning.

下载数据集并解压:原神鱼群数据集, 数据集(迅雷云盘:ugha)

将yolox/exp/yolox_tiny_fish.py中的self.data_dir的值改为解压后2个文件夹所在的路径。

训练代码:

python yolox_tools/train.py -f yolox/exp/yolox_tiny_fish.py -d 1 -b 8 --fp16 -o -c weights/yolox_tiny.pth

DQN训练工作流程

控制力度使用强化学习模型DQN进行训练。两次进度的差值作为reward为模型提供学习方向。模型与环境间交互式学习。

直接在原神内训练耗时较长,太累了。首先制作一个仿真环境,大概模拟钓鱼力度控制操作。在仿真环境内预训练一个模型。 随后将这一模型迁移至原神内,实现域间迁移。

仿真环境预训练代码:

python train_sim.py

原神游戏内训练:

python train.py

About

基于深度强化学习的原神自动钓鱼AI

Resources

Stars

Watchers

Forks

Packages

No packages published