跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 广告工具 > 江大白 | 深入浅出,YOLOv8算法使用指南

江大白 | 深入浅出,YOLOv8算法使用指南

时间:2024-05-02 19:10:43 来源:网络cs 作者:纳雷武 栏目:广告工具 阅读:

标签: 使用  指南  深入 
4.1 新的卷积

干部的第一个6x6卷积3x3卷积替代,主要的构建块发生了变化,C2f替代了C3。该模块在下图中进行了总结,其中“f”是特征数,“e”是扩展率,CBS是由Conv、BatchNorm和SiLU组成的块

在C2f中,来自Bottleneck(这是两个带有残差连接的3x3卷积的花哨名称)的所有输出都被串联在一起。而在C3中,仅使用了最后一个Bottleneck的输出。

新的YOLOv8 C2f模块

Bottleneck与YOLOv5中的相同,但第一个卷积的核大小从1x1更改为3x3。从这些信息中,我们可以看到YOLOv8开始恢复到2015年定义的ResNet块

在neck中,特征直接串联而不强制要求相同的通道维度。这减少了参数数量和张量的总体大小。

4.2 结束镶嵌增强

深度学习研究往往侧重于模型架构,但YOLOv5和YOLOv8的训练过程是它们成功的重要组成部分。

YOLOv8在在线训练期间对图像进行增强。在每个时代,模型看到了提供的图像的稍微不同的变化。

其中一种增强称为镶嵌增强。这涉及将四个图像拼接在一起,迫使模型学习在新位置、部分遮挡和不同周围像素的对象。

棋盘照片的马赛克增强

然而,经验表明,如果在整个训练过程中执行此增强,性能会下降。因此,在最后十个训练时代中关闭它是有益的。

这种变化是YOLO建模在YOLOv5存储库和YOLOv8研究中随着时间的推移所受到的慎重关注的典范。

5. YOLOv8准确性改进

YOLOv8的研究主要受到对COCO基准的经验性评估的推动。随着网络和训练例程的每个部分的微调,运行新实验以验证这些变化对COCO建模的影响。

5.1 YOLOv8 COCO准确性

COCO(上下文中的常见对象)是评估目标检测模型的行业标准基准。在COCO上比较模型时,我们看的是mAP值和推理速度的FPS测量。模型应在相似的推理速度下进行比较。

下图显示了使用Ultralytics团队收集并在YOLOv8 README中发布的数据,YOLOv8在COCO上的准确性:

YOLOv8 COCO评测

截至本文写作时,YOLOv8在COCO上的准确性在相似的推理延迟条件下是最先进的。

5.2 RF100准确性

在Roboflow,我们从Roboflow Universe中抽取了100个样本数据集,这是一个拥有超过100,000个数据集的存储库,用于评估模型对新领域的泛化能力。我们的基准由Intel的支持下开发,是为计算机视觉从业者设计的基准,旨在更好地回答问题:“这个模型在我的自定义数据集上表现如何?”

我们在我们的RF100基准上评估了YOLOv8,与YOLOv5和YOLOv7一起,下图显示了每个模型的mAP@.50的箱线图。

我们对每个模型的小版本进行了100个时代的运行,我们使用单个种子运行了一次,因此由于梯度抽签,请以谨慎的态度对待这个结果。

下图的箱线图告诉我们YOLOv8的异常值较少,而在Roboflow 100基准上的mAP总体上更好。

YOLO 相对于 RF100 的 mAP@.50

下面的条形图显示了每个RF100类别的平均mAP@.50。同样,YOLOv8胜过所有先前的模型。

YOLO 相对于 RF100 类别的平均 mAP@.50

与YOLOv5评估相比,YOLOv8模型在每个数据集上产生了类似的结果,或者显著改善了结果。

6. YOLOv8存储库和PIP包

YOLOv8代码存储库旨在成为社区使用和迭代模型的地方。由于我们知道该模型将持续改进,我们可以将初始YOLOv8模型结果作为基线,并期待随着发布新的迷你版本而进行的未来改进。

我们希望的最好结果是研究人员开始在Ultralytics存储库的基础上开发他们的网络。在YOLOv5的分支中一直在进行研究,但如果在一个地方制作模型并最终合并到主线中,将会更好。

6.1 YOLOv8存储库布局

YOLOv8模型使用与YOLOv5类似的代码,其中分类、实例分割和目标检测任务类型的支持采用相同的代码例程。

模型仍然使用相同的YOLOv5 YAML格式初始化,并且数据集格式也保持不变。

6.2 YOLOv8 CLI

Ultralytics软件包配备了一个CLI。这对许多YOLOv5用户来说是熟悉的,因为核心训练、检测和导出交互也是通过CLI完成的。

yolo task=detect mode=val model={HOME}/runs/detect/train/weights/best.pt data={dataset.location}/data.yaml

你可以在task中传递 [detect, classify, segment],在mode中传递 [train, predict, val, export],model可以是未初始化的.yaml文件,也可以是先前训练过的.pt文件。

6.3 YOLOv8 Python包

除了可用的CLI工具外,YOLOv8现在还作为一个PIP包进行分发。这使得本地开发稍显困难,但解锁了将YOLOv8融入你的Python代码的所有可能性。

from ultralytics import YOLO# 加载模型model = YOLO("yolov8n.yaml")  # 从头开始构建一个新模型model = YOLO("yolov8n.pt")  # 加载预训练模型(推荐用于训练)# 使用模型results = model.train(data="coco128.yaml", epochs=3)  # 训练模型results = model.val()  # 评估模型在验证集上的性能results = model("https://ultralytics.com/images/bus.jpg")  # 对图像进行预测success = YOLO("yolov8n.pt").export(format="onnx")  # 将模型导出为ONNX格式

7. YOLOv8注释格式

YOLOv8使用YOLOv5 PyTorch TXT注释格式,这是Darknet注释格式的修改版本

查看Roboflow Convert工具,了解如何转换数据以在新的YOLOv8模型中使用。
https://roboflow.com/formats/yolov8-pytorch-txt?ref=blog.roboflow.com

8. YOLOv8标注工具

YOLOv8的创建者和维护者Ultralytics已经与Roboflow合作,成为YOLOv8项目中建议的标注和导出工具。使用Roboflow,我们可以为YOLOv8支持的所有任务(目标检测、分类和分割)标注数据,并导出数据以便在YOLOv8 CLI或Python包中使用。

9. 开始使用YOLOv8

要开始将YOLOv8应用于我们自己的用例,请查看我们关于如何在自定义数据集上训练YOLOv8的指南。

中文版,见后续推文。

要了解其他人如何使用YOLOv8,请在Roboflow Universe上浏览其他YOLOv8模型、数据集和灵感。

对于将模型投入生产并使用主动学习策略不断更新模型的从业者,我们添加了一个路径,可以部署YOLOv8模型,将其用于我们的推理引擎,并用于数据集的标签辅助。或者,可以使用Roboflow Inference在设备上部署YOLOv8,这是一个开源推理服务器。

THE END!

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

本文链接:https://www.kjpai.cn/news/2024-05-02/164347.html,文章来源:网络cs,作者:纳雷武,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论