Bootstrap

yolov5分割_使用Yolov5进行端到端目标检测

最近,Ultralytics推出了YOLOv5,但它的名字却引发了争议。为了了解背景,《YOLO》(你只能看一次)的前三个版本是由约瑟夫·雷蒙(Joseph Redmon)创作的。在此之后,Alexey Bochkovskiy在darknet上创建了YOLOv4,号称比之前的迭代具有更高的平均精度(AP)和更快的结果。

现在,Ultralytics已经发布了YOLOv5,具有可比的AP和比YOLOv4更快的推断时间。这就产生了许多疑问:新版本是否保证了与YOLOv4相似的准确性?无论答案是什么,这绝对是目标检测界发展速度的一个标志。

c87335c8432bd8ad5234677cc1b38edf.png

自从他们第一次移植YOLOv3以来,Ultralytics就使得使用Pytorch创建和部署模型变得非常简单,所以我很想尝试YOLOv5。事实证明,Ultralytics 进一步简化了这个过程,结果不言自明。

在本文中,我们不探讨YOLOv5这个名字是否正规,我们只使用YOLOv5创建一个检测模型,从创建数据集和注释到使用它们出色的库进行训练和推断。这篇文章主要关注YOLOv5的实现,包括:

  • 创建数据集
  • 注释图像数据
  • 创建项目结构
  • 训练YOLOv5

创建自定义数据集

使用OIDv4下载图片:

要从开放的数据集下载图像,我们首先克隆OIDv4_ToolKit并安装依赖。

git clone https://github.com/EscVM/OIDv4_ToolKit
cd OIDv4_ToolKit
pip install -r requirements.txt

我们现在可以使用这个文件夹中的main.py脚本来下载图像以及多个类的标签。

下面我正在下载板球和足球的数据来创建我们的自定义数据集。也就是说,我们将创建一个包含足球和板球的数据集,而学习任务就是检测这些球。

python3 main.py downloader --classes Cricket_ball Football --type_csv all -y --limit 500

下面的命令创建一个名为“OID”的目录,其结构如下:

00ed364dc9faae1f4aa812ae6cba4a5e.png

OID目录结构。我们将只使用这里的图像文件(.jpgs),而不使用我们将手动注释以创建自定义数据集的标签,尽管我们可以在不同项目需要时使用它们。

在继续之前,我们需要将所有图像复制到同一个文件夹中,以便从头开始标记练习。你可以选择手动完成,但这也可以快速完成通过递归glob函数:

import os
from glob import globos.system("mkdir Images")
images = glob(r'OID/**/*.jpg', recursive=True)
for img in images:
os.system(f"cp {img} Images/")

使用HyperL

;