APP下载

基于卷积神经网络的漏液视觉检测

2021-05-11李思寒仇怀利

液晶与显示 2021年5期
关键词:漏液水渍卷积

李思寒,仇怀利*,吴 佳,沈 彦

(1.合肥工业大学 电子科学与应用物理学院,安徽 合肥 230601;2.上海西派埃智能化系统有限公司,上海 200233)

1 引 言

在工业现场中,通常通过是否有液体渗漏至地面观察管道设备是否破损。现有的水渍检测方法以人工为主,但人工方法受到巡检效率有限、不够客观等因素的制约,因此需要监控系统对可能发生泄露的地方进行快速、精确地检测。视频监控系统包含视频监控设备和与之配套的智能图像识别算法。

针对漏液识别问题,目前主要采用传统图像处理中的图像分割、边缘检测、红外成像的方法。文献[1]提出了利用激光扫描技术和图像处理方法相结合实现自动识别地铁隧道渗漏水情况,但该方法算法复杂,实际工程现场应用难度较高;文献[2]提出了基于数字图像和边缘检测的检测算法并结合改进的CTA算法结合对渗漏水病害进行识别的方法,但该方法易受复杂背景干扰,系统鲁棒性较差;文献[3]提出通过红外热成像摄像头检测物体比热容并根据水渍与普通物体的比热容差异来检测水渍,但红外热成像摄像头设备费用昂贵。总的来说,采用图像处理的特定算法来检测水渍能满足特定场景检测准确率的需求,但是上述算法都存在系统鲁棒性较差、耗时长、难以适应复杂场景以及设备价格较高的缺点。

为了解决这些问题,深度学习算法被引入到了图像处理领域。其中最常用的是卷积神经网络(CNN),它的特点是能够提取输入数据的高层抽象特征,目前已广泛运用于图像处理领域中。文献[4]提出采用卷积神经网络来识别道路裂缝,文献[5]提出采用全卷积网络(FCN)来检测具有复杂环境的隧道几何柱面渗水面积。总体来说,卷积神经网络算法善于对复杂环境进行特征检测[6-7]和识别[8]。

目前,基于深度学习的工业现场检测识别方法主要有FCN-VGG16/19、Fast R-CNN、Yolo v3、Mask R-CNN等。由于本文所处工业环境相机拍摄角度固定,每个相机镜头固定拍摄每个管道连接处,所以只需判断目标位置是否含有水渍,即化简为图像分类问题。

目前图像分类领域主流的卷积神经网络模型除了本文所运用的VGG网络,还有Alexnet、Googlenet等。其中,Alexnet由Alex Krizhevesky等人在2012年提出,它在卷积神经网络中使用Relu非线性激活函数,通过多GPU的训练降低训练时间,并且采用了重叠池化,提高网络精度,降低了过拟合现象的发生概率。但其相较于VGG网络,卷积核较大,层级较浅。而Googlenet通过形成网络内更复杂的内部架构Inception,降低了计算所需资源和要求。该架构的主要思想就是以卷积层构成块作为网络的基础,并找出最优的结构块在空间上重复,对输入图像并行地执行多个卷积运算或池化操作,网络参数较少[9]。由于Goodlenet模型含有两面个辅助分类器,修改及训练时较为复杂繁琐,不进行精细分类的工业应用时偏向于使用模型简单的VGG网络模型。

本文采用CNN-VGG16模型检测管道漏液,首先对样本进行数据增强,进一步地丰富图像训练集,提取多种图像特征,泛化理论模型,再制作数据集,结合早停法对样本进行训练,最后通过实际工程应用验证了本文分析的正确性和所提方案的有效性。

2 CNN卷积神经网络

深度学习是一类新兴的多层神经网络学习算法[10],它在特征提取和建模上比浅层模型具有更好的泛化能力[11]。传统神经网络基础模型含有输入层(Input layers)、隐藏层(Hidden units)和输出层(Output layers),隐藏层可以含有很多层,每层可含有多个神经元。神经网络中的每个神经元对其所有的输入进行加权求和,并添加一个被称为偏置(Bias)的常数,然后通过一些非线性激活函数[12]来反馈结果。

卷积神经网络(CNN)属于神经网络的范畴,是目前深度学习技术领域中一种经典而广泛应用的结构,已经在诸如图像识别和分类的领域证明了其高效的能力。

一个典型的卷积网络(图1)通常有3层,第一层是卷积层,可作为卷积神经网络单独使用;第二层是池化层,可以缩减模型大小,提高计算速度,同时提高所提取特征鲁棒性;最后一层是全连接层,它的每一层是由许多神经元组成的平铺结构,将特征整合到一起,输出为一个值,减少特征位置对分类带来的影响。

