当前位置: 首页 > 科技观察

元神钓鱼,居然有人用深度强化学习,还开源了

时间:2023-03-14 08:57:01 科技观察

,还在愁《原神》钓不到鱼?这是迟来的提瓦特钓鱼指南。在游戏圈,你可能没玩过,但你一定听说过《原神》。虽然这是一款口碑两极分化的游戏,但不得不承认《原神》是目前最火爆的游戏之一。尤其是在国外,元神可以说是一塌糊涂。就在今年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提示符(命令行界面),新建python环境并激活(推荐python3.7或以下版本):condacreate-nysfishpython=3.6condaactivateysfish下载项目代码:使用git下载,或直接下载在github网页上然后直接解压:gitclonehttps://github.com/7eu7d7/genshin_auto_fish.git依赖库安装:将命令行切换到项目所在目录:cdgenshin_auto_fish执行以下命令安装依赖:python-mpipinstall-Upippythonrequirements.py如果要使用显卡加速需要安装CUDA和cudnn。安装完成后,忽略上面的命令,使用下面的命令安装gpu版本:pipinstall-Upippythonrequirements.py--cuda[cuda版本]#比如安装了CUDA11.xpythonrequirements.py--cuda110installyolox:switchcommandline转到项目所在目录,执行以下命令安装yolox:pythonsetup.pydevelop预训练权重下载:下载预训练权重(.pth文件),下载yolox_tiny.pth并将权重文件放入项目中目录/权重。YOLOX训练工作流程:YOLOX部分使用半监督学习进行标注。训练模型在标记少量样本后,对其余样本生成伪标签,然后人工修正,不断迭代,提高准确率。样本量较小,因此采用迁移学习对COCO预训练模型进行fine-tuning。将yolox/exp/yolox_tiny_fish.py中self.data_dir的值修改为这2个文件夹解压后所在的路径。训练代码:pythonyolox_tools/train.py-fyolox/exp/yolox_tiny_fish.py-d1-b8--fp16-o-cweights/yoloxDQN训练流程:使用强化学习模型DQN训练控制权重。将两个进度的差异作为奖励,为模型提供学习方向。模型和环境之间的交互式学习。直接在元神修炼,需要很长时间。首先,你需要创建一个模拟环境,大致模拟渔力控制操作。在模拟环境中预训练模型。然后将这个模型迁移到元神,实现域间迁移。模拟环境预训练代码:pythontrain_sim.pyYuanshinGames游戏内训练:pythontrain.py以上准备好后,就可以运行钓鱼AI了。请注意,命令行窗口必须以管理员权限启动。显卡加速:pythonfishing.pyimage-fyolox/exp/yolox_tiny_fish.py-cweights/best_tiny3.pth--conf0.25--nms0.45--tsize640--devicegpuCPU运行:pythonfishing.pyimage-fyolox/exp/yolox_tiny_fish.py-cweights/best_tiny3.pth--conf0.25--nms0.45--tsize640--devicecpu运行后出现initok,按r键开始钓鱼,原神需要全屏。出于性能考虑,检测框不会实时显示,处理操作会在后台进行。更多实现细节,读者可以参考原项目。