一种基于卷积神经网络和主动学习的瓷砖表面缺陷识别方法与流程

文档序号:14445639阅读:258来源:国知局
一种基于卷积神经网络和主动学习的瓷砖表面缺陷识别方法与流程

本发明属于缺陷检测识别技术领域,更具体地涉及一种基于卷积神经网络和主动学习的瓷砖表面缺陷识别方法。



背景技术:

在陶瓷墙地砖生产过程中,由于制造工艺的不当,或者搬运过程中的碰撞,瓷砖表面会出现缺釉,裂纹,刮痕等缺陷,这些缺陷会影响瓷砖作为建筑装饰材料的美观性,目前瓷砖表面缺陷检测仍大量依靠人工完成,这种方法不仅效率低下,且容易受到检测人员的直观感受影响,近年来,利用机器视觉的自动化检测产品表面缺陷方法不断得到重视。

现有技术已存在少量瓷砖表面缺陷检测方法,主要利用人工选择区分度高的特征并提取,然后通过bp神经网络、模板匹配等方法进行分类。上述方法需要很好的特征选择方面的先验知识,且针对不同的缺陷类型需要选择不同的特征,适用性差。近几年,深度学习方法在图像识别问题上有很高的准确率,虽然在瓷砖表面检测领域尚未应用,但在相邻技术领域已经出现。例如,公开号为cn104850858a的专利公开了“一种注塑制品缺陷检测方法”,包括以下步骤:采集正常和存在已知缺陷的注塑制品的图像;构建多层卷积神经网络并训练;将采集到的实测注塑制品图像经过灰度化,图像缩放和图像归一化后输入到已训练的网络模型并判断属于哪种缺陷类型。该方法改进了传统的缺陷检测方法,使用了一种“端到端”的模型,不再需要很好的缺陷特征方面的先验知识。但是该方法总共有4300张注塑制品样本图片需要标记,且需要识别的缺陷类型只有2种。瓷砖表面涉及的缺陷类型更多,为保证分类结果的准确率需要更多已标注的训练样本,给企业带来额外的标注成本。

在机器学习领域,可以采取主动学习的方法降低人工标注的工作量。主动学习的主要思想为;在大量未标记的样本中,采取特定的采样策略,挑选少量最具信息量的样本交给人类专家标注,并使用标记过的样本训练模型,实现对未知样本的分类。目前,主动学习方法根据样本挑选策略和样本数据的形式,可以分为基于“流”和基于“池”的两种方法。基于流的方法是指未标记样本一个一个进入分类器,分类器考虑是否对其标记,还是舍弃,这种方法时间复杂度很高。更为普遍的是基于池的主动学习方法,主要步骤是首先给予少量标注样本训练一个初始分类器,再在未标记样本中挑选一些样本标记,并将其加入到训练集中重新训练分类器,如此循环直到达到某个条件停止。



技术实现要素:

本发明要克服现有技术的不足,提供一种基于卷积神经网络和主动学习的瓷砖表面缺陷识别方法,通过卷积神经网络可以避免人工选择特征,并结合主动学习降低样本的人工标注量。

本发明的基于卷积神经网络和主动学习的瓷砖表面缺陷识别方法,包括如下步骤:

步骤1、获取含缺陷的瓷砖表面图像,数量应不少于1000张,并进行预处理;

步骤2、对预处理后的瓷砖表面图像通过滑动窗口法获得更多的图像块,其集合为u,

对其均分成5份,即u={u1,u2,u3,u4,u5},对u1进行标注作为初始训练集;

步骤3、建立卷积神经网络,并使用u1作为当前训练集ureal训练;

步骤4、从u中选择一个未使用过的数据集(例如u2),利用主动学习样本挑选策略从其中挑选信息量最大的样本,进行人工标注后加入ureal,并利用ureal重新训练卷积神经网络;

步骤5、循环执行步骤4,直到模型准确率达到要求,或者u中没有未使用过的数据集,最终得到训练好的卷积神经网络;

步骤6、对需要检测的瓷砖表面图像进行预处理后加入到训练好的卷积神经网络,输出包含的缺陷类型;

所述步骤1和步骤6的预处理步骤相同,具体包括以下步骤:

(1-1)将需要处理的图像进行灰度变换得到灰度图像;

(1-2)对灰度图像使用canny边缘检测算法得到边缘图像;

(1-3)将边缘图像使用概率霍夫变换得到4条边沿直线的8个端点的坐标,并计算4条边沿直线的交点(即瓷砖表面4个角点)的坐标;

(1-4)利用步骤3)中瓷砖表面4个角点的坐标,再加上给定转换后四对像素点坐标,通过透视变换得到大小一致(64×64),无倾斜的瓷砖表面图像;

所述步骤3中卷积神经网络包括依次级联的卷积层c1,池化层s1,卷积层c2,池化层s2,卷积层c3,池化层s3,卷积层c4全连接层f1,softmax层,具体如下:

