Python + 基于工业的表面缺陷检测网络

注: 这是在19年10月份看到的一片文章,自己试验了一下感觉效果不错,在这里做一个记录。
链接:表面缺陷检测文章
原理此文章中已经有详细的概述,这里不多做解释
优点: 用较少的数据集就能够达到很好的效果
论文下载:论文地址
数据下载: 数据集
模型下载:Github缺陷检测网络下载链接
源码连接:源码以及测试步骤
效果:
Python + 基于工业的表面缺陷检测网络_第1张图片
Python + 基于工业的表面缺陷检测网络_第2张图片
Python + 基于工业的表面缺陷检测网络_第3张图片
Python + 基于工业的表面缺陷检测网络_第4张图片
Python + 基于工业的表面缺陷检测网络_第5张图片
Python + 基于工业的表面缺陷检测网络_第6张图片
Python + 基于工业的表面缺陷检测网络_第7张图片
Python + 基于工业的表面缺陷检测网络_第8张图片
因为用的自己的笔记做训练的所以,图像进行了切割
将所有文件下载好之后,可以直接进行训练,也可指制作自己的数据集进行训练,步骤如下:
1、制作数据集
一张原图对应一张Mark图,可以使用Labelme 将缺陷区域涂成白色,也可以使用其他方法,如果图像没有缺陷就不做标记,保证数据集中好的和不好的都有。
2、确认参数
数据集制作好之后,根据数据的数量以及不良数据集的Index,修改config.py 中的参数,这个文件中记录的是每个文件夹中的不良图片的位置,要保证一一对应,不然会影响训练的效果。
Python + 基于工业的表面缺陷检测网络_第9张图片
修改数据集中训练的样本的比例:
打开agent.py找到listData1函数,修改test_ratio 参数即可Python + 基于工业的表面缺陷检测网络_第10张图片
3、开始训练
在cmd窗口中输入 python run.py -test,开始训练
训练的过程中每3次会进行一次模型预测,效果如下:
3次预测效果Python + 基于工业的表面缺陷检测网络_第11张图片
555次预测效果
Python + 基于工业的表面缺陷检测网络_第12张图片
可以看到图像的效果已经很好了
下面是复杂花纹的图像训练预测效果:
5次训练
470次训练效果

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

你可能感兴趣的:(学习)