Sitelet https://docs.ultralytics.com/zh/usage/python
Ultralytics YOLO27:

Python 用法#

欢迎阅读 Ultralytics YOLO Python 用法文档!本指南旨在帮助你将 Ultralytics YOLO 无缝集成到 Python 项目中,以执行目标检测、实例分割、语义分割、深度估计和分类。在这里,你将学习如何加载和使用预训练模型、训练新模型,以及对图像进行预测。易于使用的 Python 接口对所有希望在 Python 项目中集成 YOLO 的人来说都很有帮助,让你能够快速实现高级目标检测功能。让我们开始吧!



观看: 精通 Ultralytics YOLO:Python

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

Python
from ultralytics import YOLO

# 从头开始创建新的 YOLO 模型
model = YOLO("yolo26n.yaml")

# 加载预训练的 YOLO 模型(推荐用于训练)
model = YOLO("yolo26n.pt")

# 使用 'coco8.yaml' 数据集训练模型 3 个周期
results = model.train(data="coco8.yaml", epochs=3)

# 在验证集上评估模型性能
results = model.val()

# 使用模型对图像执行目标检测
results = model("https://ultralytics.com/images/bus.jpg")

# 将模型导出为 ONNX 格式
success = model.export(format="onnx")

训练#

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

训练
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # 传入任何模型类型
results = model.train(epochs=5)

训练示例

验证#

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

验证
from ultralytics import YOLO

# 加载 YOLO 模型
model = YOLO("yolo26n.yaml")

# 训练模型
model.train(data="coco8.yaml", epochs=5)

# 在训练数据集的验证划分上进行验证
model.val()

验证示例

预测#

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

预测
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# 接受所有格式 - image/dir/Path/URL/video/PIL/ndarray。0 表示网络摄像头
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # 显示预测结果。接受所有 YOLO predict 参数

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # 保存绘制了结果的图像

# 来自 ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # 将预测结果保存为标签

# 来自 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

# 加载模型
model = YOLO("yolo26n.pt")  # 加载官方检测模型
model = YOLO("yolo26n-seg.pt")  # 加载官方分割模型
model = YOLO("path/to/best.pt")  # 加载自定义模型

# 使用模型进行跟踪
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 模型类是 Trainer 类的高层封装。每个 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  # 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")

# 从上次检查点恢复被中断的训练
trainer = DetectionTrainer(overrides={"resume": "path/to/last.pt"})
trainer.train()

你可以轻松定制训练器,以支持自定义任务或探索研发思路。Ultralytics YOLO 的模块化设计让你能够根据具体需求调整框架,无论是处理新的计算机视觉任务,还是微调现有模型以获得更好的性能。

自定义教程

常见问题#

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

    from ultralytics import YOLO
    
    # 加载预训练的 YOLO 模型
    model = YOLO("yolo26n.pt")
    
    # 对图像执行目标检测
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # 可视化结果
    for result in results:
        result.show()

    更多详细示例请参阅预测模式部分。

  • Ultralytics YOLO 提供多种模式,以适应不同的机器学习工作流,包括:

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

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

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

    from ultralytics import YOLO
    
    # 加载 YOLO 模型
    model = YOLO("yolo26n.yaml")
    
    # 使用自定义数据集训练模型
    model.train(data="path/to/your/dataset.yaml", epochs=10)

    有关训练的更多详情和示例用法链接,请访问我们的训练模式页面。

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

    from ultralytics import YOLO
    
    # 加载 YOLO 模型
    model = YOLO("yolo26n.pt")
    
    # 将模型导出为 ONNX 格式
    model.export(format="onnx")

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

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

    from ultralytics import YOLO
    
    # 加载 YOLO 模型
    model = YOLO("yolo26n.yaml")
    
    # 训练模型
    model.train(data="coco8.yaml", epochs=5)
    
    # 在不同的数据集上验证模型
    model.val(data="path/to/separate/data.yaml")

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

评论