YOLOv8是YOLO(目标检测和图像分割领域中具有高度影响力的模型)家族的最新成员。它采用了新的架构、新的卷积层和新的检测头。相比于之前的版本,它的速度和准确性都有了显著提高,因此非常适合实时目标检测。此外,YOLOv8支持最新的计算机视觉算法,包括实例分割,可以检测图像中的多个对象。
YOLOv8的优点
相比于之前流行的版本(如YOLOv5、YOLOv7等)有何优势?
首先,YOLOv8引入了一个新的骨干网络——Darknet-53,它比YOLOv7中使用的先前骨干网络更快、更准确。DarkNet-53是一个53层的卷积神经网络,可以将图像分类为1000个物体类别,如键盘、鼠标、铅笔和许多动物。
Yolov8使用类似于图像分割的边界框预测,即像素级别预测。为了实现这一点,他们引入了无锚点检测头。要了解更多关于什么是无锚点目标检测的信息,可以在这里阅读。
YOLOv8比之前的版本更高效,因为它使用了更大的特征图和更高效的卷积网络。这使得模型能够更准确、更快地检测对象。通过更大的特征图,模型可以捕捉不同特征之间更复杂的关系,并更好地识别数据中的模式和对象。此外,更大的特征图还有助于减少训练模型所需的时间,并有助于减少过拟合。
YOLOv8还使用了特征金字塔网络,有助于更好地识别不同大小的对象,从而提高其整体精度。特征金字塔网络是一个概念,它使用不同尺度的特征图(类似于在不同大小的图像上进行预测),结合跳跃连接来更准确地预测较小和较大的对象。更多信息可以在这里阅读。
最后,YOLOv8引入了用户友好的API,使用户能够快速、轻松地在其应用程序中实现模型。
让我们通过一个快速尝试、实践性的解释来更详细地了解YOLOV8。
你应该访问https://github.com/ultralytics/ultralytics
在进一步进行之前,了解Ultralytics和Yolo之间的关系非常重要。
如上所示,点击“Open in Colab”,跳转到链接:https://colab.research.google.com/github/ultralytics/ultralytics/blob/main/examples/tutorial.ipynb
点击连接以开始使用Google Colab。如果你是Google Colab的新用户,则点击“如何开始使用Google Colab教程?”
当你访问链接时,它将打开以下教程:
安装ultralytics
%pip install ultralytics
import ultralytics
ultralytics.checks()
以上代码行安装Ultralytics包,以便我们可以使用YOLO算法。默认情况下,在我撰写本文时,它将安装版本8.0.92。或者,你可以执行以下操作
%pip install ultralytics==8.0.92
安装下一行代码后,导入Ultralytics模块,然后我们尝试检查是否存在所有所需的依赖项和兼容的硬件。
例如,当我在我的计算机上执行检查时,以下是输出。
使用YOLOv8n在图像上进行Predict
# Run inference on an image with YOLOv8n
!yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg'
上述语句将:
-
首先下载引用的图像,
-
然后下载引用的预训练模型检查点(如果尚未下载),
-
最后生成推断结果。在我的情况下。
以下是结果。它可能会有所不同,特别是在延迟和检测到的标签数量方面。
Tasks与 Modes
yolo
可用于各种任务和模式,并接受其他参数,例如 imgsz=640
。查看 YOLOv8 CLI 文档以获取示例。
Modes - 模式分类
- Train - 训练:用于在自定义数据集上训练YOLOv8模型。
- Val - 验证:在训练完YOLOv8模型后,用于验证其准确性。
- Predict - 预测:使用已训练好的YOLOv8模型对新图像或视频进行预测。
- Export - 导出:将YOLOv8模型导出为可用于部署的格式。
- Track - 跟踪:使用YOLOv8模型实时跟踪物体。
- Benchmark - 基准测试:用于基准测试YOLOv8导出(ONNX,TensorRT等)的速度和准确性。
Tasks - 任务分类
-
Detection- 检测
-
Segmentation - 分割
-
Classification- 分类
-
Pose -姿态