最新版穿越火線遊戲識別教程(人工智慧yolov5)
一、前言
1.程式碼在我的資源裡下載。 程式碼連結:http://mbd.pub/o/bread/YpyXmZhs
2.本文不會講解關於yolov5的理論問題,只是教大家實操,這篇文章可以幫助大家學會yolov5的訓練與識別,本文使用穿越火線(cf)為例。
二、影片識別
我們先看效果。
後續連結
yolov5後續(參考v3) (mianbaoduo.com)
三、版本和配置環境
matplotlib>=3.2.2 numpy>=1.18.5 opencv-python>=4.1.2 Pillow>=7.1.2 PyYAML>=5.3.1 requests>=2.23.0 scipy>=1.4.1 torch>=1.7.0 torchvision>=0.8.1 tqdm>=4.41.0
thop # FLOPs computation
四、準備工作 1.yolov5 模板下載 第一步:將整個程式碼從github上下載下來,
網址:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
也可以直接到GitHub上搜yolov5
然後點code(綠色) 最後點下面的Download ZIP (最好不要下到C盤,如果C盤夠用也沒關係) 2.安裝所需庫 主要是安裝版本與配置宣告中所需在庫。 matplotlib>=3.2.2
numpy>=1.18.5
opencv-python>=4.1.2
Pillow
PyYAML>=5.3.1
scipy>=1.4.1
torch>=1.7.0
torchvision>=0.8.1
tqdm>=4.41.0
tensorboard>=2.4.1
seaborn>=0.11.0
pandas
pycocotools>=2.0 # COCO mAP
albumentations>=1.0.2
(1)安裝pytorch(建議安裝gpu版本cpu版本太慢)
這些庫中可能就pytorch比較難安裝,其他庫用pip install 基本能實現。
可直接在Anaconda Prompt裡輸入:
pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 torchaudio===0.7.0 -f http://download.pytorch.org/whl/torch_stable.html
3.執行檢測
下載完yolov5後,執行detect,可以幫助我們檢查上面的環境是不是安裝成功。
如果執行不報錯,我們會在runs//detect//exp 資料夾下看到兩張已經預測出的照片。
如果報錯,問題也不大,看就是安裝的環境版本比較低或者沒安裝,我們稍微除錯一下就OK了。
五、資料集
我們先要建立幾個資料夾用來存放資料和模型。
在yolov5-master如下圖所示資料夾
1.製作標籤 這裡我是以穿越火線為例,提供100個已經標記好的資料(放在文末)。你也可以自己標記,一百張效果不是很好,可以多標記幾張。
(1)安裝labelme
在Anaconda Prompt裡pip install labelme
(2)使用labelme
在Anaconda Prompt裡輸入labelme,會彈出一個視窗。
然後開啟圖片所在的資料夾
點選rectangle,標記想要識別的東西。
我們這裡用了兩個標籤(保衛者:'Global Risk' 、潛伏者: 'Black List')
標記完後儲存到一個新的資料夾下,儲存的檔案格式是.json
2.轉格式(json轉txt) 要修改程式碼中標籤名稱,存放json檔案的絕對路徑和儲存txt檔案的絕對路徑。
我們將生成的txt放在my_dates//labels//train中
將原來的圖片放在my_dates//images//train中
六、配置檔案
1.mydata.yaml
copy一下coco128.yaml檔案到my_dates下並改名為mydata
然後修改裡面的引數:
(1)先將path註釋掉(別忘記註釋) ,然後將train和val改為存放訓練集圖片的位置
train: my_dates/images/train val: my_dates/images/train (2)然後將nc 改為標籤個數(我們這裡是2),names裡面改為我們的標籤名。
別忘了註釋path
2.mydata_1.yaml
copy一下yolov5s.yaml檔案到my_dates下並改名為mydata_1。(yolov5s效果最差但速度最快我們可以根據自己的情況選擇模型)
然後修改裡面的引數:
這裡只需要將第四行的nc改為2(標籤個數) 。
七、訓練模型
我們要對train.py檔案進行修改。
1.為了防止編碼出錯,with open後面要加上encoding='utf-8',要改好幾處,可以用ctrl+F查詢with open。
2.我們還要改多處default的值,在程式碼的480行左右。(改的全是default的值)。
一共要修改六處,最後一處稍微靠下一點。
第四處如果電腦配置好的話可以不用修改。
最後執行:
時間有點長(一小時左右)!!!!
如果報錯根據實際情況修改一下就ok
結果會放在下面路徑下
八、測試影片 我們只需修改detect.py資料夾下的權重路徑和測試路徑。(210行左右)
只需要將需要預測的影片或圖片放在下面資料夾下,
然後執行detect.py就ok了!!!!!!
結果放在 (每次執行都會生成一個新的exp,所以我這是exp7)
九、總結 我們本次只是識別穿越火線中的人物,還沒有實現自動瞄準,我只用了一百張圖片進行預測,預測效果不是很好,你可以增加些圖片進行訓練。
後期還會更新!!!!!!!!!!!!!!!!!!!