图1 卷积神经网络结构图Fig.1 Structure diagram of convolutional neural network

2.1 CNN-VGG16模型

本文采用的卷积神经网络模型为VGG16[13]。在ICLR2015会议上首次提出VGG16模型,该模型可以达到92.7%的测试准确度,处于ImageNet的前5位,它的数据集包括1 400万张图像,1 000个类别。

VGG16是一种深度卷积神经网络模型,16表示其深度,该模型在图像分类等任务中取得了不错的效果[14]。

(1)

其中,D是深度,F是卷积核大小,b为偏置量,ωd,m,n表示卷积核在第d层第m行第n列的权重,xd,i+m,j+n表示图像第d层第i+m行第j+n列的输入元素,yi,j表示预测输出的第i行第j列的图像特征,f()为非线性激活函数,这里的f()为Relu激活函数。

池化层的池化方法采用尺度为2,步长为2的最大池化(Maxpooling)方法,采用这种方法是因为图像具有静态性,在一个区域内有用特征可能在另一个区域内适用。因此,为了描述较大的图像,可以计算图像上某个特定特征的最大值来代表这个区域的特征且最大池化[15]能保留更多纹理信息。Relu激活函数见公式(2)。

f(x)=max(0,x)

.

(2)

激活函数是为了使模型加入非线性因素,Relu函数具有单侧抑制、相对广的兴奋边界和稀疏激活性等优点,是应用最为广泛的激活函数。

在分类问题中,全连接层常采用sigmoid或softmax。在二分类问题中,采用sigmoid作为最后的激活层;在多分类问题中,采用softmax作为最后的激活层。

sigmoid激活函数公式(3)如下:

(3)

其中,可以设置概率阈值作为分界,分入两个类别中,求导简单,但易出现梯度消失。

softmax激活函数公式(4)如下:

(4)

其中,k表示类别数,j表示具体对应的类别,计算概率最高类别的作为输出结果。

VGG16模型中13层卷积层和5层池化层负责进行图像的特征提取和提升计算速度,最后3层全连接层完成分类任务。

2.2 早停法

训练一个神经网络时,网络参数会随着模型复杂度的增加而增多,就容易产生过拟合现象[16]。为了避免这种现象,通常有两个解决问题的方向:降低参数空间的维度或者降低每个维度上的有效规模。降低每个维度上的有效规模的方法主要是正则化,如权重衰变和早停法等。其中,早停法作为最有效的方法被广泛采用。

早停法[17]的基本含义是指当训练模型在验证集上的表现开始下降时停止继续训练,这样就能避免继续训练导致过拟合。因此,如何选择停止训练的时机成为早停法的关键问题。本文根据VGG网络的特点,设置了自主停止方式:将标记样本按照比例分为训练集、验证集和测试集,训练过程中验证集的损失函数在连续10个周期(即容忍程度为10)不下降时,程序停止并保存验证集损失函数最小时所对应模型。

2.3 模型评价

训练完成后,需要判断模型的好坏。一般使用两个值来判断模型的好坏:准确率和损失函数。

从公式(1)可以看出,y是理想输出的值即预测值,但是实际工程应用中会存在一定的误差。误差在神经网络中用损失函数来表示,神经网络训练或者优化的过程其实就是最小化损失函数的过程[18],损失函数越小,说明模型的预测值越接近真实值。

准确率在水渍检测的分类问题中,是看预测的类别是否和真实的类别一致。一个N类任务的分类问题,其输出是一个N维的向量,每一个向量代表一种类别,对应的值则代表预测目标属于该类的概率。在输出预测结果时,程序是自动选择概率最大的索引所对应的标签作为最终预测的结果标签。

使用两个值来判断模型是因为对于准确率来说,只要预测结果大于0.5就可判断为水渍,但对于损失函数来说,希望模型能够100%预测。所以利用这两种指标来判断模型,可以使得到的权重模型具有较好的鲁棒性。

本文使用的损失函数为二分类交叉熵损失(sigmoid_cross_entropy loss),公式如下:

(5)

但是在分类问题中,准确率具有直观性,但不可微,由于损失函数一个很好的性质就是可微,可以求梯度,运用反向传播更新参数。所以在回归任务中,准确率就不可再用,只能使用损失函数。

3 工程实际应用

3.1 系统搭建

