基于改进的卷积神经网络的道路井盖缺陷检测研究

2020-02-27 12:33姚明海隆学斌
计算机测量与控制 2020年1期
关键词:井盖准确率卷积

姚明海,隆学斌

(浙江工业大学 信息工程学院, 杭州 310023)

0 引言

道路井盖是现代城市建设和交通管理的必需设备,井盖的缺失和损坏会造成严重的交通事故和经济损失。所以道路井盖的管理变得愈发重要。然而,道路井盖妥善的管理必须建立在精确的井盖缺陷检测的基础上。人工排查丢失或者有破损的井盖会产生诸如效率低、耗时多、精确度不足等问题,而且由于城市道路整改多,人工检查车道以及草丛内等地方的井盖非常不安全,因此人工排查显然不是一个好的井盖缺陷检测选择,实现对井盖状态的自动检测具有重要意义。为了克服人工检测带来的这些问题以达到更安全、更快速、更精确地进行井盖缺陷检测的目的,一些研究人员在传感器和图像处理方法上做出了一些研究。比如,文献[1]提出了 基于无线传输、电机驱动井盖锁结构技术来实现对丢失井盖的动态检测的方法;文献[2]通过提取井盖的颜色、边缘轮廓等特征,并使用改进的霍夫变换方法,计算窨井盖的区域范围,进而判断是否有破损或丢失的情况。通过分析这些文献,可以发现,基于传感器和图像处理的方法虽然能实现井盖的监测,但算法的性能不够好,计算量较大,对破损且有安全隐患的井盖无法实现自动检测,难以应用到实际检测当中。由于深度学习在特征提取上有显著的优势,基于传感器和图像处理的井盖缺陷识别方法慢慢被卷积神经网络所取代。文献[3]提出了基于Faster R-CNN[4]的卷积神经网络模型对井盖进行检测的方法。该方法证明,卷积神经网络跟之前基于传感器和图像处理的方法相比,在准确率和检测效率上确实取得了飞跃性的进步,但如果在改进激活函数和网络结构上做进一步改进的话,性能会更好,这也就是本文的主要研究内容。

在激活函数角度上,目前使用最多的是ReLu激活函数。一方面,在一定程度上克服了sigmoid和tanh激活函数的梯度弥散的缺点,为训练后的网络带来了适度的稀疏特性,而且由于ReLu表达式中没有除法和指数运算,因此计算速度更快。但是,另一方面,ReLu激活函数也没有真正解决输入小于零时输出也为零的缺点,同样也在一定程度上导致了神经元信息的丢失,特别是当输入很多为负值时。因此,本文提出一种基于ReLu改进的激活函数MReLu和BReLu,其克服了ReLu的信息丢失的缺点,保留更多的输入为负值的信息并且能够传输更多信息到下一个网络层。在网络结构角度上,之前的神经网络多数是只用一个激活函数,不能最大限度地表达神经元的非线性特性。因此,本文运用两个激活函数对卷积神经网络模型进行优化。实验表明,本文提出的方法跟现有方法相比,不仅具有更高的识别准确率,而且同时提高了收敛速度和鲁棒性,并且可以应用于各种深度神经网络体系结构中。

1 涉及相关算法

1.1 MCCNN神经网络模型

改进的卷积神经网络是专门用于道路井盖缺陷检测的卷积神经网络模型(manhole cover detection convolutional neural network,MCCNN)。如图1所示,本网络结构由3个卷积层,两个最大池化层以及一个全连接层加上softmax层组成。从图可知,第一个网络层接收输入井盖图片,然后网络层1和2执行卷积操作,并经过激活函数将神经元特征激活,然后再通过最大池化层降低参数数量;最后将经过只有卷积操作的网络层3输出进行全连接,综合前几层采集到的井盖特征,经过softmax层将全连接层的输出映射成概率分布,用于井盖识别的分类。本文以非线性激活函数为唯一变量,来研究不同激活函数对井盖识别快速性和准确率的影响。

