APP下载

基于Mask R-CNN的触摸屏玻璃疵病检测与识别

2019-06-10张博周军王芳韩森

软件导刊 2019年2期

张博 周军 王芳 韩森

摘 要:为快速有效地检测与识别触摸屏玻璃疵病,提出了一种基于Mask R-CNN技术的检测与识别方法。Mask R-CNN是Faster R-CNN技术的扩展,其在边界框识别的现有分支上添加一个并行的用于预测对象掩膜的分支,是基于R-CNN系列、FPN、FCIS等工作之上的一种技术,相对于传统的目标检测和分割算法有很大提升。使用暗场散射成像、多图片堆栈等方法采集数据样本,同时采用几何变换方法扩增样本库。为提升训练速率和检测精确率,根据训练样本差异性,通过测试不同的VGG16、ResNet50+FPN以及ResNet101+FPN主干网络提取图像特征。实验表明,ResNet50+FPN的识别精确率较高,达到96.7%。基于Mask R-CNN的检测与识别方法不仅能对疵病快速检测与识别,还能提高识别精确率。

关键词:Mask R-CNN;疵病检测;暗场散射;多图片堆栈;触摸屏玻璃

DOI:10. 11907/rjdk. 181934

中图分类号:TP319文献标识码:A文章编号:1672-7800(2019)002-0064-04

Abstract:In order to detect and identify glass defects on the touch screen quickly and effectively,a screen glass defect detection and identification method based on Mask R-CNN technology is proposed. Mask R-CNN is Faster R-CNN technical extension, on the existing branches of applied to identify boundary box a parallel branch is added to predict object mask based on R-CNN series, FPN, FCIS. Compared with traditional target detection and segmentation algorithm, the algorithm has been greatly improved. This paper uses dark field scattering imaging, multiple image stacks and other methods to collect data samples, and uses geometric transformation methods to expand the sample library. In order to improve the training rate and detection accuracy, according to the differences of the training sample, this paper tests different backbone networks of VGG16, ResNet50+FPN, ResNet101+FPN to extract the image features, and finds that the recognition accuracy is higher and the accurate rate reaches 96.7%. As result, the detection and recognition method based on Mask R-CNN can not only detect and identify defects quickly and effectively, but also improve the recognition accuracy rate.

Key Words: Mask R-CNN; disease identification; dark field scattering; multiple image stack; thouch screen

0 引言

智能手機、平板电脑的普及,触摸屏玻璃产量大增。触摸屏玻璃质量要求很高,人工检测玻璃表面缺陷(如斑点、异物、裂纹和划痕)很困难。目前世界各国表面疵病检测标准依据主要有两个:疵病面积等级及疵病可见度等级,所以针对疵病检测的方法也主要基于疵病散射光的特性对疵病面积以及疵病可见度进行测量。基于可见度的检测方法就是在一定的光照条件下通过人眼对玻璃样品进行观察,该方法简单但效率低,而且随着工作时长的增加,大脑和眼睛的负担随之加重,导致误检率增高。对疵病面积的检测主要通过成像法或能量法检测,成像法包括目视法以及滤波成像法等,能量法则利用角度积分探测器获取待测元件散射光能量,对应求出疵病面积。其中成像法系统结构简单,但检测精度低,易受杂散光影响。能量法对检测区域的疵病面积等级检测较精确,但无法获取表面疵病的数量、位置信息与外形特征,孙佳明[1]的论文对此进行了介绍。目前传统的识别方法是通过图像灰度分布情况,采用图像增强技术如滤波、边缘检测、腐蚀膨胀、噪声抑制等方法实现玻璃缺陷的检测与识别[2],这些传统方法主要问题有:特征提取的鲁棒性较差,不能反映光照的变化、背景多样化等;区域选择没有针对性,时间复杂度高、窗口冗余。目标检测是计算机视觉和模式识别的重要研究方向,深度学习作为机器学习的新领域,其特点是能自动学习到有效特征。本文通过使用暗场散射成像、多图片堆栈等方法采集数据样本,结合Mask R-CNN技术对疵病进行检测与识别。该方法大大减少了复杂的人工提取特征过程,对多样性疵病种类特征实现自动提取,大大提高了疵病检测精度。

