Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/xun-xh/yolov5-onnx-pyqt-exe

yolo模型使用cv2推理并使用qt5添加GUI后打包部署。pt模型转onnx模型;opencv.dnn完成推理;pyqt实现可视界面;打包为exe方便移植
https://github.com/xun-xh/yolov5-onnx-pyqt-exe

deep-learning gui machine-learning nuitka onnx pyqt yolov5

Last synced: 12 days ago
JSON representation

yolo模型使用cv2推理并使用qt5添加GUI后打包部署。pt模型转onnx模型;opencv.dnn完成推理;pyqt实现可视界面;打包为exe方便移植

Lists

README

        

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

---
[English](.github/README_en.md) | 简体中文

## \***如遇问题,请提issue**\*

---

* [实现](#实现)
* [展示](#展示)
* [成品下载体验](#展示)
* [主界面](#主界面)
* [功能](#功能)
* [项目需求](#项目需求-详见requirementstxt)
* [使用方法](#使用方法)
* [快速入门](#快速入门)
* [训练自己的数据集并转换为此项目可用的模型](#训练自己的数据集并转换为此项目可用的模型)
* [打包为可执行文件](#打包为可执行文件)

---

### 实现

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

---

### 展示

#### ***成品下载体验: (130MB)***

#### ***主界面***

> ![主界面](https://img-blog.csdnimg.cn/img_convert/0924c2117f8f5b570afd0a099638282d.jpeg)

#### ***功能***
>
> 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`
>
>#### ***训练自己的数据集并转换为此项目可用的模型***
>
> * 推荐用Yolov5 5.0版本,如果想兼容其他版本请自行修改代码,[Yolov5 5.0传送门](https://github.com/ultralytics/yolov5/tree/v5.0)
> * 训练教程:[目标检测---教你利用yolov5训练自己的目标检测模型](https://blog.csdn.net/jiaoty19/article/details/125614783)
> * 训练完成后按照[官方命令](https://github.com/ultralytics/yolov5/issues/251)转为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文件,根据报错信息将模块也复制到`publish`文件夹内,直到成功运行
> * 附nuitka的使用方法:[知乎@Python与模具](https://zhuanlan.zhihu.com/p/341099225)

---