# 使用PyQt的晶粒密集型小目标检测及其直径统计的UI设计 **Repository Path**: zg_buctedu/Crystal_Particle_Diameter_Statistics_UI ## Basic Information - **Project Name**: 使用PyQt的晶粒密集型小目标检测及其直径统计的UI设计 - **Description**: 我们设计了一种晶体粒子测量统计系统,基于YOLOv5算法实现晶粒的形状识别,包括球体、立方体、双锥体等。系统能够实时统计不同形状晶粒的数量,并根据检测框大小计算晶粒直径。此外,系统还能够自动绘制晶粒类别及直径分布的柱状图。我们采用PyQt5框架构建了用户界面,使得系统操作更加友好和直观。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: https://gitee.com/zg_buctedu/Crystal_Particle_Diameter_Statistics_UI - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 1 - **Created**: 2024-04-03 - **Last Updated**: 2025-03-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用PyQt的晶粒密集型小目标检测及其直径统计的UI设计 ## 介绍 我们设计了一种晶体粒子测量统计系统,基于`YOLOv5`算法实现晶粒的形状识别,包括球体、立方体、双锥体等。系统能够实时统计不同形状晶粒的数量,并根据检测框大小计算晶粒直径。此外,系统还能够自动绘制晶粒类别及直径分布的柱状图。我们采用`PyQt5`框架构建了用户界面,使得系统操作更加友好和直观。 ## Demo展示 ![Alt Text](https://gitee.com/zg_buctedu/Crystal_Particle_Diameter_Statistics_UI/raw/master/Crystal_Particle_Diameter_Statistics_UI/demo/demo_video.gif) ## 使用说明 * 安装`anaconda`及其配置环境 不熟悉`pycharm`的`anaconda`的小伙伴请先看这篇`csdn`博客,了解`pycharm`和`anaconda`的基本操作 [安装anaconda及在pycharm中配置虚拟环境](https://blog.csdn.net/ECHOSON/article/details/117220445) * 切换国内镜像源 anaconda安装完成之后请切换国内的源来提高下载速度,命令如下: ```python conda config --remove-key channels conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/ conda config --set show_channel_urls yes pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple ``` * 创建名字为`py38`的虚拟环境 请在终端中执行下列操作: ```python conda create -n py38 python==3.8.3 conda activate py28 ``` * `PyQt5`及其相关包的安装 另外的话大家还需要安装程序其他所需的包,包括`opencv, matplotlib`这些包,不过这些包的安装比较简单,直接通过`pip`指令执行即可 ```python pip install pyqt5 pip install -r Crystal_Particle_Diameter_Statistics_UI/requirements.txt ``` * 运行程序主接口程序 运行 `Crystal_Particle_Diameter_Statistics_UI/main.py`:实现对 `/Crystal_Particle_Diameter_Statistics_UI / test_img / png_img`路径下的图片中晶粒进行目标检测,计数,及直径统计。执行以下命令。 ```python python Crystal_Particle_Diameter_Statistics_UI/main.py ``` * 项目结构 ```python |-- Crystal_Particle_Diameter_Statistics_UI 项目名称 | |-- config 配置指标 | | |-- fold.json | | |-- ip.json | | |-- setting.json | |-- demo 展示视频 | | |-- demo_video.gif | |-- icon UI界面图标 | |-- main_win UI界面设置 | | |-- MouseLabel.py | | |-- win.py | | |-- win.ui | |-- models YOLOv5模型 | | |-- __init__.py | | |-- common.py | | |-- experimental.py | | |-- tf.py | | |-- yolo.py | |-- test_img 测试图片文件夹 | | |-- bar_img | | |-- png_img | |-- utils | | |-- __pycache__ | |-- weights 模型权重文件夹 | | |-- best.pt | | |-- last.pt | |-- main.py 项目主接口 | |-- requirements.txt 依赖包安装文件 ``` ## 依赖环境说明 | 依赖 | 版本 | | --- | --- | | python |3.8| | YOLOv5 | 6.1 | | torch | 1.11.0 | | torchvision | 0.12.0 | | PyQt5-Qt5 | 5.15.2 | | opencv-python | 4.7.0.72 | ## 参考项目 * [YOLACTplus_Blind_Nav_System](https://gitee.com/zg_buctedu/YOLACTplus_Blind_Nav_System) * [YOLO_sort](https://gitee.com/zg_buctedu/YOLO_sort)