王 峰, 胥光申, 黄乾玮, 余海洋
(1.西安工程大学 机电工程学院, 陕西 西安 710048;2.沈阳工业大学 信息科学与技术学院, 辽宁 沈阳 110870)
织物疵点检测是纺织行业控制质量的关键手段之一,目前主要由人工进行目视检查,检测率受人为因素的影响[1]。近期,深度学习技术在织物疵点检测方面有了进展,不仅可以最大限度地减少人力成本,还可以提高准确性和效率。然而,受工业条件影响,深度学习技术采集到的数据集图片往往分辨率低、数量不足从而限制深度学习技术的应用,若统一替换高性能设备会增加企业的经济负担。因此,如何对获取的低分辨率数据集进行识别与扩充是目前工业领域深度学习技术的难题。Goodfellow等[2]在2014年提出生成对抗网络 (generative adversarial network,GAN),之后研究者们开始采用GAN对数据集进行扩充并取得了较好效果。刘茁梅等[3]采用传统图像处理方法将带有缺陷的织物图像利用稀疏表示模型分解成缺陷和布匹纹理部分,平均检测率可达96.30%,但只对星型、方格形和圆点形印花织物有较好的效果。常江等[4]通过改进AC-GAN实现对带钢数据集的扩充,结合改进MobileNetV3实现带钢缺陷的分类,其检测率达到94.67%,但实际在低分辨率条件下,算法的性能仍然受到限制。课题组提出了结合SRGAN网络和YOLO-V4网络的疵点检测算法,该方法可在工业条件限制下提高了低分辨率织物图的辨识度,准确定位出疵点的位置并输出疵点的类别与检测结果的准确率。
Ledig等[5]率先将GAN应用于超分辨率重建领域,提出了超分辨率生成对抗网络模型(super resolution generative adversarial network,SRGAN)算法,并进一步定义SRGAN生成器与判别器之间对抗性,可用公式描述如下:
minmax (θG,θD)EIHR,ptrain(IHR)[lnDθD(IHR)]+EILR,pG(ILR)[ln (1-DθD(GθG(ILR)))]。
(1)
式中:minmax (θG,θD)表示对抗性最小-最大问题,EIHR,ptrain(IHR)表示高分辨率图像通过训练生成结果的期望分布,EILR,pG(ILR)表示低分辨率图像通过生成器输出结果的期望分布,DθD表示判别器网络,GθG表示生成器网络,ILR表示低分辨率图像,IHR表示高分辨率图像。
基于深度学习的缺陷检测网络从结构上可以划分为2类:①以YOLO或SSD为代表的一阶网络;②以Faster R-CNN为代表的二阶网络。二阶网络相对一阶网络,通常用较长训练时间与检测时间换取较高的检测率[6-7],而工业应用更倾向于实时性的轻量型网络。因此课题组采用一阶网络以满足工业要求。在一阶网络中,Bochkovskiy等[8]提出YOLO-V4算法,该网络对硬件要求低而又具备高检测率,是YOLO系列最新成果。YOLO-V4参考跨阶段局部网络(cross stage paritial network,CSPNet),将原主干网络Daeknet53替换为CSPDaeknet53,其中包含5个CSP模块,实现图像的下采样,其内卷积核大小为3×3,步长为2。输入图像大小为608 像素×608 像素,特征图大小变化依次为608,304,152,76,38和19 像素;网络的输入端采用Mosaic增强技术,通过选取图像进行随机裁剪和随机拼接等方式丰富数据集;主干网络的激活函数采用梯度下降效果更优的Mish激活函数;YOLO-V4的整体框架与YOLO-V3[9]网络差异不大。
为提取更多的图像高频特征,加强单幅图像特征利用率,改进SRGAN算法在SRGAN基础上加入残差结构并采取全局残差学习,具体结构如图1所示。改进SRGAN算法残差结构设计上与典型残差结构不同,在原典型残差结构上另设立2条路径,分别为跳跃连接1与跳跃连接2。跳跃连接可将上一个残差通道信息无阻碍流入下一个残差通道,通过重复利用浅层特征以解决模型梯度消失问题。跳跃连接1中卷积(1×1)表示卷积层,其卷积核大小为1×1,可实现跨层通道的信息交互与整合而又不产生复杂的参数量。
图1 残差结构
接着在其后衔接批标准化(batch normalization,BN)与参数修正线性单元(parametric rectified linear unit,PReLU)层,BN层起特征归一化作用。
(2)
(3)
式中:x为ReLU激活函数的输入;xi表示PReLU激活函数的第i条通道的输入;ai表示第i条通道的超参数,满足均值为0标准差为1的标准正态分布。
原SRGAN采用ReLU激活函数,由式(2)可知,若参数小于等于零,梯度将持续输出0,导致梯度消失。改进SRGAN算法采用PReLU激活函数,相对于ReLU激活函数能获得负值输出,可推动模型权重与偏置向正确的方向变化、避免梯度消失。
由于1×1卷积不改变输入特征图的分辨率大小,可在跳跃连接1内再建立第2条跳跃连接路径,将初始特征图与1×1卷积后的特征图相加,实现上下层通道信息的交融。
典型的残差结构定义为:
(4)
式中:xl与xl+1分别为输入单元与输出单元,Wl为权重,h为通道传递函数,F为残差函数。
改进后的残差结构定义为:
(5)
式中:B为批归一化,f为激活函数,n为跳跃连接2输出单元,F(n,Wl+1)为跳跃连接1输出单元。
改进的SRGAN网络结构如图2所示:上半部分为生成器网络,在卷积和归一化之后加入残差连接模块,并将激活函数改成了PReLU,而后利用反卷积层代替原先的卷积层;下半部分为判别器网络,激活函数从LekayReLU改成PReLU,网络最后的全连接层改为全局平均池化,最后经Softmax激活函数输出判别结果。
图2 改进SRGAN结构
针对生成式对抗网络(generative adversarial networks,GAN)的不稳定性,生成图像易扭曲的问题,课题组基于直方图匹配技术设计直方图损失函数匹配激活前后图像。定义随机变量u,v分别表示输入图像与输出图像的灰度级;Pu(w),Pv(t)表示输入、输出灰度级的概率密度;连续灰度r与z作为随机变量,且0≤r≤L,0≤z≤L。定义a和b并建立如下关系式:
(6)
式中:dt,dw为积分假变量。
令a=b得到T(r)=G(z),建立直方图匹配关系。接着运用直方图匹配技术匹配输入前的纹理特征得到映射Oi,再对其激活得到输出,最后计算输出的归一化直方图,并将其与Oi匹配得到映射R(Oi)。为进一步描述R(Oi)与Oi之间的数值分布差异,对两者求Frobenius范数距离并使距离最小化,得到直方图损失如下:
(7)
式中γ是控制损失强度的权重参数。
直方图匹配可以被视为匹配激活前后特征的边缘分布。
为验证改进算法的有效性,基于原数据集分别对改进前后SRGAN算法训练进行比较,迭代次数为500。在训练过程中,学习率取0.002,批处理大小取16。课题组采用Adam作为优化器,一阶矩估计的指数衰减率β1和二阶矩估计的指数衰减率β2分别取0.900与0.999,并更新整个体系结构权重。本次实验是在Windows平台下,硬件部分:处理器为Intel Core i9-9900X,显卡为Nvidia 2080ti,运行内存32 GiB。本实验的深度学习框架为Pytorch。
课题组研究的数据集由研究院采集自制,原数据集共采集图片1 500 张,因原图大小不一,训练前统一大小为700 像素×700 像素,具体数据集信息如表1所示。由图3可知:原算法能较好地重构原图特征,但对于一些缺陷边缘(如毛边)仍存在着过于平滑的问题,从而导致缺陷辨识度较差;改进SRGAN算法重构织物图像过程中,保证了原图特征的同时,又通过残差网络融合上下层的特征信息,重建后的织物图像纹理更清晰,能更容易辨识缺陷,且损失相对原先更加稳定。
表1 数据集信息
图3 SRGAN算法改进前后重构图对比
低分辨率原图与超分辨率重构图对比如图4所示。
图4 低分辨率原图与超分辨率重构图对比
超分辨率重构图经过随机旋转变换后导入原数据集,扩充后的数据集图片张数为3 000。课题组基于扩充后的数据集对YOLO-V4检测算法进行训练并检测。检测指标选用平均精确度PA,为计算PA,还需计算出交并比(intersection over union,IoU)、精确率P和召回率R,通过交并比IoU测量预测候选框的定位误差。IoU阈值设为0.5,IoU≥0.5时的所有预测候选框为Tp,剩余其它候选框为Fp,则有:
(8)
(9)
式中:TP为正确检测到的对象集合,FP为错误检测到的对象集合,FN为检测器未检测到的对象集合。
每一个类别都可以根据召回率和准确率绘制PR曲线,PR曲线下覆盖的面积表示平均准确度PA,则有:
(10)
式中,p(r)即为PR曲线。
图5所示为Loss函数改进前后准确率对比,其中Loss_G和Loss_D分别是生成器损失函数和判断器损失函数,可用二者来衡量真实值和网络生成的预测值的不一致程度,损失函数的值越小则说明生成器和判断器的鲁棒性更好。由图5中可知改进后的Loss函数相较于改进之前有明显的收敛趋势。由图6中可知油墨、黄渍这2类目标缺陷检测精度受分辨率影响较小,但破洞、毛边等小目标缺陷影响较大。缺陷在低分辨率图像中检测精度低于在高分辨率图像中的检测精度,是因为低分辨率的图像提取的特征信息差异小,相邻的边缘信息对比度欠缺,而深度学习技术中的检测网络多是基于特征信息差异分类训练,再回归候选框对目标定位。超分辨率技术的应用能丰富特征信息,加深特征差异性从而提高探测器的检测性能。
图5 Loss函数改进前后准确率对比
图6 不同分辨率之间缺陷检测结果对比
课题组对比各类检测算法的检测效果,分别使用YOLO-V4,YOLO-V3,Dense-YOLO,SSD和Faster R-CNN算法在扩充前后的数据集上训练,训练迭代次数均为200,其余训练参数相同,检测结果如表2和表3所示。
表2 旧数据集(1 500张)不同算法的检测结果
表3 新数据集(3 000张)不同算法的检测结果
由表3可知,YOLO-V4算法相对其他算法平均精确度较高,尤其在检测破洞、擦洞等小目标缺陷效果相对明显,YOLO-V4所采用的Mosaic数据增强方法,能有效增加小目标缺陷数量从而提高小目标缺陷检测精度。YOLO-V4的所有种类平均准确率PmA相比精度次高的Dense-YOLO算法的PmA高2.87%,比起上一代YOLO-V3高6.59%。这是由于YOLO-V4的主干网络CSPDarknet53增加了卷积层,网络的参数量相较于上一代有所扩充,且在主干网络后加入了SPP结构,即不同尺度的最大池化后堆叠,增加了感受野,对特征具有较好学习能力;从网络的检测速率FPS与检测时间t比较,YOLO-V4保持着较好的检测速率。综上分析,YOLO-V4网络的整体准确度优于其它检测网络,可以准确检测出擦洞、破洞、毛边、黄渍和油墨等织物中的多类疵点,并定位疵点的准确位置,标记疵点的类别以及准确率,检测效果如图7所示。
图7 本研究方法检测效果图
为解决印花布数据集图像分辨率低、检测效果差问题,课题组提出一种以低分辨率印花布匹织物图为输入,输出疵点检测结果的新方法,该检测方法由改进SRGAN网络与YOLO-V4检测网络构成。为验证方法的有效性,将改进的超分辨率网络与不同的检测器网络组合来比较PA值,实验结果表明改进方法具有较高的PA值、较快的检测速度,能满足实际工业应用需求。本研究为低分辨率图像上的检测任务提供了更好的解决方案,下一步将在网络轻量化上进行研究。