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 仓库
作者:白.夜