在原神里釣魚,有人竟然用上了深度強化學習,還把它開源了
還愁在《原神》里釣不到魚嗎?這有一份遲到的提瓦特釣魚指南。
在游戲圈,你可以沒有玩過,但一定聽過《原神》。
雖然這是一款口碑兩極分化的游戲,但不得不承認《原神》是當前最為火熱的游戲之一。
特別是在國外,原神可以說是火的一塌糊涂。
就在今年 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 鍵開始釣魚,原神需要全屏。出于性能考慮檢測框不會實時顯示,處理運算后臺進行。
更多實現細節,讀者可參考原項目。