图1 神经网络模型MCCN结构图

1.2 卷积神经网络和激活函数

卷积神经网络(convolutional neural network,CNN)[5]提供了一种端到端的学习模型,模型中的参数可以通过反向传播中的梯度下降算法进行反复训练以使输出结果接近真实值。经过训练的卷积神经网络能够学习到图像中的特征,比如纹理特征、颜色特征、形状特征和空间特征等,并完成对图像特征的提取和分类。作为深度学习的一个重要研究分支,卷积神经网络的特点在于每一层的特征都由上一层部分区域通过权值共享的卷积核以及激活函数激励得到。这一特点使卷积神经网络在图像缺陷识别[6]的应用上更优于其他神经网络方法。随着卷积神经网络的流行,一些改进算法也不断出现,如有基于自适应学习率的研究[7],有将DroutOut层运用于池化阶段的方法[8],有致力于预训练与随机初始化模型[9],这些方法都在一定程度上提高了卷积神经网络的表达能力。本文主要研究在道路井盖缺陷识别问题上,激活函数的优化对提高分类准确率和降低损失率的影响。激活函数主要作用是提供网络的非线性建模能力,如果网络中只包含线性卷积和全连接运算,即使网络层数再多也仅能表达线性映射,难以有效解决实际环境中的非线性分布的数据。当激活函数应用于卷积神经网络时,主要在前向转播和反向传播两个过程中对网络参数的训练产生影响和作用。

1.3 ReLu激活函数

因为曾经一度被广泛使用的经典激活函数Sigmoid和Tanh都具有致命的梯度弥散的缺点,所以当前在神经网络模型中激活函数使用的趋势就是非饱和修正线性函数ReLu。修正线性单元(rectified linear unit,ReLu)是这样一种激活函数,如果输入的值小于或者等于零,那么输出就为零;如果输入大于零,那么就会保持原值不变,原样输出。其用数学表达式定义为:y(x)=max(0,x),如图2所示。ReLu这种直接地强制某些数据为0的做法,在一定程度上,为训练后的网络带来了适度的稀疏特性。它不但减少了参数之间的相互依存关系,而且缓解了过拟合问题的发生。相比较传统的S型激活函数,ReLu不含除法和指数运算,计算速度更快。但是,经过卷积操作的输出值多数都会产生大量的负值,如果所有的负值在经过修正线性单元后都被取代为零的话,就会丢失大量的输入信息,对特征提取将产生很大的不良影响,最后导致识别准确率下降。

图2 ReLu函数

1.4 双边ReLu激活函数

在近期的卷积神经网络的研究中,多种基于ReLu的激活函数不断涌现。其中,双边修正线性单元(Bilateral ReLU)就是一个典型的代表,该激活函数被应用于DehazeNet网络模型[10],用来增强模糊的原始图片。

2 改进算法

在本文的研究中,我们将基于改进的修正线性单元和改进的双边修正线性单元来改善卷积神经网络结构MCCNN性能。

2.1 改进的修正线性单元

改进的修正线性单元激活函(Modified ReLu,MReLu)的数学表达式(1)如下:

f(y)=max(tmin,y)

(1)

其中:y表示输入值,f(y)表示输出,tmin在MReLu激活函数中是常量。MReLu激活函数的如图3所示。由图可知,当输入f(y)>=0时,输出保留输入的值不变;当输入tmin

图3 MReLu激活函数

神经网络模型MCCNN在网络层2的卷积操作后使用MReLu作为其激活函数示意图如图4所示。

图4 使用MReLu激活函数的网络结构图

2.2 双边修正线性单元

双边修正线性单元(Bilateral Rectified ReLu,BReLu)可以用下面的数学等式(2)来描述:

f(y)= min(tmaxmax(tminy))

(2)

