APP下载

基于深度学习的道路积水智能监测方法

2021-11-02白岗岗侯精明夏军强李丙尧张阳维卫志豪

水资源保护 2021年5期
关键词:积水像素卷积

白岗岗,侯精明,韩 浩,夏军强,李丙尧,张阳维,卫志豪

(1.西安理工大学省部共建西北旱区生态水利国家重点实验室,陕西 西安 710048;2.武汉大学水资源与水电工程科学国家重点实验室,湖北 武汉 430072)

随着全球气候变化加剧,极端降雨频次不断增多,与此同时城镇化进程快速推进,极大地改变了下垫面条件,致使城市内涝积水问题日益突出[1-5]。2012年北京“7·21”特大暴雨引发了严重的城市内涝,造成严重的人员伤亡和经济损失。2018年8月辽宁大连突降大到暴雨,路面积水使灯箱漏电,致一名蹚水行走的男子不幸触电身亡。可见高效、安全、精准地开展城市内涝积水监测对降低内涝成灾风险、减少内涝引起的城市交通及市民出行安全等隐患具有重要意义[6]。

目前针对城市内涝积水信息监测的主要方法有人工观测法、仪器测量法等,其中人工观测法需要消耗大量的人力物力,效率较低且存在严重的安全隐患;仪器测量法通过传感器进行量测,有着方便快捷且精度较高的优点,但缺点也较明显,如仪器成本较高且受外界的干扰较大[7]。因此,需寻找一种安全、效率高且成本低的监测方法来监测城市内涝积水。

近年来随着深度学习技术的不断提高,人工智能飞速发展,卷积神经网络(convolutional neural network, CNN)作为深度学习的代表算法,在图像识别领域中的应用取得了大量突破性成果。Hua等[8]针对大场景遥感影像中多个物体和微物体的实时检测,提出了一种将视觉感知和CNN相结合的遥感影像实时物体检测算法,该算法不仅能保证检测精度,且可大幅度提高目标检测的效率。Zang等[9]提出了一种基于深度学习和计算机视觉的自动车牌检测和识别方法,该方法对于车牌检测和识别的效果较好。Massoli等[10]基于深度学习对人脸进行识别,并采用超分辨率技术提升了对人脸识别的精度。陈利[11]提出了一种基于深度学习技术的车牌识别方法,与传统方法相比识别和定位车牌的准确率更高。何西麟[12]采用深度学习技术搭建了基于CNN模型的手写字符识别模型,手写体字符的识别率超过90%。卢宏涛等[13]将CNN应用于物体监测和人脸识别,与传统方法相比,CNN模型的识别精度较高。刘胤等[14]应用图像识别技术实现了实验室异常自动监测和人脸自动识别等功能,比传统人工监控方法具有更高的识别速度和精度。张雪芹等[15]基于植物识别算法和CNN中的AlexNet网络模型对植物图像进行识别,该方法的泛化性和准确性较高,识别速度较快。

本文基于西安理工大学金花校区内的道路积水图像,采用基于CNN的目标检测算法识别道路积水区域并提取积水面积,与实测结果对比表明,该方法可以实现道路积水范围的提取且具有较高的精度,可为相关部门自动准确获取道路积水信息提供技术依据。

1 理论算法

1.1 CNN

CNN是基于深度学习理论的一种前馈神经网络,在图像处理领域有着出色的表现[16]。CNN擅长发掘数据的局部特征,对数据的旋转、平移等具有较高的稳健性,通过输入原始数据,采取卷积、池化及激活函数映射等操作,最后按目标任务特征输出目标分类和定位[17]。CNN由输入层、卷积层、池化层、全连接层以及输出层组成,其中输入层用来接收样本数据,并将样本数据输送到CNN中进行特征提取;卷积层通过多个滤波器进行卷积操作进而提取输入数据的特征,每个卷积层包含若干个特征图,同一特征图的神经元共享同一卷积核的权值参数,可以减少各网络层间的连接及过拟合现象,由前一层的特征图与卷积核进行卷积运算并经过激活函数后输出得到这一层的特征图;池化层亦称为下采样层,通过求局部区域的最大值或平均值进行降采样,进而缩小矩阵尺寸,减小特征空间,即在减少数据量的同时保留可用信息。CNN通常取若干个卷积层和池化层交替连接,而后连接若干个全连接层,全连接层用于将目标任务形式化为目标函数,实现最终分类[18]。

