«上一篇 下一篇»
  计算机工程  2020, Vol. 46 Issue (11): 246-254  DOI: 10.19678/j.issn.1000-3428.0056446
0

引用本文  

何智成, 王振兴. 基于改进YOLOv2的白车身焊点检测方法[J]. 计算机工程, 2020, 46(11), 246-254. DOI: 10.19678/j.issn.1000-3428.0056446.
HE Zhicheng, WANG Zhenxing. Welding Spot Detection Method for Body in White Based on Improved YOLOv2[J]. Computer Engineering, 2020, 46(11), 246-254. DOI: 10.19678/j.issn.1000-3428.0056446.

基金项目

国家自然科学基金创新研究群体项目(51621004);国家自然科学基金(U1864207);广西科技大学广西汽车零部件与整车技术重点实验室开放课题(2017GKLACVTKF01);长沙市科技计划(kq1907104)

作者简介

何智成(1983-), 男, 副教授、博士, 主研方向为图像处理、汽车NVH分析;
王振兴, 硕士研究生

文章历史

收稿日期:2019-10-29
修回日期:2019-12-29
基于改进YOLOv2的白车身焊点检测方法
何智成 , 王振兴     
湖南大学 汽车车身先进设计制造国家重点实验室, 长沙 410082
摘要:基于机器视觉的白车身焊点自动化检测为车身焊接质量控制提供了有效的途径,然而受环境光污染的影响,焊点自动化检测装备的机器视觉系统较难进行准确定位。为解决传统的图像处理方法受环境干扰大及鲁棒性差的问题,提出一种基于深度学习的焊点位置检测方法。引入MobileNetv2的卷积结构代替YOLOv2的卷积层,并借鉴YOLOv2的细粒度特征的方法,解决YOLOv2模型参数较多的问题。采用GIoU loss对模型的损失函数进行改进,利用K-means聚类算法得到适合焊点数据集的anchor,从而获得高可靠性的轻量化白车身焊点位置检测模型FGM_YOLO。在白车身焊点测试集上进行测试,结果表明,与原YOLOv2模型相比,该模型的平均精度提升了2.47%,模型参数约为原模型的1/16,检测速度提高2倍,大幅提高了检测效率。
关键词焊点检测    YOLOv2模型    MobileNetv2卷积    深度可分离卷积    交并比    
Welding Spot Detection Method for Body in White Based on Improved YOLOv2
HE Zhicheng , WANG Zhenxing     
State Key Laboratory of Advanced Design and Manufacture for Vehicle Body, Hunan University, Changsha 410082, China
Abstract: The machine-vision-based automatic detection methods for the welding spots of body in white provides an effective way to control the quality of the welding.However, due to the influence of light pollution, the machine vision system of the automatic detection equipment often fail to locate the welding spots accurately.To address the interference from environment and the weak robustness of the traditional methods, this paper proposes a method for welding spot detection based on deep learning.The method introduces the convolutional structure of MobileNetv2 to replace the convolutional layer of YOLOv2, and draws on the fine-grained feature of YOLOv2 to solve the excessive number of parameters of the traditional YOLOv2 model.Then GIoU loss is used to improve the loss function of the model.Finally, the K-means clustering algorithm is used to obtain a suitable anchor for the welding spot dataset, and an efficient and reliable welding spot detection model FGM_YOLO for light body in white is obtained.Results of testing and comparison on the test set of welding spots of body in white show that the AP of this model is 2.47% higher than that of YOLOv2.The number of its parameters is about 1/16 of that of the original model, and its detection speed is two times that of the original model, which proves a significant increase in the detection accuracy and efficiency.
Key words: welding spot detection    YOLOv2 model    MobileNetv2 convolution    depthwise separable convolution    Intersection over Union(IoU)    
0 概述

白车身焊点质量对汽车的性能有着重要的影响, 焊点质量检测决定着白车身性能的可靠性。目前大部分的白车身焊点手动检测需要耗费大量的人力资源, 效率低下。采用自动化的检测可以提升焊点检测的效率, 焊点检测系统采用传统图像处理、霍夫圆变换的检测方法[1]受环境的影响较大, 在光照过亮、过暗或者焊点有污渍的情况下检测效果不理想, 且焊点轮廓不是标准的圆形, 增大了霍夫圆变换检测方法的检测难度。

