基于飞桨PP-PicoDet的钢铁缺陷检测
1.背景介绍
自动检查和缺陷检测系统使用 AI 来检查零部件的故障和缺陷。通过这种方法,制造厂能够自动检测成品表面的缺陷,该方法广泛应用于金属、半导体晶圆和隐形眼镜等制造领域。
本项目为满足实际工业部署和实时性需求选择PP-PicoDet模型,降低了检测硬件的配置需求,实现了从图像中识别出钢铁表面的缺陷位置,并给出锚点框的坐标,同时对不同的缺陷进行分类的功能。
2.数据集介绍
本数据集来自NEU表面缺陷检测数据集,收集了6种典型的热轧带钢表面缺陷,即氧化铁皮压入(RS)、斑块(Pa)、开裂(Cr)、点蚀(PS)、夹杂(In)和划痕(Sc)。
数据集来源:钢铁缺陷检测挑战赛-训练集数据
钢铁缺陷检测挑战赛-测试集数据
3. 技术方案
3.1PP-PicoDet模型特点:
方案选择PP-PicoDet轻量化模型,主要看中PP-PicoDet体积小、速度快、精度较高的优势,非常适合本项目的部署环境和性能要求。同时,飞桨提供的预训练模型也可以最大程度上提升模型的收敛速度和精度。
3.2 PP-PicoDet模型结构介绍
paddleDetection 已更新至2.4 版本,picodet增强版 将 backbone 从 ESnet 换成了 LCNet,将 neck 中的 CSP module 换成了 LCNet module。CSP-PAN
4. 安装说明
环境要求:
PaddlePaddle = 2.4.0
Python = 3.7.4
PaddleDetection = 2.4 (PaddleDetection官方说明)
#克隆PaddleDetection仓库
# 只有第一次运行空项目时需要执行
!git clone https://github.com/PaddlePaddle/PaddleDetection.git
#配置目标检测路径 (进入到PaddleDetection工作目录)#没加~第二次运行找不到
%cd ~/PaddleDetection/
#安装Python依赖库。Python依赖库在requirements.txt中给出。(本地)
!pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
!pip install paddledet>=2.2.2 -i https://mirror.baidu.com/pypi/simple
# 编译安装paddledet
# 每次启动项目后都需要先执行
!python setup.py install
#!python ppdet/modeling/tests/test_architectures.py
#不加#运行测试后单卡训练运行会报错,去掉该段程序也会报错(该段代码需带#运行)
5. 数据处理
5.1数据准备
# unzip 解压文件-d创建解压后文件存放目录,并rm移除多余的目录 断网再次运行需删除PaddleDetection/dataset/steel这个文件夹
! unzip /home/aistudio/data/data105746/train.zip -d /home/aistudio/PaddleDetection/dataset/steel
!rm -r /home/aistudio/data/steel/__MACOSX
! unzip /home/aistudio/data/data105747/test.zip -d /home/aistudio/PaddleDetection/dataset/steel
!rm -r /home/aistudio/data/steel/__MACOSX
# 安装paddlex 用于拆分数据集
# 升级pip
!pip install -