本发明属于图像处理技术领域,更进一步涉及一种拉链异常检测方法,可应用于工业制造的自动化流水线中衣物品上拉链的异常检测,降低生产成本。
背景技术:
拉链在日常生活中普遍存在,例如在服饰、箱包等生活用品中有着广泛的应用。而在拉链生产过程中难免出现各种各样的异常情况,如链齿小咪、布带破损以及下止不到位等瑕疵。而瑕疵品的出现可能会影响人们的生活体验,并损害生产单位和相关品牌的名誉。当前工厂往往需要雇佣工人来人工筛选缺陷样本,而人工目视检测存在以下几个缺点:一是检测质量差:人工质检受到主观因素影响较大,不同检测人员的检测结果难以统一,且受视觉疲劳影响,检测质量不稳定;二是检测效率低:人工检测的速度慢,且不同人员检测效率也不一致;三是人工成本高:人工培训成本和用工成本比较高,人员流动也造成人力成本进一步增加;四是信息集成难:人工检测难以做到实时集成和处理检测数据,影响生产工艺改进和质量控制分析的效率,对自动化生产流程适配比较弱。
由于人工检测手段存在各种不足,且不能满足当前自动化流水线高产能的特点,工厂企业迫切需求某项能够代替人工检测的技术来缓解检测压力。近年来,基于计算机视觉的自动化检测技术蓬勃发展,而且自动化检测能够一次投入,运营成本低,效率高,且监控质量稳定。
广东欧亚宝拉服饰配件有限公司在其申请的专利文献“拉链自动检测机”(专利申请号:201320544461.6;申请公布号:cn203432617u)中提出了一种拉链自动检测机。该装置包括底座,底座上设有传送单元、检测单元、控制单元以及分离单元,其中传送单元,即传送带,用于传送待检测的拉链,检测单元用于检测拉链,并将拉链信息传送到控制单元,控制单元判断拉链是否合格,分离单元将判断出的非合格拉链与合格拉链进行分离。该方法由于在检测部分只表述了利用处理器快速地对拍摄的影像进行分析和处理,以判断是否为合格品,而没有详细阐述如何进行分析和处理,因而拉链检测效果差。
中国计量大学、杭州智感科技有限公司、杭州质慧信息技术有限公司在其申请的专利文献“一种拉链尺寸图像采集装置及基于该装置的在线视觉检测系统”(专利申请号:201810135429.x;申请公布号:cn108180837a)中提出了一种拉链尺寸图像采集装置及基于该装置的在线视觉检测系统。其通过中心处理器和控制器控制图像采集装置实现拉链尺寸是否合格的实时判断,输出检测结果。但由于该在线视觉检测系统只能针对拉链的尺寸不正常这一种异常类型进行检测,而现实生活中拉链的异常种类繁多,因而该发明并不能满足生产中筛选出所有异常种类拉链的需求。
技术实现要素:
本发明的目的在于针对上述已有技术的不足,提出一种基于深度支持向量数据描述模型的拉链异常检测方法,以检测出多种异常类别的拉链,提升拉链异常检测效果。
为实现上述目的,本发明的技术方案包括如下:
(1)使用两个点光源,分别置于拉链的上侧和下侧,保持光照强度不变,使用强对比度背景置于拉链正下侧,使用线扫相机对其进行拍摄,采集正常拉链图像与异常拉链图像,保证采集到的正常拉链图像与异常拉链图像的数量比例为5:1;
(2)选取采集正常拉链图像的十分之九作为训练集,选取采集正常拉链图像的十分之一与采集异常拉链图像的二分之一作为测试集,并将剩余的采集异常拉链图像的二分之一作为验证集;
(3)对拉链图像进行预处理:
3a)从拉链图像长边最底端开始向上,按行计算每一行像素的方差,直到某一行的方差大于阈值0,再将这一行以下的黑色背景全部裁剪掉;
3b)将裁剪后的拉链图像宽度调整为512,并按裁剪前的原图像长宽比调整裁剪后图片的长度,再将该调整后的拉链图像裁剪为512×512大小的拉链图像块;
(4)构建基于跳跃连接的自编码器,并对其进行预训练:
4a)构建包含编码器和解码器的自编码器,将训练集中的所有拉链图像块输入到该自编码器中,编码器将输入数据逐渐压缩为尺寸更小的特征图,最后压缩为中间表征向量,解码器对中间表征向量进行重建,逐渐扩大特征图尺寸,并利用跳跃连接将编码器中与解码器尺寸相同的特征图进行拼接,输出与输入拉链图像块图像相同尺寸的预测图像;
4b)计算输入图像与自编码器输出预测图像之间的l2误差损失,并将其作为损失函数,利用adam反向传播优化算法来训练自编码器,直至该损失函数收敛,得到预训练好的自编码器模型;
(5)训练深度支持向量数据描述模型:
5a)使用与自编码器的编码器网络结构相同的网络作为特征提取网络,并将预训练后得到的编码器的网络参数作为特征提取网络的初始参数,将训练集中的所有拉链图像块输入到该特征提取网络中,计算所有中间表征向量,并求出平均值,将其作为预设球心c;
5b)通过特征提取网络提取输入图像块样本对应的表征向量,计算表征向量与球心c之间的l2误差损失,得到深度一分类损失函数l(w),将其作为特征提取网络的损失函数;
5c)在每一次训练迭代完毕后调整球心位置,将训练集中的所有拉链图像块输入到本次训练完毕后的特征提取网络中,算出图像块对应的表征向量并求出所有表征向量的均值,作为下一次训练的预设球心c;
5d)利用adam反向传播优化算法对该特征提取网络进行训练,直至深度一分类损失函数l(w)收敛,得到训练好的特征提取网络模型;
5e)将训练集中的所有拉链图像块输入到训练好的特征提取网络模型中,求出所有表征向量并计算均值,将其作为最终球心cf;
(6)判断拉链块是否为异常:
6a)将测试集中的每个拉链图像块输入到训练好的特征提取网络模型中,得到其表征向量,并计算该表征向量与最终球心cf的均方误差,得到每个测试拉链图像块的异常得分s:
s=||φ(x;w*)-cf||2,
其中,x表示输入的拉链图像块,φ表示特征提取网络的模型结构,w*是训练好的特征提取网络模型权重参数;
6b)设置经验阈值t,将异常得分s与设定的阈值t相比较:若s>t,则拉链块为异常,反之,为正常;
(7)归并拉链块检测结果,检测出整条拉链的质量:
统计每一条测试拉链上的所有拉链图像块的异常检测结果,并采用“一票否决”的机制,归并同一条测试拉链的所有拉链图像块的检测结果,即只有当一条完整拉链上的所有拉链图像块都为正常时,则该条拉链被判为正品,否则,在一条完整拉链上只要有一个拉链块为异常,则整条拉链被判为次品。
本发明与现有技术相比具有以下优点:
第一,本发明由于只利用正常样本进行训练,不需要额外采集异常样本,降低了训练成本。
第二,本发明由于通过拟合正常样本的分布,可以通过将远离超球体球心的样本都判定为异常拉链,克服了现有技术只能针对有限异常类型的异常拉链进行检测的问题,实现了对任一种异常类型的拉链进行检测。
第三,本发明由于使用基于跳跃连接的自编码器结构,将网络的低层特征与高层特征进行融合,克服了现有技术所得编码器参数对正常样本分布拟合能力差,且模型不易收敛的问题,使得预训练阶段可以为正式训练阶段的特征提取网络提供更好的初始化参数,并提供更能描述正常样本的初始化球心,降低了正式训练阶段的训练难度。
第四,本发明由于采用随着迭代次数而变化的超球体球心,克服了某些正常样本向固定球心靠拢困难的问题,使得模型参数在训练过程中更容易进行优化,训练所得模型检测异常的能力强,提高了拉链异常检测的效果。
附图说明
图1是本发明的实现流程图。
具体实施方式
下面结合附图对本发明的实施例做进一步详细描述。
参照图1,本发明实现步骤如下。
步骤1,采集拉链图像。
用于训练的图像拍摄环境尽量和测试时的环境保持相同,并且保证所有训练图像拍摄角度一致,清晰度高。好的图像质量有助于对拉链异常的检测。考虑到拉链是长方形的,光源可以使用其他形状如点光源,以减小干扰,更加利于获取均匀的图像,保证光源的形状与目标的形状不一致时的拍摄的效果。经过大量的讨论和实验,本实例给出关于拉链图片拍摄采集环境的方案如下:
使用两个点光源,分别置于拉链的上侧和下侧,且始终保持拍摄时光照强度不变;
使用强对比度背景,置于拉链正下侧,如将黑色拉链放在白色背景上、将白色拉链放在黑色背景上;
使用线扫相机对拉链进行拍摄,采集正常拉链图像与异常拉链图像,保证采集到的正常拉链图像与异常拉链图像的数量比例为5:1;
步骤2,获取训练集,测试集与验证集。
选取采集正常拉链图像的十分之九作为训练集,选取采集正常拉链图像的十分之一与采集异常拉链图像的二分之一作为测试集,并将剩余的采集异常拉链图像的二分之一作为验证集;
步骤3,对拉链图像进行预处理。
由于在采集拉链图像中,图像最底端有纯黑的无用背景,为了不影响检测,需要对其去除,即从拉链图像长边最底端开始向上,按行计算每一行像素的方差,直到某一行的方差大于阈值0,再将这一行以下的黑色背景全部裁剪掉;
将裁剪后的拉链图像宽度调整为512,并按裁剪前的原图像长宽比调整裁剪后图片的长度,再将该调整后的拉链图像裁剪为512×512大小的拉链图像块。
步骤4,构建基于跳跃连接的自编码器。
在传统的深度一分类异常检测模型当中,预训练时,单纯的以le-net为基础的自编码器预训练网络并不能得到能够拟合正常样本分布的编码器,并且当训练数据复杂时,模型不易收敛,得不到理想的表征向量;因此本实例构建基于跳跃连接的自编码器,该自编码器包含编码器和解码器,其结构参数设置如下:
所述编码器,包含5个卷积模块和4个步长为2的最大池化层,这些卷积模块与最大池化层交替连接,其输出的表征向量维数为256维;
所述解码器,包含4个上采样模块、4个卷积模块和一个卷积层,这些上采样模块与卷积模块交替连接后再与卷积层连接,该卷积层中的卷积核大小为1×1,步长为1,填充像素数为1,其输出图像的尺寸与编码器的输入尺寸相同;每个上采样模块由扩张因子为2的上采样层、卷积层、批正则化层以及relu非线性层组成,该卷积层中的卷积核大小为3×3,步长为1,填充像素数为1;
上述编码器和解码器中每个卷积模块均由两组卷积层、批正则化层以及relu非线性层的组合堆叠而成,每组卷积层中的卷积核大小为3×3,步长为1,填充像素数为1;
将编码器中每一个卷积模块输出的特征图与解码器上采样模块输出的尺寸相同的特征图在通道维度上相加,并将相加后的特征图输入到解码器的后续卷积模块中,实现编码器和解码器之间的跳跃连接,以利于对输入图片的重建。
步骤5,预训练自编码器。
5.1)将训练集中的所有拉链图像块输入到自编码器中,该自编码器中的编码器将输入数据逐渐压缩为尺寸更小的特征图,最后压缩为中间表征向量;
5.2)自编码器中的解码器对该中间表征向量进行重建,逐渐扩大特征图尺寸,输出与输入拉链图像块图像相同尺寸的预测图像;
5.3)计算输入图像与自编码器输出预测图像之间的l2误差损失,并将其作为损失函数l1(w),其计算公式如下:
其中,k表示训练集中的所有拉链图像块的数量,
5.4)利用adam反向传播优化算法对自编码器进行训练,直至损失函数l1(w)收敛,得到预训练好的自编码器模型。
步骤6,训练深度支持向量数据描述模型。
6.1)使用与自编码器的编码器网络结构相同的网络作为特征提取网络,并将自编码器预训练后的编码器网络参数作为特征提取网络的初始参数,
6.2)将训练集中的所有拉链图像块输入到该特征提取网络中,计算所有中间表征向量,并求出平均值,将其作为预设球心c,其计算公式如下:
其中,k表示训练集中的所有拉链图像块的数量,φ表示特征提取网络的模型结构,xi表示第i个输入的拉链图像块,w'表示特征提取网络的初始参数;
6.3)通过特征提取网络提取输入图像块样本对应的表征向量,计算表征向量与球心c之间的l2误差损失,得到深度一分类损失函数l2(w),将其作为特征提取网络的损失函数,该函数表示如下:
其中,k表示训练集中的所有拉链图像块的数量,φ表示特征提取网络的模型结构,w是特征提取网络的权重参数,xi表示第i个输入的拉链图像块,φ(xi;w)表示xi对应的表征向量,c表示球心;
6.4)在每一次训练迭代完毕后调整球心位置,将训练集中的所有拉链图像块输入到本次训练完毕后的特征提取网络中,算出图像块对应的表征向量并求出所有表征向量的均值,作为下一次训练的预设球心c;
6.5)利用adam反向传播优化算法对该特征提取网络进行训练,直至损失函数l2(w)收敛,得到训练好的特征提取网络模型;
6.6)将训练集中的所有拉链图像块输入到训练好的特征提取网络模型中,求出所有表征向量并计算均值,将其作为最终球心cf;
步骤7,判断拉链块是否为异常。
7.1)将测试集中的每个拉链图像块输入到训练好的特征提取网络模型中,得到其表征向量,并计算该表征向量与最终球心cf的均方误差,得到每个测试拉链图像块的异常得分s:
s=||φ(x;w*)-cf||2,
其中,x表示输入的测试集拉链图像块,φ表示特征提取网络的模型结构,w*是训练好的特征提取网络模型权重参数;
7.2)设置经验阈值t,其设定的过程如下:
首先,设验证集中异常拉链图像块的数目为n,将验证集中的每个异常拉链图像块输入到训练好的特征提取网络模型中,得到其表征向量,并计算该表征向量与最终球心cf的均方误差,得到每个验证集异常拉链图像块的异常得分s':
s'=||φ(x;w*)-cf||2,
其中,x表示输入的验证集异常拉链图像块,φ表示特征提取网络的模型结构,w*是训练好的特征提取网络模型权重参数;
然后,对所有异常得分进行降序排列,并在0~1之间设企业可容忍的最低异常拉链漏检率p;
最后,计算验证集中可漏检的异常拉链块数,n=p×n,并从排列后的异常得分队列中找出第n个异常拉链图像块对应的异常得分,作为测试时评判异常的经验阈值t;
7.3)将异常得分s与设定的阈值t相比较:若s>t,则拉链块为异常,反之,为正常;
步骤8,归并拉链块检测结果,检测出整条拉链的质量。
统计每一条测试拉链上的所有拉链图像块的异常检测结果,并采用“一票否决”的机制归并同一条测试拉链的所有拉链图像块的检测结果,即只有当一条完整拉链上的所有拉链图像块都为正常时,则该条拉链被判为正品,否则,在一条完整拉链上只要有一个拉链块为异常,则整条拉链被判为次品。
下面结合仿真实验对本发明的效果做进一步的描述。
1、仿真实验条件:
本发明的仿真实验的硬件平台为:intelcorei7-8700k@3.70ghz、32gbram,显卡为nvidiageforcegtx1080ti。
本发明仿真实验的软件平台为:ubuntu18.04操作系统,pytorch,python3.6;
本发明的仿真实验根据链齿形状、链齿材料以及颜色的不同,采集黑色塑料拉链和白色金属拉链两种类型的拉链图像,共1198张灰度图像,其中正常拉链图像与异常拉链图像比例为5:1,包含黑色塑料拉链图像599张,其中正常拉链图像494张,异常拉链图像105张;包含白色金属拉链图像599张,其中正常拉链图像494张,异常拉链图像105张,平均每张拉链图像能够裁剪为10张512×512的拉链图像块;
对于黑色拉链图像,选取采集到的正常拉链图像的十分之九作为训练集,选取采集到的正常拉链图像的十分之一与采集到的异常拉链图像的二分之一作为测试集,并将剩余的异常拉链图像的二分之一作为验证集,因此,黑色拉链训练集中包含正常拉链图像439张;黑色拉链测试集包含正常拉链图像55张,异常拉链图像55张;黑色拉链验证集包含异常拉链图像50张;
白色拉链的训练集,测试集与验证集的选取方式与黑色拉链相同。
2、仿真内容及其结果分析:
仿真1,用本发明与现有的三种拉链异常检测方法,即deep-occ,uc-occ和sc-occ分别在黑色拉链训练集上进行训练和测试,并利用坏拉链检测召回率badprecision,坏拉链检测准确率badrecall,好拉链检测召回率goodprecision以及好拉链检测准确率goodrecall这四个指标来评价四种方法的性能,结果如表1;
表1.四种方法的评价结果对比表
其中,deep-occ为传统一分类异常检测方法,其采用基于le-net的自编码器,训练过程中,球心位置固定;uc-occ为将传统一分类异常检测模型中的固定球心改为随着训练迭代而变化球心的改进方法;sc-occ为将传统一分类异常检测模型中的基于le-net的自编码器改为基于跳跃连接的自编码器的改进方法。
从表1可见,本发明在测试集上的坏拉链检测召回率、坏拉链检测准确率、好拉链检测召回率以及好拉链检测准确率这四个评价指标都高于其他三种方法,证明本发明具有更好的拉链异常检测效果。
仿真2,用本发明与现有的三种拉链异常检测方法,即deep-occ,uc-occ和sc-occ分别在黑色拉链训练集上进行训练和测试,并利用受试者工作特征曲线与横坐标轴围成的面积auc这个指标来评价四种方法的性能,结果如表2;
表2.四种方法的auc结果
从表2可见,本发明在测试集上的auc指标都高于其他三种方法,证明本发明具有更好的拉链异常检测效果。
仿真3,用本发明在黑色拉链训练集上训练黑色拉链检测模型,并利用黑色拉链验证集设置经验阈值t=0.372;使用本发明方法在白色拉链训练集上训练白色拉链检测模型,并利用白色拉链验证集设置经验阈值t=0.418,并利用坏拉链检测召回率,坏拉链检测准确率,好拉链检测召回率以及好拉链检测准确率这四个指标来评价两个模型在各自对应的测试集上的拉链图像块检测结果以及归并所有拉链块检测结果后的完整拉链的检测结果,结果如表3;
表3.拉链块及完整拉链检测结果
从表3可见,本发明不仅在拉链块上表现出优秀的异常检测效果,而且在归并拉链块后,在完整拉链上也具有良好的异常检测结果;同时本发明在不同种类的拉链上都表现出优秀的异常检测效果。