近年来, 很多研究机构与研究者对基于深度学习的目标检测算法进行研究。文献[2]提出了R-CNN目标检测方法, 该方法使用卷积神经网络进行目标检测, 但是检测时间过长。文献[3]提出了Fast R-CNN, 将卷积特征提取、目标分类、边框回归融合为一个阶段, 大幅节省了检测时间。文献[4]提出了Faster R-CNN, 该方法将区域建议、卷积特征提取、目标分类、边框回归融合到一个网络中, 在检测性能上有很大的提升。R-CNN、Fast R-CNN、Faster R-CNN等方法的思路都是基于区域建议的目标检测方法, 虽然速度有了很大提升, 但是仍然难以满足实时性的要求。文献[5]提出了YOLO目标检测算法, 该算法在速度上大幅提升。文献[6]提出了SSD目标检测模型。文献[7]在YOLO的基础上结合了SSD、Faster R-CNN的锚框机制, 提出了YOLOv2检测模型。YOLOv2在速度和精度上相比YOLO都有一定提升。为提升小目标检测能力, 文献[8]结合FPN[9]特征金字塔的方法提出了YOLOv3目标检测算法, 采用多尺度预测提升了小目标检测能力。

目前有很多学者对YOLOv2目标检测算法进行了研究并且应用于各个领域, 文献[10]采用YOLOv2目标检测算法进行了车辆的实时检测。文献[11]采用YOLOv2目标检测算法进行无人机航拍图定位研究。文献[12]采用YOLOv2进行红外图像行人检测研究。文献[13]采用DenseNet[14]的方法对YOLOv2进行改进,构建Tiny-yolo-dense, 并应用到了芒果检测中。文献[15]在YOLOv2的基础上, 提出使用更少的卷积层和去除卷积神经网络中批量标准化层的方法, 得到轻量实时的目标检测模型YOLO-LITE。文献[16]采用去除YOLOv2的两个连续的3×3×1 024的卷积层的方法对YOLOv2进行改进得到了YOLOv2-Reduced, 从而减少模型参数,提高运行速度, 并且在SAR图像船只检测中得到了良好的应用。文献[17]提出去除YOLOv2最后两个3×3×1 024的卷积层以减少模型参数, 使用三层特征融合的方法进一步提高模型的检测精度, 并构成YOLOv2_Vehicle。可见, 在目前的YOLOv2改进方法中, 最常用的是对YOLOv2的卷积神经网络模型结构进行改进和优化, 以满足研究对象所需要的速度和精度要求。卷积神经网络模型决定着目标检测算法的精度与速度, 目前常用的卷积模型中有VGG[18]、GoogLeNet[19]、ResNet[20]和DenseNet[14]等, 这些网络往往是模型较大, 参数较多, 运行速度较慢。为解决这一问题, 文献[21]提出MobileNet, 并给出了深度可分离卷积的概念, 以减少模型参数, 加快运行速度。为进一步提升模型精度, 文献[22]提出了MobileNetv2, 相比于MobileNet,检测精度更高。

为提高焊点位置检测效率, 本文综合考虑目前常见的YOLOv2改进方法及深度分离卷积的作用, 用MobileNetv2替换YOLOv2卷积层,同时采用细粒度特征的方法将不同层的特征进行融合, 运用GIoU loss[23]改进损失函数并进行训练比较, 构建一个轻量的焊点检测模型FGM_YOLO。

1 YOLOv2目标检测算法

YOLOv2目标检测算法是一种单阶段目标检测方法, 其检测流程如图 1所示。本文设置输入图片大小为224×224, 将图片划分为7×7的网格, 每个网格预测5个预测框, 然后去掉置信较低的预测框, 最后经过非极大值抑制[24]得到最后的预测结果。

Download:
图 1 YOLOv2算法检测流程 Fig. 1 Detection procedure of YOLOv2 algorithm
1.1 网络结构

YOLOv2的模型结构如图 2所示。输入图片经过一系列的卷积、最大值池化操作, 之后将低层特征进行重整操作与高层卷积的特征进行融合, 随后进行两次卷积操作, 最后送入检测层。YOLOv2采用这种细粒度特征的方法, 使得深层的特征引入了浅层的特征。由于浅层特征的感受野更小, 具有更高的分辨率, 而且浅层特征包含物体的轮廓信息, 深层特征包含了丰富的语义信息, 因此采用深层特征与浅层特征融合的操作使得YOLOv2模型的检测效果更好。

