Yolov5 + 界面PyQt5 +.exe文件部署运行

news2025/1/16 17:59:03

介绍

Yolov5是一种基于深度学习的目标检测算法,PyQt5是一个Python编写的GUI框架,用于创建交互式界面。在部署和运行Yolov5模型时,结合PyQt5可以方便地创建一个用户友好的界面,并将代码打包为.exe文件以供其他人使用。

下面是一个简要的介绍,如何将Yolov5与PyQt5结合,并将代码打包为.exe文件进行部署和运行:

安装必要的软件和库:

安装Python:确保安装了Python解释器。
安装PyQt5:使用pip命令安装PyQt5库,例如pip install pyqt5。
安装yolov5:使用pip命令安装yolov5库,例如pip install yolov5。
安装pyinstaller:使用pip命令安装pyinstaller库,用于将Python代码打包为可执行文件,例如pip install pyinstaller。
创建PyQt5界面:

使用PyQt5创建一个用户界面,包括按钮、文本框等,用于用户输入和交互。
将Yolov5相关的代码嵌入到PyQt5界面中,例如加载模型、进行目标检测等

实现

  • Yolov5训练个人数据集
  • pt格式模型转换为onnx格式
  • 使用openCV的dnn模块或onnxruntime实现检测
  • 在Windows平台打包为可执行程序(Linux理论上也可以打包,但没试过)
  • 打包后可移植(部署)到大多数Windows设备

展示

主界面

主界面

功能
  1. 支持视频、图片、本地摄像头、网络视频流、屏幕
  2. 实时帧数
  3. 重定向控制台输出到软件界面上
  4. 更改检测置信度、IOU阈值
  5. 显示/关闭锚框、更改锚框宽度及颜色
  6. 打印/隐藏检测结果
  7. 录制检测视频
  8. 保存实时截图、控制台记录
  9. 自定义脚本,每次检测都将触发,(详细说明请阅读need/self_demo.py)

项目需求 (详见requirements.txt)

  • python == 3.9
  • numpy == 1.23.4
  • opencv-python == 4.5.5.62
  • PyQt5 == 5.15.7
  • onnxruntime == 1.13.1
  • nuitka == 0.6.18.4

###自定义 使用方法

快速入门
  • clone项目到本地

  • 安装依赖pip install -r requirements.txt

  • 运行Yolo2onnxDetectProjectDemo.py

  • 点击按钮开始检测,高阶玩法参考need/self_demo.py

训练自己的数据集并转换为此项目可用的模型
  • 推荐用Yo转为onnx格式。本仓库的模型转换命令为python models/export.py --weights ./weights/yolov5s.pt --img 640 --batch 1
打包为可执行文件
  • 所用库为nuitka,打包命令已经在build.py中配置好,如需更高级玩法请自己摸索
  • 执行build.py,打包好的文件位于build_file/publish文件夹
    1. 此处需注意:真正打包好的文件在Yolo2onnxDetectProjectDemo.dist文件夹
    2. 为了方便debug和更新,在第一次打包成功后需要将此文件夹内所有的文件复制到publish文件夹
      3. 双击运行exe文件,

快速运行(可以直接看此处)

  1. 打开压缩包,直接点击.exe文件
  2. 设置onnx文件的索引路径

在这里插入图片描述
3. 设置输入的模式:图片/视频/摄像头
4. 然后点击运行按钮
在这里插入图片描述
5.最终效果
在这里插入图片描述
鸣谢 xun-xh作者

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟化服务器+华为防火墙+kiwi_syslog访问留痕

一、适用场景 1、大中型企业需要对接入用户的访问进行记录时,以前用3CDaemon时,只能用于小型网络当中,记录的数据量太大时,本例采用破解版的kiwi_syslog。 2、当网监、公安查到有非法访问时,可提供基于五元组的外网访…

在全志XR806上移植st7789屏幕驱动

前言 很高兴有机会参加本次极术社区举办的“「免费试用」搭载安谋科技STAR-MC1的全志XR806 Wi-FiBLE 开发板试用活动”。 去年就对全志的mcu芯片感兴趣了,一直没有机会接触,看到本次极术社区提供的全志wifi BLE开发板试用,就马上参加了。板…

WebGL智慧城市软件项目

WebGL开发智慧城市项目时,需要考虑多个方面,包括技术、隐私、安全和可持续性。以下是一些需要注意的关键问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.隐私和数据安全…

6.3二叉树的层序遍历(LC102,LC107-M)

二叉树的层序遍历(LC102): 算法(长度法): 需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用栈先进后出适合模拟深度优先遍历也就是递归…

【外部服务对接】对接Firebase支持谷歌、Facebook、苹果等第三方平台用户注册登录

【外部服务对接】对接Firebase支持谷歌、Facebook、苹果等第三方平台登录 背景 因主要做国外尼日的市场,相关的应用的全是国外用户使用,为了方便用户的注册和登录,接入国外的统一平台Firebase,集成使用很方便。 主要步骤 1.注册登录Fireb…

如何提高小红书笔记的互动率

