yolov5调用外接摄像头检测
时间: 2023-06-15 22:06:26 浏览: 91
要在YOLOv5中调用外部摄像头进行检测,可以使用OpenCV库来实现。以下是一个简单的例子:
```python
import cv2
import torch
import numpy as np
# 加载YOLOv5模型
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取摄像头帧
ret, frame = cap.read()
# 调整帧大小
frame = cv2.resize(frame, (640, 640))
# 将帧转换为RGB格式
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
# 将帧转换为PyTorch张量
tensor = torch.from_numpy(frame)
# 运行YOLOv5检测
results = model(tensor)
# 获取检测结果
detections = results.pandas().xyxy[0]
# 在帧上绘制边界框
for _, row in detections.iterrows():
left, top, right, bottom = row[['xmin', 'ymin', 'xmax', 'ymax']].astype(int)
cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 2)
# 显示帧
cv2.imshow('frame', frame)
# 按下q键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头
cap.release()
# 关闭窗口
cv2.destroyAllWindows()
```
这个例子会打开默认摄像头,并使用YOLOv5模型进行检测。你可以根据需要调整帧大小和模型类型。
阅读全文