Ultralytics YOLO27:

Python 用法#

欢迎阅读 Ultralytics YOLO Python 用法文档!本指南旨在帮助你将 Ultralytics YOLO 无缝集成到你的 Python 项目中,以实现目标检测实例分割语义分割深度估计分类。在此,你将学习如何加载和使用预训练模型、训练新模型以及对图像执行预测。这个易于使用的 Python 界面是任何希望将 YOLO 融入其 Python 项目的人的宝贵资源,能让你快速实现高级目标检测功能。我们开始吧!



Watch: Mastering Ultralytics YOLO: Python

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

Python
from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.pt")

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.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")

训练#

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

训练
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # pass any model type
results = model.train(epochs=5)

训练示例

验证#

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

验证
from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo26n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on training data
model.val()

验证示例

Predict#

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

Predict
import cv2
from PIL import Image

from ultralytics import YOLO

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])

预测示例

导出#

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

导出

将官方 YOLO 模型导出为具有动态批量大小和图像大小的 ONNX

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)

导出示例

跟踪#

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

跟踪
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official detection model
model = YOLO("yolo26n-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")

跟踪示例

基准#

基准模式用于分析 YOLO 各种导出格式的速度和准确率。基准测试提供有关导出格式大小、其 mAP50-95 指标(用于目标检测和分割)或 accuracy_top1 指标(用于分类)的信息,以及在 ONNX、OpenVINO、TensorRT 等各种导出格式中每张图像的毫秒级推理时间。这些信息可以帮助用户根据速度和准确率要求,为其特定用例选择最佳导出格式。

基准

在所有导出格式中对官方 YOLO 模型进行基准测试。

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

基准测试示例

使用训练器#

YOLO 模型类充当训练器类的高级包装器。每个 YOLO 任务都有其自己的训练器,该训练器继承自 BaseTrainer。这种架构允许在你的机器学习工作流中实现更大的灵活性和自定义。

检测训练器示例
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

overrides = {"model": "yolo26n.pt", "data": "coco8.yaml", "epochs": 3}

# Trainer
trainer = DetectionTrainer(overrides=overrides)
trainer.train()
trained_model = trainer.best  # path to best.pt

# Validator
validator = DetectionValidator(args={"data": "coco8.yaml"})
validator(model=trained_model)

# Predictor
predictor = DetectionPredictor(overrides={"model": trained_model})
predictor(source="https://ultralytics.com/images/bus.jpg")

# Resume from the last checkpoint
trainer = DetectionTrainer(overrides={**overrides, "resume": trainer.last})

你可以轻松自定义训练器以支持自定义任务或探索研发想法。Ultralytics YOLO 的模块化设计允许你调整框架以满足你的特定需求,无论你是在处理新颖的计算机视觉任务还是微调现有模型以获得更好的性能。

自定义教程

常见问题#

  • 将 Ultralytics YOLO 集成到你的 Python 项目中很简单。你可以加载预训练模型或从头开始训练新模型。以下是开始的方法:

    from ultralytics import YOLO
    
    # Load a pretrained YOLO model
    model = YOLO("yolo26n.pt")
    
    # Perform object detection on an image
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # Visualize the results
    for result in results:
        result.show()

    在我们的预测模式部分查看更多详细示例。

  • Ultralytics YOLO 提供各种模式以迎合不同的机器学习工作流。其中包括:

    • 训练:使用自定义数据集训练模型。
    • 验证:在验证集上验证模型性能。
    • 预测:对新图像或视频流进行预测。
    • 导出:将模型导出到 ONNX 和 TensorRT 等各种格式。
    • 跟踪:视频流中的实时对象跟踪。
    • 基准测试:跨不同配置对模型性能进行基准测试。

    每种模式都旨在为模型开发和部署的不同阶段提供全面的功能。

  • 要训练自定义 YOLO 模型,你需要指定你的数据集和其他超参数。这是一个快速示例:

    from ultralytics import YOLO
    
    # Load the YOLO model
    model = YOLO("yolo26n.yaml")
    
    # Train the model with custom dataset
    model.train(data="path/to/your/dataset.yaml", epochs=10)

    有关训练的更多详细信息以及用法示例的超链接,请访问我们的训练模式页面。

  • 使用 export 函数,以适合部署的格式导出 YOLO 模型非常简单。例如,你可以将模型导出为 ONNX 格式:

    from ultralytics import YOLO
    
    # Load the YOLO model
    model = YOLO("yolo26n.pt")
    
    # Export the model to ONNX format
    model.export(format="onnx")

    有关各种导出选项,请参阅导出模式文档。

  • 可以,在不同的数据集上验证 YOLO 模型是可行的。训练后,你可以使用验证模式来评估性能:

    from ultralytics import YOLO
    
    # Load a YOLO model
    model = YOLO("yolo26n.yaml")
    
    # Train the model
    model.train(data="coco8.yaml", epochs=5)
    
    # Validate the model on a different dataset
    model.val(data="path/to/separate/data.yaml")

    查看验证模式页面了解详细示例和用法。

评论