Yolov5训练+ PyQt5界面+ onnxruntime检测+ nuitka打包部署

基于Yolov5 + PyQt5 + onnxruntime的目标检测项目

实现:

  • Yolov5训练个人数据集
  • 将pt格式转换为onnx格式
  • 使用onnxruntime进行检测
  • 并在Windows平台打包为可执行程序

优点:

  • 脱离torch环境
  • CUDA加速
  • 部署简单
  • 打包压缩后仅100MB左右

展示

主界面
Yolov5训练+ PyQt5界面+ onnxruntime检测+ nuitka打包部署_第1张图片

功能

  1. 实时帧数
  2. 重定向控制台输出到软件界面上
  3. 支持识别摄像头和视频,命令行支持识别文件夹下的图片
  4. 随时更改置信度、IOU阈值
  5. 显示/关闭锚框
  6. 更改锚框宽度及颜色
  7. 打印/隐藏检测结果
  8. 录制检测视频
  9. 保存实时截图
  10. 保存控制台记录
  11. 自定义脚本触发器,每次检测都会触发,利用此功能可实现很多sao操作
    Yolov5训练+ PyQt5界面+ onnxruntime检测+ nuitka打包部署_第2张图片
    Yolov5训练+ PyQt5界面+ onnxruntime检测+ nuitka打包部署_第3张图片

打包为可执行文件

  • 执行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

你可能感兴趣的:(python,深度学习,计算机视觉,qt5)