在原神里钓鱼,有人竟然用上了深度强化学习,还把它开源了
点击上方“AI遇见机器学习”,选择“星标”公众号
重磅干货,第一时间送达
来自:机器之心
还愁在《原神》里钓不到鱼吗?这有一份迟到的提瓦特钓鱼指南。
在游戏圈,你可以没有玩过,但一定听过《原神》。
虽然这是一款口碑两极分化的游戏,但不得不承认《原神》是当前最为火热的游戏之一。
特别是在国外,原神可以说是火的一塌糊涂。
就在今年 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.6
conda activate ysfish
下载工程代码:使用 git 下载,或直接在 github 网页端下载后直接解压:
git clone https://github.com/7eu7d7/genshin_auto_fish.git
依赖库安装:切换命令行到本工程所在目录:
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 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 键开始钓鱼,原神需要全屏。出于性能考虑检测框不会实时显示,处理运算后台进行。
更多实现细节,读者可参考原项目。
欢迎关注我们,看通俗干货!
在原神里钓鱼,有人竟然用上了深度强化学习,还把它开源了相关推荐
- 使用AI在原神里自动钓鱼,扫描Git仓库泄露的密码 【Github热榜周刊第三期】
大家好,这里是的Github精彩项目分享周刊,我是每周都在搬砖的蛮三刀酱. 我会从Github热门趋势榜里选出 高质量.有趣,牛B 的开源项目进行分享. 榜单取自实时Github Trending排行 ...
- DeepMind 综述深度强化学习:智能体和人类相似度竟然如此高!
来源:AI科技评论 近年来,深度强化学习(Deep reinforcement learning)方法在人工智能方面取得了瞩目的成就,从 Atari 游戏.到围棋.再到无限制扑克等领域,AI 的表现都 ...
- 《ARPG游戏深度强化学习 》序贯决策问题、完成ARPG世界里的游戏代码实践
序贯决策问题 图示: 马尔科夫决策过程 序贯决策,主要的方法是:马尔科夫决策过程. 一个马尔可夫过程叫:MDP. 一个MDP由一个五元组构成:S A P R r S 是所有状态的集合 A 是所有动作的 ...
- 零基础机器学习做游戏辅助第十三课--原神自动钓鱼(三)labelimg的使用
一.什么是labelimg labelimg是一款开源的图像标注工具,标签可用于分类和目标检测,它是用python写的,并使用Qt作为其图形界面,简单好用(虽然是英文版的).其注释以 PASCAL V ...
- 服务器销售要会的知识,原神:新手上路的六大知识点,一文看懂服务器选择,氪金建议...
最近,原神全平台公测之后,小编看到很多人都在纠结自己的首抽,不过昨天给大家讲清楚了怎样刷首抽以及首抽角色选择之后,今天我觉得有必要带大家汇总一下新手进入游戏前需要先了解的几个知识点. 平台选择 因为原 ...
- 用计算机弹奏lemon乐谱,原神乐谱lemon怎么弹 lemon乐谱弹奏方法教学
很多老二次元都想在原神里弹奏<lemon>,但是不太清楚这首曲子的演奏方法.今天小编就带来了lemon的乐谱及弹奏方法教学,有兴趣的小伙伴不要错过了哦~ <原神>乐谱lemon ...
- npc寻路问题 c++_《原神》游戏中最懒的NPC出现了,她要玩家找一朵甜甜花
哈罗大家好,我是盟盟,本期和大家聊聊原神的话题. 从公子到钟离再到阿贝多,原神更新的角色确实越来越鸡肋了,尤其是连续两个岩属性的角色,让不少火C和水C的玩家很头疼,因为真的不好配阵容,只能组出来一个岩 ...
- 《原神》——开放世界二次元游戏的一些见解和建议
一.原神在海外的布局 原神商业化的成功绝对离不开其海外的布局,截止目前的数据来看,原神在海外的市场带来的商业化价值已经和国内相近甚至更高.原神不仅在多国拿到付费榜榜首的好成绩,并且在12月1日,谷歌公 ...
- 在Linux系统(CentOS 8.2)腾讯云服务器下部署原神云崽机器人(Yunzai-Bot)【保姆入门级】
在决定记录这篇文章之前,我从几天前开始接触云服务器到一步步部署完成,确实是从无到有,一点点理解一点点实践.实践真的非常重要!!!因为肯定比你看书看教程视频强太多太多.这篇文章仅仅只是做一个我部署成功的 ...
最新文章
- 电子邮件成企业主动营销的首选工具
- P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
- TCP穿透NAT的C++版
- 无法显示论坛的登陆验证码
- 【计算机网络】电路交换网络中,每条电路独占其经过的物理链路?
- Python解决列表字符不区分大小写问题
- Java教程:Java break语句:跳出循环
- php socket 小程序,实例详解微信小程序如何使用Socket
- 华为发布全容器化 5G 核心网;余承东评小米 MIX Aphla 手机无实用价值;PHP 新版本更新 | 极客头条...
- python dataframe行数_python – 如何在DataFrame中增加groupby中的行数
- [数据仓库]基础理论笔记
- 尚硅谷李玉婷老师mysql课程--数据库和SQL概述
- 二叉树的学习:前中后序遍历方法
- pthread 编程
- hexo博客可以在百度谷歌搜索到
- 李白打酒递归java_李白打酒递归
- c语言中简易公交一卡通系统的实现
- Java Socket正确读取数据姿势
- stm32 memcpy效率
- 初级网站建设--入门篇