相信有很多新手在运营小红书的时候,可能都会遇到过以下这样的情况: 笔记点赞、收藏数据明明还可以,但评论区却没有人留言?为何大家只给点赞、收藏,却不关注账号? 其实,这背后有很多运营技巧&a…

​做好研发管理的三个条件​

1.制造鼓励创新的环境 要做好研发管理,首先要制造一个鼓励创新、适合研发的环境,必须采取弹性而目标化的管理,不以死板的制度限制员工的创意,必须要求实质的成果。 2.融入行销观念 将行销的观念融入研发中:为使有限的…

xlua游戏热更新(lua访问C#)

CS.UnityEngine静态方法访问unity虚拟机 创建游戏物体 CS.UnityEngine.GameObject(new by lua);静态属性 CS.UnityEngine.GameObject(new by lua); -- 创建 local camera CS.UnityEngine.GameObject.Find(Main Camera); --查找 camera.name Renamed by Lua;访问组件 loca…

通配符匹配

题目链接 通配符匹配 题目描述 注意点 s 仅由小写英文字母组成p 仅由小写英文字母、‘?’ 或 ‘*’ 组成‘?’ 可以匹配任何单个字符‘*’ 可以匹配任意字符序列(包括空字符序列) 解答思路 最初想到的是dfs 剪枝,但是用例超时了参照题…

小型企业如何数字化转型?ZohoCRM助力小企业转型

小型企业数字化之路倍加艰难,其组织规模有限、资源有限,数字化布局或转型,也存在与数字平台匹配度的问题。其实小型企业可以通过CRM客户管理系统实现高效的客户关系管理,进一步提高市场竞争力。 建立高效易用的客户关系管理系统 …

OpenAI重磅推出GPTs,无需编码人人可以自定ChatGPT!

原创 | 文 BFT机器人 在11月7日深夜2点(北京时间),美国旧金山举办了首届开发者大会,该活动由AI领域的知名公司OpenAI主办。尽管这是该公司的首届大会,但其盛大的规模和影响力已将其誉为“AI春晚”。在会议上&#xff…

关于echarts封装组件以及多次更新数据信息加载问题

项目中经常使用到echarts插件&#xff0c;使用时会遇到封装组件的问题&#xff0c;一个组件到底怎么封装才是完善的&#xff1f;仁者见仁智者见智思路不同封装的方式就是不同的。废话不多直接上封装的代码&#xff1a; <template><div :id"id" :style"…

OpenGL_Learn08(坐标系统与3D空间)

目录 1. 概述 2. 局部空间 3. 世界空间 4. 观察空间 5. 剪裁空间 6. 初入3D 7. 3D旋转 8. 多个正方体 9. 观察视角 1. 概述 OpenGL希望在每次顶点着色器运行后&#xff0c;我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说&#x…

两台Linux服务器之间传送文件

两台Linux服务器之间传送文件 将U盘上的数据传送到服务器上 本地U盘 远程服务器地址&#xff1a; 192.168.30.125 传送到data文件夹的下面 scp -r coco2017 s192.168.30.125:/data传送 两台Linux服务器之间传送文件的4种方法

pytorch搭建squeezenet网络的整套工程(升级版)

上一篇当中&#xff0c;使用pytorch搭建了一个squeezenet&#xff0c;效果还行。但是偶然间发现了一个稍微改动的版本&#xff0c;拿来测试一下发现效果会更好&#xff0c;大概网络结构还是没有变&#xff0c;还是如下的第二个版本&#xff1a; 具体看网络结构代码&#xff1a…

进程控制——进程的程序替换

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb;进程的程序替换概念&#x…

R语言和jsonlite库编写代码示例

R语言和jsonlite库来下载的程序。 r # 导入jsonlite库 library(jsonlite) # 设置代理主机和端口 proxy_host <- "" proxy_port <- # 使用httr库创建一个对象 proxy <- create_proxy(proxy_host, proxy_port) # 使用httr库的GET方法下载网页内容 url <…

输入网址到网页显示,期间发生了什么?(收藏篇)

解析url 首先浏览器做的第一步工作就是要对 URL 进行解析&#xff0c;从而生成发送给 Web 服务器的请求信息。对 URL 进行解析之后&#xff0c;浏览器确定了 Web 服务器和文件名&#xff0c;接下来就是根据这些信息来生成 HTTP 请求消息了。 DNS解析 通过浏览器解析 URL 并…

学生用什么台灯对眼睛最好?双十一优质好用护眼台灯推荐

护眼台灯作为时下火爆的学生清单单品&#xff0c;深受众多学生以及家长的认可&#xff0c;市面上的护眼台灯品牌众多&#xff0c;但很多品牌存在不合格、劣质、虚假宣传的问题&#xff0c;为了帮大家避坑&#xff0c;我这个资深测评师反复测评了三十多款&#xff0c;今天给大家…

【Linux】进程程序替换

文章目录 替换原理站在进程的角度站在程序的角度初体验及理解原理 替换函数函数解释命名理解exec系列函数与main函数之间的关系在一个程序中调用我们自己写的程序 替换原理 创建子进程的目的是什么&#xff1f; ->想让子进程执行父进程代码的一部分 执行父进程对应的磁盘代码…