# scratch-detect
**Repository Path**: trgtokai/scratch-detect
## Basic Information
- **Project Name**: scratch-detect
- **Description**: 基于yoloV5模型开发的一个识别产品外观伤痕 瑕疵的检测模型
A detection model for identifying product appearance scratches and defects developed based on the yoloV5 model. Pyqt, Pytorch
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: https://gitee.com/trgtokai/scratch-detect
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 0
- **Created**: 2023-06-23
- **Last Updated**: 2025-10-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### Readme English [https://gitee.com/trgtokai/scratch-detect/blob/master/readme.md](https://gitee.com/trgtokai/scratch-detect/blob/master/readme.md)
### 中文 Chinese [https://gitee.com/trgtokai/scratch-detect/blob/master/readme-CN.md](https://gitee.com/trgtokai/scratch-detect/blob/master/readme-CN.md)
### 日本語 Japanese [https://gitee.com/trgtokai/scratch-detect/blob/master/readme-JP.md](https://gitee.com/trgtokai/scratch-detect/blob/master/readme-JP.md)
…………………………………………………………………………………………………………………………………………………………………………………………………………
## 项目名称: 【Scratch-detect】伤痕检测
### 一、提示 Tips
这个程序基于[YOLOv5 v6.1](https://github.com/ultralytics/yolov5/tree/v6.1)
**硬件平台:**
摄像头:海康MV-CU050-90UC
PLC:三菱FX3S+modbus模块
触摸屏:威纶通MT8072IP
光源:海康环形光源MV-LRSS-H-80-W
光源控制器:[数字8通道光源控制器](https://detail.tmall.com/item.htm?abbucket=1&id=656543446110&rn=21d65f2d271defe4d3b29e10ced9b2a5&spm=a1z10.5-b.w4011-23573612475.52.201646d6ZWIsQh&skuId=4738283905874)
**主机建议配置 Hardware:**
1.CPU:i7 13700k及以上
2.显卡:RTX3050及以上(只支持NVIDIA显卡)
3.内存:建议16G以上
4.硬盘:建议1TB及以上
**软件平台 Software:**
1.系统:win10 x64
2.驱动:[海康MVS](https://www.hikrobotics.com/cn2/source/support/software/MVS_STD_4.3.2_240529.zip)、[威纶通EBPRO](https://www.weinview.cn/Admin/Others/DownloadsPage.aspx?nid=3&id=10917&tag=0&ref=download&t=a4ff8b5703a191fe)、[NVIDIA显卡驱动](https://cn.download.nvidia.com/Windows/555.99/555.99-desktop-win10-win11-64bit-international-nsd-dch-whql.exe)、[三菱GXWORKS2](https://www.mitsubishielectric-fa.cn/site/file-software-detail?id=18)等
3.Python环境:[anaconda](https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Windows-x86_64.exe)
4.PythonIDE:[PyCharm Community Edition](https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC)
5.Python版本:Python3.8
6.版本控制:[Git](https://git-scm.com/download/win)
**AI检测程序 Code:**
1. 克隆/下载 此项目全部文件到本地电脑
2. 使用 Pycharm 或其他 IDE软件 打开此项目
3. 配置环境 并确保所有依赖包都成功安装(清单=requirement-trg.txt)
4. 运行主程序 main.py
5. 如果希望运行你自己的检测模型,请把训练好的模型文件 放入 pt文件夹,然后在UI界面中选择对应的PT文件
### 二、演示视频 Demo
中国地区 Bilibili Demo ↓
[https://www.bilibili.com/video/BV1nz421S7KR](https://www.bilibili.com/video/BV1nz421S7KR)
中国以外地区 YouTube Demo ↓
[https://youtu.be/mEYHFr3ZQhM](https://youtu.be/mEYHFr3ZQhM)
### 三、安装方式 Installation
1.在克隆仓库代码前,需要安装好anaconda、PyCharm、Git等工具
2.使用以下代码,将代码克隆至本地,创建Python环境,安装依赖包
```bash
git clone https://gitee.com/trgtokai/scratch-detect.git
cd scratch-detect
conda create -n yolov5_pyqt5 python=3.8
conda activate yolov5_pyqt5
pip install -r requirement-trg.txt
```
3.torch及torchvision文件较大,下载较缓慢,可通过国内源(清华源/阿里源等)进行下载
并将下载好的文件放置在D:\code\scratch-detect\install_torch\文件夹内、放入后可使用以下代码进行安装
download torch可 ↓
https://download.pytorch.org/whl/torch/
download torchvision ↓
https://download.pytorch.org/whl/torchvision/
```bash
pip install -r requirement-torch Local Installation.txt
```
如果出现安装失败,打开requirement-torch Local Installation.txt修改文件名与下载的文件一致即可
4.安装过程中出现pycocotool编译报错则需要下载并安装visual studio C++ build tools
5.依赖安装完成后,使用以下代码运行程序
```bash
python main.py
```
### 四、功能 Functions
1. 支持图片、视频、多摄像头及网络rtsp串流作为输入
2. 下拉菜单更换训练模型
3. 拖动按钮调节 IoU
4. 拖动按钮调节 置信度
5. 设置延时
6. 启动、暂停、停止功能(停止功能BUG待修复)
7. 结果统计并实时显示在威纶通触摸屏中
8. 识别到目标图片后自动保存
9. 使用ModbusRTU协议与PLC进行通讯
10. 识别到异常目标时触发三色灯及警报
11. 使用触摸屏控制检测程序启动
12. 程序异常退出自动重启检查(需PLC线圈信号)
**运行界面:**

### 五、文件构成 Files
1. ./data/ —— 训练脚本
2. ./pt/ —— 模型文件储存位置
3. ./plc/ —— PLC工程文件及触摸屏工程文件
4. ./runs/ —— 运行结果储存位置
5. ./ui_files/ —— GUI可视化界面源代码储存位置
6. ./main.py —— 主程序
7. ./train.py ——模型训练程序
8. ./requirement-trg.txt —— 依赖包清单
9. ./requirement-torch Local Installation.txt —— 本地依赖包清单
### 六、程序结构 Network
**程序结构见下图:**

### 七、模型训练 Trains
1. 使用[labelImg](https://blog.csdn.net/klaus_x/article/details/106854136)对图片进行标注
2. 修改data中的训练脚本的训练集位置,详细[点击这里](https://blog.csdn.net/qq_45945548/article/details/121701492)
3. 训练适合自己使用的模型文件,将模型文件放入./pt中即可在主程序main.py运行时选取使用
### 八、联系我们
如果程序有BUG或其他建议,可通过本站私信@li-chey / @Alex_Kwan