ultralytics
是一个用于计算机视觉任务的 Python 库,专注于提供高效、易用的目标检测、实例分割和图像分类工具。它最著名的功能是实现 YOLO(You Only Look Once) 系列模型,特别是最新的 YOLOv8。
1. YOLO 是什么?
YOLO 是一种流行的目标检测算法,以其速度快 和精度高而闻名。YOLO 的核心思想是将目标检测问题转化为一个回归问题,直接预测目标的边界框和类别。
- YOLOv8 是 YOLO 系列的最新版本,由 Ultralytics 团队开发和维护。
- YOLOv8 支持多种任务,包括目标检测、实例分割和图像分类。
2. ultralytics
的功能
ultralytics
提供了以下主要功能:
(1)目标检测(Object Detection)
-
检测图像或视频中的物体,并返回每个物体的类别和边界框。
-
示例代码:
pythonfrom ultralytics import YOLO # 加载预训练模型 model = YOLO("yolov8n.pt") # 对图像进行推理 results = model("https://ultralytics.com/images/bus.jpg") # 显示结果 results[0].show()
(2)实例分割(Instance Segmentation)
-
检测图像中的物体,并返回每个物体的类别、边界框和像素级掩码。
-
示例代码:
pythonfrom ultralytics import YOLO # 加载预训练模型 model = YOLO("yolov8n-seg.pt") # 使用 YOLOv8 实例分割模型 # 对图像进行推理 results = model("https://ultralytics.com/images/bus.jpg") # 显示结果 results[0].show()
(3)图像分类(Image Classification)
-
对图像进行分类,返回图像的类别标签。
-
示例代码:
pythonfrom ultralytics import YOLO # 加载预训练模型 model = YOLO("yolov8n-cls.pt") # 使用 YOLOv8 分类模型 # 对图像进行推理 results = model("https://ultralytics.com/images/bus.jpg") # 显示结果 results[0].show()
(4)模型训练
-
支持自定义数据集的训练,可以训练目标检测、实例分割和分类模型。
-
示例代码:
pythonfrom ultralytics import YOLO # 加载模型 model = YOLO("yolov8n.pt") # 训练模型 results = model.train(data="coco128.yaml", epochs=10, imgsz=640)
(5)模型导出
-
支持将模型导出为多种格式,如 ONNX、TensorRT、CoreML 等,以便在不同平台上部署。
-
示例代码:
pythonfrom ultralytics import YOLO # 加载模型 model = YOLO("yolov8n.pt") # 导出模型为 ONNX 格式 model.export(format="onnx")
3. ultralytics
的优势
- 简单易用:提供了简洁的 API,几行代码即可完成复杂的任务。
- 高性能:基于 YOLOv8,速度快且精度高。
- 多任务支持:支持目标检测、实例分割和图像分类。
- 跨平台:支持多种硬件(CPU、GPU)和部署格式(ONNX、TensorRT 等)。
4. 适用场景
ultralytics
适用于以下场景:
- 目标检测:检测图像或视频中的物体(如行人、车辆、动物等)。
- 实例分割:对图像中的物体进行像素级分割。
- 图像分类:对图像进行分类(如猫 vs 狗)。
- 自定义训练:使用自己的数据集训练模型。
- 模型部署:将模型导出为 ONNX、TensorRT 等格式,用于生产环境。
5. 安装 ultralytics
要使用 ultralytics
,首先需要安装它:
python
pip install ultralytics
6. 官方资源
- GitHub 仓库 :Ultralytics YOLOv8
- 官方文档 :Ultralytics YOLOv8 Docs
- 预训练模型 :YOLOv8 Models
总结
ultralytics
是一个功能强大且易于使用的计算机视觉库,专注于 YOLO 系列模型的实现和应用。无论是目标检测、实例分割还是图像分类,ultralytics
都能提供高效的解决方案。