yolov8怎么打印输出结果
时间: 2023-10-01 13:02:56 浏览: 444
yolov8 区域声光报警+计数
在使用 YOLOv8 检测器时,你可以通过以下步骤打印输出结果:
1. 导入所需的库和模块:
```python
import cv2
from PIL import Image
import numpy as np
from models.experimental import attempt_load
from utils.general import check_img_size, non_max_suppression, scale_coords
from utils.torch_utils import select_device
```
2. 加载 YOLOv8 模型:
```python
weights = 'path/to/weights.pt' # 替换为你的权重文件路径
device = select_device('') # 使用默认设备
model = attempt_load(weights, map_location=device)
```
3. 定义目标类别:
```python
class_names = ['class1', 'class2', 'class3', ...] # 替换为你的目标类别名称列表
```
4. 加载图像并进行检测:
```python
img_path = 'path/to/image.jpg' # 替换为你的图像文件路径
img = Image.open(img_path)
img = np.array(img)
# 对图像进行预处理
img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB,HWC to CHW格式转换
img = np.ascontiguousarray(img)
# 调整图像尺寸
img = check_img_size(img, s=model.stride.max())
# 将图像转换为Tensor并移至设备
img = torch.from_numpy(img).to(device)
img = img.float() # float类型
img /= 255.0 # 像素值归一化到0-1范围
# 添加批次维度
img = img.unsqueeze(0)
# 模型推理
pred = model(img)[0]
# 去除多余边框并缩放坐标
pred = non_max_suppression(pred, conf_thres=0.3, iou_thres=0.45)
for det in pred:
if len(det):
det[:, :4] = scale_coords(img.shape[2:], det[:, :4], img.shape[2:]).round()
# 打印检测结果
for *xyxy, conf, cls in reversed(det):
label = f'{class_names[int(cls)]} {conf:.2f}'
print(label, xyxy)
```
以上代码片段是一个简单示例,你可以根据你的具体需求进行修改和调整。确保你已经安装了相关的库和模块,并且将路径替换为你自己的文件路径。
阅读全文