yolov5 摄像头实时监测以此写脚本
时间: 2024-12-27 21:32:24 浏览: 71
YOLOv5(You Only Look Once version 5)是一种基于PyTorch深度学习框架的对象检测模型,常用于实时视频监控。为了实现实时摄像头监测,你可以使用Python结合YOLOv5的开源库来编写脚本。以下是一个简单的示例:
```python
import torch
from PIL import Image
from detectron2.engine.defaults import DefaultPredictor
from detectron2.config import get_cfg
# 首先,下载并安装所需的模型
!pip install -qr https://raw.githubusercontent.com/ultralytics/yolov5/master/requirements.txt
# 加载预训练的YOLOv5s模型
cfg = get_cfg()
cfg.merge_from_file("path_to_yolov5s_config.yaml") # 替换为你的YOLOv5s配置文件路径
predictor = DefaultPredictor(cfg)
# 指定摄像头ID或文件路径
camera_id = 0 # 如果是本地摄像头
# 或者
video_path = "path_to_video.mp4"
# 实时视频流
cap = cv2.VideoCapture(camera_id)
while True:
ret, frame = cap.read()
if not ret:
break
# 将BGR图像转换为RGB输入模型
image = frame[:, :, ::-1].copy()
# 对图像进行预测
outputs = predictor(image)
# 获取检测结果
boxes = outputs["instances"]..pred_boxes.tensor
scores = outputs["instances"].scores.tolist()
labels = outputs["instances"].pred_classes.tolist()
# 可视化检测框
for box, score, label in zip(boxes, scores, labels):
x1, y1, x2, y2 = box
cv2.rectangle(frame, (x1, y1), (x2, y2), (255, 0, 0), 2) # 红色边框
cv2.putText(frame, f"Class {label}: {score:.2f}", (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# 显示处理后的帧
cv2.imshow("Object Detection", frame)
key = cv2.waitKey(1)
if key & 0xFF == ord('q'):
break
# 关闭摄像头和窗口
cap.release()
cv2.destroyAllWindows()
```
在这个脚本中,你需要替换`"path_to_yolov5s_config.yaml"`为YOLOv5s的实际配置文件路径,以及相机ID或视频文件路径。运行此脚本后,它会在指定的视频源上实时显示检测到的目标及其类别。
阅读全文
相关推荐


