Mask R-CNN[3]是一个小巧、灵活的通用对象实例分割框架,它不仅可对图像中的目标进行检测,还能对每个目标给出一个高质量的分割结果。本文主要针对斑点、划痕、崩边、污点等疵病进行识别检测,暂不考虑其它疵病类型。

1 网络结构模型

1.1 Faster R-CNN

Faster R-CNN[4]是Fast R-CNN[5]的改进,针对Fast R-CNN 的一些不足,如使用Selective Search提取RP(region proposal)(耗時2-3s,而特征提取仅仅耗时0.32s)无法满足实时应用,无法实现端到端训练和测试等。虽然利用了GPU,但是RP方法是在CPU上完成的。Faster R-CNN可简单看作“区域生成网络(RPN)+Fast R-CNN”系统,其网络结构如图1所示。Faster R-CNN使用VGG16Net[6]特征提取,相对于LeNet[7]和AlexNet[8]有着深度更深、特征提取效果更好等特点。

区域建议网络(RPN)是Faster R-CNN的一大亮点,它是一个全卷积网络,特点是可利用GPU生成高质量高速率的建议框,它和检测的网络共享全图卷积特征,最大的特点是用区域生成网络代替Fast R-CNN中的Selective Search方法,大大提升了检测速率。区域生成网络如图2所示。

在区域建议网络(RPN中)设置了3×3的滑窗,其中心点位置对应预测输入图像的3种尺度,即3种长宽比的RP(1∶1,1∶2,2∶1),这种映射机制称为anchor,产生k个anchor(一般我们取k=9),每个3×3区域可产生9个RP,后面连接到两个全连接层,即cls layer和reg layer,分别用来分类和边框回归。cls layer包含两个元素,用来判别目标和非目标,而reg layer 包含4个坐标元素(x,y,w,h),用来找到目标位置,最后根据RP的得分高低选取前300个RP作为Fast R-CNN输入目标进行检测。

1.2 Mask R-CNN

Mask R-CNN与Faster R-CNN很相似,其网络结构如图3所示。

Mask R-CNN在Faster R-CNN基础上的主要改进如下:

(1)添加Mask层。Faster R-CNN 中每个候选对象有两个输出:Box Regression和Classification。Kaiming He等在每个候选对象上添加了第3个分支,即输出Object Mask,从而得到Mask R-CNN。值得注意的是在Mask R-CNN中,Faster R-CNN中的CNN特征顶部添加一个完全卷积网络(FCN)用来生成掩码(分割输出)。

(2)提出RoIAlign层,重新对齐RoIPool。RoIPool是针对每个RoI提取一个小尺度特征图(比如 7x7)的标准操作,用来解决不同尺度的RoI提取成相同尺度的特征大小问题。RoIPool首先将浮点数值的RoI量化成离散颗粒的特征图,然后将量化的RoI分成几个空间小块,对每个小块进行Max Pooling操作生成最后结果。例如当特征图的步长为16时,通过计算[x/16]在连续坐标x上进行量化,[。]表示四舍五入。这些量化引入了RoI与提取到的特征不对准问题。由于分类问题对平移问题比较鲁棒,所以影响较小,但是这在预测像素级精度的掩模时会产生非常大的负面影响。提出RoIAlign层解决这个问题,将提取到的特征与输入对齐,避免对RoI的边界或块作任何量化,例如直接使用x/16代替[x/16]。使用双线性插值在每个RoI块中4个采样位置上计算输入特征的精确值,并将结果聚合(使用max或者average)。

(3)重新定义ROI损失函数。依旧采用多任务损失函数,针对每个RoI定义为:

