YoloV5实时推理最短的代码

YoloV5实时推理最简单代码

import cv2
import torch# 加载YOLOv5模型
model = torch.hub.load('ultralytics/yolov5', 'yolov5s')# 使用CPU或GPU进行推理
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model.to(device)# 打开摄像头(默认摄像头)
cap = cv2.VideoCapture(0)while True:# 读取摄像头帧ret, frame = cap.read()if not ret:break# 进行推理results = model(frame)# 获取检测结果的图像output_img = results.render()[0]# 显示图像cv2.imshow('YOLOv5', output_img)# 检测键盘输入,按 'q' 键退出循环if cv2.waitKey(1) & 0xFF == ord('q'):break# 释放摄像头并关闭窗口
cap.release()
cv2.destroyAllWindows()
  1. 导入必要的库:
    • cv2:OpenCV库,用于图像和视频处理。
    • torch:PyTorch库,用于加载和运行YOLOv5模型。
  2. 加载YOLOv5模型:
    • 使用torch.hub.load函数从指定的GitHub仓库 'ultralytics/yolov5' 中加载YOLOv5模型 'yolov5s'(小型版本)。模型将自动下载并加载。
  3. 确定推理设备:
    • 根据系统是否支持CUDA(GPU加速),选择在GPU(‘cuda’)或CPU(‘cpu’)上执行模型推理。
  4. 打开摄像头:
    • 使用cv2.VideoCapture打开默认的摄像头(通常是计算机内置摄像头或外部摄像头)。
  5. 进入主循环:
    • 使用while True创建一个无限循环,以连续地从摄像头获取帧并进行目标检测。
  6. 读取摄像头帧:
    • 使用cap.read()方法读取摄像头的下一帧图像。ret表示成功与否,frame包含捕获的图像。
  7. 进行推理:
    • 将读取的帧传递给YOLOv5模型进行目标检测,结果存储在results中。
  8. 获取检测结果的图像:
    • 使用results.render()方法获取包含检测框和标签的图像,这里使用索引 [0] 表示获取第一帧的检测结果。
  9. 显示图像:
    • 使用cv2.imshow()方法在名为’YOLOv5’的窗口中显示检测结果图像。
  10. 检测键盘输入:
    • 使用cv2.waitKey(1)检测键盘输入,等待1毫秒。如果按下键盘上的 ‘q’ 键(ASCII码为0x71),则退出循环。
  11. 释放摄像头并关闭窗口:
    • 在循环结束后,释放摄像头资源(cap.release())并关闭显示窗口(cv2.destroyAllWindows())。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/147201.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

适合在校学生的云服务器有哪些?

随着云计算技术的发展,越来越多的学生开始使用云服务器来进行学习和实践。对于学生来说,选择一款便宜的云服务器不仅可以帮助他们降低成本,还可以提高学习和实践的效率。本文将介绍几款适合学生使用的便宜云服务器。 1、腾讯云学生服务器【点…

<Xcode> Xcode IOS无开发者账号打包和分发

关于flutter我们前边聊到的初入门、数据解析、适配、安卓打包、ios端的开发和黑苹果环境部署,但是对于苹果的打包和分发,我只是给大家了一个链接,作为一个顶级好男人,我认为这样是对大家的不负责任,那么这篇就主要是针…

[论文必备]最强科研绘图分析工具Origin(1)——安装教程

之前在论文中pr曲线和loss曲线对比用到了Origin这个最强科研绘图分析工具,被导师狠狠夸了,下面来分享一下~ 本篇先带你手把手安装这个软件,可以先点再慢慢看哦~ 目录 📢一、软件简介 🌻二、安装教程 &#x1f384…

Docker命令起别名

1.打开.bashrc文件 vi ~/.bashrc 2. 起别名 alias dpsdocker ps --format "table{{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}" alias disdocker images 3. 文件生效 source ~/.bashrc 4.展示

CF505B Mr. Kitayuta‘s Colorful Graph

Mr. Kitayuta’s Colorful Graph 题面翻译 给出一个 n n n 个点, m m m 条边的无向图,每条边上是有颜色的。有 q q q 组询问 对于第 i i i 组询问,给出点对 u i , v i u_i,v_i ui​,vi​。求有多少种颜色 c c c 满足:有至…

在线OJ项目核心思路

文章目录 在线OJ项目核心思路1. 项目介绍2.预备知识理解多进程编程为啥采用多进程而不使用多线程?标准输入&标准输出&标准错误 3.项目实现题目API实现相关实体类定义新增/修改题目获取题目列表 编译运行编译运行流程 4.统一功能处理 在线OJ项目核心思路 1. 项目介绍 …

