用YOLOv5做目标检测,直接调用本地摄像头
时间: 2024-06-11 16:10:04 浏览: 171
yolov5进行目标检测
首先需要安装YOLOv5,可以通过以下命令进行安装:
```
!git clone https://github.com/ultralytics/yolov5.git
!pip install -r yolov5/requirements.txt
```
接下来,可以通过以下代码来调用本地摄像头进行实时目标检测:
```python
import cv2
import torch
from yolov5.inference import detect
# 加载模型
model = torch.hub.load('ultralytics/yolov5', 'custom', path_or_model='best.pt')
# 打开本地摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取摄像头捕获的帧
ret, frame = cap.read()
# 进行目标检测
results = detect(model, frame, conf_thres=0.5)
# 在图像上绘制检测结果
for result in results.xyxy[0]:
x1, y1, x2, y2, conf, cls = result
cv2.rectangle(frame, (int(x1), int(y1)), (int(x2), int(y2)), (0, 255, 0), 2)
cv2.putText(frame, model.module.names[int(cls)], (int(x1), int(y1) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# 显示图像
cv2.imshow('frame', frame)
# 按下q键退出程序
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头资源
cap.release()
cv2.destroyAllWindows()
```
上述代码中,`detect`函数是YOLOv5提供的目标检测函数,用于在图像上检测目标并返回检测结果。`conf_thres`参数用于设置置信度阈值,只有置信度大于该阈值的检测结果才会被保留。`xyxy`属性是检测结果中的一个字段,包含了检测框的位置坐标、置信度和类别信息。最后,可以通过OpenCV的函数在图像上绘制检测框和类别标签,并将结果显示在窗口中。
阅读全文