2 疵病训练样本库建立

2.1 疵病样本图像采集

本文采用暗视场散射[9-10]方法采集图像。反射集光镜反射的光线投射在被测玻璃上,因其倾斜角度极大,由玻璃上反射的光线仍以极大的倾斜角度向反方向反射,不可能进入物镜,所以在目镜筒内只能看到漆黑一片。只有被测面凹洼之处才能有光射进物镜,玻璃面上的凹洼之处以亮白影像衬映在漆黑的视域内,称为“暗视场”(暗场)照明,如图4(a)所示。

暗场散射优点:①入射光束倾斜角度极大,使物镜的有效数值孔径随之增大,提高了物镜的鉴别能力;②入射光不进入物镜,显著减少了由于光线多次通过玻璃-空气界面形成的反射光与散射光,从而提高了最终影像的衬度;③消除了试样抛光表面强烈反射光的干扰。

由于不同方向、不同角度的平行光打在待测面上会检测出不同的疵病信息,因此在采集装置上作了一些改动,即用不同方向、不同角度的平行光打在待测面上,得到该待测面的不同疵病信息暗场图片。因为相机的位置是固定不变的,所以为检测到更完整的疵病图像[11-13],可将不同方向不同角度拍摄的图片堆栈到一幅图上,这样堆栈图就包含了所有方向和角度的疵病[14-21]信息,经过灰度化处理后再进行检测和识别,改进如图4(b)所示。

2.2 疵病样本数据准备

本文人工标注了常见的4种玻璃缺陷类型图像800×600共300张。深度学习训练模型识别准确率依赖大量样本,但没有公共数据集,人工采集和标注需要大量的时间成本。为弥补训练样本数量的不足,本文通过对原有训练样本进行几何变换扩充样本,例如旋转90度、镜像、平移等,最终扩充为1 200张,其中训练集为1 000张,200张为测试集。

标注图像如图5所示。使用标注工具生成的label会保存为json文件,所以还需将该文件解析出mask并生成掩码标签,生成的标签label.png为16位存储,而OPENCV默认读取8位,所以还需将16位转换成8位。

3 实验与分析

3.1 模型训练

模型训练和测试流程如图6所示。模型训练阶段主要进行数据预处理、超参数调优、更换不同的主干网络等工作;模型测试阶段主要利用测试图片对训练所得的模型进行有效性检验。

训练Mask R-CNN使用的数据集为CoCo,大约有    80 000张图片,81个类别,而本实验训练数据集为笔者采集、标注,经过样本扩增有1 200张图片,4个类别,背景较为简洁单一。相对于CoCo数据集,本文的数据集较小,所以在特征提取阶段,考虑到不同网络对实验结果的影响较大,所以本文测试3种特征提取网络:VGG16Net、ResNet50+FPN、ResNet101+FPN。

实验环境:GPU:1080ti、8G内存,Ubuntu16.04、Python=3.4、TensorFlow=1.3.0、Keras=2.0.8的实验环境,配置Mask R-CNN,训练40 000次,所对应的损失变化如图7所示。

3.2 结果分析

为评估Mask R-CNN在检测疵病问题时的有效性,本文使用召回率R=(TP)/(TP+FP)和精确率P=(TP)/(TP+FN)衡量模型性能。其中200张图片中含有不同的疵病数共1191个,测试结果如表1所示。

实验对比发现,ResNet101+FPN有着更高的召回率,ResNet50+FPN有着更好的精确率,但是召回率和ResNet101+FPN相差不多,而VGG16Net的召回率和精确率较低。使用ResNet50+FPN为主干网络检测效果如图8所示,图中目标疵病处显示的是该目标的类别名和置信度,使用字母A、B、C、D代替斑点、划痕、崩边、污点等类别,掩膜和框图相对完整,能够检测图中各种尺寸、形状的疵病目标。

4 结语

