跳转至

使用Ultralytics进行目标检测

Ultralytics 是一个开源的计算机视觉库,主要用于目标检测和分割任务,其核心是基于 PyTorch 实现的 YOLO(You Only Look Once)系列算法。以下是使用 Ultralytics 进行目标检测的基本步骤:


1. 环境准备

在开始之前,确保你的环境中安装了 Python 和 PyTorch。推荐使用虚拟环境来管理依赖。

安装依赖

pip install torch torchvision

安装 Ultralytics 的 YOLOv5 或 YOLOv8

以 YOLOv8 为例,运行以下命令克隆仓库并安装:

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -r requirements.txt

2. 下载预训练模型

Ultralytics 提供了多种预训练模型,可以直接下载使用。例如,下载 YOLOv8 的预训练模型:

from ultralytics import YOLO

model = YOLO('yolov8n.pt')  # 下载并加载预训练模型(yolov8n 是轻量级版本)

3. 使用模型进行目标检测

单张图片检测

from ultralytics import YOLO

# 加载模型
model = YOLO('yolov8n.pt')

# 检测图片
results = model('path/to/image.jpg')  # 替换为你的图片路径

# 查看结果
results.show()  # 显示检测结果
results.save()  # 保存检测结果到文件夹

视频检测

from ultralytics import YOLO

# 加载模型
model = YOLO('yolov8n.pt')

# 检测视频
results = model('path/to/video.mp4')  # 替换为你的视频路径

# 查看结果
results.show()  # 显示检测结果
results.save()  # 保存检测结果到文件夹

4. 自定义数据集训练

如果你想在自己的数据集上训练模型,需要准备数据集并进行一些配置。

数据集格式

Ultralytics 支持 COCO 和 YOLO 格式的数据集。以下是 YOLO 格式的简单说明:

  • 图片文件放在 images/ 文件夹中。
  • 标注文件(.txt)放在 labels/ 文件夹中,每行表示一个目标,格式为:

<class_id> <x_center> <y_center> <width> <height>

其中,坐标和宽高均为归一化值。

配置文件

创建一个配置文件(如 data.yaml),内容如下:

train: path/to/train/images
val: path/to/val/images

nc: 80  # 类别数量
names: ['class1', 'class2', ...]  # 类别名称

开始训练

from ultralytics import YOLO

# 加载模型
model = YOLO('yolov8n.yaml')  # 使用 YOLOv8 的配置文件

# 训练模型
model.train(data='path/to/data.yaml', epochs=100, imgsz=640)

5. 使用训练好的模型

训练完成后,你可以使用训练好的模型进行目标检测:

# 加载训练好的模型
model = YOLO('path/to/best.pt')

# 检测图片
results = model('path/to/image.jpg')
results.show()

6. 调整模型参数

Ultralytics 提供了许多参数用于调整模型的行为,例如:

  • conf:置信度阈值。
  • iou:NMS 的 IoU 阈值。
  • device:指定运行设备(CPU 或 GPU)。
results = model('path/to/image.jpg', conf=0.5, iou=0.45, device='cuda')

总结

使用 Ultralytics 进行目标检测非常简单,只需安装必要的依赖,加载预训练模型或训练自己的模型,然后使用模型进行检测即可。你可以根据自己的需求调整模型参数和数据集配置。


Copyright@Xiaopch 2024