yolov8调用摄像头检测的代码
时间: 2024-06-08 15:04:01 浏览: 164
YOLOv8(You Only Look Once version 8)是一个改进版的实时目标检测模型,它是YOLO系列的最新成员,以其高效的性能和相对较小的模型体积而著称。在使用YOLOv8进行摄像头实时检测时,通常会涉及到深度学习框架(如TensorFlow或PyTorch)、OpenCV库以及可能的自定义预处理和后处理步骤。以下是一个简单的Python示例,展示了如何使用YOLOv8检测摄像头中的物体:
```python
import cv2
import numpy as np
from yolov8_pytorch import YOLOv8
# 加载预训练的YOLOv8模型
model = YOLOv8(weights_path='yolov8.weights', config_path='yolov8.cfg')
# 初始化摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取摄像头帧
ret, frame = cap.read()
# 如果获取帧失败,退出循环
if not ret:
break
# 转换为YUV格式,优化模型运行速度
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2YUV)
# 进行实时检测
boxes, _ = model.detect(frame)
# 反转坐标并绘制边界框
for box in boxes:
box = box[::-1] # 将(x, y, w, h)转换为(y, x, h, w)
top_left, bottom_right = (int(box), int(box)), (int(box + box), int(box + box))
cv2.rectangle(frame, top_left, bottom_right, (0, 255, 0), 2) # 绿色边框
# 显示结果
cv2.imshow('YOLOv8 Detection', frame)
# 按 'q' 键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头资源
cap.release()
cv2.destroyAllWindows()
```
在这个例子中,你需要将`weights_path`和`config_path`替换为实际的YOLOv8模型权重文件和配置文件路径。注意,这个代码是基于PyTorch版本的YOLOv8实现,如果你使用的是其他版本或框架,代码细节可能会有所不同。