当前位置: 首页 > news >正文

python:本机摄像头目标检测实时推理(使用YOLOv8n模型)

本文将介绍如何使用本机摄像头进行目标检测实时推理的python代码。


文章目录

      • 一、下载YOLO权重文件
      • 二、环境配置
      • 三、完整代码


一、下载YOLO权重文件

https://github.com/ultralytics/ultralytics?tab=readme-ov-file

拉到网页最下面,选择适合的模型,下载到本地。
在这里插入图片描述

二、环境配置

安装以下两个库,

pip install ultralytics
pip install opencv-python

三、完整代码

将yolov8n.pt保存在代码的同级目录下,当然你可以保存在任何地方,只需修改权重文件路径即可。

import cv2
from ultralytics import YOLO
import datetime# 加载YOLOv8模型
model = YOLO('./yolov8n.pt')# 打开默认摄像头 (设备索引为 0)
cap = cv2.VideoCapture(0)# 检查摄像头是否成功打开
if not cap.isOpened():print("无法打开摄像头")exit()while True:# 读取摄像头的每一帧ret, frame = cap.read()# 如果读取帧失败,则退出循环if not ret:print("无法接收帧(可能是摄像头断开)")break# 使用YOLOv8进行检测results = model(frame)# 解析结果并绘制检测框for result in results:boxes = result.boxesfor box in boxes:x1, y1, x2, y2 = map(int, box.xyxy[0])  # 获取检测框坐标confidence = box.conf[0]  # 获取置信度cls = int(box.cls[0])  # 获取类别label = model.names[cls]  # 获取类别名称# 绘制检测框和标签cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)cv2.putText(frame, f"{label} {confidence:.2f}", (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)# 获取当前时间now = datetime.datetime.now()time_str = now.strftime("%Y-%m-%d %H:%M:%S")cv2.putText(frame, time_str, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2, cv2.LINE_AA)# 显示当前帧cv2.imshow('Camera', frame)# 按下 'q' 键退出if cv2.waitKey(1) & 0xFF == ord('q'):break# 释放摄像头并关闭窗口
cap.release()
cv2.destroyAllWindows()
http://www.lryc.cn/news/406388.html

相关文章:

  • Spark实时(四):Strctured Streaming简单应用
  • SpringBoot上传超大文件导致OOM,完美问题解决办法
  • PyTorch 的各个核心模块和它们的功能
  • Java开发之LinkedList源码分析
  • 外卖霸王餐系统架构怎么选?
  • AV1技术学习:Transform Coding
  • Git操作指令
  • CSS 创建:从入门到精通
  • Windows 11 系统对磁盘进行分区保姆级教程
  • 探索WebKit的CSS盒模型:深入理解Web布局的基石
  • c++初阶知识——string类详解
  • php接口返回的json字符串,json_decode()失败,原来是多了红点
  • Python3网络爬虫开发实战(2)爬虫基础库
  • el-image预览图片点击遮盖处关闭预览
  • 基于Neo4j将知识图谱用于检索增强生成:Knowledge Graphs for RAG
  • 康康近期的慢SQL(oracle vs 达梦)
  • 探索 GPT-4o mini:成本效益与创新的双重驱动
  • 2.6基本算法之动态规划2989:糖果
  • 12.顶部带三角形的边框 CSS 关键字 currentColor
  • Llama中模块参数大小
  • Modbus转EtherCAT网关将Modbus协议的数据格式转换为EtherCAT协议
  • 【开发实战】QT5 + OpenCV4 开发环境配置应用演示
  • “微软蓝屏”事件暴露的网络安全问题及应对策略
  • 白骑士的PyCharm教学基础篇 1.3 调试与运行
  • 爬虫学习1:初学者简单了解爬虫的基本认识和操作(详细参考图片)
  • WHAT - 通过 shadcn 组件源码学习 React
  • grafana对接zabbix数据展示
  • C++ 学习补充 1:短链算法
  • 硅纪元视角 | 语音克隆突破:微软VALL-E 2,Deepfake新纪元!
  • 没有51基础,能不能学好STM32?