APP下载

基于Faster R-CNN的排水管道缺陷检测研究

2019-12-04王庆姚俊谭文禄潘惠惠

软件导刊 2019年10期
关键词:目标检测聚类分析深度学习

王庆 姚俊 谭文禄 潘惠惠

摘要:为了克服传统深度学习在排水管道缺陷检测方面识别正确率较低的缺点,在FasterR-CNN算法基础上,利用聚类分析方法改进候选区域设置,提出一种优化的排水管道缺陷检测模型,井采用VGG、AlexNet、GoogleNet、ResNet代替FasterR-CNN网络中的特征提取层进行模拟计算。计算结果表明,K-means方法的最优类别数为5,虽然ResNet网络训练时间成倍增加,但其识别正确率达到0.89,比VGG网络提高了0.14。优化后的FasterR-CNN网络有效提高了排水管道缺陷检测的识别正确率。

关键词:管道缺陷;目标检测;深度学习;Faster R-CNN;聚类分析

DOI:10.11907/rjdk.191817开放科学(资源服务)标识码(OSID):

中图分类号:TP306文献标识码:A 文章编号:1672-7800(2019)010-0040-05

0引言

目前许多城市的排水管网系统都存在不同程度的结构性与功能性缺陷。这些管道缺陷不仅会造成污水渗漏、排水不畅等管道系统运行问题,还可能引起地面塌陷、环境污染等安全事故。因此,正确识别排水管道缺陷类型并进行相应工程修复具有重大意义。

传统排水管道缺陷识别通常是在进行CCTV管道内窥检测后,依靠人工进行缺陷分类与定位。受光线、视频清晰度及工作疲劳等因素影响,人工缺陷识别的正确率和效率将大大降低,而采用计算机视觉技术能有效地克服这些缺点。目前用于缺陷识别的计算机视觉技术可分为图像处理和深度学习两类。图像处理一般步骤分为前处理、特征提取与物体分类。图像前处理需要假设图像像素满足一定先验条件,然后利用方向梯度直方图(Histogram of Ori-ented Gradient,HOG)等方法提取物体的几何形态特征,最后采用K近邻、支持向量机(Support Vector Machine,SVM)等方法对物体进行分类。图像处理技术早期应用于排水管道缺陷识别中,但由于该方法存在效率低、受噪声数据影响大、一次只能识别一种缺陷等缺点,逐渐被深度学习所取代。

深度学习过程与图形处理类似,主要区别是深度学习采用神经网络自动进行特征提取以及物体识别与定位,具有很强的泛化能力,不需要过多人工干预。目前缺陷识别常用的深度学习方法主要有区域卷积神经网络(R-CNN,Fast R-CNN,Faster R-CNN)系列、YOLO和SSD等,其中YOLO识别速度最快,可以实现实时检测,Faster R-CNN的识别准确率最高。由于管道CCTV检测样本数据有限,而在小样本条件下识别准确率比识别速度更重要,因此本文选择Faster R-CNN进行管道缺陷检测。目前FasterR-CNN在排水管道缺陷检测中的应用较少,近年来部分学者针对该问题进行了研究,如鲁少辉将常规FasterR-CNN算法用于管道缺陷检测设备中;Ming将改进的ZF网络作为Faster R-CNN中的特征提取网络,识别准确率有一定程度提高;Zi采用K聚类方法对Faster R-CNN参数进行改进,网络训练速度与识别正确率都有一定程度提升。在上述K聚类基础上,本文采用多种目前流行的神经网络对FasterR-CNN进行改进,以进一步提高识别准确率。

1Faster R-CNN缺陷检测模型

1.1卷积神经网络CNN

深度学习网络结构中通常包括一个卷积神经网络(Convolutional Neural Networks,CNN),R-CNN、FastR-CNN、Faster R-CNN系列算法都是在CNN基础上逐步发展而来的。如图1所示,CNN基本网络结构包括卷积层、激活函数、池化层、全连接层与目标函数。

卷积层(Convolutional Layer)是CNN的核心,其作用是利用卷积核与原始数据作点积,得到特征图。卷积核大小(filter size)及步长(stride)是卷积层的两个重要参数,其含义如图2所示。卷积核相当于一种滤波器,可以提取出原始图片中的颜色、形状、纹理等物体特征。通过将不同作用的卷集核组合到一个神经网络中,可以提取更加复杂的特征。

