注: 这是在19年10月份看到的一片文章,自己试验了一下感觉效果不错,在这里做一个记录。

链接:表面缺陷检测文章 原理此文章中已经有详细的概述,这里不多做解释

优点: 用较少的数据集就能够达到很好的效果

论文下载:论文地址

数据下载: 数据集

模型下载:Github缺陷检测网络下载链接

源码连接:源码以及测试步骤

效果:

python 缺陷检测案例 零件图缺陷检测python_数据集


python 缺陷检测案例 零件图缺陷检测python_python_02


python 缺陷检测案例 零件图缺陷检测python_数据集_03


python 缺陷检测案例 零件图缺陷检测python_python_04


python 缺陷检测案例 零件图缺陷检测python_python 缺陷检测案例_05


python 缺陷检测案例 零件图缺陷检测python_python_06


python 缺陷检测案例 零件图缺陷检测python_python 缺陷检测案例_07


python 缺陷检测案例 零件图缺陷检测python_数据集_08


因为用的自己的笔记做训练的所以,图像进行了切割

将所有文件下载好之后,可以直接进行训练,也可指制作自己的数据集进行训练,步骤如下:

1、制作数据集

一张原图对应一张Mark图,可以使用Labelme 将缺陷区域涂成白色,也可以使用其他方法,如果图像没有缺陷就不做标记,保证数据集中好的和不好的都有。

2、确认参数

数据集制作好之后,根据数据的数量以及不良数据集的Index,修改config.py 中的参数,这个文件中记录的是每个文件夹中的不良图片的位置,要保证一一对应,不然会影响训练的效果。

python 缺陷检测案例 零件图缺陷检测python_数据_09


修改数据集中训练的样本的比例:

打开agent.py找到listData1函数,修改test_ratio 参数即可

python 缺陷检测案例 零件图缺陷检测python_数据集_10


3、开始训练

在cmd窗口中输入 python run.py -test,开始训练

训练的过程中每3次会进行一次模型预测,效果如下:

3次预测效果

python 缺陷检测案例 零件图缺陷检测python_数据_11


555次预测效果

python 缺陷检测案例 零件图缺陷检测python_python_12


可以看到图像的效果已经很好了

下面是复杂花纹的图像训练预测效果:

5次训练

python 缺陷检测案例 零件图缺陷检测python_python_13


470次训练效果

python 缺陷检测案例 零件图缺陷检测python_数据集_14


由于是灰度图像,训练时图像的明暗程度会直接对训练的效果造成影响。