Download:
图 2 YOLOv2模型结构 Fig. 2 Structure of YOLOv2 model
1.2 损失函数

当输入图片大小为224×224时, YOLOv2模型的特征提取层最终输出特征为7×7×B(C+5)。共7×7个网格, 各网格有B个锚框(anchor), 每个anchor有位置和置信共5个参数, C为检测类别数。模型损失函数如式(1)所示:

$ \begin{array}{l} \begin{array}{*{20}{l}} {{\rm{loss}} = {\lambda _1}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{k = 0}^B {L_{ik}^{{\rm{obj}}}} } (2 - {w_i}{h_i}) \times }\\ {{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} [{{({x_i} - x_i^\prime )}^2} + {{({y_i} - y_i^\prime )}^2} + }\\ {{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {{({w_i} - w_i^\prime )}^2} + {{({h_i} - h_i^\prime )}^2}] + } \end{array}\\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \begin{array}{*{20}{l}} {{\lambda _2}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{k = 0}^B {L_{ik}^{{\rm{ noobj }}}} } {{({C_i} - C_i^\prime )}^2} + }\\ {{\lambda _3}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{k = 0}^B {L_{ik}^{{\rm{ obj }}}} } {{({C_i} - C_i^\prime )}^2} + }\\ {{\lambda _4}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{k = 0}^B {L_{ik}^{{\rm{ obj }}}} } \sum\limits_{c = 1}^{{\rm{ class }}} {({p_i}(} c) - p_i^\prime (c){)^2}} \end{array} \end{array} $ (1)

其中, λ1为位置损失权重, xiyiwihi为真实框的中心位置和长宽, xiyiwihi为预测框的中心位置和长宽, λ2是背景置信损失系数, λ3是前景置信损失系数, Ci是真实框置信, C′i是预测框置信。Liknoobj表示背景, Likobj表示前景, λ4是类别损失权重系数, pi(c)、pi(c)分别表示真实框与预测框类别。

YOLOv2的损失函数包括位置损失、背景置信损失、前景置信损失和类别损失。首先计算anchor与真实框的交并比(Intersection over Union, IoU), 这里计算IoU时只考虑anchor与真实框的形状。将IoU最大的anchor与真实框匹配。匹配的anchor预测结果与真实框相比得出类别、位置以及有物体的置信损失(前景损失)。式(1)的第1项为位置损失, (2-wihi)表示根据真实框的大小对位置损失权重进行修正。式(1)的第2项为无物体的置信损失(背景损失):无物体处的真实置信为0, 把预测框与真实框的IoU小于阈值的预测框作为背景, 另外其他大于阈值但是没有与真实框匹配的预测框忽略不计算损失, 这里阈值取0.6。此时IoU的计算考虑预测框与真实框的位置和大小, IoU示意图如图 3所示, 其中左下侧框为真实框位置, 右上侧框为预测框位置, 真实框与预测框的交集面积为:

Download:
图 3 交并比示意图 Fig. 3 Schematic diagram of IoU
$ \begin{array}{*{20}{l}} {I = [{\rm{min}}(x_g^2,x_p^2) - {\rm{max}}(x_g^1,x_g^1)] \times }\\ {{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} [{\rm{min}}(y_g^2,y_p^2) - {\rm{max}}(y_g^1,y_g^1)]} \end{array} $ (2)

真实框与预测框的并集面积为:

$ U = (x_g^2 - x_g^1)(y_g^2 - y_g^1) + (x_p^2 - x_p^1)(y_p^2 - y_p^1) - I $ (3)

交并比为:

$ {\rm{IoU}} = \frac{I}{U} $ (4)

式(1)的第3项为有物体的置信损失,有物体处的真实置信为该anchor的预测框与真实框的IoU。式(1)的第4项为有物体的类别损失, 但是由于本文待检测的物体只有白车身焊点这一种类别, 因此本文中的损失函数没有类别损失。

2 模型改进

