Python ultralytics库:深度解析与使用指南

ultralytics 是一个专注于计算机视觉任务的 Python 库,尤其以 YOLO(You Only Look Once) 系列模型为核心,提供了简单易用的接口,支持目标检测、实例分割、姿态估计等任务。本文将详细介绍 ultralytics 库的功能、安装方法、核心模块以及使用示例。


1. ultralytics 库简介

ultralytics 库由 Ultralytics 团队开发,旨在为 YOLO 系列模型提供高效、灵活且易于使用的工具。它支持 YOLOv5、YOLOv8 等最新版本的 YOLO 模型,并提供了以下核心功能:

  • 目标检测:检测图像或视频中的目标。

  • 实例分割:对目标进行像素级分割。

  • 姿态估计:检测目标的关键点(如人体姿态)。

  • 模型训练:支持自定义数据集的训练。

  • 模型导出:将模型导出为多种格式(如 ONNX、TensorRT 等)。


  • 2. 安装 ultralytics

    ultralytics 可以通过 pip 安装:

    pip install ultralytics

    安装完成后,可以通过以下命令验证是否安装成功:

    import ultralytics
    print(ultralytics.__version__)

    3. 核心模块与功能

    (1)YOLO 模型加载与推理

    ultralytics 提供了 YOLO 类,用于加载预训练模型或自定义模型,并进行推理。

    加载模型
    from ultralytics import YOLO
    
    # 加载预训练模型
    model = YOLO("yolov8n.pt")  # YOLOv8 Nano 模型
    推理
    # 对单张图像进行推理
    results = model("image.jpg")
    
    # 显示结果
    results.show()
    保存结果
    # 保存检测结果
    results.save("output.jpg")

    (2)模型训练

    ultralytics 支持自定义数据集的训练。

    准备数据集

    数据集需要按照 YOLO 格式组织:

    dataset/
    ├── images/
    │   ├── train/
    │   └── val/
    └── labels/
        ├── train/
        └── val/
    训练模型
    # 加载模型
    model = YOLO("yolov8n.pt")
    
    # 训练模型
    results = model.train(data="coco128.yaml", epochs=50, imgsz=640)

    (3)模型验证

    训练完成后,可以使用验证集评估模型性能。

    # 验证模型
    metrics = model.val()
    print(metrics.box.map)  # 打印 mAP 值

    (4)模型导出

    ultralytics 支持将模型导出为多种格式,以便在其他平台上部署。

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

    4. 使用示例

    目标检测

    from ultralytics import YOLO
    
    # 加载模型
    model = YOLO("yolov8n.pt")
    
    # 对图像进行推理
    results = model("image.jpg")
    
    # 显示结果
    results.show()

    实例分割

    from ultralytics import YOLO
    
    # 加载实例分割模型
    model = YOLO("yolov8n-seg.pt")
    
    # 对图像进行推理
    results = model("image.jpg")
    
    # 显示分割结果
    results.show()

    姿态估计

    from ultralytics import YOLO
    
    # 加载姿态估计模型
    model = YOLO("yolov8n-pose.pt")
    
    # 对图像进行推理
    results = model("image.jpg")
    
    # 显示姿态估计结果
    results.show()

    视频推理

    from ultralytics import YOLO
    
    # 加载模型
    model = YOLO("yolov8n.pt")
    
    # 对视频进行推理
    results = model("video.mp4")
    
    # 保存结果
    results.save("output.mp4")

    5. 高级功能

    (1)自定义模型

    ultralytics 支持加载自定义训练的模型。

    from ultralytics import YOLO
    
    # 加载自定义模型
    model = YOLO("custom_model.pt")
    
    # 推理
    results = model("image.jpg")

    (2)多 GPU 训练

    ultralytics 支持多 GPU 训练,以加速训练过程。

    # 使用 4 个 GPU 进行训练
    results = model.train(data="coco128.yaml", epochs=50, imgsz=640, device=[0, 1, 2, 3])

    (3)TensorRT 加速

    ultralytics 支持将模型导出为 TensorRT 格式,以在 NVIDIA GPU 上加速推理。

    # 导出为 TensorRT 格式
    model.export(format="engine")

    6. 总结

    ultralytics 是一个功能强大且易于使用的计算机视觉库,特别适合 YOLO 系列模型的应用。它提供了从模型加载、推理、训练到导出的完整功能,支持目标检测、实例分割、姿态估计等多种任务。无论是研究还是生产环境,ultralytics 都能满足你的需求。

    希望本文能帮助你快速上手 ultralytics 库!如果有任何问题,欢迎在评论区留言讨论! 😊


    参考链接

  • Ultralytics 官方文档

  • YOLOv8 GitHub 仓库

  • 作者:白.夜

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python ultralytics库:深度解析与使用指南

    发表回复