结合深度学习和Softmax 的零件瑕疵识别*
2022-06-16张新波朱姿娜张伟伟
张新波 朱姿娜 张伟伟
(上海工程技术大学视觉测控与智能导航研究所 上海 201620)
1 引言
传统的机器学习目标检测更注重特征的提取,特征提取作为目标检测中最关键的环节,众多的研究者进行了大量研究,方向梯度直方图(Histogram of Oriented Gradient)HOG[1]特征是Dalal 等在2005年针对行人检测问题提出的特征,HOG 特征广泛应用在于图像识别领域。局部二值模式(LBP)[2]算子是T.Ojala 等于1994 年提出的,描述的是中心像素点的灰度值与周围像素点灰度值的大小关系,表示 该 局 部 区 域 的 纹 理 特 征。Adaboosting[3]是Freund等于1996年提出的,Adaboost算法将多个弱分类器(一般采用单层的决策树)进行组合,使之成为一个强分类器。采用的是迭代的思想,具有较高的检测速度,不容易产生过适应现象。Cortes 和Vapnik(1995)[4]提出了支持向量机(SVM),SVM 算法是定义在特征空间上的间隔最大的线性分类器。
深度学习作为目前解决目标检测识别问题的一种有效手段。Girshick[5]等在2014年提出了基于区域提名的卷积神经网络R-CNN,R-CNN 在行人检测和目标检测等领域取得了巨大的成功,与此同时检测速率低,计算成本大等问题非常突出,随后针 对 此 问 题,Girshick 等(2015)又 提 出 了Fast R-CNN[6],相对于之前的R-CNN,在训练时候的速度、测试时候的速度以及训练所耗费的空间等方面有了很大的提升,Faster R-CNN[7],采用了区域生成网络RPN 候选框提取模块代替选择性搜索Selective Search 模块,大大提高了操作的效率。端到端的目标检测则是另一类典型思路。此类方法不需要区域提名(Region Proposal),直接从图像中回归的方法提取目标。Redmon 提出的YOLO(You Only Look Once)[8],直接选用整张图训练模型,摒弃了滑窗和区域提名的方式,以此预测多个box 位置和类别的卷积神经网络,提高了目标和背景区域的区分度。ECCV-2016 的SSD(single shot multibox detector)[9]算法,结合分配区域和回归的概念,实现了速度与精度的均衡。Long 等提出的全卷积神经网络(Fully Convolutional Network,FCN)[10]提供了崭新的思路,首次实现了像素级的分类效果。在此基础上,DeconvNet[11]等相继出现。空间金字塔池化模块(SPP)[12]由何凯明等于2014 年提出,可以将任意尺度的输入转换为相同尺度的输出,且不同尺度特征的提取和拼接可以提高任务精度和网络模型的鲁棒性。Chen 等于2014 年提出的Deeplabv1[13]采用空洞卷积Fully-connected Conditional Random Field(CRF)来优化网络,注重像素细节信息,提高了分割的精度,Ronneberger 等[14]随后提出了一种新的网络结构Unet,该网络具有对称的U型结构,通过对提取的图像特征编解码,更好地结合了高层和底层的信息特征,可以更加适合于提取细微的信息。
对于物体的瑕疵检测特别是金属类的物体,众多的研究人员做了大量的工作。叶宏武等(2015)[15]提出了基于粒子群优化算法加权模糊C 均值聚类的零件缺陷图像智能分割算法,精确识别定位零件表面瑕疵区域。雷泰等(2018)[16]基于导向线的刀路轮廓质量检测方法。对已滤波图像上轮廓的线宽、连通性和毛刺情况进行检测。对于多类别瑕疵零件的研究不太深入。因此本文主要是运用深度学习技术,采用Softmax 算法对金属零件进行瑕疵检测识别。
图1 零件实物图
图2 生产工位瑕疵检测图
2 算法模型
2.1 算法整体架构
本文的算法流程如图3 所示:采用传统CS-LBP 描述符来提取零件表面的纹理特征,来训练Softmax分类器。然后选用Unet神经网络对零件表面进行初步的区域提取,接着通过Softmax对Unet筛选出的初步区域进行二次分类,以此排除干扰区域。最终获得单个零件的目标区域瑕疵的精准识别。
图3 算法流程图
2.2 基于多特征融合的Softmax分类器模型
2.2.1 CS-LBP特征
中心对称局部二值模式CS-LBP 特征描述符,通过降低提取的特征维数以及减小计算复杂度,在一定程度上解决了上述弊端,由于考虑到像素对的灰度差值,因此与梯度描述符类似。CS-LBP 的检测原理是:通过对局部区域中关于中心对称的4 对像素差值的变化来描述纹理特征,计算公式如下所示:
式中(x,y)是局部区域中心像素点的坐标,gp表示周围相邻像素点的灰度值,gp+(N/2)表示关于与p 点关于中心点成中心对称的像素点的灰度值。T 表示自定义阈值。s(x)表示符号函数,定义如下:
多年来,国家高度重视珠江水运发展,国务院先后颁布了《珠江—西江经济带发展规划》《水污染防治行动计划》;交通运输部发布了《珠江水运发展规划纲要》《关于推进珠江水运科学发展的若干意见》和《珠江水运科学发展行动计划(2016-2020)》,这为打造西江“黄金水道”指明了方向。
2.2.2 HOG特征
HOG 特 征 是 由Navneet Dalal & Bill Triggs 在CVPR 2005 发表的论文中提出来的,由于HOG 算子是在图像中的局部方格中进行分析,所以此算子相对于其他的算子在图像几何以及光学变化方面有着良好的不变性。
通过计算图像中局部区域的灰度梯度直方图,提取HOG特征,其基本步骤如下:
1)将图像划分成若干Cell 计算每个Cell 在M个方向上的梯度直方图。
2)将每个Block 中的Cell方向梯度直方图串联形成Block的方向梯度直方图。
3)串联图像中所有的Block方向梯度直方图输出最终的图像HOG特征。
本文HOG 特征设置如下:梯度方向个数M 取为9,Cell的大小为8*8,Block的大小为16*16。
2.2.3 特征降维融合
由于抓取区域具有金属反光和纹理多变等特点,单个特征应用于图片识别,容易造成遗漏或者错误的检测。为了进一步提高识别的正确率,本文通过融合HOG 和CS-LBP 特征用于抓取区域的检测。由于这两种特征本身维数较大,直接进行拼接无疑会导致Softmax 分类器训练耗时增加,致使训练和检测效率低下。因此本文采用主成分分析法对特征融合后的矩阵进行不同程度的降维,以提高训练效率和检测的准确率。
2.3 Unet模型
Unet 网络模型首次被提出的应用场合主要集中在医学图像的分割领域,Unet网络因为在上采样的时候,有多个通道,能够使得较多的上下文信息传递到更高分辨率的网络层中。从而使得对于医学图像的分割可以做到更加精细化。
此网络主要因其形似U 型而被命名为Unet,Unet 网络结构包含了23 个卷积层,4 个最大池化层,每个池化层将特征尺寸降为原来尺寸的一半,在第8个和第9个卷积层使用Dropout技术,数值均设定为0.5,其中激活函数使用的是ReLU,在每一次下采样操作中,都会将特征通道的数量加倍。在左侧的收缩架构中,每一个步骤都是先使用反卷积操作,反卷积操作会将会使特征通道数量减小一半。特征图的尺寸会增加一倍。每次反卷积操作后,将结果和收缩路径中对应步骤的特征图拼接,最后的结果进行两次3*3 的卷积,最后一层的卷积核大小设定为1*1。图4所示为U-Net网络结构。
图4 Unet网络结构
3 实验和结果
3.1 实验环境
采用的实验环境如下:Ubuntu16.04 操作系统,内存为16G,CPU 为Inter 酷睿i78700@3.2GHz,GPU为NVIDIA GTX-1080,Python3.6.5。
3.1.1 实验准备
本实验中的图像数据等全是笔者自己采集制作并标注完成,其中考虑到采集的原始图像很大部分具有单一性,因此对一些数据使用了数据增强技术:尺度变换、旋转等操作,进行了数据扩充,完善丰富了数据的多样性。其中采用大小为1080*960的图片来训练Unet网络。最终用于训练Softmax分类器的图片选用的图像大小为64*64 像素。其中正样本的图片数量为86 张,负样本图像数量为51张。
3.1.2 训练过程
Softmax 分类器是对Logistic 二分类的一个拓展推广,其基本原理比较简单并且主要作为多分类问题的解决方案来使用。
把n 个训练样本记录为{(x(1),y(1)),(x(2),y(2)),… ,(x(n),y(n))},ai为缺陷所属类别的标签,其中ai∈{1,2,…,m},m 为缺陷种类的总类别数。
图5 负样本
图6 正样本
训练时,采用的是带有动量的随机梯度下降算法,学习率设为0.01,动量设定为0.9,学习率在训练过程中进行多项式衰减,网络在NVIDIA GTX 1080 GPU的加速训练,训练了500个epoch,花费时间是8h。
在最后一层使用交叉熵损失函数。函数公式如下:
其中P(x)表示真实概率分布,q(x)表示预测概率分布。
3.2 结果分析
最终采用多特征融合的Softmax 算法,Unet 算法,以及本文提出的算法分别在零件数据集中进行了缺陷区域检测。最终的实验结果如图7所示。
图7 实验检测结果对比
从表1 中的实验检测结果进行分析。基于传统的多特征融合Softmax算法在各个指标上都逊色于Unet 以及本文的算法。侧面验证了单纯的机器学习的算法在缺陷检测领域的局限性,而本文的算法检测准确率达到了88.2%,错检率仅仅为3.4%,优于Unet 算法。由于金属零件检测过程中光照、角度等的影响,也会造成Softmax 分类器在多分类时出现错误的划分。最终导致错检率和漏检率都相对高于Unet 算法。从整体上对比分析,本文的算法达到了较为理想的检测精度。
表1 三种模型实验检测结果
4 结语
针对零件瑕疵检测流程中,传统的缺陷检测准确率不足的问题,提出了一种基于Unet 和多特征融合的Softmax 识别算法。该方法多特征融合的Softmax 分类器对Unet 的识别结果进行二次分析,最终实现了对瑕疵区域的精确识别,剔除了干扰区域。本文的算法主要有以下的优点:1)传统的机器学习的目标检测识别在根据人工选择的缺陷特征对其分类时会导致精度较差,而本文的算法则可以在识别目标外形的基础上,对缺陷的种类也能够很好的识别。2)在图像训练集构建中,充分考虑了光照,拍摄角度等影响,对角度和光照等情况做了划分,使得实际检测中,算法具有一定的鲁棒性。3)构建使用多特征融合的Softmax分类器有效弥补了单一网络框架检测的局限性,使得错检率得到了显著的下降。