yolov5摄像头检测
时间: 2025-01-05 14:24:14 浏览: 95
### 使用YOLOv5实现摄像头实时物体检测
为了使用YOLOv5模型通过电脑摄像头进行实时目标检测,需遵循一系列操作流程。首先,安装必要的依赖库是必不可少的一步。这通常涉及Python环境配置以及特定版本PyTorch框架的安装,因为YOLOv5基于此深度学习平台开发[^1]。
#### 安装YOLOv5及相关依赖项
获取YOLOv5最简便的方法是从官方GitHub仓库克隆项目或下载ZIP压缩包并解压至本地工作目录[^3]。之后,在命令行工具中切换到`yolov5`文件夹下执行如下pip指令来安装所需软件包:
```bash
pip install -r requirements.txt
```
#### 启动摄像头并运行检测脚本
完成上述准备工作后,可以通过编写简单的Python程序调用OpenCV库读取视频流数据,并将其传递给预训练好的YOLOv5权重文件来进行推理处理。下面是一个基本的例子说明如何设置这样的应用程序:
```python
import torch
from utils.general import non_max_suppression, scale_coords
from models.experimental import attempt_load
import cv2
# 加载预训练模型
model = attempt_load('yolov5s.pt', map_location=torch.device('cpu'))
# 设置为评估模式
model.eval()
def detect_objects(frame):
img = frame.copy()
# 预处理输入图片尺寸调整与标准化
img = letterbox(img, new_shape=640)[0]
img = img[:, :, ::-1].transpose(2, 0, 1)
img = np.ascontiguousarray(img)
with torch.no_grad():
pred = model(torch.from_numpy(img).unsqueeze_(0))[0]
det = non_max_suppression(pred, conf_thres=0.25, iou_thres=0.45)[0]
if det is not None and len(det):
det[:, :4] = scale_coords(img.shape[1:], det[:, :4], frame.shape).round()
for *xyxy, conf, cls in reversed(det):
label = f'{names[int(cls)]} {conf:.2f}'
plot_one_box(xyxy, frame, label=label, color=(0, 255, 0), line_thickness=2)
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
detect_objects(frame)
cv2.imshow('Object Detection using YOLOv5', frame)
key = cv2.waitKey(1)
if key & 0xFF == ord('q'):
break
cv2.destroyAllWindows()
cap.release()
```
这段代码展示了如何加载YOLOv5模型并对每一帧图像应用对象检测逻辑;同时利用OpenCV显示带有标注框的结果画面直到按下键盘上的'q'键退出循环为止。
阅读全文
相关推荐


















