點擊上方「AI算法與圖像處理」,選擇加"星標"或「置頂」python
重磅乾貨,第一時間送達git
來源 | 深度學習與計算機視覺github
編輯 | 磐懟懟web
YOLO系列的目標檢測模型隨着YOLOv5的引入變得愈來愈強大了。在這篇文章中,咱們將介紹如何訓練YOLOv5爲你識別本身定製的對象。算法
-
公共血細胞檢測數據集: https://public.roboflow.ai/object-detection/bccd
-
安裝YOLOv5依賴項 -
下載自定義YOLOv5對象檢測數據 -
定義YOLOv5模型配置和架構 -
訓練一個定製的YOLOv5檢測器 -
評估YOLOv5性能 -
可視化YOLOv5訓練數據 -
對測試圖像使用YOLOv5進行推斷 -
導出並保存YOLOv5權重以供未來使用
YOLOv5的新技術點
-
https://colab.research.google.com/drive/1gDZ2xcTOgR39tGGs-EZ6i3RTs16wmzZQ
安裝YOLOv5環境shell
!git clone https://github.com/ultralytics/yolov5 # clone repo!pip install -U -r yolov5/requirements.txt # install dependencies
%cd /content/yolov5
import torchfrom IPython.display import Image # for displaying imagesfrom utils.google_utils import gdrive_download # for downloading models/datasets
print('torch %s %s' % (torch.__version__, torch.cuda.get_device_properties(0) if torch.cuda.is_available() else 'CPU'))
torch 1.5.0+cu101 _CudaDeviceProperties(name='Tesla P100-PCIE-16GB', major=6, minor=0, total_memory=16280MB, multi_processor_count=56)
torch
和
cuda
。若是你嘗試在本地使用本教程,可能須要執行其餘步驟來設置YOLOv5。
下載自定義YOLOv5對象檢測數據編程
-
Roboflow: https://roboflow.ai/ -
公共血細胞數據集: https://public.roboflow.ai/object-detection/bccd
關於標記工具的說明緩存
-
https://blog.roboflow.ai/getting-started-with-labelimg-for-labeling-object-detection-data/ -
https://blog.roboflow.ai/getting-started-with-cvat/
curl -L "https://public.roboflow.ai/ds/YOUR-LINK-HERE" > roboflow.zip; unzip roboflow.zip; rm roboflow.zip
定義YOLOv5模型配置和架構微信
-
YOLOv5s -
YOLOv5m -
YOLOv5l -
YOLOv5x
custom_yolov5s.yaml
:
nc: 3depth_multiple: 0.33width_multiple: 0.50
anchors: - [10,13, 16,30, 33,23] - [30,61, 62,45, 59,119] - [116,90, 156,198, 373,326]
backbone: [[-1, 1, Focus, [64, 3]], [-1, 1, Conv, [128, 3, 2]], [-1, 3, Bottleneck, [128]], [-1, 1, Conv, [256, 3, 2]], [-1, 9, BottleneckCSP, [256]], [-1, 1, Conv, [512, 3, 2]], [-1, 9, BottleneckCSP, [512]], [-1, 1, Conv, [1024, 3, 2]], [-1, 1, SPP, [1024, [5, 9, 13]]], [-1, 6, BottleneckCSP, [1024]], ]
head: [[-1, 3, BottleneckCSP, [1024, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1, 0]], [-2, 1, nn.Upsample, [None, 2, "nearest"]], [[-1, 6], 1, Concat, [1]], [-1, 1, Conv, [512, 1, 1]], [-1, 3, BottleneckCSP, [512, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1, 0]], [-2, 1, nn.Upsample, [None, 2, "nearest"]], [[-1, 4], 1, Concat, [1]], [-1, 1, Conv, [256, 1, 1]], [-1, 3, BottleneckCSP, [256, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1, 0]],
[[], 1, Detect, [nc, anchors]], ]
訓練定製YOLOv5探測器
data.yaml
和
custom_yolov5s.yaml
文件已經準備好了,咱們庫開始訓練了!
-
img:定義輸入圖像大小 -
batch:肯定batch大小 -
epochs:定義epochs。(注:一般,3000+很常見!) -
data:設置yaml文件的路徑 -
cfg:指定咱們的模型配置 -
weights:指定權重的自定義路徑。(注意:你能夠從Ultralytics Google Drive文件夾下載權重) -
name:結果名稱 -
nosave:只保存最後的檢查點 -
cache:緩存圖像以加快訓練速度
-
https://blog.roboflow.ai/what-is-mean-average-precision-object-detection/
評估定製YOLOv5檢測器的性能網絡
可視化YOLOv5訓練數據
對測試圖像運行YOLOv5推斷
test/*jpg
移到
test-infer/
。
!python detect.py --weights weights/last_yolov5s_custom.pt --img 416 --conf 0.4 --source ../test_infer
導出並保存YOLOv5權重以供未來推斷
from google.colab import drivedrive.mount('/content/gdrive')
%cp /content/yolov5/weights/last_yolov5s_custom.pt /content/gdrive/My\ Drive
結論
下載1:動手學深度學習
在「AI算法與圖像處理」公衆號後臺回覆:動手學深度學習,即可下載547頁《動手學深度學習》電子書和源碼。該書是面向中文讀者的能運行、可討論的深度學習教科書,它將文字、公式、圖像、代碼和運行結果結合在一塊兒。本書將全面介紹深度學習從模型構造到模型訓練,以及它們在計算機視覺和天然語言處理中的應用。
我的微信(若是沒有備註不拉羣!) 請註明: 地區+學校/企業+研究方向+暱稱
本文分享自微信公衆號 - AI算法與圖像處理(AI_study)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。