在自定义的数据集上训练YOLOv5详细教程分享
点击上方“AI算法与图像处理”,选择加"星标"或“置顶”
重磅干货,第一时间送达
来源 | 深度学习与计算机视觉
编辑 | 磐怼怼
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环境
!git clone https://github.com/ultralytics/yolov5 # clone repo
!pip install -U -r yolov5/requirements.txt # install dependencies
%cd /content/yolov5
import torch
from IPython.display import Image # for displaying images
from 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: 3
depth_multiple: 0.33
width_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 drive
drive.mount('/content/gdrive')
%cp /content/yolov5/weights/last_yolov5s_custom.pt /content/gdrive/My\ Drive
结论
下载1:动手学深度学习
在「AI算法与图像处理」公众号后台回复:动手学深度学习,即可下载547页《动手学深度学习》电子书和源码。该书是面向中文读者的能运行、可讨论的深度学习教科书,它将文字、公式、图像、代码和运行结果结合在一起。本书将全面介绍深度学习从模型构造到模型训练,以及它们在计算机视觉和自然语言处理中的应用。
个人微信(如果没有备注不拉群!) 请注明:地区+学校/企业+研究方向+昵称
评论