近年来,随着我国城镇化程度的提高和超大城市的出现,城市污水处理成为了保障人民基本生活的重要环节。在污水处理厂中,通常需要观察污水处理设备是否有液体泄露的现象,以防泄露出的污水或化学药品使人们生命财产安全造成损失。

如图2所示,漏液监测系统由视频环网、网络交换设备、平台服务器及漏液监测管理平台构成。千兆视频环网将监控点完整覆盖,定时采集监控图像上传平台服务器用于漏液预警分析。漏液监测模型部署于平台服务器,定时抓取图像后分析当前监控点是否存在漏液情况,并将分析结果推送至漏液监测管理平台。当发生分析结果为漏液时,监测管理平台向现场操作人员发出预警,并推送监测点位置信息,由现场操作人员至对应地点确认是否存在漏液情况并及时进行处理,从而保障工业现场安全。

图2 污水处理厂漏液检测系统Fig.2 Leakage detection system for sewage treatment plant

采用海康威视网络摄像头获取污水处理厂不同位置的图像,地面情况如图3所示。

图3 污水处理厂地面图Fig.3 Ground plan of sewage treatment plant

3.2 采用传统图像处理方法及结果分析

本文采用的传统图像处理方法:先基于阈值分割,通过设定阈值的大小将感兴趣区域从背景中分割出来,但此方法易受到环境因素的影响,一般需要和其他分割法结合使用。本文在此基础上采用k-means算法根据距离的相似性进行聚类分割[19]。进一步地,考虑到一般情况下不同区域的边界的灰度值变化较大,本文还结合边缘分割的方法采用Canny算子通过检测区域的边界从而达到分割图像的目的。目前在实现边缘分割的几种算子中,Canny[20]算子因其不易受噪声干扰、能够检测到真正的弱边缘得到了广泛应用,是目前应用效果较为理想的一种边缘检测算法。

利用上述传统图像处理方法对图3(b)进行漏液检测,由图4可以看出,在k=4时水渍和地面有明显的分界。

图4 k聚类和Canny算子边缘提取结合效果Fig.4 Combined effect of k-means and Canny operator edge extraction

利用分割和边缘检测相结合的算法对含有管道等干扰物体多的地面图像进行处理,提取了过多噪声信息而无法准确地判断是否含有水渍,且处理速度慢、没有连续性。所以当现场工作环境复杂、目标物不规则、色差不大时,传统的图像处理方法无法准确提取所需要的信息。

续 表

3.3 基于CNN-VGG16模型的图像处理技术

本文利用python对原始图像进行数据增强。

在图像分类任务中,对于输入的图像进行一些简单的平移、缩放、颜色变换等,不会影响图像的类别,从而丰富图像训练集,提取图像特征,防止过拟合,提高模型泛化能力。

本次实验共使用1 780张污水处理厂的地面图像,其中有水渍图像1 300张,无水渍图像480张。将两个分类的图像打乱重新排序,并从各自类别中随机选取70%作为训练样本,20%的图片作为模型质量验证样本,10%作为测试样本。有水渍图像设为类别1,无水渍图像设为类别2。

本次用于运算的计算机配置是:Intel Core i9-9900K,32 GB内存。采用VGG16模型,利用python语言完成。

本文采用的VGG16模型具体工程应用的运行过程如表1所示。

表1 VGG16模型运行过程表Tab.1 VGG16 model running process table

从表1具体运行过程中可以看出,以池化层作为分界,VGG16有6个块结构,每个块结构中的通道数相同。卷积层通道数分别为64,64,128,128,256,256,256,512,512,512,直到512时不再增加。随着通道数的增加,可以提取出更多的图像信息。

池化(block5_pool)后利用Flatten将维度压缩成1维,完成向全连接层的过渡,最后两层是由Relu激活的全连接层和由sigmoid激活的全连接层。

由于最后输出的类别数为2,即判断该视场区域内是否含有水渍,所以本文使用sigmoid作为最后全连接层的激活函数,输出为类别1或类别2。

本文在训练时将VGG16模型与早停法相结合,验证集损失函数达到10个容忍周期不下降时,训练自动停止,避免了由于训练次数过多从而产生的参数过多造成权重模型过拟合的状态,提升了训练时间,节约了训练成本。

在工程应用过程中,迭代次数(epoch)设置为100(即不发生早停时最高迭代100次),调整每次训练所需要的样本数(barch_size)。一个迭代次数等于所有训练样本的一次正向传播加一次反向传播。具体模型运行结果见图5和表2,其中,loss表示训练集损失函数,acc表示训练集准确率,val_loss表示验证集的损失函数,val_acc表示验证集的准确率,最后使用测试的部分来验证准确度(test_acc)。图5的(a)~(d)分别是不同参数时损失函数和准确率的走势图,其中(a)和(b)barch_size=20,epoch=96,(c)和(d)barch_size=40,epoch=83。

