人工智能
解析YOLOv8:Ultralytics的病毒式计算机视觉杰作

直到现在,使用计算机视觉模型在图像中进行物体检测由于处理时间的原因,存在几个秒的延迟,这阻碍了其在自动驾驶等领域的实际应用。然而,Ultralytics发布的YOLOv8计算机视觉模型打破了这种延迟。新的模型可以实时检测物体,具有无与伦比的准确性和速度,使其在计算机视觉领域广受欢迎。
本文探讨YOLOv8、其功能以及如何通过其开源Github仓库对其进行微调和创建自己的模型。
YOLOv8解释
YOLO(You Only Live Once)是一种流行的计算机视觉模型,能够检测和分割图像中的物体。该模型已经历了多次更新,YOLOv8标志着其第8个版本。
目前,YOLOv8在前几版本的基础上引入了强大的新功能和改进,实现了图像和视频数据的实时物体检测,具有增强的准确性和精度。
从v1到v8:简要历史
Yolov1: 2015年发布的第一个YOLO版本是一种单阶段物体检测模型。其特点包括模型读取整个图像以预测每个边界框,在一次评估中。
Yolov2: 2016年发布的下一个版本,在PASCAL VOC和COCO等基准测试中表现出色,运行速度快(67-40 FPS)。它还可以准确检测超过9000个物体类别,即使具有有限的特定检测数据。
Yolov3: 2018年发布的Yolov3引入了新的特性,如更有效的骨干网络、多个锚点和空间金字塔池化用于多尺度特征提取。
Yolov4: 2020年发布的Yolov4引入了新的Mosaic数据增强技术,提供了改进的训练能力。
Yolov5: 2021年发布的Yolov5添加了强大的新功能,包括超参数优化和集成实验跟踪。
Yolov6: 2022年发布的Yolov6将模型开源,以促进社区驱动的开发。引入了新的特性,如新的自我蒸馏策略和锚点辅助训练(AAT)策略。
Yolov7: 同年(2022年)发布的Yolov7在速度和准确性方面改进了现有模型,并且是当时发布的最快的物体检测模型。
什么使YOLOv8脱颖而出?

YOLOv8的无与伦比的准确性和高速使其在计算机视觉模型中脱颖而出。这是一个值得注意的成就,因为物体现在可以在实时中被检测,而不会有延迟,就像在以前的版本中一样。
但除此之外,YOLOv8还具有强大的功能,包括:
- 可定制的架构: YOLOv8提供了一个灵活的架构,开发人员可以根据其特定需求进行定制。
- 自适应训练: YOLOv8的新自适应训练能力,如训练期间的损失函数平衡和技术,提高了学习率。例如,Adam,促进了更好的准确性、更快的收敛和整体更好的模型性能。
- 高级图像分析: 通过新的语义分割和类别预测能力,模型可以检测活动、颜色、纹理,甚至物体之间的关系,除了其核心的物体检测功能。
- 数据增强: 新的数据增强技术有助于解决图像变异的方面,例如低分辨率、遮挡等,在现实世界的物体检测场景中,条件并不理想。
- 骨干支持: YOLOv8提供了对多个骨干的支持,包括CSPDarknet(默认骨干)、EfficientNet(轻量级骨干)和ResNet(经典骨干),用户可以从中选择。
用户甚至可以通过用其他与YOLOv8的输入和输出维度兼容的CNN架构替换CSPDarknet53来定制骨干。
训练和微调YOLOv8
YOLOv8模型可以被微调以适应某些用例,也可以从头开始训练以创建一个专用模型。有关训练程序的更多详细信息可以在官方文档中找到。
让我们探索如何执行这两种操作。
使用自定义数据集微调YOLOV8
微调操作加载一个预先存在的模型,并使用其默认权重作为训练的起点。直观地说,模型记住了所有以前的知识,微调操作通过调整权重添加新的信息。
YOLOv8模型可以使用Python代码或通过命令行界面(CLI)进行微调。
1. 使用Python微调YOLOv8模型
首先,将Ultralytics包导入代码。然后,使用以下代码加载要训练的自定义模型:
首先,从官方发行版安装Ultralytics库。
| # 从PyPI安装ultralytics包 pip install ultralytics |
接下来,在Python文件中执行以下代码:
| from ultralytics import YOLO
# 加载模型 # 在MS COCO数据集上训练模型 |
默认情况下,代码将使用COCO数据集训练模型100个epoch。然而,您也可以配置这些设置以设置大小、epoch等,在YAML文件中。
一旦您使用自己的设置和数据路径训练模型,请监视进度,测试和调整模型,并不断重新训练,直到达到所需的结果。
2. 使用CLI微调YOLOv8模型
要使用CLI训练模型,请在命令行中运行以下脚本:
| yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640 |
CLI命令加载预训练的`yolov8n.pt`模型,并在`coco8.yaml`文件中定义的数据集上进一步训练它。
使用YOLOv8创建自己的模型
基本上有两种方法可以使用YOLO框架创建自定义模型:
- 从头开始训练: 这种方法允许您使用预定义的YOLOv8架构,但不会使用任何预训练权重。训练将从头开始。
- 自定义架构: 您可以调整默认的YOLO架构,并从头开始训练新的结构。
这两种方法的实现保持相同。要从头开始训练YOLO模型,请运行以下Python代码:
| from ultralytics import YOLO
# 加载模型 # 训练模型 |
注意,这次我们加载了一个`.yaml`文件,而不是`.pt`文件。YAML文件包含模型的架构信息,没有加载任何权重。训练命令将从头开始训练这个模型。
要训练自定义架构,您必须在一个`.yaml`文件中定义自定义结构,类似于上面的`yolov8n.yaml`。然后,您可以加载此文件并使用上述相同的代码训练模型。
要了解更多关于使用AI进行物体检测的信息,并随时了解最新的AI趋势,请访问unite.ai。

