如何在自定义数据集上训练YOLOv5?
YOLO系列的目标检测模型随着YOLOv5的引入变得越来越强大了。在这篇文章中,我们将介绍如何训练YOLOv5为你识别自己定制的对象。
YOLO系列的目标检测模型随着YOLOv5的引入变得越来越强大了。在这篇文章中,我们将介绍如何训练YOLOv5为你识别自己定制的对象。
本文我们使用公共血细胞检测数据集,你可以自己导出,也可以在自己自定义数据上使用本教程。公共血细胞检测数据集:https://public.roboflow.ai/object-detection/bccd为了训练检测器,我们采取以下步骤:安装YOLOv5依赖项下载自定义YOLOv5对象检测数据定义YOLOv5模型配置和架构训练一个定制的YOLOv5检测器评估YOLOv5性能可视化YOLOv5训练数据对测试图像使用YOLOv5进行推断导出并保存YOLOv5权重以供将来使用YOLOv5的新技术点就在两个月前,我们对googlebrain引入EfficientDet感到非常兴奋,并写了一些关于EfficientDet的博客文章。我们认为这个模型可能会超越YOLO家族在实时目标探测领域的突出地位,但事实证明我们错了。三周内,YOLOv4在Darknet框架下发布,我们还写了很多关于YOLOv4技术解析的文章。在写这些文章的几个小时之前,YOLOv5发布了,我们发现它非常清晰明了。YOLOv5是在Ultralytics-Pythorch框架中编写的,使用起来非常直观,推理速度非常快。事实上,我们和许多人经常将YOLOv3和YOLOv4 Darknet权重转换为Ultralytics PyTorch权重,以便使用更轻的库来更快地进行推理。YOLOv5比YOLOv4表现更好吗?我们很快会向你介绍,在此之前你需要已经对YOLOv5和YOLOv4有了初步的了解。
YOLOv5与EfficientDet的性能对比YOLOv4显然没有在YOLOv5存储库中进行评估,也就是说,YOLOv5更易于使用,而且它在我们最初运行的定制数据上表现非常出色。我们建议你在 YOLOv5 Colab Notebook 中同时进行接下来的操作。https://colab.research.google.com/drive/1gDZ2xcTOgR39tGGs-EZ6i3RTs16wmzZQ安装YOLOv5环境首先我们克隆YOLOv5存储库并安装依赖项,这会设置我们的编程环境,准备好运行对象检测训练和推理命令。!git clone https://github.com/ultralytics/yolov5 # clone repo!pip install -U -r yolov5/requirements.txt # install dependencies
%cd /content/yolov5
然后,我们可以看看谷歌Colab免费提供给我们的训练环境。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'))你会从谷歌Colab收到一个 Tesla P100 GPU。以下是我收到的:torch 1.5.0+cu101 _CudaDeviceProperties(name='Tesla P100-PCIE-16GB', major=6, minor=0, total_memory=16280MB, multi_processor_count=56)GPU可以让我们加快训练时间,Colab预装了torch和cuda。如果你尝试在本地使用本教程,可能需要执行其他步骤来设置YOLOv5。下载自定义YOLOv5对象检测数据在本教程中,我们将从Roboflow下载YOLOv5格式的自定义对象检测数据。在本教程中,我们使用公共血细胞检测数据集训练YOLOv5检测血流中的细胞,你可以使用公共血细胞数据集或上传你自己的数据集。Roboflow:https://roboflow.ai/公共血细胞数据集:https://public.roboflow.ai/object-detection/bccd关于标记工具的说明如果你有未标记的图像,则首先需要标记它们。对于免费的开源标签工具,我们推荐你阅读 LabelImg入门 或 CVAT注释工具入门 的教程指南。尝试标记约50幅图像再继续本教程,因为在以后提高模型的性能的过程中,你将需要添加更多标签。https://blog.roboflow.ai/getting-started-with-labelimg-for-labeling-object-detection-data/https://blog.roboflow.ai/getting-started-with-cvat/一旦你标记了数据,要将数据移动到Roboflow中,请创建一个免费帐户,然后你可以以任何格式拖动数据集:(VOC XML、COCO JSON、TensorFlow对象检测CSV等)。上传后,你可以选择预处理和增强步骤:
为BCCD示例数据集选择设置然后,单击 Generate 和 Download,你将可以选择YOLOv5 Pythorch格式了。