【计算机视觉】YOLOv8如何使用?(含源代码)

这篇具有很好参考价值的文章主要介绍了【计算机视觉】YOLOv8如何使用?(含源代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

comments description keywords

true

Boost your Python projects with object detection, segmentation and classification using YOLOv8. Explore how to load, train, validate, predict, export, track and benchmark models with ease.

YOLOv8, Ultralytics, Python, object detection, segmentation, classification, model training, validation, prediction, model export, benchmark, real-time tracking

一、Python Usage

欢迎来到 YOLOv8 Python 使用文档! 本指南旨在帮助您将 YOLOv8 无缝集成到您的 Python 项目中,以进行对象检测、分割和分类。 在这里,您将学习如何加载和使用预训练模型、训练新模型以及对图像执行预测。 对于任何希望将 YOLOv8 纳入其 Python 项目的人来说,易于使用的 Python 界面都是宝贵的资源,可让您快速实现高级对象检测功能。

让我们开始吧! 例如,用户可以加载模型、训练模型、评估其在验证集上的性能,甚至只需几行代码即可将其导出为 ONNX 格式。

```python
from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO('yolov8n.yaml')

# Load a pretrained YOLO model (recommended for training)
model = YOLO('yolov8n.pt')

# Train the model using the 'coco128.yaml' dataset for 3 epochs
results = model.train(data='coco128.yaml', epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model('https://ultralytics.com/images/bus.jpg')

# Export the model to ONNX format
success = model.export(format='onnx')
```

二、Train

训练模式用于在自定义数据集上训练 YOLOv8 模型。 在此模式下,使用指定的数据集和超参数来训练模型。 训练过程涉及优化模型的参数,以便它能够准确预测图像中对象的类别和位置。

=== "From pretrained(recommended)"
    ```python
    from ultralytics import YOLO

    model = YOLO('yolov8n.pt') # pass any model type
    results = model.train(epochs=5)
    ```

=== "From scratch"
    ```python
    from ultralytics import YOLO

    model = YOLO('yolov8n.yaml')
    results = model.train(data='coco128.yaml', epochs=5)
    ```

=== "Resume"
    ```python
    model = YOLO("last.pt")
    results = model.train(resume=True)
    ```

三、Val

Val 模式用于在训练后验证 YOLOv8 模型。 在此模式下,模型在验证集上进行评估,以衡量其准确性和泛化性能。 该模式可用于调整模型的超参数以提高其性能。

=== "Val after training"
    ```python
      from ultralytics import YOLO

      model = YOLO('yolov8n.yaml')
      model.train(data='coco128.yaml', epochs=5)
      model.val()  # It'll automatically evaluate the data you trained.
    ```

=== "Val independently"
    ```python
      from ultralytics import YOLO

      model = YOLO("model.pt")
      # It'll use the data YAML file in model.pt if you don't set data.
      model.val()
      # or you can set the data you want to val
      model.val(data='coco128.yaml')
    ```

四、Predict

预测模式用于使用经过训练的 YOLOv8 模型对新图像或视频进行预测。 在此模式下,模型从检查点文件加载,用户可以提供图像或视频来执行推理。 该模型预测输入图像或视频中对象的类别和位置。

=== "From source"
    ```python
    from ultralytics import YOLO
    from PIL import Image
    import cv2

    model = YOLO("model.pt")
    # accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
    results = model.predict(source="0")
    results = model.predict(source="folder", show=True) # Display preds. Accepts all YOLO predict arguments

    # from PIL
    im1 = Image.open("bus.jpg")
    results = model.predict(source=im1, save=True)  # save plotted images

    # from ndarray
    im2 = cv2.imread("bus.jpg")
    results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

    # from list of PIL/ndarray
    results = model.predict(source=[im1, im2])
    ```

=== "Results usage"
    ```python
    # results would be a list of Results object including all the predictions by default
    # but be careful as it could occupy a lot memory when there're many images,
    # especially the task is segmentation.
    # 1. return as a list
    results = model.predict(source="folder")

    # results would be a generator which is more friendly to memory by setting stream=True
    # 2. return as a generator
    results = model.predict(source=0, stream=True)

    for result in results:
        # Detection
        result.boxes.xyxy   # box with xyxy format, (N, 4)
        result.boxes.xywh   # box with xywh format, (N, 4)
        result.boxes.xyxyn  # box with xyxy format but normalized, (N, 4)
        result.boxes.xywhn  # box with xywh format but normalized, (N, 4)
        result.boxes.conf   # confidence score, (N, 1)
        result.boxes.cls    # cls, (N, 1)

        # Segmentation
        result.masks.data      # masks, (N, H, W)
        result.masks.xy        # x,y segments (pixels), List[segment] * N
        result.masks.xyn       # x,y segments (normalized), List[segment] * N

        # Classification
        result.probs     # cls prob, (num_class, )

    # Each result is composed of torch.Tensor by default,
    # in which you can easily use following functionality:
    result = result.cuda()
    result = result.cpu()
    result = result.to("cpu")
    result = result.numpy()
    ```

五、Export

导出模式用于将YOLOv8模型导出为可用于部署的格式。 在此模式下,模型将转换为可供其他软件应用程序或硬件设备使用的格式。 将模型部署到生产环境时,此模式非常有用。

=== "Export to ONNX"

    Export an official YOLOv8n model to ONNX with dynamic batch-size and image-size.
    ```python
      from ultralytics import YOLO

      model = YOLO('yolov8n.pt')
      model.export(format='onnx', dynamic=True)
    ```

=== "Export to TensorRT"

    Export an official YOLOv8n model to TensorRT on `device=0` for acceleration on CUDA devices.
    ```python
      from ultralytics import YOLO

      model = YOLO('yolov8n.pt')
      model.export(format='onnx', device=0)
    ```

六、Track

跟踪模式用于使用 YOLOv8 模型实时跟踪对象。 在此模式下,模型从检查点文件加载,用户可以提供实时视频流来执行实时对象跟踪。 此模式对于监控系统或自动驾驶汽车等应用非常有用。

=== "Python"

    ```python
    from ultralytics import YOLO

    # Load a model
    model = YOLO('yolov8n.pt')  # load an official detection model
    model = YOLO('yolov8n-seg.pt')  # load an official segmentation model
    model = YOLO('path/to/best.pt')  # load a custom model

    # Track with the model
    results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
    results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")
    ```

七、Benchmark

基准模式用于分析 YOLOv8 各种导出格式的速度和准确性。 基准测试提供了有关导出格式的大小、其 mAP50-95 指标(用于对象检测和分割)或 precision_top5 指标(用于分类)以及跨各种导出格式(例如 ONNX、OpenVINO、TensorRT)的每个图像的推理时间(以毫秒为单位)的信息 和别的。 此信息可以帮助用户根据其对速度和准确性的要求,选择适合其特定用例的最佳导出格式。

=== "Python"

    Benchmark an official YOLOv8n model across all export formats.
    ```python
    from ultralytics.utils.benchmarks import benchmark

    # Benchmark
    benchmark(model='yolov8n.pt', data='coco8.yaml', imgsz=640, half=False, device=0)
    ```

八、Using Trainers

YOLO 模型类是 Trainer 类的高级包装。 每个 YOLO 任务都有自己的训练器,该训练器继承自 BaseTrainer。

    ```python
    from ultralytics.models.yolo import DetectionTrainer, DetectionValidator, DetectionPredictor

    # trainer
    trainer = DetectionTrainer(overrides={})
    trainer.train()
    trained_model = trainer.best

    # Validator
    val = DetectionValidator(args=...)
    val(model=trained_model)

    # predictor
    pred = DetectionPredictor(overrides={})
    pred(source=SOURCE, model=trained_model)

    # resume from last weight
    overrides["resume"] = trainer.last
    trainer = detect.DetectionTrainer(overrides=overrides)
    ```

您可以轻松自定义培训师以支持自定义任务或探索研发想法。 在定制部分了解有关定制训练器、验证器和预测器以满足您的项目需求的更多信息。文章来源地址https://www.toymoban.com/news/detail-765648.html

到了这里,关于【计算机视觉】YOLOv8如何使用?(含源代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv8轻量化:MobileNetV3,理想的轻量级骨架选择 - 计算机视觉

    YOLOv8是一种广泛应用于目标检测任务的深度学习模型。为了在计算资源受限的环境下实现高效的目标检测,使用轻量级骨架是至关重要的。在这方面,MobileNetV3是一个出色的选择,它具有较少的参数和计算复杂度,同时保持了较高的准确性和速度。 MobileNetV3是Google提出的一种

    2024年03月16日
    浏览(67)
  • 【计算机视觉】YOLOv8参数详解(全面详细、重点突出、大白话阐述小白也能看懂)

    comments description keywords true Master YOLOv8 settings and hyperparameters for improved model performance. Learn to use YOLO CLI commands, adjust training settings, and optimize YOLO tasks modes. YOLOv8, settings, hyperparameters, YOLO CLI commands, YOLO tasks, YOLO modes, Ultralytics documentation, model optimization, YOLOv8 training YOLO 设置和超参数

    2024年02月05日
    浏览(37)
  • 【计算机视觉】如何利用 CLIP 做简单的人脸任务?(含源代码)

    CELEBA 数据集( CelebFaces Attributes Dataset )是一个大规模的人脸图像数据集,旨在用于训练和评估人脸相关的计算机视觉模型。该数据集由众多名人的脸部图像组成,提供了丰富的人脸属性标注信息。 以下是 CELEBA 数据集的一些详细信息: 规模: CELEBA 数据集包含超过 20 万张名

    2024年02月04日
    浏览(37)
  • 【计算机视觉】如何利用 CLIP 做简单的图像分类任务?(含源代码)

    要使用 CLIP 模型进行预测,您可以按照以下步骤进行操作: 安装依赖:首先,您需要安装相应的依赖项。您可以使用 Python 包管理器(如 pip )安装 OpenAI 的 CLIP 库。 导入所需的库,包括 clip (用于加载和使用 CLIP 模型)、 torch ( PyTorch 框架)和 PIL (用于图像处理)。 设置

    2024年02月16日
    浏览(32)
  • YOLOv8改进:在C2f模块中引入EMA注意力机制,提升计算机视觉性能

    计算机视觉领域一直在不断演进,为了改进目标检测算法的性能,研究人员一直在寻找新的方法和技术。在这篇文章中,我们介绍了一种改进的目标检测算法,即YOLOv8,通过在C2f模块中引入EMA(Exponential Moving Average)注意力机制,有效提升了算法的性能。 目标检测是计算机视

    2024年02月03日
    浏览(88)
  • 【计算机视觉】DINOv2(视觉大模型)代码使用和测试(完整的源代码)

    输出为: 命令是一个Git命令,用于克隆(Clone)名为\\\"dinov2\\\"的存储库。它使用了一个名为\\\"ghproxy.com\\\"的代理,用于加速GitHub的克隆操作。 我们需要切换为output的路径: 以下是代码的逐行中文解读: 这段代码的功能是对给定的图像进行一系列处理和特征提取,并使用PCA对特征进

    2024年02月16日
    浏览(45)
  • 改进YOLOv8 | 即插即用篇 | C2F模块增加注意力机制 | 附详细结构图 计算机视觉

    摘要: 本文针对目标检测算法YOLOv8进行改进,通过在C2F模块中引入注意力机制,提高目标的定位和分类性能。文章首先介绍了YOLOv8的基本原理和结构,然后详细阐述了注意力机制的原理和作用,并对修改后的C2F模块结构进行了说明。最后,给出了实验结果和源代码。 引言 目

    2024年02月04日
    浏览(453)
  • 【计算机视觉】DINOv2(Facebook自监督视觉学习)的环境部署和使用代码示范(含源代码)

    我的代码示范已经上传了Kaggle平台,具体的笔记地址为: DINOv2:在没有监督的情况下学习鲁棒的视觉特征 这是第一种训练计算机视觉模型的方法,它使用自我监督学习来实现与该领域使用的标准方法相匹配或超过标准方法的结果。 最近,自然语言处理在大量数据上进行模型

    2024年02月12日
    浏览(29)
  • 改进YOLOv8 | C2F模块中引入注意力机制的即插即用方法 | 详细结构图与计算机视觉实现

    概述: 在计算机视觉领域,YOLOv8是一种常用的目标检测算法,而C2F模块是YOLOv8的核心组成部分之一。为了进一步提升YOLOv8的检测性能,本文将介绍如何通过添加注意力机制来改进C2F模块。我们将详细讨论这一改进方法,并提供相应的源代码,以便读者可以直接使用。 引言:

    2024年04月15日
    浏览(131)
  • 【计算机视觉】Segment Anything 安装配置及代码测试(含源代码)

    目前代码已经开源! Segment Anything Model(SAM)可以从输入提示(如点或框)生成高质量的物体遮罩,并且可以用于为图像中的所有物体生成遮罩。它在一个包含1100万张图像和10亿个遮罩的数据集上进行了训练,并且在各种分割任务上表现出了强大的零样本性能。 该代码要求使

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包