xun-xh / yolov5-onnx-pyqt-exe

yolo模型使用cv2推理并使用qt5添加GUI后打包部署。pt模型转onnx模型;opencv.dnn完成推理;pyqt实现可视界面;打包为exe方便移植
100 stars 17 forks source link
deep-learning gui machine-learning nuitka onnx pyqt yolov5

基于Yolov5 + onnx + PyQt5 + 的目标检测打包部署


English | 简体中文

*如遇问题,请提issue*



实现

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

展示

成品下载体验:https://download.kstore.space/download/3190/plugin/publish.zip (130MB)

主界面

主界面

功能

  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
  • 如果不报错的话将会出现界面,有报错又不知道怎么解决的话可以提issue,看到回复
  • 点击按钮开始检测,高阶玩法参考need/self_demo.py

训练自己的数据集并转换为此项目可用的模型

打包为可执行文件

  • 所用库为nuitka,打包命令已经在build.py中配置好,如需更高级玩法请自己摸索
  • 执行build.py,打包好的文件位于build_file/publish文件夹
    1. 此处需注意:真正打包好的文件在Yolo2onnxDetectProjectDemo.dist文件夹
    2. 为了方便debug和更新,在第一次打包成功后需要将此文件夹内所有的文件复制到publish文件夹
    3. 双击运行exe文件,根据报错信息将模块也复制到publish文件夹内,直到成功运行
  • 附nuitka的使用方法:知乎@Python与模具