激活函数层(activate function)模拟神经元工作原理,当神经元接收信号超过阈值时,神经元将被激活。目前应用最广泛的激活函数为修正线性单元(Rectified LinearUnit,ReLU),函数形式为rectifier(x)=max(O,x)。

池化层(pooling layer)的作用是对特征图进行降维,从而减少参数数量和计算量。常用池化操作有最大值池化、平均值池化和随机池化,其中最大值池化操作如图3所示。

全连接层(fully connected layer)是一种特殊的卷积层,作用是将特征图映射到样本空间作出物体类别预测,起到分类器的作用。目标函数(loss layer)的作用是衡量全连接层预测的物体类别与真实物体类别之间的误差。目前用于分类任务的目标函数主要有交叉熵(Softmax)损失函数,形式如下:

CNN通常采用随机梯度下降算法(Stochastic Gradient Descent,SGD)算法训练网络中的参数,从而使目标函数最小。CNN只能用来分类与识别物体,不能自动检测图片中的物体位置,需要人工将目标物体从图片中截取出来后用CNN进行识别。

1.2R-CNN模型

区域卷积神经网络(Region-based ConvolutionalNeural Network,R-CNN)是在CNN基礎上发展而来的一种用于目标检测的模型,其网络结构如图4所示。R-CNN利用edgeBox或selective search算法生成2000~3000个候选区域(proposal regions),每个候选区域缩放成固定大小后输入CNN网络进行特征提取与分类,最后利用SVM算法进行候选区域边界框(bounding box)的回归,获取候选区域位置参数。由于每个候选区域都要运行一遍CNN网络,因此需要大量存储空间,计算速度较慢。

1.3Fast R-CNN

Fast R-CNN与R-CNN的网络结构及算法相似,不同的是Fast R-CNN将整张图片输入CNN网络提取特征后,再在整张特征图上映射候选区域特征,最后对特征区域的特征图进行分类与bounding box回归。Fast R-CNN网络结构如图5所示。FastR-CNN与R-CNN还有两个重要区别:一是增加了池化层(Region of Interest,ROI),目的是将不同大小候选区域的特征图降维成统一大小,以便进行下一步分类与bounding box回归,其原理如图6所示;二是bound-ing box回归和分类同时进行,使目标函数变为多目标损失函数。由于Faste R-CNN相比R-CNN只需进行一次CNN特征提取网络运行,从而大大提升了计算速度。

1.4Faster R-CNN

Faster R-CNN与Fast R-CNN之间的差别主要是将候选区域算法变化成一种神经网络(Region Proposal Network,RPN)融入主网络结构。RPN网络结构与主网络结构之间共享一段CNN特征提取网络,从而减少了网络参数和训练时间。

与selective search算法不同,RPN网络工作原理是原始图片经过CNN特征提取网络后,RPN网络在特征图上产生不同大小和长宽比的锚框(anchor box)。如图8所示,用2×2的扫框(sliding window)遍扫特征图,在扫框的中心点处设置k个不同大小和长宽比的锚框,锚框经过分类层和回归层后会产生2k个分类变量和4k个定位变量,其中2k是指候选区域包含物体与否,4k是指候选区域左上角坐标x、y和长宽W、h。锚框大小和长宽比设置一般根据经验进行调试,带有一定主观性,因此需要采用更加合理的方法设置锚框。

2锚框设置

原始图片中可能包含各种不同缺陷类型,而候选框应能包含所有缺陷,因此可能需要设置大量锚框,导致网络参数和训练时间大大增加。K-means方法能将具有相似特征的不同类型事物聚集成一类,参照此原理,将具有相似大小和长宽比的锚框看作一类,只需设置少量锚框即能将所有缺陷包含在内。K-means方法计算流程如图9所示。

