Python影像辨識筆記(二十一):ultralytics/yolov5使用教學及注意事項

2020/10/22:
找到支援多GPU的訓練的指令
python -m torch.distributed.launch --nproc_per_node 2 train.py --batch-size 64 --data coco.yaml --cfg yolov5l.yaml --weights ''
--nproc_per_node specifies how many GPUs you would like to use. In the example above, it is 2.--batch-size is now the Total batch-size. It will be divided evenly to each GPU. In the example above, it is 64/2=32 per GPU.部署成TensorRT格式

正文:

ultralytics/yolov5是由國外一間公司用PyTorch實現的YOLOv5

特點:

  1. 能自動從Google Drive下載缺少的Weight
  2. 能在不需要OpenCV(C++)的環境下進行資料增強及Model訓練
  3. 可以直接進行mAP測試,不須上傳至CodaLab,不過測試時間大概需要25分鐘(以官方weight為例)

除此之外,更多特點可以參考官方GitHub REPO:

注意事項:

ultralytics的COCO路必須放在yolov5資料夾的平行目錄。

例如:

工作目錄:/work/yanwei.liu/yolov5
COCO目錄:/work/yanwei.liu/coco

與 ultralytics/yolov3的一些差異:

model的參數設定不再使用cfg檔案,而是改用yaml格式的檔案yolov5/data資料夾中的檔案本來是coco.data;改成了coco.yaml格式

使用方式:

請注意自己的python指令預設是python2還是python3版本,如果是python3版本可以放心使用下列指令;若不是,請使用python3指令

# 基本環境建置(get_coco2014.sh用來取得coco的資料,若不需要進行mAP測試可跳過)
git clone https://github.com/ultralytics/yolov5
bash yolov5/data/scripts/get_coco.sh
cd yolov5
pip install -U pycocotools
pip install -r requirements.txt
# 安裝對應版本的相關套件(以aiForge為例)
pip install torch==1.6.0+cu92 torchvision==0.7.0+cu92 -f
https://download.pytorch.org/whl/torch_stable.html
pip install tensorboard==1.15.0
pip install thop
# Training
# 第一次訓練的weight會被保存到runs/exp0,第二次會到runs/exp1以此類推
python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --cfg yolov5s.yaml --weights yolov5s.pt# Inference
python detect.py --weights yolov5s.pt --img 416 --conf 0.4 --source inference/images/
#除了可偵測圖片外,也能偵測影片、資料夾、webcam、即時串流、網頁上的影片python detect.py --source file.jpg # image file.mp4 # video dir/ # directory 0 # webcam 'rtsp://170.93.1.139/rtplive/XXX' # rtsp 'http://11.50.2.8/PLTV/888/2/30/1.m3u8'
# http
# mAP testing
python test.py --weights yolov5x.pt --data coco.yaml --img 672
# Visualize learning curve
from utils.general import plot_results; plot_results()

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store