基于Yolov5 + PyQt5 + onnxruntime的目标检测项目
实现:
- Yolov5训练个人数据集
- 将pt格式转换为onnx格式
- 使用onnxruntime进行检测
- 并在Windows平台打包为可执行程序
优点:
- 脱离torch环境
- CUDA加速
- 部署简单
- 打包压缩后仅100MB左右
展示
主界面
功能
- 实时帧数
- 重定向控制台输出到软件界面上
- 支持识别摄像头和视频,命令行支持识别文件夹下的图片
- 随时更改置信度、IOU阈值
- 显示/关闭锚框
- 更改锚框宽度及颜色
- 打印/隐藏检测结果
- 录制检测视频
- 保存实时截图
- 保存控制台记录
- 自定义脚本触发器,每次检测都会触发,利用此功能可实现很多sao操作
打包为可执行文件
- 执行
build.py
,打包好的文件位于build_file/publish
文件夹,将此文件夹压缩并发给其他人,他人解压后即可直接使用,无需安装python环境和任何模块- 所用库为nuitka,打包命令已经在
build.py
中配置好,如需更高级玩法请自己摸索- 附nuitka的基础使用方法:知乎@Python与模具
项目需求 (详见GitHub)
- 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
仓库自带两个onnx模型,一个是官方的yolov7-tiny_640x640.onnx,一个是自己训练的安全帽识别模型,位于need/models文件夹
训练自己的数据集
- 所用Yolov5版本为5.0,如果想兼容其他版本请自行修改代码,Yolov5 v5.0传送门
- 训练完成后按照官方命令转为onnx格式。本仓库的模型转换命令为
python models/export.py --weights ./weights/yolov5s.pt --img 640 --batch 1
项目地址:
https://github.com/xun-xh/yolov5-onnx-pyqt-exe
https://gitee.com/xun_hh/yolov5-onnx-pyqt-exe
欢迎star & issue