基于深度学习在海缆表面缺陷检测中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于深度学习在海缆表面缺陷检测中的应用作者:张浩吴陈徐影
来源:《电脑知识与技术》2022年第15期
摘要:傳统的海缆表面缺陷检测是通过人工观察的方式,易出现高错误率、速度较慢等现象。
为此,文章提出了一种基于深度学习在海缆表面缺陷检测的系统。
为了提高整体的检测效率,该系统通过Faster - RCNN网络对图片缺陷进行检测。
为了减小模型的复杂程度,采用了RPN Loss+ Fast RCNN Loss的联合训练方法,通过一次的反向传播更新模型参数。
同时,为了增强模型对海缆表面缺陷的检测能力,在主干特征提取网络部分,利用Resnet50中四个不同阶段的特征层构建特征金字塔网络,以适应不同缺陷的检测。
实验结果表明,缺陷检出率达到98%,分类准确率达到97.9%。
经过验证,该系统检测效果优于传统方式,可以满足工业化生产要求。
关键词:深度学习;海缆;表面缺陷;检测
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2022)15-0088-04
海缆是用绝缘体包裹的电缆或光缆,铺设在海底的一种通信线路[1]。
因为需要特殊的工作环境,所以需要更加严格的标准。
对于传统的人工检测方法,受到有限的空间与时间限制,存在很多不足之处。
通常人眼能较好地辨别缺陷尺寸需要大于0.5mm,且需要较大的光学形变(64灰度级),同时当待测物体的运动速度到达3m/s的临界点时,人眼将不能够发现缺陷存在的具体形态[2];同时,必须在强光源下才能快速找到海缆表面的缺陷;加之长时间工作,极易引起眼疾,而且会产生比较高的误检率及漏检率。
因此,在现实工业生产中急需一种改善传统检测的方案。
1 相关工作
得益于现代图像处理和模式识别等技术的发展,以机器视觉的表面缺陷检测方法在工业产品品质把控环节中得到了较为广泛的应用。
文献[3]中分析了机器视觉瑕疵检测精度可达到微米级,机器快门采集时间可以达到微秒级,识别和判断都能够保持稳定,使得检测效率得到提升。
但是表面缺陷检测系统的核心在于缺陷检测算法,主要涉及统计、光谱、模型、学习和结构,其主要过程包含了图像预处理、二值化[4]、特征提取[5]、特征处理[6]及模式分类[7]等,以上的每个检测步骤都可能影响最终的检测结果。
此外,在平时的生产环境中,图片数据包含的内容是十分复杂的,这也增加了选择特征的难度,大大降低了检测的效率。
随着近年来3C智能硬件的快速迭代,生产检测技术也随之不断推陈出新,诞生了深度学习方法。
“人工神经网络”的发展推进了深度学习思想的产生。
从人类大脑中汲取灵感,模拟人脑分析问题的机制,建立计算机分析学习的神经网络[8]。
基于深度学习方法的视觉缺陷检测系统,可以减少一般方法中手动提取特征对识别精度的影响,能够更精确地检测并识别产品存在的各种表面缺陷。
深度学习可以处理复杂的特征提取问题。
当前国内外基于深度学习在图像检测领域,主要的方法有两种大类:YOLO(You Only Live Once)[9-11]和RCNN(Region Convolutional Neural Networks)[12-14],一般YOLO系列的算法速度快于RCNN系列的算法,但是精度较之不如。
在2014年,R-CNN被Girshick等人[9]提出。
通过卷积神经网络进行检测图像,明显使检测效率得到提升。
之后在R-CNN的基础上,Girshick等人[10]又提出了Fast RCNN,通过ROI(Regions of Interest) Pooling 进行滑动窗口[15-16]的方式和Selective Search的方法,达到比RCNN更好的检测效果。
在这之后,Ren等人[11]提出了Faster-RCNN,该算法通过区域建议网络(Region Proposal Network,RPN)[17]代替R-CNN和Fast-RCNN中的Selective Search算法,基本实现了实时检测功能。
根据以上方法的总结,在模型较为复杂时,效率以及准确度会有所降低。
为了处理这种问题,笔者利用Resnet50中四个不同阶段的特征层构建特征金字塔网络,以适应不同缺陷的检测。
同时,我们采用了RPN Loss+ Fast RCNN Loss的联合训练方法,通过一次反向传播更新模型参数来降低模型复杂度,从而快速有效地进行表面缺陷检测。
1 海缆表面瑕疵检测系统结构
该系统的基本思路是先对图像进行预处理,利用主干特征提取网络进行特征提取,然后使用RPN加强特征提取,最后进行缺陷类型的分类和边框回归,大致处理流程图如图1所示。
2 图像预处理
在预处理图像的过程中,笔者主要采用了HALCON软件进行处理。
这款软件是由德国的MVtec公司开发的一款优秀的机器视觉软件。
它拥有图像滤波降噪、数学变换、形态学运算等多种强大功能。
2.1 对比度增强
为了增强图像的高频区域,比如边缘、拐角。
笔者使用了HALCON软件中的emphasize 算子,这个功能可以更清晰地观察图片。
2.2 滤波除噪处理
通过对图像进行卷积重叠,然后再进行滤波方法,对整个图像进行模糊化处理,然后可设定取固定数值的图像波段,去除噪声。
为了进一步降低噪音影响,采用了中值滤波的算法。
[g(x,y)=1Mf∈sf(x,y)] (1)
在式(1)中,[x,y]代表图片二维数组的两个坐标。
这里采用的是取3×3的矩阵,然后经过希尔排序获取中值。
3 基于Faster-RCNN的缺陷目标检测
3.1 R-CNN
R-CNN是利用深度学习进行目标检测的开山之作。
它的流程可分为4个步骤:
1)将图片划分成一千到两千个候选区域;
2)对每个候选区域,使用深度网络提取特征;
3)特征送入每一类的SVM分类器,判别是否属于该类;
4)使用回归器精细修正候选框位置。
Selective Search算法通过相似度不断合并候选区域,然后构成新的候选框,这些新生成的候选框中,可能包含了需要检测的缺陷。
在RCNN的最后一阶段,使用回归器精细修正候选框位置,对NMS处理后剩余的建议框进一步筛选。
基于以上,我们将剩余的建议框放入回归器中,进行类别判断,最后获取得分最高的Bounding Box。
但是RCNN存在一些问题:
1)测试速度慢:通过Selective Search算法构成的候选框之间存在大量的重叠部分,使提取特征更加复杂;
2)训练速度慢:过程极其烦琐;
3)训练所需空间大:当使用如VGG16这种比较深的网络结构时,需要提取的特征数量就会变得极其庞大,比如,从VOC2007训练集上的5K图像上提取特征,甚至需要几百GB存储空间。
3.2 Fast R-CNN
Fast R-CNN在運算速度上得到了优化,它与R-CNN相比训练时间快9倍,测试推理时间快213倍,准确率从62%提升至66%(在Pascal VOC数据集上)。
Fast R-CNN算法流程可分为3个步骤:
1)将图片划分成一千到两千个候选区域;
2)将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上,获得相应的特征矩阵;
3)将每个特征矩阵通过ROI Pooling层缩放到7×7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。
Fast R-CNN不限制输入图像的尺寸,并且其一次性计算整张图像特征,Fast R-CNN依次将候选框区域输入卷积神经网络得到特征。
这样,就不需要重复计算这些候选区域特征了。
虽然相比RCNN,Fast-RCNN在运算速度上有所提高,但其整体效率依然很低。
3.3 Faster R-CNN
继Fast R-CNN之后,Faster R-CNN的运算速度再一次得到巨大提升。
在GPU上,该算法的推理速度达到5FPS(包括候选区域的生成),准确率也有进一步的提升。
Faster R-CNN算法流程可分为3个步骤:
1)将图像输入网络得到相应的特征图;
2)通过RPN构成候选框,将候选框投影到特征图,获取对应的特征矩阵;
3)将每个特征矩阵通过ROI Pooling层缩放到7×7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。
Faster R-CNN的RPN网络存在三种尺度的Anchor Box,分别是128×128,256×256,
512×512,同时对于每一个尺度,也存在三种不同的比例{ 1:1, 1:2, 2:1 },即每个位置
在原图上都对应有3×3=9 anchor对于一张1000×600×3的图像,大约有60×40×9(20k)个anchor,忽略跨越边界的anchor以后,剩下约6k个anchor。
对于RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每一张图片变成两千个候选区域。
对于Faster R-CNN网络,其损失函数是一个多任务损失,整体的损失函数如下:
[L{{pi},{ti}}=1NclsiLcls(pi,p*i)+1Nregip*iLreg(ti,t*i)] (2)
其中,分类损失函数:
[iLcls(pi,p*i)] (3)
边界框回归损失函数:
[ip*iLreg(ti,t*i)] (4)
第i个预测为真实标签的概率用pi表示; p当为正样本时用1表示,当其为负样本时用0表示;预测第i个anchor的边界框回归参数用ti表示;t表示第i个anchor对应的GT Box的边界框回归参数;Ncls,表示一个mini-batch中的所有样本数量;anchor位置的个数用Nreg表示。
3.4 Faster R-CNN的改进
1)为了增强模型对数据的拟合能力,在主干特征提取网络部分,选用Resnet50进行特征提取,并利用Resnet50中四个不同阶段的特征层构建特征金字塔网络,以适应不同目标的检测。
2)为了减小模型的复杂程度,直接采用RPN Loss+ Fast R-CNN Loss的联合训练的方法,直接通过一次的反向传播更新模型参数,方法步骤如下。
第一,通过ImageNet预训练分类模型,对前置卷积网络层的参数进行初始化,同时对RPN网络的参数进行训练;第二,RPN网络中卷积层和全连接层的参数保持不变。
通过ImageNet进行预训练分类模型,将前置卷积网络参数初始化。
RPN网络生成的目标建议区域用来训练Fast RCNN网络参数;第三,训练好的Fast RCNN网络参数保持不变。
RPN网络的卷积层和全连接层参数再根据测试内容进行略微调整;第四,前置卷积网络层参数保持不变,Fast RCNN网络的全连接层参数再略微调整。
然后将前置卷积网络层参数共享给RPN网络与Fast RCNN网络。
R-CNN是利用深度学习进行目标检测的开山之作。
它的流程可分为4个步骤:
1)将图片划分成一千到两千个候选区域;
2)对每个候选区域,使用深度网络提取特征;
3)特征送入每一类的SVM分类器,判别是否属于该类;
4)使用回归器精细修正候选框位置。
Selective Search算法通过相似度不断合并候选区域,然后构成新的候选框,这些新生成的候选框中,可能包含了需要检测的缺陷。
在RCNN的最后一阶段,使用回归器精细修正候选框位置,对NMS处理后剩余的建议框进一步筛选。
基于以上,我们将剩余的建议框放入回归器中,进行类别判断,最后获取得分最高的Bounding Box。
但是RCNN存在一些问题:
1)测试速度慢:通过Selective Search算法构成的候选框之间存在大量的重叠部分,使提取特征更加复杂;
2)训练速度慢:过程极其烦琐;
3)训练所需空间大:当使用如VGG16这种比较深的网络结构时,需要提取的特征数量就会变得极其庞大,比如,从VOC2007训练集上的5K图像上提取特征,甚至需要几百GB存储空间。
3.2 Fast R-CNN
Fast R-CNN在运算速度上得到了优化,它与R-CNN相比训练时间快9倍,测试推理时间快213倍,准确率从62%提升至66%(在Pascal VOC数据集上)。
Fast R-CNN算法流程可分为3个步骤:
1)将图片划分成一千到两千个候选区域;
2)将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上,获得相应的特征矩阵;
3)将每个特征矩阵通过ROI Pooling层缩放到7×7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。
Fast R-CNN不限制输入图像的尺寸,并且其一次性计算整张图像特征,Fast R-CNN依次将候选框区域输入卷积神经网络得到特征。
这样,就不需要重复计算这些候选区域特征了。
虽然相比RCNN,Fast-RCNN在运算速度上有所提高,但其整体效率依然很低。
3.3 Faster R-CNN
继Fast R-CNN之后,Faster R-CNN的运算速度再一次得到巨大提升。
在GPU上,该算法的推理速度达到5FPS(包括候选区域的生成),准确率也有进一步的提升。
Faster R-CNN算法流程可分为3个步骤:
1)将图像输入网络得到相应的特征图;
2)通过RPN构成候选框,将候选框投影到特征图,获取对应的特征矩阵;
3)将每个特征矩阵通过ROI Pooling层缩放到7×7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。
Faster R-CNN的RPN网络存在三种尺度的Anchor Box,分别是128×128,256×256,
512×512,同时对于每一个尺度,也存在三种不同的比例{ 1:1, 1:2, 2:1 },即每个位置在原图上都对应有3×3=9 anchor对于一张1000×600×3的图像,大约有60×40×9(20k)个anchor,忽略跨越边界的anchor以后,剩下约6k个anchor。
对于RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每一张图片变成两千个候选区域。
对于Faster R-CNN网络,其损失函数是一个多任务损失,整体的损失函数如下:
[L{{pi},{ti}}=1NclsiLcls(pi,p*i)+1Nregip*iLreg(ti,t*i)] (2)
其中,分类损失函数:
[iLcls(pi,p*i)] (3)
边界框回归损失函数:
[ip*iLreg(ti,t*i)] (4)
第i个预测为真实标签的概率用pi表示; p当为正样本时用1表示,当其为负样本时用0表示;预测第i个anchor的边界框回归参数用ti表示;t表示第i个anchor对应的GT Box的边界框回归参数;Ncls,表示一个mini-batch中的所有样本数量;anchor位置的个数用Nreg表示。
3.4 Faster R-CNN的改進
1)为了增强模型对数据的拟合能力,在主干特征提取网络部分,选用Resnet50进行特征提取,并利用Resnet50中四个不同阶段的特征层构建特征金字塔网络,以适应不同目标的检测。
2)为了减小模型的复杂程度,直接采用RPN Loss+ Fast R-CNN Loss的联合训练的方法,直接通过一次的反向传播更新模型参数,方法步骤如下。
第一,通过ImageNet预训练分类模型,对前置卷积网络层的参数进行初始化,同时对RPN网络的参数进行训练;第二,RPN网络中卷积层和全连接层的参数保持不变。
通过ImageNet进行预训练分类模型,将前置卷积网络参数初始化。
RPN网络生成的目标建议区域用来训练Fast RCNN网络参数;第三,训练好的Fast RCNN网络参数保持不变。
RPN网络的卷积层和全连接层参数再根据测试内容进行略微调整;第四,前置卷积网络层参数保持不变,Fast RCNN网络的全连接层参数再略微调整。
然后将前置卷积网络层参数共享给RPN网络与Fast RCNN网络。