使用腾讯云服务器安装宝塔Linux面板教程_图文全流程

使用腾讯云服务器搭建网站全流程,包括轻量应用服务器和云服务器CVM建站教程,轻量可以使用应用镜像一键建站,云服务器CVM可以通过安装宝塔面板的方式来搭建网站,腾讯云服务器网分享使用腾讯云服务器建站教程,新手站长搭…

Linux基本指令(二)

💓博主个人主页:不是笨小孩👀 ⏩专栏分类:数据结构与算法👀 C👀 刷题专栏👀 C语言👀 🚚代码仓库:笨小孩的代码库👀 ⏩社区:不是笨小孩👀 🌹欢迎大…

MySQL 索引优化实践(单表)

目录 一、前言二、表数据准备三、常见业务无索引查询耗时测试3.1、通过订单ID / 订单编号 查询指定订单3.2、查询订单列表 四、订单常见业务索引优化实践4.1、通过唯一索引和普通索引优化通过订单编号查询订单信息4.2、通过普通联合索引优化订单列表查询4.2.1、分析查询字段的查…

YAMLException : java.nio.charset.MalformedInputException : Input length = 1

场景还原 有小伙伴反应SpringBoot项目启动异常,但是同组其他伙伴的无问题! ERROR org.springframework.boot.SpringApplication - Application run failedorg.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException : Inpu…

决策树C4.5算法的技术深度剖析、实战解读

目录 一、简介决策树(Decision Tree)例子: 信息熵(Information Entropy)与信息增益(Information Gain)例子: 信息增益比(Gain Ratio)例子: 二、算…

【初识Linux】上

初识Linux上 一、Linux背景1.1 UNIX发展的历史1.2 UNIX发展的历史 二、开源三、官网Linux官网 四、企业应用现状五、发行版本六、 os概念,定位 本博客简介 初始Linux操作系统初识shell命令 ,了解若干背景知识。使用常用Linux命令了解Linux权限概念与思想,能深度理解…

调用gethostbyname实现域名解析(附源码)

VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...&a…

世界前沿技术发展报告2023《世界信息技术发展报告》(七)网络与信息安全技术

(七)网络与信息安全技术 1. 概述2. 网络安全关键技术2.1 美国特种作战司令部举办网络挑战赛以寻找边缘安全技术2.2 英国卡迪夫大学开发出在1秒内阻止网络攻击的方法2.3 国研究人员开发出检测恶意网页的新方法2.4 韩国仁川大学研发出一种基于5G的人工智能…

管道-有名管道

一、有名管道 有名管道与匿名管道的不同: 有名管道提供了一个路径名,并以FIFO的文件形式存在于文件系统中。与匿名管道不同,有名管道可以被不相关的进程使用,只要它们可以访问该路径,就能够通过有名管道进行通信。 FI…

IDEA中的神仙插件——Smart Input (自动切换输入法)

推荐专栏:开发环境配置攻略 致力于记录学习过程中各种软件的安装及环境配置操作,并提供详细的步骤说明和丰富的配图。涵盖了 Java、Python、IntelliJ IDEA、Tomcat、MySQL 等常见开发工具和服务器组件的配置,为初学者提供一个实用、全面的配置…

使用python脚本的时间盲注完整步骤

文章目录 一、获取数据库名称长度二、获取数据库名称三、获取表名总长度四、获取表名五、获取指定表列名总长度六、获取指定表列名七、获取指定表指定列的表内数据总长度八、获取指定表指定列的表内数据 一、获取数据库名称长度 测试环境是bwapp靶场 SQL Injection - Blind - …

RocketMQ Dashboard说解

RocketMQ Dashboard 是 RocketMQ 的管控利器,为用户提供客户端和应用程序的各种事件、性能的统计信息,支持以可视化工具代替 Topic 配置、Broker 管理等命令行操作。 介绍​ 功能概览​ 面板功能运维修改nameserver 地址; 选用 VIPChannel驾驶舱查看 …

树莓集团涉足直播产业园区运营,成都直播产业园区再添黑马

树莓集团涉足成都直播产业园运营领域,这一消息引起了业界的广泛关注。在这个无限可能的直播领域中,树莓集团将与上市公司德商产投紧密合作,立志为成都直播行业的发展注入新的活力。成都天府蜂巢直播产业园推行着一系列创新的政策措施&#xf…

凉鞋的 Godot 笔记 102. 场景与节点的增删改查

在上一篇,我们完成了 Godot 引擎的 Hello World 输出,并且完成了第一个基本循环: 通过这次基本循环的完成,我们获得了一点点的 Godot 使用经验,这非常重要。 有实践经验后再去补充理论 和 先学习理论后去实践相比,前者…