虽然YOLOv2模型相比其他的目标检测模型规模较小, 但是由于生产车间的工控机很少配置GPU, 因此YOLOv2仍然参数过多, 时效性不强, 不能用于对实时性严格要求的焊点检测中。为提升焊点位置检测效率及精度, 本文从卷积结构、损失函数、锚框聚类3个方面对YOLOv2算法进行了改进得到最终的FGM_YOLO模型, 该模型训练流程如图 4所示。

Download:
图 4 FGM_YOLO训练流程 Fig. 4 Training procedure of FGM_YOLO
2.1 卷积结构改进

由于标准卷积的计算量以及卷积核参数比较多, ANDREW等人提出了深度可分离卷积代替标准卷积, 深度可分离卷积将标准卷积分为深度卷积(Depthwise Convolution, DW)和点卷积。标准卷积及深度分离卷积的结构如图 5所示。

Download:
图 5 标准卷积、深度卷积与点卷积结构 Fig. 5 Structure of standard convolution, depth convolution and point convolution

假设某一卷积层的输入特征为w×h×m, 输出特征为w×h×n, 卷积核的大小为k×k, 则采用标准卷积的计算量为:

$ w \times h \times n \times m \times k \times k $ (5)

采用深度分离卷积的计算量为:

$ w \times h \times m \times k \times k + w \times h \times n \times m \times 1 \times 1 $ (6)

计算量之比为:

$ \frac{{n \times k \times k}}{{n + k \times k}} $ (7)

采用标准卷积的参数个数为:

$ m \times n \times k \times k $ (8)

深度分离卷积的参数个数为:

$ m \times k \times k + m \times n \times 1 \times 1 $ (9)

参数之比为:

$ \frac{{n \times k \times k}}{{n + k \times k}} $ (10)

通过对比可知,采用深度可分离卷积相对于标准卷积计算量和参数会减少。深度可分离卷积的应用将会使模型对硬件计算能力的要求降低、节省成本。

MobileNetv2模型是SANDLER等人提出的第2代轻量级模型, 该模型相比于MobileNet参数更少, MobileNetv2是在ResNet的网络基础上引入了深度可分离卷积并且在残差块上进行了改进。MobileNetv2的卷积块如图 6所示, 卷积块输入特征通道数为cin, 首先经过1×1卷积扩充为输入通道数的6倍, 经过深度卷积之后通过1×1卷积进行通道压缩使通道数与输入通道相同。在残差块的最后一层卷积之后没有采用Relu激活而是采用了Linear激活以防止特征被破坏。当深度卷积的步长s=1时进行shortcut连接, 如图 6(a)所示。深度卷积的步长s=2时不进行shortcut连接, 如图 6(b)所示。

Download:
图 6 MobileNetv2卷积块结构 Fig. 6 Convolution block structure of MobileNetv2

本文用MobileNetv2卷积层代替YOLOv2的darknet19得到了M_YOLO模型。采用细粒度特征方法, 将第12个卷积块的输出特征经过重整操作之后与最后一层的输出特征融合, 然后经过一次卷积操作, 为减少参数, 该层卷积的卷积核大小为1×1。最后连接到检测层得到改进的焊点检测模型FM_YOLO, FM_YOLO模型结构如图 7所示, 其中,a指经过图 6(a)中的卷积块结构操作, b指经过图 6(b)中的卷积块结构操作, c为卷积通道数目, s为卷积步长。

Download:
图 7 FM_YOLO焊点检测模型 Fig. 7 FM_YOLO welding spot detection model
2.2 损失函数改进

YOLOv2的损失函数相同, 目标检测算法中的大小、位置损失一般为预测框长宽、位置与真实框长宽、位置的均方误差。但是在目标检测中评价一个物体是否被正确检测出, IoU是一个重要的度量标准, 而且IoU对尺寸变化不敏感, 直接优化IoU会有更好的结果。但是当预测框与真实框不相交时, IoU一直为0, 无法进行优化。为了把IoU作为损失函数直接进行优化, HAMID等人提出了广义IoU的概念(Generalized Intersection over Union, GIoU)。GIoU能够克服在IoU < 0时无法继续优化的问题, 而且GIoU对尺寸变化也不敏感。本文采用GIoU代替原来的位置损失函数能够直接对度量标准进行优化, 会使得位置检测更加准确。如图 3所示, 预测框与真实框的交集为I, 预测框与真实框的并集为U, 预测框与真实框的最小包围框的面积为:

$ \begin{array}{*{20}{l}} {C = [{\rm{max}}(x_g^2,x_p^2) - {\rm{max}}(x_g^1,x_g^1)] \times }\\ {{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} [{\rm{max}}(y_g^2,y_p^2) - {\rm{min}}(y_g^1,y_g^1)]} \end{array} $ (11)

GIoU为:

$ {\rm{GIoU}} = \frac{I}{U} - \frac{{C - U}}{C} $ (12)

在FM_YOLO模型的基础上, 本文将GIoU作为损失函数的一部分得到FGM_YOLO模型, FGM_YOLO模型的损失函数如式(13)所示:

$ \begin{array}{l} \begin{array}{*{20}{l}} {loss = {\lambda _1}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{k = 0}^B {L_{ik}^{{\rm{obj}}}} } (1 - {\rm{GIoU}}) + }\\ {{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\lambda _2}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{k = 0}^B {L_{ik}^{{\rm{noobj}}}} } {{({C_i} - C_i^\prime )}^2} + } \end{array}\\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \begin{array}{*{20}{l}} {{\lambda _3}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{k = 0}^B {L_{ik}^{{\rm{ obj }}}} } {{({C_i} - C_i^\prime )}^2} + }\\ {{\lambda _4}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{k = 0}^B {L_{ik}^{{\rm{ obj }}}} } \sum\limits_{c = 1}^{{\rm{ class }}} {({p_i}(} c) - p_i^\prime (c){)^2}} \end{array} \end{array} $ (13)
2.3 K-means锚框聚类

YOLOv2目标检测算法引入了锚框(anchor), 采用K-means聚类算法[25]得到anchor数量及大小。本文采用K-means算法对白车身焊点数据集进行聚类得到适合白车身焊点的anchor个数和大小。

K-means聚类算法中的K代表了聚类的类别数。在K-means聚类时, 设定不同的K值不断优化距离值进行聚类。聚类anchor时距离用聚类损失loss表示, 每个数据与哪个聚类中心的交并比最大即loss最小则归为哪一类, 新的聚类中心为同类anchor长的均值与宽的均值。在聚类时不断优化loss直至loss收敛时聚类结束。交并比(IoU)如式(14)所示, 这里计算交并比时只考虑长和宽, 聚类anchor的损失函数如式(15)所示:

$ {{\rm{IoU}} = \frac{{{\rm{min}}({b_w},{c_w}) \times {\rm{min}}({b_h},{c_h})}}{{{b_w}{b_h} + {c_w}{c_h} - {\rm{min}}({b_w},{c_w}) \times {\rm{min}}({b_h},{c_h})}}} $ (14)
$ {{\rm{loss}} = 1 - {\rm{IoU}} (b,c)} $ (15)

其中, b为标定的真实框, c为聚类的中心, bwbh为真实框的宽和高, cwch为聚类中心的宽和高。

本文对制作的白车身焊点数据集, 采用K-means聚类算法进行聚类得到候选区域anchor的数量以及大小。聚类结果如图 8所示, 图 8为聚类损失loss、平均交并比(Average Intersection over Union, AvgIoU)随着anchor数目的变化曲线。

Download:
图 8 聚类损失及平均交并比 Fig. 8 Clustering loss and AvgIoU

根据聚类损失、平均交并比与聚类中心个数的变化曲线可以看出, 当anchor个数为5时, 聚类损失和平均交并比变化减缓。考虑计算精度与速度, 本文对于白车身焊点数据集选用5个anchor, 分别为[0.718, 0.667]、[1.006, 0.921]、[1.400, 1.328]、[0.854, 0.815]、[1.149, 1.115]。

3 实验结果与分析 3.1 数据集制作

在算法的验证中, 目标检测模型训练需要规范标注的数据集。由于没有现成的白车身焊点数据集, 因此在实际生产车间采集了4 000张不同位置、不同光照亮度的白车身焊点图片。然后对焊点图片进行标注建立了白车身焊点检测数据集, 其中3 200张白车身焊点图片作为训练集, 800张白车身焊点图片作为测试集。白车身焊点图片样本如图 9所示。