其中:y表示图片输入,f(y)表示输出,tmin和tmax是BReLu激活函数的边缘常量值。BReLu激活函数如图5所示。由图可知,当tmin=0且tmax不存在时,就可以退化成修正线性单元ReLu;在BReLu激活函数中,tmin和tmax都是常量,且相应地,tmin<0,tmax>1。

图5 BReLu激活函数图

相应地,神经网络模型MCCNN在网络层2的卷积操作后使用BReLu作为其激活函数示意图如图6所示。

图6 使用BReLu激活函数的网络结构图

3 实验结果与分析

本文中,我们有两类不同的实验。一个是在不同数据集上对提出的改进的激活函数的对比验证;另一个是利用第一个实验的验证结果,将改进的激活函数放到本研究所要解决的道路井盖识别的具体应用上。两个实验都是基于主流框架TensorFlow[11],实验设备是一台基于Tesla K40C的服务器,具体设备参数如表1所示。并且训练时使用Xavier初始化网络参数,将AdamOptimizer[12]作为优化器的优化算法,softmax[13]交叉熵损失函数作为损失函数,网络训练的其他参数还有:批处理大小(batch size)为32,输入井盖尺寸为208*208,最大迭代次数为1 000次,学习率为0.000 1,每经过5 000次迭代衰减50%。表1为实验硬件参数。

表1 硬件参数

3.1 不同公共数据集上的验证

本实验中,我们将基于1.1所述的MCCNN的神经网络模型,以激活函数为唯一变量来在两个典型的数(其中tmin取-0.25,tmax取2.0)据集MNIST,CIFAR-10上做对比实验。

3.1.1 MNIST数据集

采用的MNIST数据集[14]是由美国中学生手写阿拉伯数据集,共有60 000个28×28维的0-9的灰度手写数字图片,其中50 000个样本作为训练集,10 000个样本作为测试集。在该数据集上,应用图1所示的MCCNN神经网络作为训练模型,以ReLu,MReLu,BReLu分别作为第双层网络的激活函数来验证不同激活函数的性能。为了观察采用不同激活函数的网络表现出的性能,对每次实验中的测试精度和损失函数进行表统计。表2~3分别代表激活函数与迭代次数对应的损失函数与精度统计。之所以要对损失函数进行统计是因为损失函数是衡量数据属于某个类别的概率,损失函数越小说明网络收敛越快,而测试精度则是直观反映网络性能的量。

表2 MNIST数据集上激活函数与迭代次数对应的损失函数值(Loss)

表3 MNIST数据集上激活函数与迭代次数对应的损失函数值(Accuracy/%)

从表看3出,采用MReLu激活函数的网络取得了最高的准确率0.985 5,BReLu次之,为0.982 5,而ReLu为0.975 4。说明改进的激活函数不仅解决了梯度消失问题,还大大提高了网络的识别率。同时,从表2中可以发现,MReLu不仅是精度最高的,而且是收敛速度最快的,这是因为MReLu的输出更接近0均值,SGD更接近Natural gradient。因此可知,我们改进的激活函数有更高的精度和更少的损失,呈现出更好的性能。

3.1.2 CIFAR-10数据集

作为本实验的第二个数据集,我们考虑使用CIFAR-10数据集[15]。它是由CIFAR(Candian Institute For Advanced Research)收集整理的一个用于机器学习和图像识别的数据集。该数据集包含60 000个32*32的彩色图像,共有10类。其中50 000个训练图像和10 000个测试图像。实验采用的参数与网络模型与MNIST数据集一样。同理,为了观察采用不同激活函数的网络表现出的性能,对每次实验中的测试精度和损失函数进行表统计,并且作图以直观显示。表4~5分表代表激活函数与迭代次数对应的损失函数与精度统计。