通过对比图5(a)和(c)、(b)和(d)折线走势可以看到,在一定范围内,每次选取的样本数量在一定范围内变大,其确定的下降方向越准,模型收敛的越快,引起训练震荡越小。在每次训练所需要的样本数相同时,迭代次数越多,模型整体走势越平稳,最后越趋近于理想状态,本文的模型鲁棒性越好。根据表2可知,每次选取样本数为40、迭代次数为83时,训练集准确率最高,损失函数最小,测试集的准确率最高,即训练好的模型性能最好。

图5 评价模型标准参数走势图。(a) barch-size=20,epoch=96时训练集和验征集的损失函数;(b) barch-size=20,epoch=96时训练集和验证集的准确率;(c) barch-size=40,epoch=83时训练集和验证集的损失函数;(d) barch-size=40,epoch=83时训练集和验证集的准确率。Fig.5 Trend chart of standard parameters of evaluation model.(a) Loss and val_loss at barch,size=20,epoch=96;(b) Acc and val_acc at barch-size=20,epoch=96;(c) Loss and val_loss at barch-size=40,epoch=83;(d) Aoc and val_acc at barch-size=40,epoch=83.

表2 各参数对模型的影响Tab.2 Influence of various parameters on the model

3.4 对比实验

本文采用多种模型对工业现场进行漏液识别,识别结果如表3所示。

表3为训练集、验证集、测试集均相同,每次样本数为40,最高迭代次数为100时,卷积神经网络不同图像分类模型结合早停法的结果对比。

表3 不同模型结果对比Tab.3 Comparison of results of different models

由表3可知,Alexnet模型测试准确率最低,VGG16模型测试准确率与Googlenet相近,训练集准确率和损失函数值均较好,且验证集和测试集都达到了最优,权重模型处于适度拟合状态。本文从现场随机拍摄200张作为样本总量进行多种模型结果预测,显示结果为类别1和类别2,预测结果见表4。

表4 基于不同模型的实际预测结果Tab.4 Actual prediction results based on different model

表4是利用不同方法对无分类的混合数据集进行逐个识别,达到应用模型并预测结果的作用,利用传统图像处理方法预测的准确率为65.6%,准确率较低。通过仔细观察判断错误图可以发现,在颜色差别不大的区域、外界光照较强形成的高反射区域或水泥地面破损造成类似水渍印记的区域,预测失误的可能性均很大。本文方法的准确率为97.0%,类别判断准确率很高。

对于安全性能要求比较低的现场,一般拍摄间隔设置为5 min。对于安全性能要求较高的现场,一般拍摄时间间隔设置为2 s。本文各个模型预测时间见表5。

由表5可知,本文所提方法预测时间最短,单张平均预测时间约为0.2 s,因此预测时间远低于图像采集时间间隔,本文所提算法完全能够满足工业现场实时检测需求。

表5 不同模型的实际预测时间Tab.5 Actual prediction time of different models

综上所述,VGG16模型训练集准确率和损失函数值均较好,且验证集和测试集都达到了最优,其测试准确率与Googlenet相近,预测结果相同,预测时间最短,最适合检测工业现场的漏液情况。

4 结 论

综上所述,图像处理的方法适用于视野范围内所含物体较少,背景较简单的目标物提取。该方法具有一定的直观性,但是在处理受复杂背景或者光照等环境因素影响较大的图像时,算法繁琐且不易实现。而基于CNN的深度学习模型对复杂的环境进行水渍检测,可以大幅提升检测的准确性。本文通过工业现场应用和基于深度学习的多种算法进行对比实验,进一步验证了VGG16结合早停法的模型的有效性,其训练准确率可以达到99.44%,预测准确率达到97.0%,单张预测时间最短约为0.2 s,且原理较为简单,易于实现,设备较便宜,可以满足工业现场检测的需求。

猜你喜欢

漏液水渍卷积
碱性锌锰干电池漏液失效分析①
基于3D-Winograd的快速卷积算法设计及FPGA实现
经尿道前列腺切除术后留置尿管期间尿道口漏液影响因素及护理对策
擦玻璃
打胰岛素漏液, 拔针前转一圈
应用PDCA 管理减少静脉用药调配中心成品输液漏液的实践探索
从滤波器理解卷积
我帮妈妈擦镜子
基于傅里叶域卷积表示的目标跟踪算法
一种基于卷积神经网络的性别识别方法