Download:
图 9 焊点样本 Fig. 9 Welding spot samples
3.2 训练结果 3.2.1 评价指标

目标检测模型的评价指标一般采用均值平均精度(mean Average Precision, mAP)进行评价。mAP是所有类别的平均精度(Average Precision, AP)的均值, AP是召回率(Recall)与准确率(Precision)曲线所包围的面积, 其中召回率指的是所有待检测物体中正确检测出的物体所占的百分比, 准确率指的是所有检测出的物体中正确检测的物体所占的百分比。本文采用COCO[26]数据集的评价标准。对于白车身焊点, 如果预测框与真实框的IoU大于阈值则认为是检测出了焊点, 若预测框与真实框的IoU小于阈值则认为是没有检测出焊点。对于一个焊点若正确的检测出来则为真正类(True Positive, TP), 若对于一个不是焊点的位置检测为焊点则为假正类(False Positive, FP)。设白车身焊点的总数为N, 则检测的召回率为:

$ {\rm{Recall}} = \frac{{{\rm{TP}}}}{N} $ (16)

检测准确率为:

$ {\rm{Precision}} = \frac{{{\rm{TP}}}}{{{\rm{TP + FP}}}} $ (17)

当召回率变化时记录当前召回率对应的最大的准确率, 制作召回率与准确率的曲线图(P-R曲线)。P-R曲线所围成的面积就是当前阈值下模型的AP, 设置10个IoU阈值, 然后计算各个阈值下AP的均值, 最终得到模型的AP。

3.2.2 实验平台及检测结果

由于Keras简单方便, 本文采用Keras深度学习框架。电脑配置:显卡为1050ti 4 GHz显卡, CPU为i5-8400, 运行内存为8 GB。对3 200张白车身焊点数据集进行了数据增强及训练, 训练轮数为500轮, 选用SGD优化器, 学习为0.001, batch size为16, 训练输入图片大小为224×224。分别用YOLOv2, Tiny_YOLOv2、M_YOLO、FM_YOLO、FGM_YOLO、YOLO-LITE、YOLOv2-Reduced、YOLOv2_Vehicle进行训练。训练完成后在测试集上进行测试, 对模型的输出结果采用非极大值抑制之后得到最终的检测结果。

本文方法FGM_YOLO与YOLOv2、Tiny_YOLOv2及Tiny-yolo-dense、YOLO-LITE、YOLOv2-Reduced、YOLOv2_Vehicle在IoU阈值为0.75时的P-R曲线如图 10所示。从图 10可以看出, 本文FGM_YOLO模型的P-R曲线完全包围其他模型, 可知本文方法在IoU=0.75时的AP值最高。

Download:
图 10 不同方法P-R曲线 Fig. 10 P-R curves of different method

各个模型的检测结果及模型的参数数量如表 1所示。

下载CSV 表 1 不同模型结果及参数数量 Table 1 Results and parameters number of different model

表 1的测试结果可知, M_YOLO相比于原YOLOv2参数个数减少到了YOLOv2参数的1/22, APIoU=0.50提升了0.29%, 但AP、APIoU=0.75下降明显。在MobileNetv2的基础上加入细粒度特征FM_YOLO的AP、APIoU=0.50、APIoU=0.75相比于YOLOv2分别提升了1.18%、0.23%和1.67%。采用GIoU loss的FGM_YOLO的AP、APIoU=0.50和APIoU=0.75相比于YOLOv2分别提升了2.47%、0.24%和3.65%, 每张图片的检测时间约是YOLOv2的1/2, 模型参数约是YOLOv2的1/16。FGM_YOLO检测速度比YOLO-LITE和Tiny-yolo-dense分别慢了0.004 s和0.003 s, 但检测精度提高明显。FGM_YOLO相比于YOLOv2-Reduced、YOLOv2_Vehicle,检测精度与速度都有明显提升。另外, 对比YOLOv2-Reduced、YOLOv2_Vehicle的检测结果可以发现, 采用三层特征融合相比于两层特征融合, 在焊点数据集上检测精度并没有提升且出现了稍微下降。

