yolov5口罩检测代码
时间: 2023-07-11 08:45:04 浏览: 115
基于yolov5的口罩佩戴检测代码
5星 · 资源好评率100%
这里是一个简单的YOLOv5口罩检测代码示例,仅供参考:
```python
import torch
import cv2
import numpy as np
# 加载模型
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
# 加载类别名称
class_names = ['mask', 'no-mask']
# 加载图像
img = cv2.imread('test.jpg')
# 进行目标检测
results = model(img)
# 获取检测结果
preds = results.pred[0]
pred_boxes = preds[:, :4].cpu().numpy()
pred_scores = preds[:, 4].cpu().numpy()
pred_labels = preds[:, 5].cpu().numpy().astype(np.int)
# 可视化检测结果
for box, score, label in zip(pred_boxes, pred_scores, pred_labels):
if score > 0.5: # 设置阈值
x1, y1, x2, y2 = box.astype(np.int)
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(img, class_names[label], (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
# 显示结果
cv2.imshow('result', img)
cv2.waitKey()
```
这段代码使用了PyTorch中的YOLOv5模型和OpenCV库进行目标检测和可视化。具体来说,它做了以下几件事情:
1. 加载YOLOv5模型,使用预训练的yolov5s权重;
2. 定义口罩和无口罩两类的类别名称;
3. 加载测试图像,进行目标检测,并获取检测结果中的坐标、置信度和类别信息;
4. 根据置信度阈值对检测结果进行筛选,并在原图上绘制检测框和类别标签;
5. 显示检测结果。
需要注意的是,这段代码只是一个简单的示例,实际应用中可能需要对模型进行微调、调整阈值等操作,以获得更好的检测效果。同时,也需要注意模型的输入格式、输出格式等细节问题。
阅读全文