YOLOv8 深度解析!一文看懂,快速上手实操(附实践代码)
时间:2024-05-05 12:55:23 来源:网络cs 作者:康由 栏目:平台政策 阅读:
YOLO(You Only Look Once)是一种流行的对象检测和图像分割模型,由华盛顿大学的Joseph Redmon和Ali Farhadi开发。YOLO于2015年推出,以其高速度和高精度迅速走红。
YOLOv2于2016年发布,通过合并批处理规范化、锚盒和维度集群来改进原始模型
2018年推出的YOLOv3使用更高效的骨干网络、多个锚点和空间金字塔池进一步增强了该模型的性能
YOLOv4于2020年发布,引入了Mosaic数据增强、新的无锚检测头和新的丢失功能等创新
YOLOv5进一步提高了模型的性能,并添加了超参数优化、集成实验跟踪和自动导出到流行导出格式等新功能
YOLOv6于2022年由美团开源,目前正在该公司的许多自动配送机器人中使用
YOLOv7在COCO关键点数据集上添加了额外的任务,如姿态估计
YOLOv8是Ultralytics公司推出的YOLO的最新版本。作为一款尖端、最先进的(SOTA)车型,YOLOv8在之前版本的成功基础上,引入了新的功能和改进,以增强性能、灵活性和效率。YOLOv8支持全方位的视觉AI任务,包括检测、分割、姿态估计、跟踪和分类。这种多功能性允许用户在不同的应用程序和域中利用YOLOv8的功能
YOLOv8的新特性与可用模型
Ultralytics 并没有直接将开源库命名为 YOLOv8,而是直接使用 ultralytics 这个词,原因是 ultralytics 将这个库定位为算法框架,而非某一个特定算法,一个主要特点是可扩展性。其希望这个库不仅仅能够用于 YOLO 系列模型,而是能够支持非 YOLO 模型以及分类分割姿态估计等各类任务。总而言之,ultralytics 开源库的两个主要优点是:
融合众多当前 SOTA 技术于一体
未来将支持其他 YOLO 系列以及 YOLO 之外的更多算法
Ultralytics为YOLO模型发布了一个全新的存储库。它被构建为 用于训练对象检测、实例分割和图像分类模型的统一框架。
提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。和 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求
骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,属于对模型结构精心微调,不再是无脑一套参数应用所有模型,大幅提升了模型性能。不过这个 C2f 模块中存在 Split 等操作对特定硬件部署没有之前那么友好了
Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和检测头分离,同时也从 Anchor-Based 换成了 Anchor-Free
Loss 计算方面采用了 TaskAlignedAssigner 正样本分配策略,并引入了 Distribution Focal Loss
训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度
YOLOv8 还高效灵活地支持多种导出格式,并且该模型可以在 CPU 和 GPU 上运行。YOLOv8 模型的每个类别中有五个模型用于检测、分割和分类。YOLOv8 Nano 是最快和最小的,而 YOLOv8 Extra Large (YOLOv8x) 是其中最准确但最慢的。
如下是使用YOLOv8x做目标检测和实例分割模型的输出:
如何使用YOLOv8
Pip install the ultralytics package including all requirements in a Python>=3.7 environment with PyTorch>=1.7.
pip install ultralytics
YOLOv8可以通过yolo命令直接在命令行界面(CLI)中使用:
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
yolo可以用于各种任务和模式,并接受额外的参数,即imgsz=640。有关示例,请参阅YOLOv8 CLI文档。
YOLOv8 CLI文档:https://docs.ultralytics.com/usage/cli/
YOLOv8也可以直接在Python环境中使用,并接受与上面CLI示例中相同的参数:
from ultralytics import YOLO# Load a modelmodel = YOLO("yolov8n.yaml") # build a new model from scratchmodel = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)# Use the modelmodel.train(data="coco128.yaml", epochs=3) # train the modelmetrics = model.val() # evaluate model performance on the validation setresults = model("https://ultralytics.com/images/bus.jpg") # predict on an imagesuccess = model.export(format="onnx") # export the model to ONNX format
模型自动从最新的Ultralytics版本下载。有关更多示例,请参阅YOLOv8 Python文档。
https://docs.ultralytics.com/usage/python/
推理在笔记本电脑GTX1060 GPU上以接近105 FPS的速度运行。我们得到以下输出:(转自于 OpenCV与AI深度学习)
YOLOv8 Nano 模型在几帧中将猫混淆为狗。让我们使用 YOLOv8 Extra Large 模型对同一视频运行检测并检查输出:
yolo task=detect mode=predict model=yolov8x.pt source='input/video_3.mp4' show=True
Extra Large模型在GTX1060 GPU上的平均运行速度为 17 FPS。
实例分割的推理结果
使用YOLOv8 实例分割模型运行推理同样简单。我们只需要更改上面命令中的task和model名称。
yolo task=segment mode=predict model=yolov8x-seg.pt source='input/video_3.mp4' show=True
因为实例分割与对象检测相结合,所以这次的平均 FPS 约为 13。
分割图在输出中看起来非常干净。即使猫在最后几帧中躲在方块下,模型也能够检测并分割它。
图像分类推理结果
最后,由于YOLOv8已经提供了预训练的分类模型,让我们使用该yolov8x-cls模型对同一视频进行分类推理。这是存储库提供的最大分类模型。
yolo task=classify mode=predict model=yolov8x-cls.pt source='input/video_3.mp4' show=True
默认情况下,视频使用模型预测的前5个类进行注释。在没有任何后处理的情况下,注释直接匹配ImageNet类名。
案例
快速检测缺陷并提供重要的安全功能
计算机视觉可以取代生产线上容易出错的手动零件组装和质量检查。在车内,计算机视觉可以为重要的安全功能提供动力,如分心的驾驶员监控、检测车道偏离、识别其他车辆和行人以及读取交通信号。收集用于训练的图像和视频数据。将从车辆和生产线摄像头收集的视频和图像转换为数据,以建立您的计算机视觉模型。
© THE END
转载请联系本公众号获得授权
计算机视觉研究院学习群等你加入!
计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!
扫码关注
计算机视觉研究院
公众号ID|ComputerVisionGzq
学习群|扫码在主页获取加入方式
往期推荐
🔗
字节跳动新框架:图片中遮挡关系如何判断?新方法刷新SOTA(附源代码)
Apple团队:轻量级、通用且移动友好的网络框架(附论文下载)
多目标检测:基于YoloV4优化的多目标检测(附论文下载)
Fast YOLO:用于实时嵌入式目标检测(附论文下载)
目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)
多尺度深度特征(下):多尺度特征学习才是目标检测精髓(论文免费下载)
多尺度深度特征(上):多尺度特征学习才是目标检测精髓(干货满满,建议收藏)
ICCV2021目标检测:用图特征金字塔提升精度(附论文下载)
CVPR21小样本检测:蒸馏&上下文助力小样本检测(代码已开源)
半监督辅助目标检测:自训练+数据增强提升精度(附源码下载)
目标检测干货 | 多级特征重复使用大幅度提升检测精度(文末附论文下载)
目标检测新框架CBNet | 多Backbone网络结构用于目标检测(附源码下载)
阅读本书更多章节>>>>本文链接:https://www.kjpai.cn/zhengce/2024-05-05/165047.html,文章来源:网络cs,作者:康由,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!
上一篇:周受资,用复仇般的勤奋,坐上火箭
下一篇:返回列表