一种改进的MobileNet- SSD算法用于车身漆面缺陷自动检测
这是一篇缺陷检测领域的简单应用,原理和简单,主要可以学习离线数据集的构建和针对不同数据集对长宽比的自适应修改。
论文地址: https://link.springer.com/content/pdf/10.1007/s11042-020-09152-6.pdf
为了提高车身漆面缺陷检测的效率和准确性,本研究利用计算机视觉技术和深度学习方法,以 小样本为基础 实现了车身漆面缺陷的自动检测。首先,为了实时采集车身油漆缺陷图像,本文提出了一种新的数据增强算法,以增强 数据库 处理小样本数据过拟合现象的能力。针对汽车涂料固有的缺陷特征,通过改进MobileNet-SSD网络的特征层,优化边界框的匹配策略,提出了一种改进的MobileNet-SSD算法,用于油漆缺陷的自动检测。实验结果表明,改进的MobileNet-SSD算法可以检测出六种传统车身漆膜的缺陷,准确率超过95%,比传统SSD算法快10%,可以实现实时、准确的车身漆面缺陷检测。
简介
车身主要由钢制成,长时间暴露在空气中容易被氧化和腐蚀。涂漆后,将在车身表面形成一层保护膜,该保护膜会阻挡空气并使其具有良好的耐腐蚀性。此外,车身漆膜的光滑度在一定程度上影响着人们的购车欲望。同样,如果喷漆不彻底或涂料中含有杂质,会加速汽车的腐蚀,降低消费者的购买意愿。目前,生产线中的大多数人体彩绘缺陷都是通过人工目测来检测的。长时间在高强度光线下工作并受许多主观因素(例如情绪,视觉疲劳等)影响的工人,将降低缺陷检测的效率并提高检测成本。因此,实现车身漆面缺陷自动检测系统非常重要。
缺陷检测一直是计算机视觉领域的研究热点。通过计算机视觉知识的使用,可以有效、准确地实现缺陷区域的检测和分类。目前,计算机视觉在车身漆膜缺陷检测方面有很多成熟的研究。S.Rebeggiani等设计了钢零件抛光图像的识别规则,选择了感兴趣的区域,并标记了它们,以实现缺陷位置的准确检测。还有的研究者使用局部二值模式(LBP)和局部方差(VAR)算子的旋转不变性度量的联合分布来检测和定位人体彩绘中的缺陷。J.Molina等采用图像融合算法来提高缺陷区域和背景区域之间的对比度,然后根据局部方向模糊方法检测整个照明区域的缺陷。Y.J.Jo等人提出了一种基于形态学的图像增强方法和一种基于图论的图像分割方法。选择多个几何特征和灰度特征作为缺陷特征参数,用于SVM分类和识别。
通过深度学习方法对输入图像集进行训练,并且可以使用检测模型来检测缺陷图像。在缺陷检测中,深度学习也有很大的贡献。吴松林等人提出了一种基于Siam网络的按钮缺陷相似度检测方法。利用专门设计的损失函数Siam网络,实现了自动样本提取和相似度测量,并将其应用于实际的机器视觉系统。Huijun Huet等人结合缺陷目标图像提取三种图像特征:几何特征,灰度特征和形状特征,并使用支持向量机对钢带的表面缺陷进行分类。R.Ding等人提出了一种小型缺陷检测网络(TDDnetwork),它利用深度卷积网络固有的多尺度金字塔结构来构造特征金字塔,以提高PCB缺陷检测性能。L. Zhang等人提出了一种多任务CNN模型,该模型将每个标签学习定义为二进制任务,以应对多标签学习问题。C.Zhang等人使用人工缺陷数据和仿射变换来扩展现有的PCB缺陷数据集,然后使用VGG网络来训练和识别缺陷位置。还有的研究者提出了一种帧间注意策略和帧间深度卷积神经网络来检测输入的X射线图像中的缺陷,从而有效地提高了检测精度。还有的研究者提出了一种基于YOLOV2的色织疵点自动定位与分类方法。在收集了276个色织的织物缺陷图像并进行预处理之后,使用YOLO9000,YOLO-VOC和Tiny YOLO构建了织物缺陷检测模型。M.Z.B.Edris等人使用三维扫描仪从车身面板表面获取三维图像,然后将不平坦的表面划分为潜在的缺陷区域,并使用神经网络对缺陷区域进行识别和分类。Z.Liu等人提出了一种基于SSD算法的织物缺陷检测模型。与原来的SSD算法相比,精度大大提高。Y. Li等人改进了传统SSD网络的网络结构和参数,并将CNN与mobilenet SSD结合在一起,有效地实现了对 容器 密封表面上的裂缝,凹痕,边缘和划痕的实时,准确检测。
尽管深度学习方法在目标检测中表现出色,但它并不是特定领域的综合内容。到目前为止,关于汽车车身漆膜缺陷检测的研究还很少。本文提出了一种改进的MobileNet-SSD的车身涂料缺陷检测算法。首先,提出了 一种数据增强方法来扩展在生产车间中收集的车身漆膜缺陷图像,并改进了传统SSD 算法的网络结构和匹配策略。 以MobileNet代替vgg16 作为SSD的基本网络,实现了汽车车身漆膜缺陷的自动检测,有效提高了检测速度和准确性。
SSD
SSD 的算法思想,主要可以分为4个方面:
1、 数据增强 :SSD在数据部分做了充分的数据增强工作,包括光学变换与几何变换等,极大限度地扩充了数据集的丰富性,从而有效提升了模型的检测精度。
2、 网络骨架 :SSD在原始VGGNet的基础上,进一步延伸了4个卷积模块,最深处的特征图大小为1×1,这些特征图具有不同的尺度与感受野,可以负责检测不同尺度的物体。
3、 PriorBox与多层特征图 :与Faster RCNN类似,SSD利用了固定大小与宽高的PriorBox作为区域生成,但与Faster RCNN不同的是,SSD不是只在一个特征图上设定预选框,而是在6个不同尺度上都设立预选框,并且在浅层特征图上设立较小的PriorBox来负责检测小物体,在深层特征图上设立较大的PriorBox来负责检测大物体。
4、 正、负样本的选取与损失计算 :利用3×3的卷积在6个特征图上进行特征的提取,并分为分类与回归两个分支,代表所有预选框的预测值,随后进行预选框与真实框的匹配,利用IoU筛选出正样本与负样本,最终计算出分类损失与回归损失。
SSD使用VGGNet作为基础Backbone,然后为了提取更高语义的特征,在VGGNet后又增加了多个卷积层,最后利用多个特征图进行边框的特征提取。首先,利用人工设置的一系列PriorBox与标签里的边框进行匹配,并根据重叠程度筛选出正、负样本,得到分类与偏移的真值,这一步类似于Faster RCNN中的匹配过程。筛选出正、负样本后,从深层网络中拿出对应的样本的分类预测值与偏移预测值,与真值计算分类和偏移的损失。
本文方法
提出了一种改进的MobileNet-SSD算法,用于车身油漆的缺陷检测。该过程包括两部分,数据增强算法,扩展数据集和改进的MobileNet-SSD算法,以检测缺陷位置。
1、提出了一种新的图像数据增强算法,通过为缺陷涂料图像制定相应的切割策略和采样位置来增强数据集,从而实现了缺陷涂料图像的多方向和多角度切割。2、提出了一种基于车体油漆缺陷的自动检测和分类方法,在其网络结构层上,提出了一种油漆图像纵横比匹配策略。
一、汽车车身油漆缺陷图像样本集的离线数据增强算法
传统的数据增强方法,例如旋转,旋转和收缩一批输入的图像,是在切割后操作和扩展原始图像。然而,由于漆膜是不透明的混合物,因此车漆图像背景非常复杂,干扰了车漆缺陷位置的检测。因此,提出了一种新的离线数据集增强算法,可以对原始图像进行变换。从多角度和多层次。它可以增加许多复杂的背景干扰信息,提高检测模型的抗干扰能力,并使应用场景更加实用。
1.1 车辆油漆缺陷图像的样本收集
质量检验车间与汽车装配线的生产环境相同。上部在LED灯的照度下。在这种工作环境下,手动捕获油漆图像,可以更好地恢复真实的检测效果,提高算法的鲁棒性。在收集样本时,收集了500张图像和300个视频。在对照相材料进行筛选和构图后,获得了500张图像,由58个搪瓷袋,204个收缩孔,103个脏颗粒,73个划痕,27个漆渣和35个漆板组成。由于原始图像的大小大部分约为1920 * 1080像素,因此各种缺陷的大小也有所不同。
1.2 离线数据增强算法
首先, 对(油漆宽度,油漆高度)尺寸的汽车油漆图像中的缺陷进行采样 。采样规则如下:
- 选择适合缺陷尺寸的采样块尺寸 :本文使用的缺陷检测算法基于改进的MobileNet-SSD算法,该算法将输入图片的大小统一为300 * 300。为了保持长宽比不变,将采样块取为正方形,其大小由车身油漆图像中缺陷的大小确定。设置确定大小不同的缺陷的采样块大小的规则: 首先确定油漆图像中缺陷区域的大小,根据大小确定采样块的大小,然后随机选择确定的采样块大小量程范围内的10倍。 这可以有效地增加样本块位置的随机性,并提高后续检测的准确性。
从算法1可以看出,缺陷面积与采样块面积之比约为25%,这意味着缺陷面积和采样块面积的IOU达到25%,可以保证训练数据的缺陷信息并改善检测精度。
- 采样块的多角度和多变换 :确定采样块的适当大小后,应校准采样块的位置。 在各自的范围内随机选择采样块的左上角坐标(blockx,blocky)10次 ,可以更好地保证训练图像中缺陷位置的多样性。
原始图像大小为(Paint width,Paint height),采样块的左上坐标为(block x,block y),采样块的大小为(Sampling size,Sampling size)。 查找(block x,block y)范围的规则如下:
在规则中,(xmin,ymin)和(xmax,ymax)是原始图片中缺陷区域的左上角和右下角的坐标。对上述规则的具体解释可参考原文,原文中有详细的说明。
1.3 生成汽车油漆缺陷数据库
为了验证所提出的离线数据增强算法的有效性,建立了三个数据集用于比较实验,分别是测试数据集,传统方法获得的扩展训练集和提议数据增强算法获得的扩展训练集。
a. 测试数据集 :随机抽取500个样本集中的10%,并通过上述数据增强算法扩展数据集。最终,生成500张图片作为测试数据集。
b. 扩展训练集A :通过传统的数据增强算法处理样本集中其余90%的图像,并生成4500张图像作为扩展训练数据集A。
c. 扩展训练集B :样本集中90%的图像均由本文提出的数据增强算法处理。从多个角度对每个缺陷采样10次,并生成4500张图像作为扩展测试数据集B。
二、改进的MobileNet-SSD算法
传统的SSD算法使用多尺度特征图进行目标检测,可以提取多尺度特征,减小后续各层的大小,大大提高了检测精度和速度,但实时检测仍然较差。MobileNet算法使用深度卷积层作为基础层网络,它在考虑模型大小的同时优化了延迟,但是对于目标检测而言,准确性仍然很低。因此,提出了两种网络的结合以同时实现实时和高精度检测。
2.1 改进的MobileNet-SSD的网络结构
MobileNet使用深度可分离卷积来减少大量计算,从而可以大大提高检测速度。将MobileNet算法与SSD算法结合使用可以有效提高模型的检测速度,但仍难以获得实时的检测结果。因此,提出了 将BN层和卷积层合并到MobileNet-SSD算法中。
改进的MobileNet-SSD的结构如图4所示。将输入图像的大小规格化为300×300。从Conv1到Conv13是深可分离的卷积层,并在其后添加了8个标准卷积层。卷积层和BN层在添加的卷积层上合并,并提取Conv1,Conv2,Conv3,Conv4,Conv5和Conv6的卷积层作为detection layer。该方法可以有效解决梯度消失和梯度爆炸的问题,减少计算量,提高模型的性能。
2.2 改进MobileNet-SSD算法的匹配策略
默认框的长宽比对默认框和真实框的IOU有很大影响,并且对于训练检测模型也是非常重要的参数。原始纵横比非常适用于PASCAL VOC2017数据集,但不适用于油漆缺陷的检测。因此,采用K-均值聚类算法对油漆数据库中缺陷区域的长宽比进行聚类,以获得合适的长宽比来检测车身油漆缺陷。 长宽比的筛选规则如下:
a.油漆图像中所有缺陷区域的输入K值和纵横比
b.随机生成K个纵横比聚类中心
c.计算设置到每个聚类中心的油漆样本图像中每个缺陷区域的长宽比之间的差异,并使用差异对缺陷区域进行分类
d.计算每个类别中所有缺陷区域的长宽比中心,并将每个群集中心更新为其长宽比中心
根据原始SSD算法的匹配策略,每个宽高比都在宽高比(宽度/高度或高度/宽度)的范围内,因此仅需要对宽高比大于1的值进行聚类。根据聚类结果分析,原始SSD算法使用的纵横比αε{1,2,3,1 / 2,1 / 3}不适用于检测汽车油漆缺陷。汽车中几乎没有缺陷油漆缺陷数据库,其长宽比大于3,大多数为1、2和2.55。结合原始SSD算法的长宽比,可以获得MobileNet-SSD算法每个检测层的默认框数和长宽比,请参见表1。如表1和表2所示,改进了Conv13,Conv14_2,Conv15_2,Conv16_2和Conv17_2网络层的匹配策略.经过实验验证,当Conv13,Conv14_2,Conv15_2,Conv16_2和Conv17_2网络层的默认帧数为4、6、6、6、6、6时,模型训练和检测效果最佳,因此Conv13网络的默认帧数层从3改善到4。
实验与结果
更多实验细节,可以参考原文。