2. 浙江工商大学 信息与电子工程学院, 杭州 310018
2. School of Information and Electronic Engineering, Zhejiang Gongshang University, Hangzhou 310018, China
导光板(light guide plate)是利用光学级的亚克力板材, 然后用具有极高反射率且不吸光的高科技材料, 在亚克力板材底面用激光雕刻、UV网版等印刷技术印上导光点[1]. 单边侧入式导光板利用亚克力板材吸取从单侧线光源发出来的光在亚克力板材表面的停留, 当光线射到各个导光点时, 反射光会往各个角度扩散, 然后破坏反射条件由导光板正面射出. 通过各种疏密、大小不一的导光点, 可使导光板均匀发光[2]. 高精度的侧入式导光板广泛应用于液晶显示器(LCD)中. 在导光板的生产制造过程中, 由于原料成分、设备使用情况、加工工艺以及工人操作等因素的影响, 其表面不可避免地会出现亮点、漏点、线刮伤、暗影等加工缺陷[3]. 对导光板进行缺陷检测能有效防止将不良的导光板装配进液晶显示器中从而避免造成更大的资源浪费. 因此, 在导光板出厂前必须对其进行缺陷检测.
目前国内大多数导光板生产厂家雇用大量年轻且视力好的员工, 在刺眼的灯光照明下多角度地对导光板缺陷进行检测, 如图1所示. 人工检测缺陷造成大量人力资源的浪费; 长时间低头目视会对员工的眼睛及颈椎造成较大的伤害, 且影响导光板缺陷的检测精度和效率; 仅有少数生产厂家和研究学者利用传统的图像处理以及机器视觉方法进行导光板缺陷检测. 李俊峰等[4]针对具体的一种导光板轻微线刮伤缺陷类别提出了一种基于多方向Gabor滤波和亚像素分析的检测方法, 该方法对轻微线划伤有较好的提取, 但无法适用于其他缺陷类型; Huang等[5]提出了一种基于计算机视觉的自动检测方法, 该方法首先运用图像分割方法对导光点区域进行分割, 然后利用傅里叶变换消除导光板上近似周期性分布的导光点圆形图案形成的纹理. 然后利用Otsu阈值法和形态学技术对缺陷区域进行了提取. 最后利用模式识别分类方法对缺陷进行分类, 但该方法的鲁棒性较差, 缺陷检出率低; 李俊峰等[3]提出了一种基于机器视觉的导光板缺陷检测方法, 根据导光点密度自动分区, 在不同分区使用不同的缺陷检测算法, 该方法虽然可以实现亮点、压伤、线划伤等3种缺陷的提取, 但不同种类缺陷需要不同的特征提取算法, 算法编程难度大且复杂. 可以看出, 传统的图像处理方法难以处理导光板缺陷形态特征多样性和导光点疏密分布不一致性等的检测难题.
近年来, 深度学习方法在各种视觉任务中取得了良好的性能[6-9]. 深度神经网络显示出具有学习提取深层图像特征的卓越能力, 这些深层图像特征肯定有助于缺陷的提取, 而且是难以用传统的图像处理方法来获得的. 因此, 人们提出了利用深度神经网络进行表面缺陷检测的几种尝试. 王宪保等[10]建立深度置信网络(DBN)对太阳能电池表面缺陷进行检测; 赵志勇等[11]提出基于Inception-Resnet-v2网络的布匹缺陷判决算法, 实现在复杂背景和无规律纹理的布匹上高达99%的缺陷检测准确率; Yuan ZC等[12]针对手机外屏玻璃盖缺陷检测提出了一种基于深度学习的改进分割方法, 并讨论了对抗性训练网络的思想, 有效提高了手机外屏玻璃盖缺陷的检测精度; 刘畅等[13]利用改进的Unet[7]分割网络和分类卷积神经网络提高了磁瓦缺陷区域的提取精度和缺陷类别的分类精度. 基于深度学习的物体表面缺陷检测方法也因此成为了快速而且有效的检测方式之一.
为此, 本文以单边侧入式导光板为实验对象, 根据其在16 K分辨率的黑白线阵相机拍摄下的图像成像, 提出一种基于深度学习语义分割[14]的导光板缺陷检测方法. 该方法通过训练神经网络的方式来自主学习提取导光板缺陷的高级特征从而避免繁杂的特征提取算法编程工作. 该方法首先对搜集的导光板缺陷进行缺陷标记制作样本集; 其次, 利用迁移学习[15]技术将预先训练好的PSPNet[16]语义分割神经网络模型对标记样本进行再训练; 进而, 利用训练好的分割模型实现对导光板缺陷的检测; 最后, 由于单独的深度学习语义分割缺陷检测方法通常无法满足工业实际应用的需求, 还需通过缺陷区域的面积、位置、圆度以及缺陷区域对应图像部分的灰度平均值(方差)、灰度最大(小)值等多种特征组合对深度学习语义分割方法检出的所有疑似缺陷区域进行二次判断筛选. 实验结果表明, 该方法针对亮点、暗点和划痕3种缺陷的检出率高达96%, 基本可以满足工业检测要求.
2 导光板 2.1 导光板图像采集系统我们采用多角度线光源以及线阵相机扫描成像方式来采集导光板图像, 如图2所示. 导光板垂直于线光源和线阵相机的光轴. 在多角度线光源中, 通过不同角度的镜面, 把光线汇聚在同一条线上, 处在该线条下的导光板区域暴露在相机光轴下. 部分光线穿透导光板, 部分光线经导光板反射回给相机. 图像对应的灰度强度与反射光的强度成正比. 在检测过程中, 导光板随着传送带移动, 线阵相机逐行捕捉图像.
为了提高成像精度, 采用Dalsa的16 K黑白线阵相机, 横向分辨率为16×1024=16 384个像素; 本文所使用的单边侧入式导光板长宽分别为280 mm, 210 mm, 为了保证导光板图像采集的完整性, 沿导光板长边捕获27 000行, 因此, 整张导光板图像分辨率约为4.4亿个像素, 即16 384×27 000. 采集的完整导光板图像如图3所示. 图4为图3中从左至右部分区域的导光点密度分布放大图.
2.2 典型缺陷
导光板上印刷有导光点的一面, 称为网面, 表面相对粗糙; 背面没有印刷导光点, 称为镜面, 表面相对光滑. 导光板两面都有可能存在缺陷. 导光板常见缺陷种类有镜面点伤、网面点伤、网面漏导光点、残胶、镜面划痕、网面划痕等. 由于导光板透光率高, 镜面和网面的缺陷均能够在16 K黑白线阵相机拍摄下清晰成像. 且由于镜、网面同类型的缺陷(如刮伤)在相机成像下的图像特征极其相似, 无法判断缺陷在镜面还是网面, 故本文以缺陷在相机下的成像特征为依据进行分类, 总的分为亮点、暗点、划痕. 这些缺陷在16 K黑白线阵相机的成像如图5所示.
3 基于PSPNet语义分割网络模型的缺陷检测方法 3.1 语义分割
语义分割是指在像素级上对图像的理解, 即我们要给图像中的每个像素分配一个对象类. 为不同类别目标的所有组成像素进行对应类别的颜色标注, 本质上是对图像中的不同类别目标进行分类. 在本文中, 将导光板图像分为背景和缺陷两类进行标记, 如图6中的标签图, 白色和黑色分别代表背景和缺陷, 黑色外边框无实际意义, 只起到图片位置限定作用.
3.2 迁移学习
迁移学习是指在现有的网络模型的基础上构建新网络的技术. 具体来说, 这意味着使用一个已经预先训练好的网络及其权重, 并根据具体的应用程序调整输出层, 以获得新的网络, 帮助用户实现在少量图像样本条件下获得较为理想的训练效果, 同时缩短项目开发周期. 本文采用迁移学习技术, 加载预先训练好的PSPNet语义分割网络模型, 在此基础上添加导光板缺陷样本进行再训练. 该方法能够减少每种导光板缺陷的样本数, 从而减少图像标记所花费的时间成本.
3.3 金字塔场景解析网络本文采用Zhao HS等[16]提出的金字塔场景解析网络(Pyramid Scene Parsing Network, PSPNet)作为缺陷语义分割的框架, 如图7所示. 首先, 输入图像经过特定的卷积神经网络来提取特征; 其次, 得到的特征映射图经由金字塔池化模块[17]进行不同层级的分区池化以及降低维度, 紧接着通过上采样将不同层级的特征映射图融合在一起; 最后, 通过一层反卷积层[18]还原生成最终的预测图. PSPNet缺陷语义分割方法的具体流程:
3.3.1 特征提取给定一张导光板缺陷图像切片, 采用一个预先训练好的且带空洞卷积[19]的残差网络(Resnet[20])作为缺陷检测的特征提取网络来提取导光板图像的特征映射图, 特征映射图的尺寸为原图的1/8.
3.3.2 金字塔池化模块(1)对得到的特征映射图使用4层的金字塔池化模块进行不同层级的分区平均池化.
第1层: 将整张特征映射图进行全局平均池化以生成单个bin输出的最粗糙级别.
第2层: 将特征映射图划分为2×2个子区域, 然后对每个子区域进行平均池化.
第3层: 将特征映射图分成4×4个子区域, 然后对每个子区域进行平均池化.
第4层: 将特征映射图划分为8×8个子区域的最细层次, 然后对每个子区域进行平均池化.
(2)通过一个1×1卷积层将特征映射图的维度缩减为原来的1/N, N为金字塔层数, 本文中N=4.
(3)采用双线性插值对每个池化后的低维的特征映射图进行上采样, 使其具有与原始特征映射图相同的大小.
(4)所有不同层级的上采样后的特征映射图都与原始特征映射图连接在一起. 这些特征映射图便融合为全局场景先验信息, 并作为深度神经网络最终的特征图.
3.3.3 反卷积层
最后通过一层反卷积层还原生成和输入图像相同大小的最终预测图.
由于导光板中的部分亮点类缺陷和导光点的特征极其相似, 可能仅存在空间位置不同, 易产生混淆误判; 暗点类缺陷很大可能是因为漏印了导光点导致, 实际并无明显缺陷特征; 且有的小缺陷只有几个像素, 过于隐蔽, 但找出这些小缺陷又至关重要. PSPNet分割网络的优势就在于其中的金字塔池化模块能够将不同尺度、不同子区域的局部特征和全局特征聚合起来, 既能保证局部的细节特征不被忽视, 提取出不显眼的像素级缺陷, 也能确保全局的深层特征(如缺陷的空间位置信息)不被丢失, 共同使最终预测更加可靠.
3.4 导光板整体缺陷检测原理流程图本文提出的基于深度学习语义分割的导光板整体缺陷检测原理如图8所示. 需要说明几点: ① GPU内存需要在读取导光板图像前就进行初始化, 这可以减少每张导光板缺陷检测的时间; ② 由于导光板在传送带上的摆放位置存在倾斜情况, 在运用缺陷分割模型进行缺陷检测之前最好对整张图像进行仿射变换来摆正图像, 有利于提高缺陷检测准确率; ③ 由于整张导光板图像分辨率过大, 需要训练学习的参数过多, 而计算机显卡显存有限, 无法直接训练这么大分辨率的样本图片. 为充分利用现有的显卡显存, 将导光板图片截成1024×1024分辨率大小的切片数据集, 对其进行缺陷标记与训练, 利用训练好的缺陷分割模型进行整张导光板图像循环遍历缺陷检测; ④ 水平和垂直移动步长大小的设定, 为提高切片图像边缘缺陷分割的精度, 将水平和垂直移动步长的大小设置在1000至1024之间, 可对图像边缘处缺陷进行二次检测; 但步长设置过小会大大增加整张图像缺陷检测的时间; ⑤ 由于相邻切片中的缺陷区域可能存在邻接关系, 所以在循环遍历检测完每张切片的缺陷区域后, 需要将所有切片的缺陷区域进行联合, 再重新计算联合后区域的连通域个数; ⑥ 由于单独的深度学习语义分割缺陷检测方法通常无法满足工业实际应用需求, 最后还需结合简单的机器视觉方法, 对深度学习语义分割方法检出的所有疑似缺陷区域进行二次判断筛选.
4 实验与分析 4.1 实验软硬件平台搭建
本文的实验平台软硬件配置如表1所示. 本文研究方案是基于标准的机器视觉软件MVTec HALCON实现的.
4.2 深度学习语义分割实现流程HALCON中基于深度学习语义分割的导光板缺陷检测方法实现流程如图9所示.
4.3 实验数据集为充分利用现有的GTX 1060显卡的6 GB的显存, 并考虑PSPNet分割网络的大小, 将导光板图片截成1024×1024分辨率大小的切片数据集, 对其进行缺陷标记训练, 数据集如图6所示, 共739张. 对该数据集按照90%、5%、5%的比例分成训练集、验证集和测试集. 数据集覆盖所有的缺陷类型图片以及正常图片, 且每种类型的样本数相对均衡, 防止由于各类样本数不均衡带来的训练问题. 为提高模型的泛化能力, 降低模型训练的过拟合风险, 对导光板缺陷训练集进行图像增广, 进行90°、180°、270°旋转变换, 训练集数量扩大到原先的4倍.
4.4 训练参数及模型参数设置
网络训练采用随机梯度下降法来优化损失函数, 且选择交叉熵函数作为本次实验的损失函数. 训练参数及模型参数设置如表2. 保持固定的学习率0.0001, 不随Epoch的改变而更改; 由于GPU显存的限制, 设置数据集的批大小为1; 动量值为0.99; Weight prior设置为0.000 05; 输入图像分辨率大小为1024×1024, 单通道图像, 位深度为8.
4.5 可视化训练过程
损失(loss)是指网络模型的预测值与真实值之间的偏差. 一个好的网络模型应该使所有样本的损失都尽可能小. 因此, 训练的目标是尽可能降低loss值. 图10是在预先训练好的PSPNet网络模型的基础上添加导光板缺陷样本进行再训练过程中的loss变化图. 观察图10发现, 虽然在训练过程中loss值有一小段的上下波动, 但总体处于一个下降收敛状态并趋于稳定不变在较小值0.04, 说明在当前训练参数及模型参数设置下, 缺陷分割网络模型的性能也就接近最优, 训练完成. 图11是训练过程中Mean_IoU指标参数的变化图. Mean_IoU的定义见4.6节. 观察该图发现, Mean_IoU值在训练前期处于波动上升的状态, 后期波动稳定在0.65左右, 最高能达到0.67, 这表示模型预测的分割区域和标记真实值区域的重叠度达到67%左右, 达到较好的训练效果.
4.6 模型评估
重叠度(Intersection over Union, IoU)和像素精度(pixel accuracy)是两个用于评估训练好后的语义分割模型性能的典型指标. IoU是分割模型“预测的区域” 和 “真实的区域” 的交集和并集的比值, 如图12所示; 像素精度是分割模型预测正确的像素占总像素的比例, 它们分别按式(1)和式(2)计算.
$IoU = \dfrac{{Area\;of\;Overlap}}{{Area\;of\;Union}} = \dfrac{{{A_{\rm prediction}} \cap {A_{\rm true}}}}{{{A_{\rm prediction}} \cup {A_{\rm true}}}}$ | (1) |
$pixel\;accuracy = \dfrac{{\text{预测正确的像素数}}}{{\text{总像素数}}}$ | (2) |
IoU是基于具体的语义类别进行计算的, 本文中分为计算背景类的IoU值和缺陷类的IoU值, Mean_IoU即为这两类IoU的平均值. 缺陷类的IoU值可以判断缺陷的捕获程度(缺陷预测区域与缺陷标记真实区域的重合度), 像素精度可以衡量模型的准确度. 由表3可以看出, pixel accuracy指标参数值均很高, 无多大的意义; 而缺陷类的IoU值偏低仅为0.348, 是因为分割模型预测出的缺陷区域面积比实际标记的真实缺陷区域面积要稍大, 但预测出的缺陷区域能够完整的包含标记的缺陷区域, 仍然起到了良好的缺陷定位作用, 所以缺陷类的IoU值偏低并不影响整体的检测要求. 表4为36张验证集图片的像素混淆矩阵表, 可以看出, 将背景真实值标签预测为错误的缺陷类别的像素较多, 而将缺陷真实值标签误判为背景的像素却很少.
4.7 训练结果
图13为训练生成的PSPNet分割模型在验证集上测试的缺陷分割结果和标签图真实值的对比. 仔细观察发现, 训练后的模型能够成功预测出缺陷区域的位置, 但要比标签图中的缺陷真实区域要略宽一些.
图14展示了在测试集上训练模型的缺陷分割结果. 其中图14(c)表示每个像素的预测结果的可信度, 在[0, 1]区间范围内, 用图14(d)图中的彩色条不同颜色代表不同的可信度分数. 容易发现, 缺陷的边缘处的预测结果可信度较低, 大概在0.5分至0.8分之间, 原因是缺陷边缘处的像素点和背景紧密相连, 导致PSPNet分割模型难以预测这些边缘区域像素点的语义类别. 在本实验还准备了200张完整的导光板图片, 其中正常无缺陷的图片50张, 亮点缺陷的74张, 暗点缺陷7张, 划痕缺陷69张. 利用生成的模型进行整张导光板图像循环遍历缺陷检测, 并结合简单的机器视觉方法对分割模型检出的所有疑似缺陷区域进行二次判断筛选, 检测效果如图15所示. 红色方框区域表示检测到缺陷. 图16则为图15中从左往右4个缺陷区域放大图. 表5为200张完整导光板图片检测结果统计表.
观察发现, 基于深度学习语义分割的导光板缺陷检测方法漏检概率很低, 但误检概率偏高, 原因是在训练过程中, PSPNet分割网络会学习到一些非常细微的缺陷特征, 如灰度值很低的亮点或者划痕, 而这些缺陷在实际的检测过程中是可以忽略的, 从而导致该方法的误检率偏高. 由表得出, 本文算法的综合缺陷检测准确率为96.0%.
4.8 缺陷检测算法对比目前, 国内外仍没有基于深度学习语义分割的导光板缺陷检测算法的论文, 文献[3]提出的基于机器视觉的缺陷检测方法取得了比较好的结果. 表6就该两种导光板缺陷检测算法进行了对比. 从对比中看出, 基于深度学习语义分割的缺陷检测方法在牺牲一定的检测时间和主机硬件成本为条件下, 换来较高的缺陷检测准确率和稳定性, 避开繁杂的特征提取算法编程工作, 同时缩短了导光板缺陷检测项目的开发周期和代码维护成本.
5 结论与展望
针对目前导光板表面缺陷检测问题, 本文提出一种基于深度学习语义分割的缺陷检测方法. 与传统的图像处理缺陷检测方法相比较, 该方法不需要人为提取缺陷特征, 深度学习可以通过监督学习[21]的方式在训练过程中自动提取合适的特征向量, 极大减少缺陷特征提取算法编程工作量和代码维护成本, 同时提高缺陷检测的稳定性和准确率. 我们确信基于深度学习语义分割的导光板缺陷检测方法将很快应用于实际的导光板生产检测当中.
[1] |
李明睿. 基于机器视觉的导光板缺陷检测系统研发[硕士学位论文]. 杭州: 浙江理工大学, 2019.
|
[2] |
杨波. 导光板红外干燥设备的设计与研究[硕士学位论文]. 苏州: 苏州大学, 2017.
|
[3] |
李俊峰, 李明睿. 基于机器视觉的导光板缺陷检测方法研究. 光电子·激光, 2019, 30(3): 256-265. |
[4] |
李俊峰, 李明睿. 基于多方向Gabor滤波的导光板轻微线刮伤检测方法研究. 光电子·激光, 2019, 30(4): 395-401. |
[5] |
Huang MS, Chiu HY. Surface defect inspection of light guided plates with the computer-vision assisted detection method. Journal of the Chinese Institute of Engineers, 2009, 32(2): 179-191. DOI:10.1080/02533839.2009.9671496 |
[6] |
Kampffmeyer M, Salberg AB, Jenssen R. Semantic segmentation of small objects and modeling of uncertainty in urban remote sensing images using deep convolutional neural networks. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition Workshops. Las Vegas, NV, USA. 2016. 680–688.
|
[7] |
Ronneberger O, Fischer P, Brox T. U-net: Convolutional networks for biomedical image segmentation. Proceedings of the 18th International Conference on Medical Image Computing and Computer-Assisted Intervention. Munich, Germany. 2015. 234–241.
|
[8] |
Zhou CJ, Wu MQ, Lam SK. SSA-CNN: Semantic self-attention CNN for pedestrian detection. arXiv: 1902.09080, 2019.
|
[9] |
周波, 李俊峰. 结合目标检测的人体行为识别. 自动化学报(优先出版), 1–11. [2019-07-02].
|
[10] |
王宪保, 李洁, 姚明海, 等. 基于深度学习的太阳能电池片表面缺陷检测方法. 模式识别与人工智能, 2014, 27(6): 517-523. DOI:10.3969/j.issn.1003-6059.2014.06.006 |
[11] |
赵志勇, 叶林, 桑红石, 等. 深度学习在布匹缺陷检测中的应用. 国外电子测量技术, 2019, 38(8): 110-116. |
[12] |
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 |
[13] |
刘畅, 张剑, 林建平. 基于神经网络的磁瓦表面缺陷检测识别. 表面技术, 2019, 48(8): 330-339. |
[14] |
Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation. Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA. 2015. 3431–3440.
|
[15] |
Pan SJ, Yang Q. A survey on transfer learning. IEEE Transactions on Knowledge and Data Engineering, 2010, 22(10): 1345-1359. DOI:10.1109/TKDE.2009.191 |
[16] |
Zhao HS, Shi JP, Qi XJ, et al. Pyramid scene parsing network. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 6230–6239.
|
[17] |
He KM, Zhang XY, Ren SQ, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(9): 1904-1916. DOI:10.1109/TPAMI.2015.2389824 |
[18] |
Zeiler MD, Krishnan D, Taylor GW, et al. Deconvolutional networks. Proceedings of the 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Francisco, CA, USA. 2010. 2528–2535.
|
[19] |
Yu F, Koltun V. Multi-scale context aggregation by dilated convolutions. arXiv: 1511.07122, 2015.
|
[20] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 770–778.
|
[21] |
Heller M. 机器学习之监督学习释义. 计算机世界, 2019, (35): 2019-09-16(007).
|