机器之心编辑部
还愁在《原神》里钓不到鱼吗?这有一份迟到的提瓦特钓鱼指南。
在游戏圈,你可以没有玩过,但一定听过《原神》。
虽然这是一款口碑两极分解的游戏,但不得不承认《原神》是当前最为火热的游戏之一。
特殊是在国外,原神可以说是火的一塌糊涂。
就在今年 9 月,这款从开放公测起便屡次登顶国内外谈论热度和手游吸金榜第一的开放天下冒险游戏更新了版本,添加 / 丰富了舆图,并且上线了一款小游戏——钓鱼。游戏中多个水域都有钓鱼点,不同的位置可以钓不同的鱼。
只管是再普通不过的玩法,还是引得玩家流连。一样平常来说,钓鱼一共分三个步骤:甩杆→等待鱼儿中计→提竿。个中所涉及的事理须要一定数字图像处理与机器学习根本。模型分为鱼群定位与识别和拉杆 (和鱼博弈) 两个部分。
很多玩家都在探求钓鱼攻略,你还在愁在《原神》里钓不到鱼吗?本日我们为你送上这份迟到的提瓦特钓鱼指南。
这份钓鱼指南可以说是完备解放双手,不须要任何操作,只须要启动程序就能完成。上线短短几天,收成 700 + 星。
GitHub 地址:https://github.com/7eu7d7/genshin_auto_fish
感兴趣的小伙伴也可以去 B 站不雅观看视频,上线不到三天,超过 44 万次播放量。这满屏的弹幕,不禁让人直呼离谱。
已经有网友开始上手了,并评论道:已经在支配了,连夜下载了 anaconda。
B 站地址:https://www.bilibili.com/video/BV1964y1b7vV?spm_id_from=333.905.b_7570566964656f.3
项目先容
原神自动钓鱼 AI 由两部分模型组成:YOLOX、DQN。此外,该项目还用到了迁移学习,半监督学习来进行演习。模型也包含了一些利用 opencv 等传统数字图像处理方法实现的不可学习部分。
YOLOX 用于鱼的定位和类型的识别以及鱼竿落点的定位;DQN 用于自适应掌握钓鱼过程的点击,让力度落在最佳区域内。安装
该项目是在 python 运行环境中利用的,须要先安装 python,这里推举利用 anaconda。
配置环境:打开 anaconda prompt(命令行界面),创建新的 python 环境并激活(推举 python3.7 或以下版本):
conda create -n ysfish python=3.6conda activate ysfish
下载工程代码:利用 git 下载,或直接在 github 网页端下载后直接解压:
git clone https://github.com/7eu7d7/genshin_auto_fish.git
依赖库安装:切换命令行到本工程所在目录:
cd genshin_auto_fish
实行以下命令安装依赖:
python -m pip install -U pippython requirements.py
如果要利用显卡进行加速须要安装 CUDA 和 cudnn, 安装后忽略上面的命令用下面这条安装 gpu 版:
pip install -U pippython requirements.py --cuda [cuda 版本]# 例如安装的 CUDA11.xpython requirements.py --cuda 110
安装 yolox:切换命令行到本工程所在目录,实行以下命令安装 yolox:
python setup.py develop
预演习权重下载:下载预演习权重 (.pth 文件),yolox_tiny.pth 下载后将权重文件放在 工程目录 / weights 下。
YOLOX 演习事情流程:YOLOX 部分用半监督学习打标签。标注少量样本后演习模型天生别的样本伪标签再人工改动,不断迭代以提高精度。样本量较少以是利用迁移学习,在 COCO 预演习的模型上进行 fine-tuning。
将 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
DQN 演习事情流程:掌握力度利用强化学习模型 DQN 进行演习。两次进度的差值作为 reward 为模型供应学习方向。模型与环境间交互式学习。
直接在原神内演习耗时较长,首先你须要制作一个仿真环境,大概仿照钓鱼力度掌握操作。在仿真环境内预演习一个模型。随后将这一模型迁移至原神内,实现域间迁移。
仿真环境预演习代码:
python train_sim.py
原神游戏内演习:
python train.py
运行
以上准备就绪后,就可以运行钓鱼 AI,把稳命令行窗口一定要以管理员权限启动。
显卡加速:
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 键开始钓鱼,原神须要全屏。出于性能考虑检测框不会实时显示,处理运算后台进行。
更多实现细节,读者可参考原项目。