YOLOv2、Tiny-yolo-dense、YOLO-LITE、YOLOv2-Reduced、YOLOv2_Vehicle与本文提出的FGM_YOLO检测结果对比如图 11所示。从图 11可以看出, FGM_YOLO检测结果比YOLOv2、Tiny-yolo-dens、YOLO-LITE、YOLOv2-Reduced、YOLOv2_Vehicle漏检与误检更少。可见本文所提出的检测方法与YOLOv2及其他改进方法相比在焊点检测中有一定的优势。

Download:
图 11 不同模型焊点检测结果对比 Fig. 11 Comparison of welding spot detection results of different model

为进一步展示本文方法的效果, 图 12对传统图像处理检测方法(采用灰度变换、滤波、边缘检测、霍夫圆变换)的检测结果与FGM_YOLO的检测结果进行了对比。其中, 图 12(a)~图 12(d)第1行为原图, 第2行为FGM_YOLO模型的检测效果, 第3行为图像处理方法的检测效果。通过比较可知, 在光照过暗或光照过亮的情况下, 传统的图像处理检测方法基本失效, 在生锈和有污渍的情况下, 传统的图像处理方法受到锈斑、污渍的影响, 出现焊点检测不出或检测位置与真实位置偏离的情况。而本文提出的焊点检测方法FGM_YOLO相比于传统的检测方法受光照影响很小, 检测效果更好。

Download:
图 12 FGM_YOLO与图像处理方法焊点检测结果对比 Fig. 12 Comparison of welding spot detection results of FGM_YOLO and image processing method
4 结束语

为解决白车身焊点质量自动检测时在复杂环境下焊点图像识别与定位困难的问题, 本文提出一个轻型、快速、精度更高的白车身焊点位置检测模型。将YOLOv2的卷积层替换为轻量卷积神经网络Moilenetv2, 采用细粒度特征方法进行特征融合, 并引入GIoU loss改进模型的损失函数, 最后聚类获得适合焊点大小的anchor。通过重新训练得到了效果更好的焊点检测模型FGM_YOLO, 相比原YOLOv2模型,该模型参数大量减少,检测精度提升,检测速度更快, 可适用于对实时性要求严格且工控机没有GPU的车间生产线。相比于传统图像处理检测算法, 本文方法受光照、污渍、锈斑等影响更小, 解决了鲁棒性差的问题, 检测效率大幅提升。下一步将研究更高精度目标检测算法并结合模型量化、剪枝、蒸馏等方法, 扩充数据集以提高检测精度和速度。

