您当前的位置:首页 > 电脑百科 > 软件技术 > 应用软件

一文带你了解时下最新的目标检测模型——YOLOv8

时间:2023-02-02 13:47:16  来源:51CTO  作者:朱先忠
译者| 朱先忠
审校 | 孙淑娟

YOLOv8是什么?

YOLOv8是Ultralytics公司推出的基于对象检测模型的YOLO最新系列,它能够提供截至目前最先进的对象检测性能。
借助于以前的YOLO模型版本支持技术,YOLOv8模型运行得更快、更准确,同时为执行任务的训练模型提供了统一的框架,这包括:
  • 目标检测
  • 实例分割
  • 图像分类
在撰写本文时,Ultralytics的YOLOv8存储库中其实还有很多功能有待添加,这包括训练模型的整套导出功能等。此外,Ultralytics将计划在Arxiv上发布一篇相关的论文,将对YOLOv8与其他最先进的视觉模型进行比较。

YOLOv8的新功能

Ultralytics为YOLO模型发布了一个全新的存储库(https://Github.com/ultralytics/ultralytics)。该存储库被构建为用于训练对象检测、实例分割和图像分类模型的统一框架。
以下列举的是这个新版本的一些关键功能:
  • 用户友好的API(命令行+Python/ target=_blank class=infotextkey>Python)。
  • 更快、更准确。
  • 支持:
  • 目标检测,
  • 实例分割和
  • 图像分类。
  • 可扩展到所有以前的版本。
  • 新的骨干网络。
  • 新的Anchor-Free head对象检测算法。
  • 新的损失函数。
此外,YOLOv8也非常高效和灵活,它可以支持多种导出格式,而且该模型可以在CPU和GPU上运行。

YOLOv8中提供的子模型


YOLOv8模型的每个类别中共有五个模型,以便共同完成检测、分割和分类任务。其中,YOLOv8 Nano是最快和最小的模型,而YOLOv8Extra Large(YOLOv8x)是其中最准确但最慢的模型。

YOLOv8这次发行中共附带了以下预训练模型:
  • 在图像分辨率为640的COCO检测数据集上训练的对象检测检查点。
  • 在图像分辨率为640的COCO分割数据集上训练的实例分割检查点。
  • 在图像分辨率为224的Imag.NET数据集上预处理的图像分类模型。
下面,让我们来看看使用YOLOv8x进行检测和实例分割模型的输出效果,请参考下面的gif动画。

 

如何使用YOLOv8?

为了充分发挥出YOLOv8的潜力,需要从存储库以及ultralytics包中安装相应的需求。
要安装这些需求,我们首先需要克隆一下该模型的存储库,命令如下:
git clone https://github.com/ultralytics/ultralytics.git
  • 1.
接下来,安装需求配置文件:
pip install -r requirements.txt
  • 1.
在最新版本中,Ultralytics YOLOv8同时提供了完整的命令行界面(CLI)API和Python SDK,用于执行训练、验证和推理任务。
为了使用yolo命令行界面(CLI),我们需要安装ultralytics包,命令如下:
pip install ultralytics
  • 1.

如何通过命令行界面(CLI)使用YOLOv8?

安装必要的软件包后,我们可以使用yolo命令访问YOLOv8 CLI。以下给出的是使用yolo CLI运行对象检测推断的命令行代码示例:
yolo task=detect 
mode=predict 
model=yolov8n.pt 
source="image.jpg"
  • 1.
  • 2.
  • 3.
  • 4.
其中,task参数可以接受三个参数值:detect、classify和segment,分别对应于检测、分类和分段三种任务。类似地,mode参数可以有三个取值,分别是trAIn、val或predict。此外,在导出训练模型时,我们也可以将mode参数指定为export。
有关所有可能的yolo CLI标志和参数,有兴趣的读者可参考链接https://docs.ultralytics.com/config/。

如何通过Python API使用YOLOv8?

除了通过上面CLI方式使用YOLOv8外,我们还可以创建一个简单的Python文件,导入YOLO模块并执行我们选择的任务。
from ultralytics import YOLO
model = YOLO("yolov8n.pt")  # 加载一个预训练的YOLOv8n模型
model.train(data="coco128.yaml")  #训练模型
model.val()  # 评估验证集上的模型性能
model.predict(source="https://ultralytics.com/images/bus.jpg")  #对图像进行预测
model.export(format="onnx")  # 将模型导出为ONNX格式
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
例如,在上述代码中首先在COCO128数据集上训练YOLOv8 Nano模型,然后在验证集上对其进行评估,最终对样本图像进行预测。
接下来,让我们通过yolo CLI方式来使用对象检测、实例分割和图像分类模型进行推断。

目标检测的推断结果

以下命令实现使用YOLOv8 Nano模型对视频进行检测。
yolo task=detect mode=predict model=yolov8n.pt source='input/video_3.mp4' show=True
  • 1.
该推断的运行硬件环境是在笔记本电脑GTX 1060 GPU上以几乎105 FPS的速度运行的,最终我们得到以下输出结果:


使用YOLOv8 Nano模型进行检测推断
需要说明的是,YOLOv8 Nano模型在几帧内把猫和狗进行了混合。让我们使用YOLOv8 Extra Large模型对同一视频进行检测并检查输出。
yolo task=detect mode=predict model=yolov8x.pt source='input/video_3.mp4' show=True
  • 1.
注意:上面的YOLOv8 Extra Large模型在GTX 1060 GPU上以平均17 FPS的速度运行。


使用YOLOv8超大模型进行检测推断
尽管这一次的误分类略有减少,但模型仍然在一些帧中进行了错误的检测。

实例分割的推理结果

使用YOLOv8实例分割模型运行推理同样是很简单的。我们只需要在上面的命令中更改一下任务和模型名称即可,结果如下:
yolo task=segment mode=predict model=yolov8x-seg.pt source='input/video_3.mp4' show=True
  • 1.
因为实例分割与对象检测是结合在一起的,所以这一次运行时的平均FPS约为13。


使用YOLOv8超大模型进行分割推断
分割图在输出中看起来很干净。即使当猫在最后几帧隐藏在块下时,模型也能够检测并分割它。

图像分类的推理结果

最后,由于YOLOv8已经提供了预训练的分类模型,让我们使用yolov8x-cls模型对同一视频进行分类推断。这是截止目前存储库提供的最大分类模型。
yolo task=classify mode=predict model=yolov8x-cls.pt source='input/video_3.mp4' show=True
  • 1.


使用YOLOv8超大模型进行分类推断
默认情况下,视频用模型预测的前5个类进行标注。在没有任何后期处理的情况下,标注部分直接使用了ImageNet类名。

YOLOv8 vs YOLOv7 vs YOLOv6 vs YOLOv5

可以看出,YOLOv8模型似乎比之前的YOLO模型表现更好;这不仅是相比于YOLOv5模型来说的,YOLOv8也优越于YOLOv7和YOLOv6模型。


YOLOv8与其他YOLO模型性能相比。
由上图可以看出,与以640图像分辨率训练的其他YOLO模型相比,所有YOLOv8模型在参数数量相似的情况下具有更好的吞吐量。
接下来,让我们更为详细了解一下最新的YOLOv8模型与Ultralytics公司的YOLOv5模型的性能差异。下面几个表格显示了YOLOv8和YOLOv5之间的综合比较情况。

总体比较

YOLOv8和YOLOv5之间的性能比较



YOLOv8模型与YOLOv5模型性能比较表

对象检测比较

YOLOv8模型与YOLOv5模型对象检测性能比较情况见下表:


YOLOv8模型与YOLOv5模型对象检测性能比较

实例分段比较

YOLOv8模型与YOLOv5模型实例分段性能比较情况见下表:


YOLOv8与YOLOv5实例分割模型性能比较

图像分类比较



YOLOv8与YOLOv5图像分类模型情况
整体来看,其实也很明显,最新的YOLOv8模型比YOLOv5要好得多,除了一种分类模型外。

YOLOv8目标检测模型的发展

下面给出的这张图像显示了YOLO目标检测模型的时间线以及YOLOv8的演变情况。

YOLOv8目标检测模型的演变情况

YOLOv1模型

YOLO对象检测的第一个版本,即YOLOv1,由Joseph Redmon等人于2015年发布。这是第一个产生SSD和所有后续YOLO模型的单级对象检测(SSD)模型。

YOLO 9000(第2版)

YOLOv2,又称YOLO 9000,由YOLOv1的原作者约瑟夫·雷蒙提出。它改进了原来的YOLOv1模型——引入了锚盒(Anchor Box)的概念和更好的主干(即Darknet-19)。

YOLOv3

2018年,约瑟夫·雷蒙和阿里·法哈迪公布了YOLOv3模型。其实,这不是一个架构上的飞跃,算是一份技术报告,但YOLO家族还是有了很大的进步。YOLOv3模型使用Darknet-53主干、残差连接,并使用更好的预训练和图像增强技术来实现改进。

Ultralytics YOLO目标检测模型

YOLOv3之前的所有YOLO对象检测模型都使用C编程语言编写,并使用Darknet框架。但是,新手们发现很难遍历代码库并对模型进行微调。
于是,大约与YOLOv3模型发布的同时,Ultralytics发布了第一个使用PyTorch框架实现的YOLO(YOLOv3)。这个模型更为容易访问,也更容易用于转移学习领域。
发布YOLOv3模型后不久,约瑟夫·雷蒙离开了计算机视觉(Computer Vision)研究界。YOLOv4(Alexey等人)是最后一个用Darknet编写的YOLO模型。之后,又相继出现了其他许多的YOLO物体检测模型,例如缩放版YOLOv4、YOLOX、PP-YOLO、YOLOv6和YOLOv7代表了其中较为突出的一些模型。
在YOLOv3之后,Ultralytics还发布了YOLOv5,它比所有其他YOLO模型更好、更快、更易于使用。
截至目前(2023年1月),Ultralytics在Ultralytics存储库下发布了YOLOv8,这可能是迄今为止最好的YOLO模型。

 

结论

在本文中,我们探讨了YOLO模型的最新版本,即YOLOv8。其中,我们具体介绍了这款新模型的性能,以及软件包附带的命令行界面用法。除此之外,我们还对少数几个视频数据进行了推断展示。
在以后的文章中,我们还将在自定义数据集上对YOLOv8模型进行微调。
最后,如果您自己也在进行任何有关YOLOv8模型的实验,请在评论部分告诉我

译者介绍

朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。

​原文标题:Ultralytics YOLOv8: State-of-the-Art YOLO Models,作者:Sovit Rath​
 


Tags:YOLOv   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
深度学习框架解读—Yolov5/Yolov7/Halcon对比分析
作为一名机器视觉深度学习算法工程师,我从技术实现、性能、适用场景和易用性等方面来评价YOLOv5、YOLOv7和Halcon中的深度学习框架。以YOLOv5和YOLOv7进行比较,并结合Halcon的...【详细内容】
2024-01-03  Search: YOLOv  点击:(49)  评论:(0)  加入收藏
一文带你了解时下最新的目标检测模型——YOLOv8
译者| 朱先忠 审校 | 孙淑娟YOLOv8是什么?YOLOv8是Ultralytics公司推出的基于对象检测模型的YOLO最新系列,它能够提供截至目前最先进的对象检测性能。 借助于以前的YOLO模型版...【详细内容】
2023-02-02  Search: YOLOv  点击:(1076)  评论:(0)  加入收藏
YOLO算法最全综述:从YOLOv1到YOLOv5
YOLO系列是基于深度学习的回归方法,本文详细介绍了从YOLOv1至最新YOLOv5五种方法的主要思路、改进策略以及优缺点。 YOLO官网: https://github.com/pjreddie/darknet YOLO v.s...【详细内容】
2021-04-06  Search: YOLOv  点击:(1548)  评论:(0)  加入收藏
利用YOLOV3检测算法来实现人物定位与距离计算,打造全球定位系统
在我们介绍目标物体检测算法时,前期小编的文章也分享了很多目标检测算法,比如YOLO, Faster RCNN等,喜欢目标检测的小伙伴们可以参考往期的文章学习,本期的文章代码也 在往期文章...【详细内容】
2020-06-28  Search: YOLOv  点击:(970)  评论:(0)  加入收藏
▌简易百科推荐
系统优化工具,Ultimate Windows Tweaker软件体验
电脑上的Windows优化工具年年都有,每年还会翻着花样地出现新东西,都不带重复的。每个人都可以上来折腾一番Windows...从这个角度来说,Windows系统还挺“稳定”的,经得起各种用户...【详细内容】
2024-04-10  果核剥壳    Tags:系统优化   点击:(4)  评论:(0)  加入收藏
Telegram怎么不显示在线?
在Telegram中,您可以通过进入“设置” -> “隐私与安全” -> “最后在线时间”,然后选择“没有人”或者自定义特定的人群,以隐藏自己的在线状态。这样设置后,其他用户将无法看到...【详细内容】
2024-04-04  HouseRelax    Tags:Telegram   点击:(4)  评论:(0)  加入收藏
谷歌 Gmail 新规生效:为遏制钓鱼 / 欺诈情况,日群发超 5000 封邮件账号需验证
IT之家 4 月 2 日消息,谷歌为了增强对垃圾邮件和网络钓鱼攻击的管控,今天宣布正式启用新措施:对于向 Gmail 邮箱账号日群发数量超过 5000 封的用户,需要其在域名中设置 SPF / DK...【详细内容】
2024-04-02    IT之家  Tags:Gmail   点击:(13)  评论:(0)  加入收藏
钉钉AI升级多模态:能根据图片识人、翻译、创作、多轮问答
新浪科技讯 3月28日午间消息,钉钉AI助理迎来升级,上线图片理解、文档速读、工作流等产品能力,探索多模态、长文本与RPA技术在AI应用的落地。基于阿里通义千问大模型,升级后的钉...【详细内容】
2024-03-28    新浪科技  Tags:钉钉   点击:(16)  评论:(0)  加入收藏
都2024年了,谁还在用QQ聊天啊?
你还在用 QQ 吗?之所以突然这么问,是因为前些天腾讯发了份热气腾腾的财报。随手翻了翻,发现 QQ 这个老企鹅,居然还有5.54 亿多人每个月都在坚持登录。虽说和辉煌时候没法比了,但...【详细内容】
2024-03-26    差评  Tags:QQ   点击:(11)  评论:(0)  加入收藏
腾讯QQ浏览器工具权益卡上线PC端,每月最低6元
IT之家 1 月 29 日消息,腾讯 QQ 浏览器此前在手机端上线工具权益卡,现将部分权益适用范围拓展至 PC 端,每月 10 元,连续包月为 6 元。开通后用户可以在 QQ 浏览器软件内享有由腾...【详细内容】
2024-01-29    IT之家  Tags:QQ浏览器   点击:(84)  评论:(0)  加入收藏
开源工具Ventoy更新:新增对FreeBSD 14.0的支持
近日,开源装机工具Ventoy发布了1.0.97版本的更新。本次更新的主要亮点是新增了对FreeBSD 14.0版本的支持,并修复了启动问题以及解决了几个Linux独有的bug等。同时,官方还修复了...【详细内容】
2024-01-25    中关村在线  Tags:Ventoy   点击:(41)  评论:(0)  加入收藏
微软Copilot Pro来了:个人用户也能在Word里用GPT-4,20美元/月
面向个人用户的微软Copilot会员版来了。一个月多交20刀(约合人民币142元),Microsoft 365个人版/家庭版用户就能在Word、Excel、PPT等Office全家桶中用上GPT-4。就像这样,不用在C...【详细内容】
2024-01-16    量子位  Tags:Copilot Pro   点击:(94)  评论:(0)  加入收藏
微软 Edge 浏览器支持双引擎同时搜索功能,便利与槽点并存
IT之家 1 月 15 日消息,微软广告和网络服务部门首席执行官 Mikhail Parakhin 近日透露了一个微软 Edge 浏览器的隐藏功能:双引擎同时搜索。顾名思义,该功能允许用户同时使用两...【详细内容】
2024-01-16    IT之家  Tags:Edge   点击:(63)  评论:(0)  加入收藏
11个面向设计师的必备AI工具
译者 | 布加迪审校 | 重楼在当今快速发展的设计领域,人工智能(AI)工具已成为不可或缺的创新催化剂。这些工具专门用于提高效率和创造力,从而重新定义传统的设计方法。AI正在彻底...【详细内容】
2024-01-09    51CTO  Tags:AI工具   点击:(103)  评论:(0)  加入收藏
站内最新
站内热门
站内头条