点击上方“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源创计划”,欢迎正在阅读的你也加入,一块儿分享。