基于改进YOLOv3 的大尺寸导光板缺陷检测①
2022-06-29胡金良李俊峰
胡金良, 李俊峰
(浙江理工大学 机械与自动控制学院, 杭州 310018)
1 引言
由于导光板(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 RCNN 中, 增强来自底层特征信息的融合, 提升网络对微小缺陷的检测精度; 李维刚等人[13]提出的基于改进的YOLOv3 实现带钢表面缺陷检测, 主要改进在于加权K-means 聚类算法, 优化先验框参数. 融合浅层和深层的特征, 生成更大尺度检测图层, 在NEU-DET 数据集上平均准确率达到80%; He 等人[14]提出了混合全卷积神经网络应用于木材缺陷检测, 分类准确率达到了99.14%; 张广世等人[15]在YOLOv3 网络中引入Dense-Net 网络用于检测齿轮缺陷, 提高模型提取特征能力,扩展预测尺度, 提升对小尺寸目标检测能力; 沈晓海等人[16]基于Faster RCNN 设计了一种多任务深度学习模型检测铝材表面缺陷, 包括区域分割、缺陷的分类和目标检测, 有效提升检测效率.
单边侧入式大尺寸导光板网点分散不均, 背景纹理复杂; 而且, 其缺陷种类繁多, 大小和形态各异, 主要有白点、黑点、线划伤、白污、压伤、暗影等数十种.根据对大尺寸导光板生产厂家调研和导光板缺陷的统计分析, 白点、轻微线划伤等小目标缺陷占比较非常高, 特别是白点缺陷; 而且, 白点缺陷与灰尘成像特点非常接近, 仅仅是灰度与大小上存在细微差别. 基于此,本文在一阶段目标检测算法YOLOv3[17]的基础上, 提出一种基于改进YOLOv3 算法来实现导光板缺陷的分类与定位检测, 同时满足高检测精度和速度要求.
首先, 由于缺陷目标的尺度较小, 并且YOLOv3 网络中浅层特征层的感受野较小, 通过在浅层特征层引入改进多分支RFB 模块, 提升网络的感受野从而提升对小目标缺陷检测精度; 其次, 为了缩减模型大小和计算量, 提升网络模型的运行速度, 利用深度可分离卷积替换标准卷积; 进而, 针对导光板缺陷成像特点, 为了进一步提高模型微小缺陷的检测能力, 使用改进Kmeans 算法聚类出合适的锚框, 并对中小尺度的锚框进行线性缩放, 使之更加贴近目标, 以便获得更高的准确率. 实验结果表明, 本文提出的大尺寸导光板缺陷检测算法平均精度达到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 算法聚类出合适的锚框, 并分别对中小尺度的锚框进行不同线性缩放.
图1 改进后的YOLOv3 网络结构图
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 改进后的RFB 模块结构图
2.3 深度可分离卷积
MobileNet[21–23]系列网络作为轻量级卷积神经网络的典型代表, 普遍应用于目标检测和图像分割、分类等任务. 其核心是引入深度可分离卷积, 深度可分离卷积是将神经网络中卷积层的标准卷积分离为1 个深度卷积(depthwise convolution, DW)和1 个1×1 的点卷积(pointwise convolution, PW)[24]. 深度卷积作用于每一个通道, 每个滤波器只提取单一通道的特征, 然后1×1 的点卷积用来组合深度卷积后输出的特征图. 在卷积操作中, 标准卷积的卷积操作是直接进行滤波组合输出特征图; 而深度可分离卷积则分为两步, 一步用来滤波, 一步用来组合. 如图3 所示, 这类分解过程可以显著地缩减模型大小和计算量.
图3 标准卷积和深度可分离卷积
在计算量上, 假设输入图片的尺寸为DP×DP, 卷积核的尺寸为DK×DK, 分别用M、N表示输入和输出的通道数, 若使用标准卷积, 计算量为式(1)所示:
若使用深度可分离卷积完成相同的任务, 计算量为式(2)所示:
由此可见, 使用深度可分离卷积相比于标准卷积可缩减大幅度计算量. 如果使用大小为3×3 的卷积核,与标准卷积相比, 深度可分离卷积最多可以将计算量减少至1/9, 而精度只有极少量的下降. 基于此, 为了缩减本文网络模型大小和计算量, 利用深度可分离卷积替换普通卷积.
2.4 改进K-means 聚类算法
在YOLOv3 算法中引入了锚框(anchor box)的思想, 这些设定锚框尺寸是基于COCO 数据集, 主要面向行人、汽车和日常物品等多尺度目标, 物种尺寸多样,与导光板缺陷目标尺寸差异过大. 因此, 利用K-means算法聚类出与导光板缺陷目标相符的锚框尺寸. 锚框的尺寸与真实框的尺寸越靠近, 则检测效果越好. Kmeans 聚类算法是一种经典的无监督机器学习算法, 是使用距离作为数据对象相似度的评价指标, 当两个对象相距越近, 则表明相似度越高.
K-means 具体算法流程如算法1.
算法1. K-means 聚类算法(1) 在数据中任意选择k 个样本, 当作初始聚类中心.x d S x(2) 然后计算余下各点到聚类中心的距离, 把各个样本划分到距离最近的聚类中心 所在集合.yn(3) 重新计算每个集合的聚类中心 .(4) 回到步骤(2)按照顺序继续执行, 直到所有的集合的中心点的变化趋向稳定, 则聚类结束.
在YOLOv3 中, K-means 算法中使用IOU来衡量标注框的距离关系, 如式(4)所示:
其中,IOU是真实框x和与距离最近的聚类中心锚框Sx的交并比. 当IOU的值越大, 则表明距离d越小.
聚类中心的计算公式如式(5)所示:
其中,yn是第n个聚类的中心, |Cn|是第n个集合中样本的数量,xi是Cn集合中的第i个对象.
最终利用K-means 聚类得到9 组锚框, 按照大小分为3 组, 如表1 所示. 在13×13 特征图上使用最大的一组, 在52×52 特征图上使用最小的一组.
表1 锚框尺寸分配
在YOLOv3 中通过特征融合输出3 个尺度特征图进行预测, 在小尺度的特征图检测较大目标, 在中等尺度的特征图检测中大小目标, 在大尺度的特征图检测较小目标. 在导光板缺陷数据集小目标缺陷占比较高,并且尺度大小是均匀集中, 没有体现YOLOv3 网络多尺度预测的优势[25]. 根据大尺寸导光板的缺陷成像特点, 对聚类得到的中小尺度的6 组锚框进行线性缩放,中心思想是使得锚框靠近真实框, 以锚框中心点对宽高以一定比例放大和缩小, 如图4 所示, 使得小的锚框尺寸更小, 大的锚框尺寸更大. 线性缩放公式如式(6)和(7)所示:
图4 锚框线性缩放原理图
其中,xi、yi是原始锚框的宽和高数值,是锚框进行线性缩放后的宽和高数值. α的值为0.9, β的值为1.2.
2.5 损失函数
3 实验与分析
3.1 实验设备与实验环境
导光板缺陷检测实验设备如图5 所示, 整个设备主要由图像采集部分、传送部分和图像处理部分构成.工业相机采集导光板图片, 传送到工控机判断处理, 然后控制机械手臂将导光板放在OK 区域或NG 区域.
图5 实验设备图
实验环境配置如表2 所示, 模型的训练与实验均在以下环境下进行, 在训练中采用随机梯度下降(SGD)优化算法. 设置输入图片大小为416×416, 初始学习率和最终学习率为0.01 和0.0001, 动量大小为0.9, 权重衰减系数为0.0005, 批量大小16. 在网络训练过程中,训练集和验证集的loss 的变化曲线如图6 所示.
图6 loss 变化曲线
表2 实验环境配置
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为横坐标,R为纵坐标轴组成的曲线被称为P-R曲线, 并对其积分得到曲线下的面积即为AP. 多个类别AP的平均值就是mAP, 其值越大则表明该算法检测准确率越高. 计算公式如式(14)和式(15)所示:
F1 值作为用来评价分类模型的一种指标, 兼顾精确率和召回率, 作为算法的综合性能评估指标. 计算公式如式(16)所示:
3.4 实验结果与分析
3.4.1 在不同位置引入RFB 模块的检测效果
在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 不同位置引入RFB 模块结果对比 (%)
3.4.2 改进K-means 算法的检测结果对比
改进K-means 算法的YOLOv3 和YOLOv3 检测结果对比如表4 所示. 可见, 点缺陷、线缺陷准确率分别提升了4.62%、2.87%,mAP提高了5.09%,F1 值提高了5.83%. 因此, 改进K-means 算法可以有效提升YOLOv3 网络缺陷检测的准确率, 对小目标点缺陷准确率提升效果明显.
表4 改进K-means 算法前后检测结果对比 (%)
3.4.3 不同算法对比
以上两处改进均能提升准确率, 并且这些改进是互补的, 将其结合能够进一步提升算法的性能. 为了进一步检验本文算法的性能, 将本文算法与Faster RCNN、SSD、YOLOv3 等检测算法进行了比较. 以准确率、平均准确率、F1 值作为算法评估指标, 结果对比如表5 所示.
表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 所示.
图7 不同算法预测结果对比
4 结论
导光板质量检测是导光板生产过程中必要的环节,针对大尺寸导光板缺陷, 本文提出了一种基于改进YOLOv3 的检测算法. 在YOLOv3 网络引入多分支RFB 模块, 提升特征提取能力; 改进K-means 算法, 对中小尺度的锚框进行线性缩放, 加快了模型收敛同时提高了平均精度. 实验结果表明, 与原YOLOv3 相比,改进后的算法在平均准确率及和F1 值分别提升了8.55% 和10.76%, 检测速度达到71.6 fps, 算法的mAP高达98.92%. 可满足工业生产缺陷检测要求, 有一定的应用前景.