最新版穿越火線遊戲識別教程(人工智慧yolov5)

語言: CN / TW / HK

一、前言

1.程式碼在我的資源裡下載。 程式碼連結:http://mbd.pub/o/bread/YpyXmZhs

2.本文不會講解關於yolov5的理論問題,只是教大家實操,這篇文章可以幫助大家學會yolov5的訓練與識別,本文使用穿越火線(cf)為例。

二、影片識別

我們先看效果。

0@S@%3CE3Z8KWT{39A{10C5.png

後續連結

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,可以幫助我們檢查上面的環境是不是安裝成功。

image.png

如果執行不報錯,我們會在runs//detect//exp 資料夾下看到兩張已經預測出的照片。

image.png

image.png 如果報錯,問題也不大,看就是安裝的環境版本比較低或者沒安裝,我們稍微除錯一下就OK了。

五、資料集

我們先要建立幾個資料夾用來存放資料和模型。

在yolov5-master如下圖所示資料夾

image.png 1.製作標籤 這裡我是以穿越火線為例,提供100個已經標記好的資料(放在文末)。你也可以自己標記,一百張效果不是很好,可以多標記幾張。

(1)安裝labelme

在Anaconda Prompt裡pip install labelme

(2)使用labelme

在Anaconda Prompt裡輸入labelme,會彈出一個視窗。

image.png

然後開啟圖片所在的資料夾

點選rectangle,標記想要識別的東西。

我們這裡用了兩個標籤(保衛者:'Global Risk'  、潛伏者: 'Black List')

image.png

標記完後儲存到一個新的資料夾下,儲存的檔案格式是.json

2.轉格式(json轉txt) 要修改程式碼中標籤名稱,存放json檔案的絕對路徑和儲存txt檔案的絕對路徑。

我們將生成的txt放在my_dates//labels//train中

將原來的圖片放在my_dates//images//train中

六、配置檔案

1.mydata.yaml

copy一下coco128.yaml檔案到my_dates下並改名為mydata

image.png

image.png 然後修改裡面的引數:

(1)先將path註釋掉(別忘記註釋) ,然後將train和val改為存放訓練集圖片的位置

train: my_dates/images/train val: my_dates/images/train (2)然後將nc 改為標籤個數(我們這裡是2),names裡面改為我們的標籤名。

image.png 別忘了註釋path

2.mydata_1.yaml

copy一下yolov5s.yaml檔案到my_dates下並改名為mydata_1。(yolov5s效果最差但速度最快我們可以根據自己的情況選擇模型)

image.png

image.png 然後修改裡面的引數:

這裡只需要將第四行的nc改為2(標籤個數) 。

image.png

七、訓練模型

我們要對train.py檔案進行修改。

1.為了防止編碼出錯,with open後面要加上encoding='utf-8',要改好幾處,可以用ctrl+F查詢with open。

image.png

2.我們還要改多處default的值,在程式碼的480行左右。(改的全是default的值)。

一共要修改六處,最後一處稍微靠下一點。

第四處如果電腦配置好的話可以不用修改。

image.png

image.png

最後執行:

image.png

時間有點長(一小時左右)!!!!

如果報錯根據實際情況修改一下就ok

結果會放在下面路徑下

image.png

八、測試影片 我們只需修改detect.py資料夾下的權重路徑和測試路徑。(210行左右)

image.png

只需要將需要預測的影片或圖片放在下面資料夾下,

image.png 然後執行detect.py就ok了!!!!!!

image.png 結果放在 (每次執行都會生成一個新的exp,所以我這是exp7)

image.png

九、總結 我們本次只是識別穿越火線中的人物,還沒有實現自動瞄準,我只用了一百張圖片進行預測,預測效果不是很好,你可以增加些圖片進行訓練。

後期還會更新!!!!!!!!!!!!!!!!!!!