作者简介:程序员半夏 , 一名全栈程序员,擅长使用各种编程语言和框架,如JavaScript、React、Node.js、Java、Python、Django、MySQL等.专注于大前端与后端的硬核干货分享,同时是一个随缘更新的UP主. 你可以在各个平台找到我!
本文收录于专栏: YOLO
————————————————————————
热门专栏:学透CSS: 全网阅读超百万,CSDN最强CSS专栏,精通CSS全属性,不做切图仔,从订阅本专栏开始!
SprinbBoot + Vue3 项目实战: 新鲜出炉的2023实战系列博客,配套视频,用心打磨,篇篇精品.持续更新,值得订阅!
YOLOv8是YOLO(目标检测和图像分割领域中具有高度影响力的模型)家族的最新成员。它采用了新的架构、新的卷积层和新的检测头。相比于之前的版本,它的速度和准确性都有了显著提高,因此非常适合实时目标检测。此外,YOLOv8支持最新的计算机视觉算法,包括实例分割,可以检测图像中的多个对象。
相比于之前流行的版本(如YOLOv5、YOLOv7等)有何优势?
首先,YOLOv8引入了一个新的骨干网络——Darknet-53,它比YOLOv7中使用的先前骨干网络更快、更准确。DarkNet-53是一个53层的卷积神经网络,可以将图像分类为1000个物体类别,如键盘、鼠标、铅笔和许多动物。
Yolov8使用类似于图像分割的边界框预测,即像素级别预测。为了实现这一点,他们引入了无锚点检测头。要了解更多关于什么是无锚点目标检测的信息,可以在这里阅读。
YOLOv8比之前的版本更高效,因为它使用了更大的特征图和更高效的卷积网络。这使得模型能够更准确、更快地检测对象。通过更大的特征图,模型可以捕捉不同特征之间更复杂的关系,并更好地识别数据中的模式和对象。此外,更大的特征图还有助于减少训练模型所需的时间,并有助于减少过拟合。
YOLOv8还使用了特征金字塔网络,有助于更好地识别不同大小的对象,从而提高其整体精度。特征金字塔网络是一个概念,它使用不同尺度的特征图(类似于在不同大小的图像上进行预测),结合跳跃连接来更准确地预测较小和较大的对象。更多信息可以在这里阅读。
最后,YOLOv8引入了用户友好的API,使用户能够快速、轻松地在其应用程序中实现模型。
让我们通过一个快速尝试、实践性的解释来更详细地了解YOLOV8。
你应该访问https://github.com/ultralytics/ultralytics
在进一步进行之前,了解Ultralytics和Yolo之间的关系非常重要。
Ultralytics YOLOv8 是一款前沿、最先进(SOTA)的模型,基于先前 YOLO 版本的成功,引入了新功能和改进,进一步提升性能和灵活性。YOLOv8 设计快速、准确且易于使用,使其成为各种物体检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。
如上所示,点击“Open in Colab”,跳转到链接:https://colab.research.google.com/github/ultralytics/ultralytics/blob/main/examples/tutorial.ipynb
点击连接以开始使用Google Colab。如果你是Google Colab的新用户,则点击“如何开始使用Google Colab教程?”
当你访问链接时,它将打开以下教程:
%pip install ultralytics
import ultralytics
ultralytics.checks()
以上代码行安装Ultralytics包,以便我们可以使用YOLO算法。默认情况下,在我撰写本文时,它将安装版本8.0.92。或者,你可以执行以下操作
%pip install ultralytics==8.0.92
安装下一行代码后,导入Ultralytics模块,然后我们尝试检查是否存在所有所需的依赖项和兼容的硬件。
例如,当我在我的计算机上执行检查时,以下是输出。
Ultralytics YOLOv8.0.92 Python-3.10.11 torch-2.0.0+cu118 CUDA:0 (Tesla T4, 15102MiB) Setup complete ✅ (2 CPUs, 12.7 GB RAM, 23.4/78.2 GB disk)
# Run inference on an image with YOLOv8n
!yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg'
上述语句将:
首先下载引用的图像,
然后下载引用的预训练模型检查点(如果尚未下载),
最后生成推断结果。在我的情况下。
以下是结果。它可能会有所不同,特别是在延迟和检测到的标签数量方面。
yolo
可用于各种任务和模式,并接受其他参数,例如 imgsz=640
。查看 YOLOv8 CLI 文档以获取示例。
https://docs.ultralytics.com/modes/
https://docs.ultralytics.com/tasks/?h=task
Detection- 检测
Segmentation - 分割
Classification- 分类
Pose -姿态