yolov8测试脚本用于多张图像的检测,并保存到文件夹中
时间: 2024-10-23 09:16:11 浏览: 30
YOLOv8 (You Only Look Once version 8) 是一个流行的物体检测算法,它通常涉及到深度学习框架如TensorFlow或PyTorch。对于多张图像的检测并保存,你可以创建一个简单的脚本来批量处理这些任务。以下是一个基本的Python脚本示例,使用YOLOv8 API(假设已安装`yolov8`库):
```python
# 首先需要安装必要的库
!pip install -qr requirements.txt # 这里假设requirements.txt包含了yolov8和其他依赖
import os
from PIL import Image
import cv2
import torch
from models.experimental import attempt_load
from utils.datasets import LoadImagesAndLabels
from utils.general import non_max_suppression, apply_classifier, scale_coords
# 设置YOLOv8模型路径
model_path = 'yolov8.weights'
device = 'cuda' if torch.cuda.is_available() else 'cpu'
# 加载模型
model = attempt_load(model_path, map_location=device)
# 定义测试图片目录和目标输出文件夹
image_dir = 'path/to/images'
output_folder = 'path/to/output/folder'
# 创建测试数据集加载器
dataset = LoadImagesAndLabels(image_dir, img_size=model.height, augment=False)
# 对每张图片进行检测并保存结果
for path, img, im0s, _ in dataset:
img = torch.from_numpy(img).to(device)
pred = model(img)[0]
# 非极大抑制处理
pred = non_max_suppression(pred, conf_thres=0.5, iou_thres=0.45)
for i, det in enumerate(pred):
p, s, im0, frame = path, '', im0s.copy(), img[0].detach().numpy()
save_path = os.path.join(output_folder, f'{os.path.basename(path)}_{i}.jpg')
# 应用分类器(如果有的话),绘制边界框并保存
s += '%gx%g %d %g %.2f %.2f %.2f %.2f\n' % tuple(det.tolist())
apply_classifier(frame, pred[i], True, savename=save_path)
# 可视化并保存原始图像
cv2.imwrite(save_path, frame[:, :, ::-1])
print("检测和保存完成.")
阅读全文