c1层:输入为64×64的图像块,采用32个大小为5×5的卷积核,步长为1,通过用全0填充得到32张64×64的特征图;

s2层:采用最大值操作的方法,所用过滤器大小为2×2,步长为2,输出32张大小为32×32的特征图;

c2层:采用64个大小为5×5的卷积核,步长为1,不使用全0填充,得到64张28×28的特征图;

s2层:采用最大值操作的方法,所用过滤器大小为2×2,步长为2,输出64张14×14的特征图;

c3层:采用128个大小为5×5的卷积核,步长为1,不使用全0填充,得到128张10×10的特征图;

s3层:采用最大值操作的方法,所用过滤器大小为2×2,步长为2,输出128张5×5的特征图;

c4层:采用256个大小为5×5的卷积核,256张1×1的特征图;

f1:输入节点个数为256,输出节点个数为4,记为{y0,y1,y3,y4},依次代表{不含任何缺陷,缺釉,裂纹,刮痕};

softmax层:将f1的输出变成概率分布;

所述步骤4中主动学习样本挑选策略为:

(4-1):用步骤3训练好的卷积神经网络测试未标注数据集中每个样本,得到每个样本属于各个类别的概率,用p表示每个样本的不确定性,表达式如下:

其中λ为正的权重参数,

(4-2)每个样本的p从小到大排序,挑选前20%的样本作为信息量最大的样本进行人工标注;

本发明的优点是:使用卷积神经网络自动提取瓷砖表面缺陷的特征,在缺陷特征提取方面不再需要很好的先验知识,而且可以识别一张待检测图像中的多种缺陷类型;通过在卷积神经网络训练中引入主动学习,有效减少样本的标注成本,加速模型的收敛。

附图说明

图1是本发明方法的流程示意图。

图2是本发明方法的瓷砖表面图像预处理的示意图。

图3是本发明方法的主动学习示意图。

具体实施方式

本发明提供一种基于卷积神经网络和主动学习的瓷砖表面缺陷检测方法,为了进一步说明本发明的技术方案,下面结合附图并举实例进行说明。应当理解,此处所举的实例仅仅用于解释本发明,并不用于限定本发明。

如图1所示,一种基于卷积神经网络和主动学习的瓷砖表面缺陷检测方法包括如下步骤:

(1)获取图像并预处理:获取含缺陷的瓷砖表面图像,数量应不少于1000张,并进行预处理。

(2)训练集的建立:预处理后的瓷砖表面图像通过滑动窗口法获得更多的图像块,其集合为u,对其均分成5份,即u={u1,u2,u3,u4,u5},对u1进行标注作为初始训练集。

(3)卷积神经网络的建立与训练:建立卷积神经网络,并使用u1作为当前训练集ureal训练。

(4)主动学习:从u中选择一个未使用过的数据集(例如u2),利用主动学习样本挑选策略从其中挑选信息量最大的样本,进行人工标注后加入ureal,并利用ureal重新训练卷积神经网络。

(5)模型迭代:循环执行步骤(4),直到模型准确率达到要求,或者u中没有未使用过的数据集,最终得到训练好的卷积神经网络。

(6)在线检测:对需要检测的瓷砖表面图像进行预处理后加入到训练好的卷积神经网络,输出包含的缺陷类型。

下面结合实例对上述步骤进行更加详细地解释。

所述的获取图像并预处理如图2所示,具体包括如下步骤:

(101)使用工业相机获取1000张含缺陷的瓷砖表面图像。

(102)灰度转换

本步骤主要是将工业相机采集到的大量彩色图片变成灰度图像,方便之后的边缘检测,所用的公式为:

gray=r*0.299+g*0.587+b*0.114

(103)边缘检测

本步骤采用canny边缘检测算法进行边缘检测。canny边缘检测算法一直是边缘检测的经典算法,其目标是找到一个最优的边缘检测算法,要求尽可能多地标识出图像中的实际边缘,且标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近。

canny边缘检测算法的原理简单来说包含:对灰度图像高斯滤波;用一阶偏导的有限差分来计算梯度的幅值和方向;对梯度幅值进行非极大值抑制;用双阈值算法检测和连接边缘。

(104)概率霍夫变换

本实例的对象为日用瓷砖,为方形,其边沿为直线,本步骤在步骤(102)得到的边沿图像上通过概率霍夫变换(probabilistichoughtransform)得到4条直线的8个端点的坐标。霍夫变换提取直线的步骤如下:

s1:随机抽取图像中的边缘点,如果该点已经被标定为是某一条直线上的点,则继续在剩下的边缘点中随机抽取一个边缘点,直到所有边缘点都抽取完了为止。

s2:对该点进行霍夫变换,并进行累加和计算.

s3:选取在霍夫空间内值最大的点,如果该点大于阈值的,则进行步骤s4,否则回到步骤s1。

s4:根据霍夫变换得到的最大值,从该点出发,沿着直线的方向位移,从而找到直线的两个端点。

