由于导光板(LGP)具有超薄、高透明度、高反射、导光均匀且明亮等优点, 被普遍应用于手机、平板、电脑等液晶屏中. 导光板作为液晶屏背光模组中关键组成部分, 其质量的好坏直接影响画面的品质效果, 然而导光板在生产过程中, 由于原材料、温度等因素影响, 无法避免出现点伤、白污、线划伤、暗影等缺陷, 会导致显示异常并影响用户使用. 因此, 对其进行缺陷检测非常必要. 传统机器视觉缺陷检测[1]方法主要有支持向量机(SVM)、邻近算法(KNN)、决策树等[2], 这些传统机器视觉方法需要人工提取特征, 对于每类产品甚至每种缺陷都需要编写专门的检测算法. 而且, 容易受到光照、灰尘等环境因素干扰, 稳定性、鲁棒性比较差.
近年来, 深度学习算法广泛应用于图像目标检测. 能在复杂背景下进行检测的算法主要分为基于端到端的一阶段目标检测算法和基于区域的二阶段目标检测算法.
二阶段目标检测算法先生成RPN (region proposal network)候选框, 然后预测目标的位置和类别信息, 速度较慢, 不能保证检测的实时性. 主要代表有R-CNN系列, 在此基础上发展了Fast R-CNN[3], Faster R-CNN[4].
一阶段目标检测算法没有生成候选框, 直接利用卷积神经网络提取特征, 预测目标的位置和类别信息. 具有更高的检测速度, 但是对小目标检测精度相对较低. 具有代表性的算法主要有SSD、YOLO系列等.
深度学习方法具有强大的特征提取和自我学习能力, 可提取深层次更具有代表性的特征信息, 泛化能力更强, 检测准确率更高. 近年来, 深度学习广泛应用于钢材、芯片、液晶屏、等各种缺陷检测领域[5-8], 取得不错的效果. 如柳锋等人[9]结合深度学习语义分割方法进行导光板表面缺陷检测, 该方法在简单的背景下可进行较好的检出缺陷, 但面对复杂的背景容易产生误检; Deitsch等人[10]等通过改进VGG19网络结构检测太阳能面板缺陷, 采用直连结构使得网络参数量较大, 算法效率较低; He等人[11]针对钢材表面缺陷, 提出多级融合网络融合多层次特征, 获得更丰富的缺陷细节特征, 进一步提升检测准确率; Ding等人[12]提出了一种针对PCB表面缺陷检测网络, 通过使用k均值聚类出合理锚框, 并将多尺度金字塔网络引入到Fater R-CNN中, 增强来自底层特征信息的融合, 提升网络对微小缺陷的检测精度; 李维刚等人[13]提出的基于改进的YOLOv3实现带钢表面缺陷检测, 主要改进在于加权K-means聚类算法, 优化先验框参数. 融合浅层和深层的特征, 生成更大尺度检测图层, 在NEU-DET数据集上平均准确率达到80%; He等人[14]提出了混合全卷积神经网络应用于木材缺陷检测, 分类准确率达到了99.14%; 张广世等人[15]在YOLOv3网络中引入DenseNet网络用于检测齿轮缺陷, 提高模型提取特征能力, 扩展预测尺度, 提升对小尺寸目标检测能力; 沈晓海等人[16]基于Faster RCNN设计了一种多任务深度学习模型检测铝材表面缺陷, 包括区域分割、缺陷的分类和目标检测, 有效提升检测效率.
单边侧入式大尺寸导光板网点分散不均, 背景纹理复杂; 而且, 其缺陷种类繁多, 大小和形态各异, 主要有白点、黑点、线划伤、白污、压伤、暗影等数十种. 根据对大尺寸导光板生产厂家调研和导光板缺陷的统计分析, 白点、轻微线划伤等小目标缺陷占比较非常高, 特别是白点缺陷; 而且, 白点缺陷与灰尘成像特点非常接近, 仅仅是灰度与大小上存在细微差别. 基于此, 本文在一阶段目标检测算法YOLOv3[17]的基础上, 提出一种基于改进YOLOv3算法来实现导光板缺陷的分类与定位检测, 同时满足高检测精度和速度要求.
首先, 由于缺陷目标的尺度较小, 并且YOLOv3网络中浅层特征层的感受野较小, 通过在浅层特征层引入改进多分支RFB模块, 提升网络的感受野从而提升对小目标缺陷检测精度; 其次, 为了缩减模型大小和计算量, 提升网络模型的运行速度, 利用深度可分离卷积替换标准卷积; 进而, 针对导光板缺陷成像特点, 为了进一步提高模型微小缺陷的检测能力, 使用改进K-means算法聚类出合适的锚框, 并对中小尺度的锚框进行线性缩放, 使之更加贴近目标, 以便获得更高的准确率. 实验结果表明, 本文提出的大尺寸导光板缺陷检测算法平均精度达到98.92%.
2 改进YOLOv3检测算法 2.1 改进YOLOv3网络YOLOv3是基于端到端的目标检测网络, 使用Darknet-53作为主干网络进行特征提取, 并借鉴残差网络ResNet (residual network)[18]的思想, 在主干网络中融入了1、2、8、8、4个残差模块. 残差结构可以缓解深层网络训练时候的梯度消失问题, 并且加强收敛效果; 而且, 通过上采样充分融合小特征图的深层语义信息和大特征图的目标位置信息, 并进行两次特征融合, 可以获得更好的细粒度特征及更有意义的语义信息. 但是, 在YOLOv3网络中, 常规标准卷积会带来比较大的参数量, 浅层特征层的感受野较小. 基于此, 本文提出了一种改进的YOLOv3网络, 结构如图1所示. 为了扩大网络模型的感受视野, 分别在预测层Y2和预测层Y3前引入改进后的RFB感受野增强模块. RFB模块多分支结构模拟人眼视觉感受野构造, 以不同尺度的卷积核增强提取特征, 并以不同膨胀率的空洞卷积提升感受野; 为了缩减模型大小和计算量, 利用深度可分离卷积替换普通卷积; 为了进一步提高模型微小缺陷的检测能力, 使用改进K-means算法聚类出合适的锚框, 并分别对中小尺度的锚框进行不同线性缩放.
2.2 改进多分支RFB模块
人眼视觉系统是由多个不同的感受野组成, RFB[19]模块的多分支结构模拟人眼视觉感受野, 能使网络模型感受视野扩大. RFB模块网络是由多种不同的不同尺寸卷积核的卷积层构成, 每个分支采用不同尺度的卷积核和不同膨胀率的空洞卷积组合, 使得各个分支的感受野以不同的程度扩大. 首先, 通过1×1的卷积降维; 其次, 分别进行1×1、3×3和5×5卷积, 模拟不同尺度的感受野, 不同大小的卷积核对应连接(串联)对应膨胀率为1、3、5的空洞卷积; 最后, 把各个分支的输出进行Concat拼接, 融合不同特征, 提升网络模型对不同尺寸缺陷目标特征表达能力. 此外, 在RFB模块中还采用了ResNet中的shortcut连接方式, 可以有效减轻梯度消失, 使梯度能够很好地传递到浅层, 降低网络的复杂度, 提升网络的训练效果. 在保证网络感受野的前提下, 为了进一步减少计算量, 本文采用两个级联的3×3卷积代替5×5卷积. 改进后的RFB模块如图2所示. 为了提升小目标的检测准确率, 可以在特征层和预测层之间引入RFB模块[20]. 本文对在网络不同位置引入改进的RFB模块进行了大量的实验. 实验结果表明, 分别在预测层Y2和预测层Y3前引入改进后的RFB模块增强特征提取, 检测准确率最高, 可以进一步提升网络的检测性能.
2.3 深度可分离卷积MobileNet[21-23]系列网络作为轻量级卷积神经网络的典型代表, 普遍应用于目标检测和图像分割、分类等任务. 其核心是引入深度可分离卷积, 深度可分离卷积是将神经网络中卷积层的标准卷积分离为1个深度卷积(depthwise convolution, DW)和1个1×1的点卷积(pointwise convolution, PW)[24]. 深度卷积作用于每一个通道, 每个滤波器只提取单一通道的特征, 然后1×1的点卷积用来组合深度卷积后输出的特征图. 在卷积操作中, 标准卷积的卷积操作是直接进行滤波组合输出特征图; 而深度可分离卷积则分为两步, 一步用来滤波, 一步用来组合. 如图3所示, 这类分解过程可以显著地缩减模型大小和计算量.
在计算量上, 假设输入图片的尺寸为
$ {F_1} = M \times {D_P} \times {D_P} \times ({D_P} \times {D_P} \times N) $ | (1) |
若使用深度可分离卷积完成相同的任务, 计算量为式(2)所示:
$ \begin{split} {F_2} &= {D_{{K}}} \times {D_{{K}}} \times M \times {D_P} \times {D_P} + M \times N \times {D_P} \times {D_P} \hfill \\ & = M \times {D_P} \times {D_P} \times ({D_{{K}}} \times {D_{{K}}} + N) \end{split} $ | (2) |
两种卷积计算量比值如式(3)所示:
$ \frac{{{F_2}}}{{{F_1}}} = \frac{{M \times {D_P} \times {D_P} \times ({D_{{K}}} \times {D_{{K}}} + N)}}{{M \times {D_P} \times {D_P} \times ({D_{{K}}} \times {D_{{K}}} \times N)}} = \frac{1}{N} + \frac{1}{{D_K^2}} $ | (3) |
由此可见, 使用深度可分离卷积相比于标准卷积可缩减大幅度计算量. 如果使用大小为3×3的卷积核, 与标准卷积相比, 深度可分离卷积最多可以将计算量减少至1/9, 而精度只有极少量的下降. 基于此, 为了缩减本文网络模型大小和计算量, 利用深度可分离卷积替换普通卷积.
2.4 改进K-means聚类算法在YOLOv3算法中引入了锚框(anchor box)的思想, 这些设定锚框尺寸是基于COCO数据集, 主要面向行人、汽车和日常物品等多尺度目标, 物种尺寸多样, 与导光板缺陷目标尺寸差异过大. 因此, 利用K-means算法聚类出与导光板缺陷目标相符的锚框尺寸. 锚框的尺寸与真实框的尺寸越靠近, 则检测效果越好. K-means聚类算法是一种经典的无监督机器学习算法, 是使用距离作为数据对象相似度的评价指标, 当两个对象相距越近, 则表明相似度越高.
K-means具体算法流程如算法1.
算法1. K-means聚类算法
(1) 在数据中任意选择k个样本, 当作初始聚类中心.
(2) 然后计算余下各点
(3) 重新计算每个集合的聚类中心
(4) 回到步骤(2)按照顺序继续执行, 直到所有的集合的中心点的变化趋向稳定, 则聚类结束.
在YOLOv3中, K-means算法中使用IOU来衡量标注框的距离关系, 如式(4)所示:
$ d = 1 - IOU\left( {x, {S_x}} \right) $ | (4) |
其中, IOU是真实框
聚类中心的计算公式如式(5)所示:
$ {y_n} = \frac{{\displaystyle\sum {_{{x_i} \in {c_n}}{x_i}} }}{{|{C_n}|}} $ | (5) |
其中,
最终利用K-means聚类得到9组锚框, 按照大小分为3组, 如表1所示. 在13×13特征图上使用最大的一组, 在52×52特征图上使用最小的一组.
在YOLOv3中通过特征融合输出3个尺度特征图进行预测, 在小尺度的特征图检测较大目标, 在中等尺度的特征图检测中大小目标, 在大尺度的特征图检测较小目标. 在导光板缺陷数据集小目标缺陷占比较高, 并且尺度大小是均匀集中, 没有体现YOLOv3网络多尺度预测的优势[25]. 根据大尺寸导光板的缺陷成像特点, 对聚类得到的中小尺度的6组锚框进行线性缩放, 中心思想是使得锚框靠近真实框, 以锚框中心点对宽高以一定比例放大和缩小, 如图4所示, 使得小的锚框尺寸更小, 大的锚框尺寸更大. 线性缩放公式如式(6)和(7)所示:
$ x_1^{'} = \alpha {x_1}, \;\;x_6^{'} = \beta {x_6} $ | (6) |
$ x_i^{'} = \frac{{({x_i} - {x_1})}}{{({x_6} - {x_1})}} \times (x_6^{'} - x_1^{'}) + x_1^{'}, \;\;\;y_i^{'} = x_i^{'}\frac{{{y_i}}}{{{x_i}}} $ | (7) |
其中,
2.5 损失函数
YOLOv3的损失函数[26]由坐标位置损失
$ Loss = {L_1} + {L_2} + {L_3} $ | (8) |
坐标位置损失
$ \begin{split} {L_1} =& {\lambda _c}\sum\limits_{i = 1}^{{S^2}} {\sum\limits_{j = 1}^B {\alpha _{ij}^{{\rm{obj}}}} } \left[ {{{\left( {{x_i} - \overline {{x_i}} } \right)}^2} + {{\left( {{y_i} - \overline {{y_i}} } \right)}^2}} \right] \hfill \\ & + {\lambda _c}\sum\limits_{i = 1}^{{S^2}} {\sum\limits_{j = 1}^B {\alpha _{ij}^{{\rm{obj}}}} } \left[ {{{\left( {\sqrt {{w_i}} - \sqrt {\overline {{w_i}} } } \right)}^2} + {{\left( {\sqrt {{h_i}} - \sqrt {\overline {{h_i}} } } \right)}^2}} \right]\; \end{split} $ | (9) |
其中,
置信度损失
$ {L_2} = \sum\limits_{i = 0}^{{S^2}} {\sum\limits_{j = 0}^B {\alpha _{ij}^{\rm{obj}}} } {\left( {{c_i} - \overline {{c_i}} } \right)^2} + {\lambda _{\rm{noobj}}}\sum\limits_{i = 0}^{{S^2}} {\sum\limits_{j = 0}^B {\alpha _{ij}^{\rm{obj}}} } {\left( {{c_i} - \overline {{c_i}} } \right)^2} $ | (10) |
其中,
类别损失
$ {L_3} = \sum\limits_{i = 1}^{{S^2}} {\sum\limits_{j = 1}^B {\alpha _{ij}^{\rm{obj}} \cdot } } {\sum\limits_{c \in classes} {({p_i}(c) - \overline {{p_i}} (c))} ^2} $ | (11) |
其中,
导光板缺陷检测实验设备如图5所示, 整个设备主要由图像采集部分、传送部分和图像处理部分构成. 工业相机采集导光板图片, 传送到工控机判断处理, 然后控制机械手臂将导光板放在OK区域或NG区域.
实验环境配置如表2所示, 模型的训练与实验均在以下环境下进行, 在训练中采用随机梯度下降(SGD)优化算法. 设置输入图片大小为416×416, 初始学习率和最终学习率为0.01和0.0001, 动量大小为0.9, 权重衰减系数为0.0005, 批量大小16. 在网络训练过程中, 训练集和验证集的loss的变化曲线如图6所示.
3.2 数据集构建
数据集来自于导光板生产现场, 通过16K线扫相机采集, 数据集总共有2236张. 使用LabelImg软件按照PASCAL VOC数据集格式对每张图片上缺陷进行标注, 并且命名缺陷类别名, 生成XML格式文件, 包含图像路径、框的坐标信息、缺陷的类别名等信息, 然后写程序转换成txt文件数据集. 训练集、验证集和测试集的划分为7:1:2.
3.3 算法评价指标在本文中, 均使用准确率P (precision)、召回率R (recall)、AP (average precision)、mAP (mean average precision)、F1值作为评价指标. TP为检测正确, 即正确检测出来的目标个数. FP为检测错误, 即错误检测出来的目标个数, FN为没有被检测出的目标个数. 准确率和召回率的计算公式如式(12)和式(13)所示:
$ P = TP/(TP + FP) $ | (12) |
$ R = TP/(TP + FN) $ | (13) |
以P为横坐标, R为纵坐标轴组成的曲线被称为P-R曲线, 并对其积分得到曲线下的面积即为AP. 多个类别AP的平均值就是mAP, 其值越大则表明该算法检测准确率越高. 计算公式如式(14)和式(15)所示:
$ AP = \int_0^1 {P(R)} dR $ | (14) |
$ mAP = \frac{1}{{{n}}}\sum\limits_1^N {AP} $ | (15) |
F1值作为用来评价分类模型的一种指标, 兼顾精确率和召回率, 作为算法的综合性能评估指标. 计算公式如式(16)所示:
$ F1 = 2 \cdot \frac{{P \times R}}{{P + R}} $ | (16) |
在YOLOv3网络中引入RFB模块的作用主要是扩大网络的感受野, 增强网络的特征提取能力, 表3为分别在不同位置引入RFB模块的检测结果对比. 可见, 在预测层Y1之前加入RFB模块mAP没有较大提高; 在预测层Y2之前加入RFB模块, mAP提高了2.29%, F1值提高了5.04%; 在预测层Y3之前加入RFB模块点缺陷准确率提高了4.98%, 线缺陷准确率提高了1.28%, mAP有较大提升, 提高了6.38%, F1值提高了7.15%.; 在预测层Y2和预测层Y3之前均加入RFB模块, mAP提升最大, 提高了7.28%, 点缺陷、线缺陷准确率分别提高了6.01%、8.83%, F1值提高了8.35%. 在预测层Y2和预测层Y3前引入RFB模块可有效提升网络模型的性能.
3.4.2 改进K-means算法的检测结果对比
改进K-means算法的YOLOv3和YOLOv3检测结果对比如表4所示. 可见, 点缺陷、线缺陷准确率分别提升了4.62%、2.87%, mAP提高了5.09%, F1值提高了5.83%. 因此, 改进K-means算法可以有效提升YOLOv3网络缺陷检测的准确率, 对小目标点缺陷准确率提升效果明显.
3.4.3 不同算法对比以上两处改进均能提升准确率, 并且这些改进是互补的, 将其结合能够进一步提升算法的性能. 为了进一步检验本文算法的性能, 将本文算法与Faster R-CNN、SSD、YOLOv3等检测算法进行了比较. 以准确率、平均准确率、F1值作为算法评估指标, 结果对比如表5所示.
由表5可知, 改进后的YOLOv3算法和YOLOv3相比, 在点缺陷准确率、线缺陷准确率和F1分别提升了7.71%、11.24%和10.76%, mAP提升了8.55%, 缩减了模型大小, 检测速度可达71.6 fps, 与SSD、Faster R-CNN算法相比, 本文算法具有更高的检测精度, 实时性强. 由此说明, 在网络中引入RFB模块、引入深度可分离卷积, 改进K-means算法结合能够有效提升检测效果. 不同算法预测结果对比如图7所示.
4 结论导光板质量检测是导光板生产过程中必要的环节, 针对大尺寸导光板缺陷, 本文提出了一种基于改进YOLOv3的检测算法. 在YOLOv3网络引入多分支RFB模块, 提升特征提取能力; 改进K-means算法, 对中小尺度的锚框进行线性缩放, 加快了模型收敛同时提高了平均精度. 实验结果表明, 与原YOLOv3相比, 改进后的算法在平均准确率及和F1值分别提升了8.55%和10.76%, 检测速度达到71.6 fps, 算法的mAP高达98.92%. 可满足工业生产缺陷检测要求, 有一定的应用前景.
[1] |
汤勃, 孔建益, 伍世虔. 机器视觉表面缺陷检测综述. 中国图象图形学报, 2017, 22(12): 1640-1663. |
[2] |
Yang H, Shen LQ, Dong XC, et al. Low-complexity CTU partition structure decision and fast intra mode decision for versatile video coding. IEEE Transactions on Circuits and Systems for Video Technology, 2020, 30(6): 1668-1682. DOI:10.1109/TCSVT.2019.2904198 |
[3] |
Girshick R. Fast R-CNN. 2015 IEEE International Conference on Computer Vision (ICCV). Santiago: IEEE, 2015. 1440–1448.
|
[4] |
Ren SQ, He KM, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 |
[5] |
陶显, 侯伟, 徐德. 基于深度学习的表面缺陷检测方法综述. 自动化学报, 2021, 47(5): 1017-1034. |
[6] |
张辉, 宋雅男, 王耀南, 等. 钢轨缺陷无损检测与评估技术综述. 仪器仪表学报, 2019, 40(2): 11-25. |
[7] |
Yuan ZC, Zhang ZT, Su H, et al. Vision-based defect detection for mobile phone cover glass using deep neural networks. International Journal of Precision Engineering and Manufacturing, 2018, 19(6): 801-810. DOI:10.1007/s12541-018-0096-x |
[8] |
Xie Q, Li DW, Xu JX, et al. Automatic detection and classification of sewer defects via hierarchical deep learning. IEEE Transactions on Automation Science and Engineering, 2019, 16(4): 1836-1847. DOI:10.1109/TASE.2019.2900170 |
[9] |
柳锋, 李俊峰, 戴文战. 基于深度学习语义分割的导光板缺陷检测方法. 计算机系统应用, 2020, 29(6): 29-38. DOI:10.15888/j.cnki.csa.007411 |
[10] |
Deitsch S, Christlein V, Berger S, et al. Automatic classification of defective photovoltaic module cells in electroluminescence images. Solar Energy, 2019, 185: 455-468. DOI:10.1016/j.solener.2019.02.067 |
[11] |
He Y, Song KC, Meng QG, et al. An end-to-end steel surface defect detection approach via fusing multiple hierarchical features. IEEE Transactions on Instrumentation and Measurement, 2020, 69(4): 1493-1504. DOI:10.1109/TIM.2019.2915404 |
[12] |
Ding RW, Dai LH, Li GP, et al. TDD-net: A tiny defect detection network for printed circuit boards. CAAI Transactions on Intelligence Technology, 2019, 4(2): 110-116. DOI:10.1049/trit.2019.0019 |
[13] |
李维刚, 叶欣, 赵云涛, 等. 基于改进YOLOv3算法的带钢表面缺陷检测. 电子学报, 2020, 48(7): 1284-1292. |
[14] |
He T, Liu Y, Xu CY, et al. A fully convolutional neural network for wood defect location and identification. IEEE Access, 2019, 7: 123453-123462. DOI:10.1109/ACCESS.2019.2937461 |
[15] |
张广世, 葛广英, 朱荣华, 等. 基于改进YOLOv3网络的齿轮缺陷检测. 激光与光电子学进展, 2020, 57(12): 121009. |
[16] |
沈晓海, 栗泽昊, 李敏, 等. 基于多任务深度学习的铝材表面缺陷检测. 激光与光电子学进展, 2020, 57(10): 101501. |
[17] |
Redmon J, Farhadi A. YOLOv3: An incremental improvement. arXiv: 1804.02767, 2018.
|
[18] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 770–778.
|
[19] |
Liu ST, Huang D, Wang YH. Receptive field block net for accurate and fast object detection. 15th European Conference on Computer Vision—ECCV 2018. Munich: Springer, 2018. 404–419.
|
[20] |
徐融, 邱晓晖. 一种改进的YOLO V3目标检测方法. 计算机技术与发展, 2020, 30(7): 30-33. |
[21] |
Howard AG, Zhu ML, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv: 1704.04861, 2017.
|
[22] |
Sandler M, Howard A, Zhu ML, et al. MobileNetV2: Inverted residuals and linear bottlenecks. 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 4510–4520.
|
[23] |
Howard A, Sandler M, Chen B, et al. Searching for mobileNetV3. 2019 IEEE/CVF International Conference on Computer Vision (ICCV). Seoul: IEEE, 2019. 1314–1324.
|
[24] |
吴涛, 王伟斌, 于力, 等. 轻量级YOLOv3的绝缘子缺陷检测方法. 计算机工程, 2019, 45(8): 275-280. |
[25] |
邵慧翔, 曾丹. 基于改进YOLOv3算法的水下小目标分类与识别. 上海大学学报(自然科学版), 2021, 27(3): 481-491. |
[26] |
武星, 齐泽宇, 王龙军, 等. 基于轻量化YOLOv3卷积神经网络的苹果检测方法. 农业机械学报, 2020, 51(8): 17-25. |