CNN不需要任何输入和输出之间的精确表达式,只需通过大量学习就能得到输入与输出之间的映射关系[19]。在训练CNN时,反向传播算法是性能最好且应用最为广泛的方法,通过计算预测值与真实值之间的误差(损失),并将误差由最后一层逐层向前反馈,同时更新每层参数,再进行前馈,如此往复,直到网络模型收敛,进而达到模型训练的目的[20]。对于样本数量为N的训练集,使用交叉熵作为损失函数[21],可表示为

(1)

式中:J为损失函数;yn为第n个样本所属的类别;xn为第n个样本的特征向量;w为末层权参数;b为相应偏置参数。

CNN在测试时输入图像所属某一类别y的预测值ypred为

(2)

1.2 YOLOv2网络结构

TensorFlow是Google在Dist Belief的基础上采用数据流程图进行数值计算,对神经网络框架进一步优化得到的一种深度学习系统,可在CPU和GPU上运行,具有速度快、精度高、灵活性强、可用范围广等特点,被广泛应用于CNN、递归神经网络(RNN)等各类机器学习算法[18,22]。TensorFlow是通过计算图的形式来表述计算的一种深度学习系统,目前已有多种经COCO数据库训练且基于TensorFlow的网络结构,如Fast R-CNN、Faster R-CNN、YOLO、R-FCNN 及YOLOv2等,故仅需在这些基础网络结构上修改某些参数便可训练目标检测模型[23]。与Faster R-CNN、YOLO相比,YOLOv2提出了新的Darknet-19基础网络,共包含19层卷积层和5层池化层,使用大量的3×3和1×1卷积,通过将1×1的卷积置于3×3卷积之间对积水特征进行压缩,并采用了Batch Normalization(批量归一化)处理及 K-means 聚类作为候选框选取规则,通过这一系列调优算法,在保证检测精度的基础上提升了检测速度。

本文选用基于CNN的YOLOv2目标检测模型,模型通过输入分辨率为416像素×416像素的积水图像,采用Darknet-19基础结构对输入积水图像进行积水特征提取,输出13×13×1 024特征图,并取第16层的26×26×512特征图重组成13×13×256特征图,采用融合方法将二者相结合,生成13×13×1 280特征图,最终经过卷积操作,生成13×13×30的特征图,具体网络结构如图1所示。

2 研究数据

2.1 基础数据采集

采用高清数码摄像机和照相机设备采集西安理工大学金花校区道路地势低洼或易积水区积水图像。摄像机安装位置如图2所示,每隔10 min获取一帧积水图像,得到的图像分辨率为2 560像素×1 440像素;照相机拍摄的积水图像分辨率为4 272像素×2 848像素。共筛选采集了积水图像1 000幅,作为初始积水样本数据集,图3为数据集图像示例。

(a) 摄像机拍摄图像

2.2 数据预处理

为避免在训练过程中由于训练样本过少而出现过拟合现象,需对数据集进行数据扩充。数据扩充方法有随机裁剪、角度变换及彩色转换等,为增加数据多样性,考虑不同方位和光照强度时的积水图像,采用彩色转换、角度变换将样本数据集扩充至3 000幅,其中由700幅图像进行角度变换得到2 000幅,另300幅图像进行彩色转换得到1 000幅。因检测目标较大,而降低图像像素不会影响目标检测精度,但可大幅度提高模型训练速度,故将图像缩小至416像素×416像素,最后采用LabelImg标注工具对数据集进行标签制作。