参考文献
[1]
BA Wenjin.Research on automatic location method of white body solder joint based on machine vision[D].Changsha: Hunan University, 2018.(in Chinese)
巴文进.基于机器视觉的白车身焊点自动定位方法研究[D].长沙: 湖南大学, 2018.
[2]
GIRSHICK R, DONAHUE J, DARRELL T, et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C., USA: IEEE Press, 2014: 580-587.
[3]
GIRSHICK R.Fast R-CNN[C]//Proceedings of IEEE International Conference on Computer Vision and Pattern Recognition.Washington D.C., USA: IEEE Press, 2015: 1440-1448.
[4]
REN S, HE K, GIRSHICK R, et al.Faster R-CNN: towards real-time object detection with region proposal networks[C]//Proceedings of IEEE ANIPS'15.Washington D.C., USA: IEEE Press, 2015: 91-99.
[5]
REDMON J, DIVVALA S, GIRSHICK R, et al.You only look once: unified, real-time object detection[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C., USA: IEEE Press, 2016: 779-788.
[6]
LIU W, ANGUELOV D, ERHON D, et al.SSD: single shot multibox detector[C]//Proceedings of European Conference on Computer Vision.Berlin Germany: Springer, 2016: 21-37.
[7]
REDMON J, FARHADI A.YOLO9000: better, faster, stronger[C]//Proceedings of IEEE Conference on Com-puter Vision and Pattern Recognition.Washington D.C., USA: IEEE Press, 2017: 7263-7271.
[8]
REDMON J, FARHADI A.Yolov3: an incremental improvement[EB/OL].[2019-09-20].https://arxiv.org/pdf/1804.02767.pdf.
[9]
LIN T Y, DOLLÁR P, GIRSHICK R, et al.Feature pyramid networks for object detection[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C., USA: IEEE Press, 2017: 2117-2125.
[10]
LI Zhou, HUANG Miaohua. Vehicle detections based on YOLO_v2 in real-time[J]. China Mechanical Engineering, 2018, 29(15): 1869-1874. (in Chinese)
黎洲, 黄妙华. 基于YOLO_v2模型的车辆实时检测[J]. 中国机械工程, 2018, 29(15): 1869-1874.
[11]
WEI Yongming, QUAN Jicheng, HOU Yuqingyang. Aerial image location of unmanned aerial vehicle based on YOLO v2[J]. Laser & Optoelectronics Progress, 2017, 54(11): 101-110. (in Chinese)
魏湧明, 全吉成, 侯宇青阳. 基于YOLO v2的无人机航拍图像定位研究[J]. 激光与光电子学进展, 2017, 54(11): 101-110.
[12]
TAN Kangxia, PING Peng, QIN Wenhu. Far-infrared pedestrian detection method based on YOLO model[J]. Laser and Infrared, 2018, 48(11): 118-124. (in Chinese)
谭康霞, 平鹏, 秦文虎. 基于YOLO模型的红外图像行人检测方法[J]. 激光与红外, 2018, 48(11): 118-124.
[13]
XUE Yueju, TU Shuqin, MAO Liang, et al. Immature mango detection based on improved YOLOv2[J]. Transactions of the Chinese Society of Agricultural Engineering, 2018, 34(7): 173-179. (in Chinese)
薛月菊, 涂淑琴, 毛亮, 等. 未成熟芒果的改进YOLOv2识别方法[J]. 农业工程学报, 2018, 34(7): 173-179.
[14]
HUANG G, LIU Z, VAN DER M L, et al.Densely connected convolutional networks[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C., USA: IEEE Press, 2017: 4700-4708.
[15]
HUANG R, PEDOEEM J, CHEN C.YOLO-LITE: a real-time object detection algorithm optimized for non-GPU computers[C]//Proceedings of 2018 IEEE International Conference on Big Data.Washington D.C., USA: IEEE Press, 2018: 2503-2510.
[16]
CHANG Y L, ANAGAW A, CHANG L, et al. Ship detection based on YOLOv2 for SAR imagery[J]. Remote Sensing, 2019, 11(7): 786-798. DOI:10.3390/rs11070786
[17]
SANG Jun, WU Zhongyuan, GUO Pei, et al. An improved YOLOv2 for vehicle detection[J]. Sensors, 2018, 18(12): 1-15. DOI:10.1109/JSEN.2018.2828619
[18]
SIMONYAN K, ZISSERMAN A.Very deep convolutional networks for large-scale image recognition[EB/OL].[2019-09-20].https://www.researchgate.net/publication/265385906.
[19]
SZEGEDY C, LIU W, JIA Y, et al.Going deeper with convolutions[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C., USA: IEEE Press, 2015: 1-9.
[20]
HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al.Deep residual learning for image recognition[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C., USA: IEEE Press, 2016: 770-778.
[21]
HOWARD A G, ZHU M, CHEN B, et al.MobileNets: efficient convolutional neural networks for mobile vision applications[EB/OL].[2019-09-20].https://arxiv.org/pdf/1704.04861.pdf.
[22]
SANDLER M, HOEARD A, ZHU M, et al.MobileNetv2: inverted residuals and linear bottlenecks[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.Washington D.C., USA: IEEE Press, 2018: 4510-4520.
[23]
REZATOFIGHI H, TSOI N, GWAK J Y, et al.Generalized intersection over union: a metric and a loss for bounding box regression[EB/OL].[2019-09-20].https://arxiv.org/pdf/1902.09630.pdf.
[24]
NEUBECK A, VAN GOOL L.Efficient non-maximum suppression[C]//Proceedings of the 18th International Conference on Pattern Recognition.Hong Kong, China: [s.n.], 2006: 850-855.
[25]
HARTIGAN J A, WONG M A. Algorithm AS 136:a k-means clustering algorithm[J]. Journal of the Royal Statistical Society, 1979, 28(1): 100-108.
[26]
LIN T Y, MAIRE M, BELOGGEI S, et al.Microsoft coco: common objects in context[C]//Proceedings of European Conference on Computer Vision.Berlin Germany: Springer, 2014: 740-755.