本文的CCTV检测数据有2316个候选框,其高度变化范围为25-376pt(像素),宽度变化范围为30-474pt。选取k=1,2…,10,分别计算对应目标函数E和识别正确率mAP,如图10所示。从图中可以看出,随着k值变大,误差逐渐减小,识别正确率逐渐提升。但k值越大,计算速度越慢,所需的存储空间也越大,因此需要在优势和劣势之间进行权衡。k>5时,误差和mAP的变化逐渐变缓,趋于稳定,但k若继续增大,将导致计算速度变慢。因此,选择k=5作为最优类别数,最优k时的聚类图如图11所示。

3管道缺陷检测算例

3.1缺陷数据

本文的管道缺陷数据来源于深圳市宝安区排水管道CCTV视频。CCTV视频中管道缺陷图片共有3150张,涉及9种缺陷类型,分别为破裂、变形、腐蚀、错口、脱节、接口材料脱落、渗漏、沉积、障碍物。各种类型的缺陷数量如图12所示,部分图片中同时存在多种缺陷类型,因此各种缺陷数量之和大于3150。由于深度学习需要一定数量样本才能保证识别准确率,而且样本数量过少可能会导致过拟合(over fitting)问题,因此本次计算只选择样本数量相对较多的几种缺陷类型,包括破裂(366个)、变形(241个)、错口(693个)、脱节(809个)、沉积(305个),样本图片如图13所示。

为了降低过拟合的影响、提高识别准确率,采用数据扩展(data augmentation)技术对样本进行扩充。本文采用的数据扩展技术有水平翻转、竖直翻转、缩放及颜色调整。数据扩展后样本图片数量达到11105张,其中训练样

3.2网络训练

特征提取网络的结构设计对目标识别准确率有很大影响,因此选取合适的特征提取网络对保证管道缺陷检测模型的有效性至关重要。Ming&Zi采用的ZF和VGG特征提取网络是在ImageNet数据集上训练而来的,但识别准确率不太理想。本文采用AlexNet、GoogleNet、ResNet101等目前流行的深度学习网络与VGG网络计算结果进行对比,选取其中识别准确率最高的作为排水管道缺陷检测模型的特征提取网络。

Faster R-CNN网络训练分为4个过程:①训练RPN网络得到候选区域;②利用候选区域训练主网络;③固定RPN和主网络共享的特征提取网络,只训练RPN独有的部分网络;④固定RPN和主网络共享的特征提取网络,只训练主网络独有的部分网络。采用随机梯度下降算法(SGD)训练网络,循环次数(maxEpochs)取5,学习率(learningrate)取0.001,批处理(MiniBatchSize)大小取1。网络训练采用NVIDIA GeForce GTX 1060型号的GPU进行加速。

3.3结果分析

本文采用VGGl6、AlexNet、GoogleNet、ResNet101分别进行训练,得到的识别准确率、训练时间如表1所示。不同模型的mPA和训练时间对比如图14所示,从图中可以看出,识别正确率随着训练时间增加而逐渐提升,虽然ResNet训练时间是GoogleNet模型的3倍,但识别正确率提高了8%,其中对破裂与脱节缺陷的识别正确率分别提高了10%和14%,因此这种时间代价是值得的。

ResNet模型的5种缺陷测试结果如图15所示,图中方框代表预测的缺陷位置,文字代表预测的缺陷类别,数字代表检测精度。从图中可以看出,对破裂、变形、错口、脱节缺陷的检测精度达到了100%,对沉积缺陷的检测精度达到了99.99%,说明采用ResNet模型进行特征提取是行之有效的。

4结语

本文采用K-means算法确定锚框大小,利用VGG、AlexNet、GoogleNet、ResNet 4种深度学习网络代替传统Faster R-CNN网络中的特征提取层,提出一种排水管道缺陷檢测模型,并得出以下结论:

(1)K-means算法一定程度上减少了深度网络参数,提高了识别正确率。

(2)虽然ResNet的训练时间大幅增加,但其识别正确率达到0.89,因此采用ResNet作为模型的特征提取层是可行的。

(3)改进FasterR-CNN模型的计算精度普遍在99%以上,部分达到100%。

(4)本文提出的排水管道缺陷识别模型对类似市政工程建设具有一定借鉴意义,但需要针对如何减少网络训练时间、提高识别速度作进一步研究,以实现在CCTV检测设备中的实时检测。

猜你喜欢

目标检测聚类分析深度学习
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
移动机器人图像目标识别