基于PP-PicoDet的钢铁缺陷检测

基于PP-的钢铁缺陷检测1.背景介绍
近年来,AI视觉检测在安防、工业制造等产业智能化升级进程中发挥着举足轻重的作用 。
自动检查和缺陷检测系统使用 AI 来检查零部件的故障和缺陷 。通过这种方法,制造厂能够自动检测成品表面的缺陷,该方法广泛应用于金属、半导体晶圆和隐形眼镜等制造领域 。
本项目为满足实际工业部署和实时性需求选择PP-模型,降低了检测硬件的配置需求,实现了从图像中识别出钢铁表面的缺陷位置,并给出锚点框的坐标,同时对不同的缺陷进行分类的功能 。
2.数据集介绍
本数据集来自NEU表面缺陷检测数据集,收集了6种典型的热轧带钢表面缺陷,即氧化铁皮压入(RS)、斑块(Pa)、开裂(Cr)、点蚀(PS)、夹杂(In)和划痕(Sc) 。
3. 技术方案3.1PP-模型特点:
方案选择PP-轻量化模型,主要看中PP-体积小、速度快、精度较高的优势,非常适合本项目的部署环境和性能要求 。同时,飞桨提供的预训练模型也可以最大程度上提升模型的收敛速度和精度 。
3.2 PP-模型结构介绍
已更新至2.4 版本,增强版 将从 ESnet 换成了 LCNet,将 neck 中的 CSP换成了 LCNet。CSP-PAN
4. 安装说明
环境要求:
# 克隆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 --upgrade pip -i https://mirror.baidu.com/pypi/simple!pip install "paddlex>2.0.0" -i https://mirror.baidu.com/pypi/simple
#/home/aistudio/data/steel/train/文件夹下的ANNOTATIONS和IMAGES---移动变为Annotations和JPEGImages文件夹!mv /home/aistudio/PaddleDetection/dataset/steel/train/ANNOTATIONS/home/aistudio/PaddleDetection/dataset/steel/train/Annotations!mv /home/aistudio/PaddleDetection/dataset/steel/train/IMAGES/home/aistudio/PaddleDetection/dataset/steel/train/JPEGImages
5.2 拆分数据集
#使用paddleX拆分数据集(可参考5.3处链接)!paddlex --split_dataset --format VOC --dataset_dir /home/aistudio/PaddleDetection/dataset/steel/train --val_value 0.2 --test_value 0.1
0.7的训练集,0.2的验证集,0.1的测试集,Train数量为:980、Eval 数量为:280,测试的数量为:140