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

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

介绍

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.lryc.cn/news/228870.html

相关文章:

  • 工作记录--(用HTTPS,为啥能被查出浏览记录?如何解决?)---每天学习多一点
  • MySQL-基础篇
  • 1.Osmdroid概述
  • Excel表列名称
  • ORDER BY limit 10比ORDER BY limit 100更慢
  • aws亚马逊云:置以使用 Amazon EC2!!!
  • torch.cat()、 torch.add()、torch.subtract()、torch.subtract()和torch.div()函数详解和示例
  • jetsonTX2 nx配置tensorRT加速yolov5推理
  • <<C++primer>>函数模板与类模板相关知识点整理
  • 一小时学习 Git 笔记
  • 简单漂亮的登录页面
  • Leetcode-145 二叉树的后序遍历
  • 详解JDBC
  • 江门車馬炮汽车金融中心 11月11日开张
  • Arthas设置参数以Json形式输出
  • 优雅关闭TCP的函数shutdown效果展示
  • 商品管理幻灯图片更换实现
  • tomcat下载与使用教程
  • 通过 Elasticsearch 和 Go 使用混合搜索进行地鼠狩猎
  • 【LIUNX】配置缓存DNS服务
  • Arduino驱动A01NYUB防水超声波传感器(超声波传感器)
  • curl(八)时间和环境变量以及配置
  • K8S知识点(十)
  • Netty实现通信框架
  • 【OpenCV实现图像:用OpenCV图像处理技巧之白平衡算法】
  • 文件包含 [ZJCTF 2019]NiZhuanSiWei1
  • Java网络编程基础内容
  • DevChat:开发者专属的基于IDE插件化编程协助工具
  • Python数据容器之[列表]
  • 大咖直播间”系列直播课第一期——如何抓住HarmonyOS带来的机遇?