从表5看出,采用,MReLu激活函数的网络取得了最高的准确率0.988 5,BReLu次之,为0.986 5。这两者与准确率为0.975 4的ReLu激活函数相比,有了比较明显的提升。说明改进的激活函数不仅解决了梯度消失问题,还大大提高了网络的识别准确率。同时,从表4中可以发现,BReLu与MReLu的收敛速度差不多一样快,比ReLu激活函数快一些。因此可知,我们改进的激活函数有更高的精度和更少的损失,呈现出更好的性能。

3.2 井盖数据集上的验证

经过上面两种公共数据集的验证,我们发现改进的激活函数确实有更好的性能。因此,为了进一步证明本结论,我们将其应用到本文要解决的井盖识别问题的应用上。

3.2.1 实验数据

本文训练的样本来源于定期从城市视频监控抓取的视频流集,共有1 500路视频,将视频分解成帧图片并经过筛选后,采集其中的5 000张图片,包含有完整井盖、破损井盖和井盖丢失3种图片。现将其中4 000张图片作为训练集,剩下1 000张作为测试集,分类结果分为A、B、C三类,分别代表完整井盖、破损井盖和丢失井盖。图片像素作为输入进入MCCNN神经网络后统一尺寸为208*208。如图7所示。

3.2.2 训练和识别过程

将训练集中的实验数据取出,然后进行人工标注,分为完整井盖,井盖缺失,井盖破损三类。然后将标注好的尺寸为208*208的训练集数据输入到本文中以MReLu、MReLu和BReLu作为唯一变量的MCNN神经网络,然后经过5 000次正向传播和反向传播的反复迭代来进行网络参数训练,最后得出分类结果。其中,正向传播的作用是提取井盖特征,反向传播的作用是通过梯度下降的优化算法来减少损失函数,进而让分类的结果接近真实值。

表4 CIFAR-10数据集上激活函数与迭代次数对应的损失函数值(Loss)

表5 CIFAR-10数据集上激活函数与迭代次数对应的损失函数值(Acurracy/%)

图7 数据集内样本分类

3.2.3 实验结果分析

将井盖图片进行训练后,3种不同井盖类别的识别结果如表6所示,整体井盖识别结果如表7所示,包括识别准确率和损失率。

表6 不同井盖类型识别结果

整体识别精度与损失由表7统计如下:

表7 井盖识别结果

根据表6第二、四、六列的第四、五行数据,可以看出该城市中井盖出现破损比井盖丢失的情况更多;由表7激活函数ReLu、MReLu、BReLu对识别结果的准确率和损失率可知,利用改进的激活函数检测到的井盖丢失或者破损的精度会比ReLu激活函数更高,且收敛速度更快。由于井盖丢失时特征比较明显,很容易提取,比如出现大面积空洞,而井盖破损程度各异,大多数没有明显的共同特征,所以检测效果在ReLu、MReLu以及BReLu作为激活函数都会相比井盖丢失情况效果稍差;完整井盖的检测精度是这3个识别类别中精度最高的,特别是应用改进的激活函数,其中BReLu达到98.56%,MReLu达到98.28%,比ReLu的96.56%高出许多。由此可见,改进的激活函数改善了井盖缺陷检测的精度与性能。

4 结束语

本文研究中,提出了在道路井盖缺陷识别的应用中,通过用改进的激活函数MReLu和BReLu来替代修正单元ReLu来作为非线性激活函数。实验证明,改进的激活函数不仅能够提高井盖缺陷识别的精度,而且还能加快收敛速度。但算法仍有不足之处,例如检测过程中出现的漏检、误检,仍不可避免;如何改进样本质量,改变网络参数tmin和tmax以再提高检测精度;此外,此算法还有一个限制,就是在网络层1和网络层2的激活函数不能同时使用MReLu或者BReLu,因为第二、双层的卷积操作输出值包含大量不同的特征信息。在未来的研究中,将进一步寻找解决这些问题的方法,以到达改善道路井盖识别的性能。

猜你喜欢
井盖准确率卷积
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
井盖为什么是圆的
找井盖