介紹:
本項目為CF網游,人物角色識別定位模型,采用yolov5框架實現,僅供學習研究使用。
項目地址:https://github.com/jiaxian-ai/fps_game_character_detection
模型效果展示
開發思路與流程
思路
CV領域的目標檢測模型已經非常成熟,特別是yolov5系列
為什么不是用v6、v7?因為坑很多,而且效果不盡然好。
FPS游戲中,主要以擊敗敵方角色為目標,影響比賽成績最主要的因素就是玩家的槍法。
使用深度學習的模型就可以對敵方角色進行準確定位,從而幫助玩家進行瞄準。而yolov5的預訓練模型對于人物的識別已經很成熟。這時候只需要準備一定的數據樣本,就可以實現不錯效果。
流程
樣本采集
開發游戲中的截圖代碼sample_util/collecting_data.py
運行代碼,進游戲后,會監聽鍵盤。
截圖會剪裁中心區域640X640(官方預訓練模型的圖片尺寸)
按F
鍵將自動截圖
按~
鍵,將切換角色
保存圖片至sample/data/QF
目錄和sample/data/BW
目錄
盡量選擇團隊競技模式,游戲節奏會快很多,對不同的角色皮膚,不同的視角分別截圖,我大概采集了500+保衛者和500+潛伏者圖片
根據經驗,圖片樣本主要不在于多,而是覆蓋的角度、皮膚、光影等模式的分布廣
樣本標注
使用開源數據標注工具labelImg
模型訓練
下載最新的yolov5.7.0
下載預訓練模型yolov5n.pt,保存到yolov5.7.0目錄下
更改幾個文件配置,就可以進行訓練了。
修改models/yolov5n.yaml
參考coco128.yaml創建data\cf.yaml
文件
../cfdata
為樣本圖片目錄
我們只有“保衛”和“潛伏”這兩種類別
修改train.py
文件
--epochs
設置為300
,迭代300輪就會有不錯的效果
--workers
根據電腦CPU核心數配置,本地16和電腦,最多填2-4
訓練結果的模型和分析將保存在 yolov5-7.0/runs/train/exp/
目錄,bast.pt
就是訓練好的模型
體驗模型
項目地址:https://github.com/jiaxian-ai/fps_game_character_detection
git clone https://github.com/jiaxian-ai/fps_game_character_detection.git
環境配置
系統要求:windows10+GPU
python>=3.8
安裝依賴包
cd yolov5-7.0 #進入yolov5-7.0目錄
pip install -r requirements.txt
模型測試
測試模型效果,判斷是否正常運行
python detect.py
測試結果的圖片標注將保存在 yolov5-7.0/runs/detect/
目錄
在真實游戲中使用
運行predict.py文件
python predict.py
會連續截屏,并在定位到目標后,等待“鼠標右鍵”點擊,如果捕獲到右鍵,則會自動移動鼠標到目標位置