s5:计算直线的长度,如果大于某个阈值,则被认为是好的直线输出,回到步骤1。

(105)透视变换

在实际应用中,采集图像的工业相机可能发生意外的位置旋转等问题,使得采集到的瓷砖图像出现倾斜。因此,本步骤针在(103)得到4条边沿直线的基础上采用透视变换得到大小一致,无倾斜的彩色瓷砖表面图像。

透视变换的公式为:

其中(u,v)为原始图像像素坐标,(x=x’/w’,y=y’/w’)为变换之后的图像像素坐标。利用步骤(103)得到4条直线的表达式,可以求得原图像中瓷砖4个角点的坐标,再加上给定透视变换对应的四对像素点坐标,即可求得透视变换矩阵。实现倾斜图像到大小一致,无倾斜的彩色瓷砖表面图像的转换。

所述训练集的建立具体步骤如下:

(201)由于采集到的原始图像大小为600×800,可能存在两种或更多的缺陷类型,因此本步骤通过滑动窗口法,用64×64的滑动窗口,步长为32,将原始图像分成多个图像块(总集合记为u),通过这种方法既能够尽可能地将不同的缺陷类型分隔开来。

(202)本发明选择的是基于池(pool)的主动学习方法,因此需要将全部的图像块样本均分为5份,即u={u1,u2,u3,u4,u5}。

所述卷积神经网络的建立和训练具体步骤如下:

卷积神经网络的结构包括依次级联的卷积层c1,池化层s1,卷积层c2,池化层s2,卷积层c3,池化层s3,卷积层c4全连接层f1,softmax层,具体如下:

c1层:输入为64×64的3通道彩色图像块,采用32个大小为5×5的卷积核,步长为1,通过用全0填充得到32张64×64的特征图。

s2层:采用最大值操作的方法,所用过滤器大小为2×2,步长为2,输出32张大小为32×32的特征图。

c2层:采用64个大小为5×5的卷积核,步长为1,不使用全0填充,得到64张28×28的特征图。

s2层:采用最大值操作的方法,所用过滤器大小为2×2,步长为2,输出64张14×14的特征图。

c3层:采用128个大小为5×5的卷积核,步长为1,不使用全0填充,得到128张10×10的特征图。

s3层:采用最大值操作的方法,所用过滤器大小为2×2,步长为2,输出128张5×5的特征图。

c4层:采用256个大小为5×5的卷积核,256张1×1的特征图。

f1:输入节点个数为256,输出节点个数为4,记为{y0,y1,y3,y4},依次代表{不含任何缺陷,缺釉,裂纹,刮痕}。

softmax层:将f1的输出变成概率分布。

网络的训练:需要先标注u1中的图像,作为当前训练集ureal。实际训练中,将ureal按6:2:2分为训练集,验证集,测试集,采用交叉验证法调优。其中网络的权重初始参数满足均方差为0.01,均值为0的高斯分布,初试偏差参数全为零。

所述主动学习如图3所示,具体步骤如下:

本步骤的目的是通过预先设定的挑选策略,挑选含信息量最大的样本进行人工标注,从而降低人工标注的劳动量。主动学习样本的挑选策略主要分为基于不确定性和基于委员会投票的。本发明针对实际情况,使用了一种改进的基于不确定性样本挑选策略,具体步骤如下:

(401)用训练好的卷积神经网络测试u2中每个样本,可以得到每个样本属于各个类别的概率,用p表示每个样本的不确定性,表达式如下:

其中:

其中表示某个样本最大后验概率和次大后验概率的差,其值越大,代表该样本不确定性越大,越值得标注。但在实际问题中,训练集u中不含缺陷的图像块要多于含缺陷的图像块,所以我们更偏向于含缺陷的图像块加入到当前数据集。例如有两个样本的卷积神经网络前向传播结果为{y0,y1,y3,y4}={0.4,0.4,0.1,0.1},{y0,y1,y3,y4}={0.1,0.4,0.4,0.1},两者最大后验概率和次大后验概率相同,但后一个样本更有可能含有缺陷,我们更希望选择后面一个样本,所以引入λ×p(y0|x)一项,其中λ为权重参数,当其值为0,就退化为传统的基于不确定性抽样策略。p越小,样本所含信息量越大。因此对u2中每个样本的p从小到大排序,挑选前20%的样本(其集合记为u2′)加入到当前数据集,此时ureal={u1,u2′}。

(402)用ureal重新训练卷积神经网络

所述模型迭代步骤具体如下:

依次从u3,u4,u5发挑选需要标注的样本,加入ureal,并重新训练卷积神经网络,直到模型准确率达到预先要求,或者没有待标注样本。

所述在线检测步骤具体如下:

本步骤使用最终得到的卷积神经网络识作为分类器别待检测图像,首先需要仍需要将原始图像预处理,具体方法同步骤(1),然后统计分类器的输出结果,可以得到原始图像包含哪些缺陷。

本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1