本文以Mask R-CNN为基础模型,利用暗场散射、多图片堆栈的方法获取样本数据, 然后进行处理、标注、样本扩增。接着用该数据集对基础模型进行训练,合理调节参数,并对比3种不同的主干网络,结果表明:ResNet50+FPN的主干网络检测效果较好,精确率高,相对于传统方法具有良好的鲁棒性。但是实验也存在很多不足,如样本量少,没能实现更多的疵病种类识别,没有对比更多的主干网络,功能过少,没能实现疵病面积、周长、坐标等信息的获取等,这些有待在后续工作中进一步改进。

参考文献:

[1] 孙佳明. 激光陀螺反射镜基片表面疵病暗场散射显微检测系统研究[D]. 南京:南京理工大学,2015.

[2] 罗菁,董婷婷,宋丹,等.  表面缺陷检测综述[J].  计算机科学与探索,2014(9):1041-1048.

[3] HE K,GKIOXARI G,DOLLáR P,et al. Mask R-CNN[C]. IEEE International Conference on Computer Vision. IEEE,2017:2980-2988.

[4] REN S,HE K,GIRSHICK R,et al. Faster R-CNN:towards real-time object detection with region proposal networks[C]. International Conference on Neural Information Processing Systems. MIT Press, 2015:91-99.

[5] GIRSHICK R. Fast R-CNN[C]. IEEE International Conference on Computer Vision, 2015:1440-1448.

[6] SIMON YAN K,ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint, 2014(1): 1409-1556.

[7] HAYKIN S,KOSKO B. Gradient based learning applied to document recognition[M]. Hoboken:Wiley-IEEE Press,2009: 306-351.

[8] KRIZHEVSKY A,SUTSKEVER I,HINTON G E. ImageNet classification with deep convolutional neural networks[C]. Proceedings of the 25th International Conference on Neural Information Processing Systems,2012: 1097-1105.

[9] 張晋宽,李攀,刘耀红,等. 极低散射光学表面微观形貌评价技术研究[J]. 航空精密制造技术,2013 (3):1003-5451.

[10] XIE X H. A review of recent advances in surface defect detection using texture analysis techniques[J]. Electronic Letters on Computer Vision and Image Analysis,2008,7(3):1-22.

[11] ZHOU W J,FEI M U,ZHOU H Y,et al. A sparse repre sentation based fast detection method for surface defect detection of bottle caps[J].  Neurocomputing.2014(123):406-414.

[12] ZHAO J,PENG Y K, DHAKAL S,et al. On-line detectior of apple surface defect based on image processing method[J]. Transactions of the Chinese Society for Agricultural Machinery,2013,44(1):260-263.

[13] SUN X C,JIANG X N,FU Y,et al. Surface detection system for camshaft based on computer vision[J]. Infrare and Laser Engineering.2013,42(6):1648-1653.

[14] 陈璐. 光学系统中光学零件表面疵病测试系统研究[D]. 长春:长春理工大学,2013.

[15] 果宝智. 光学零件表面疵病的标识[J]. 激光与红外,2000(9):46-49.

[16] 戴名奎,徐德衍. 光学元件的疵病检验与研究现状[J].  激光与红外,2001(18):3-4.

[17] 王甲甲. ?扫描式手机屏疵病检测仪信号处理技术研究[D]. 西安: 西安工业大学,2016.

[18] 吕剑维. 基于积分散射理论的光学疵病快速检测方法[J]. 价值工程,2016 (11):169-173.

[19] 朱聪. 光学镜片表面疵病检测算法研究[D].  成都:西南交通大学,2014.

[20] 朱聪,于广婷,李柏林,等. 一种新的精密光学镜片表面疵病宽度测量方法[J]. ?计算机应用与软件,2014 (12):63-68.

[21] 刘旭. 光学元件表面疵病检测扫描拼接的误差分析[D].  杭州:浙江大学,2008.

(责任编辑:杜能钢)