基于OpenCV(open source computer vision library)计算机视觉开源库,编写代码对原积水样本图像进行角度变换(水平或垂直方向旋转),如图4所示;通过Matlab 软件编写代码实现对数据集的彩色转换,如图5所示,分别在色彩原色R、G、B即红色、绿色和蓝色3个通道加不同的失真值。

图4 角度变换

图5 彩色转换

积水目标检测是通过学习有标签的图像样本,然后对新的图像做出预测的过程,故需提前生成标签[24]。用LabelImg标注工具可在图像中标注目标位置并生成表示目标标准框位置的xml文件,文件中包含图像名称、像素大小、所属图片位置及标注的积水范围等信息,极大地方便了数据集标签的制作,如图6所示。

(a) 制作标签界面

2.3 模型训练

在经数据预处理后得到的3 000幅积水数据集中,选取2 500幅图像作为训练集,其中1 665幅图像是由原始图像经过彩色转换、角度变换得到的,500幅图像作为测试集(摄像机图像145幅,照相机图像355幅)。采用中央处理器为Intel i7-8700、GPU为RTX2070的硬件配置,运行环境为Windows 10.0、CUDA 10.0以及TensorFlow深度学习系统,实现基于YOLOv2算法的模型训练。经多次训练和参数调整,设置的模型网络参数如下:初始学习率为0.001,批尺寸为32,迭代次数为50次,并采用正则化方法来防止模型过拟合,最终训练产生了用于预测积水的模型权重,其保存了模型的结构、权重以及训练参数配置等。图7为模型对积水数据集的训练与验证准确率,平均值分别为96.1%和90.1%。

图7 模型训练和验证结果

3 识别结果与分析

利用训练好的模型权重,可实现积水图像自动识别及积水面积自动提取。图8为部分测试集里的图像对模型准确率进行测试的效果。摄像机拍摄机位、角度不变,拍摄画面单一,而照相机拍摄场地、角度都是随机的,故模型对摄像机图像识别效果较照相机要好。

(a) IMG_1

为实现对图像中积水面积的提取,分别用照相机垂直拍摄的图像(图9(a)(b))和摄像机拍摄的、经过曲面矫正和透视变换技术矫正的图像(图9(c))进行识别,并可自动提取识别类别、识别率及检测框坐标xmax、xmin、ymax、ymin等信息,表1为积水图像检测框信息。

(a) IMG_4

表1 积水图像检测框信息

所有图像尺寸均为416像素×416像素,即图像大小Sa=173 056像素,以图像IMG_4为例,整个图像的真实尺寸为55 cm×55 cm,即图像实际面积A=3 025 cm2,利用摄影测量原理,即式(3)可计算出积水识别面积A识=1 551 cm2,与积水实测面积A实=1 434 cm2相比,误差约为8%。同理可计算出图像IMG_5和IMG_6的积水面积,结果如表2所示。

(3)

表2 积水识别面积与实测面积对比

由表2可知,利用本文方法计算得到的积水识别面积与实测面积误差均在允许范围(±20%)内,验证了基于深度学习技术的城市道路积水范围识别和提取方法的合理性和可行性。

4 结 语

于西安理工大学金花校区采集1 000幅道路积水图像数据,经数据扩充得积水样本集3 000幅图像,其中2 500幅作为训练集,500幅作为测试集,采用TensorFlow深度学习系统,基于CNN的YOLOv2模型对积水区域进行了智能识别,实现了对积水图像信息的智能获取,训练和验证的平均准确率分别为96.1%和90.1%,自动提取的积水面积误差也均在允许的范围内,验证了方法的合理性和可行性,可为城市内涝积水监测与管理提供参考。

猜你喜欢

积水像素卷积
像素前线之“幻影”2000
基于3D-Winograd的快速卷积算法设计及FPGA实现
原来是输卵管积水惹的祸
卷积神经网络的分析与设计
小熊当当玩积水
“像素”仙人掌
从滤波器理解卷积
原来是输卵管积水惹的祸
基于傅里叶域卷积表示的目标跟踪算法
高像素不是全部