APP下载

基于改进卷积神经网络的平面地图道路模糊推理分割方法

2020-05-20张乃千王占刚

科学技术与工程 2020年9期
关键词:像素点平面卷积

张乃千,王占刚

(北京信息科技大学信息与通信工程学院,北京 100101)

随着计算机技术的发展,市场对传统纸质地图的需求逐年下降,如何对道路准确分割实现纸质地图道路信息的多样化尤为重要。传统纸质地图道路分割大多基于颜色特征[1],用这种分割方法得到的道路区域效果较差且操作繁琐,无法满足实际应用。詹曦[2]利用基于颜色的聚类特征分割道路区域,这种方法需要不断调整颜色距离阈值,对于颜色特征不显著的平面地图无法保证分割精度;寇曼曼等[3]利用视觉一致性的颜色聚类方法分割道路区域,此方法对颜色显著的主干道有较好的分割效果,但是对于细小的道路则无法准确分割。

卷积神经网络的大规模应用日渐完善了传统算法引发的缺陷[4],同时深度学习的兴起使得图像分割技术取得了突破性的成果。在医学领域,卓钟烁等[5]用CNN(convolutional neural network)分割视网膜血管,精确率及特异性可达到人类专家的水平。在农业方面,马浚诚等[6]利用CNN准确分割复杂背景中的黄瓜病斑,为病害识别提供了准确的数据保障。

由于CNN在不同领域均得到良好应用,因此考虑引入CNN优化平面地图道路分割过程。根据徐国晟等[7]基于CNN分割车道线的方法所提供了思路,利用其特有的共享卷积核结构[8],大幅度提高了特征分类效果。在精度和速度[9]上优于传统算法,分割过程达到了前所未有的便捷。

考虑到平面地图道路分割的目标是将道路从背景区域中分割出来,提出一种改进CNN分割目标函数并结合模糊推理系统的平面地图道路概率分割方法。首先通过CNN训练得到道路区域像素点的概率模型,再根据非线性映射均匀像素点概率分布,并将其结果输入模糊系统,最终输出像素点属于道路区域的概率,完成平面地图道路分割。

1 算法基本原理

1.1 CNN模型及原理

卷积神经网络是由输入层、激励层、池化层、卷积层和全连接层等组成的可训练体系结构[10]。CNN的局部连接性和权值共享性,使得训练出的网络模型对平移、旋转、缩放有很强的适应性。

当图像输入CNN模型后首先进入卷积层,完成平面地图道路特征提取操作,然后进入池化层,CNN在空间域上的池化操作能更好地挖掘图像的深层特征息,接着进入全连接层,全连接层可将卷积提取的特征映射到每一类,实现分类目的[11],最后送入输出层,得到平面地图像素点属于道路和非道路的概率,完成模型训练。CNN模型将信息的特征提取和分类放到同一个网络框架中同步训练[12],实现算法的自适应性。

1.2 模糊推理系统原理

模糊推理系统[13]是以模糊集合理论和模糊推理方法等为基础,解决带有模糊现象的复杂推理问题,可以实现复杂的非线性映射关系,进而得到更接近某一分类的概率真实值。模糊系统主要由模糊化、模糊化规则、模糊推理方法及去模糊化四部分构成[14]。其基本结构如图1所示。

图1 模糊推理系统流程图Fig.1 Fuzzy inference system flow chart

2 平面地图道路分割方法

2.1 改进的CNN模型

2.1.1 构建训练集

来自不同数据库的平面地图道路虽大体相同,但由于道路的复杂交错性,使得不同地图数据库呈现道路细节信息程度不同,为保证平面地图道路分割准确性,选取两个不同数据库(实际应用中选取百度地图数据库与高德地图数据库)构建数据集。为获取正确标记的平面地图道路训练样本[15],首先将道路的像素点用1标记,其他区域用0标记,得到大量带标签的数据集。然后将预处理后的图像划分成N×N(取N=35)的图像块,选取样本中央像素点标签分别为1和0的图像构建训练集,像素训练集构建方法如图2所示。

图2 构建训练集流程图Fig.2 Building a training set flow chart

2.1.2 卷积神经网络结构

使用像素大小为35×35平面地图设计卷积神经网络模型,首先输入图像经过一个4×4的卷积层和2×2的池化层,完成第一次卷积与采样操作,接着使用一个3×3的卷积层和2×2的池化层完成第二次卷积与采样操作,然后重复上一步,并将得到的16个4×4特征图放入2个全连接层,最终在输出层中得到道路和非道路的像素点概率,完成模型训练。卷积神经网络结构如图3所示。

图3 卷积神经网络模型结构Fig.3 Convolutional neural network model structure

2.1.3 改进分割目标函数

平面地图道路分割的目的是得到像素点属于道路和非道路区域的概率值,因此可以将其视为一种二分类问题,对于这种典型二分类问题,使用Softmax函数[16]会提升网络复杂度,因此用Sigmoid函数作为目标函数,Sigmoid函数可以将一个实数映射到(0,1)区间,保证训练模型得到的概率完整且连续。

算法的目标函数表示为

(1)

式(1)中:Ls为目标函数;k为每次参数更新所需的样本数,其中k=1,2,…,K;X∈RHWK为卷积层给出的预测分类;Y∈RHWK∈{0,1}为标记的图像像素数据集合,其中0和1分别为非道路区域像素与道路区域像素;H和W分别为前层卷积得到的图像高度和宽度;h=1,2,…,H;w=1,2,…,W;λΦ(W)为正则化项,λ为参数,调节目标函数的模型复杂度,Φ(W)为模型复杂度惩罚项,避免过拟合问题。

在训练过程中为优化分割目标函数使其最小化,使用随机梯度下降算法调整目标函数,利用反向传播计算更新权值,式(1)的反向传播计算公式为

(2)

2.2 非线性映射

CNN模型训练后的像素点概率值集聚在0~1,由于在大样本的训练过程下,这种过度集中的概率分布不能很好地说明具有相似概率像素之间的差异。因此,有必要通过非线性映射将像素点的概率值均匀地分布在0~1。

将CNN模型训练结果分为两大类,分为像素点属于道路区域的概率和像素点属于非道路区域的概率两种,并将其等分(0,1)作用域,令边界值分别对应(0,0.1~0.5)和(0.5,0.6~1)。最后,通过边界值和映射点的分段线性拟合产生非线性映射函数。

2.3 构建模糊概率系统

经过CNN模型训练后,将得到的像素点概率作为输入模糊变量,分别用p百、p高表示,输出则为道路概率值。

实际构建过程中,由于高德地图数据包含更多的道路细节,因此将其像素点概率作为被调节量,用百度地图数据库训练得到的像素点概率作为控制量,模糊推理系统构建如下。

Step 1确定隶属度关系函数。

图4 隶属度函数关系Fig.4 Membership function diagram

Step 2建立模糊规则库。

由于该系统系统是一个二维输入一维输出的模糊推理系统。且两个输入分别包含4种(A、B、C、D)和5种(E、F、G、H、I)隶属度关系,则系统的推理规则库共包含4×5=20种规则,其中“非”为像素点属于非道路区域,“道”为像素点属于道路区域,模糊规则构建如表1所示。

表1 构建模糊规则库Table 1 Building a fuzzy rule base

Step 3中心平均法去模糊化。

由于中心平均法可以避免求取隶属度函数的积分运算,同时又考虑了各个模糊集合对精确值的影响,因此采用该方法去模糊化,中心平均法的公式如式(3)所示:

(3)

2.4 算法整体流程

算法共分为两大步骤:模型训练与模糊概率预测。算法流程图如图5所示。

图5 算法流程图Fig.5 Algorithm flow chart

Step 1模型训练。

选取百度地图数据库与高德地图数据库样本构建35×35训练集;分别将其输入到改进分割目标函数的CNN模型中训练,得到两个不同的训练模型,分别称为Baidu-CNN模型和Amap-CNN模型。

Step 2模糊概率预测。

将Baidu-CNN模型和Amap-CNN模型预测得到的初始像素点概率作为输模糊入变量输入模糊推理系统;若模糊推理系统输出得到像素点概率p合>0.5,则像素点属于道路,若p合<0.5,则像素点属于非道路。

3 实验结果分析

3.1 实验环境

实验在装有Ubuntu 16.04系统的计算机上实现,计算机配置:处理器为Intel Core I7-7700 2.8 GHz,GPU为GeForce GTX 1060。编程语言为Python2.7,基于TensorFlow开源框架完成。

3.2 训练集数据选取

实验所需要的数据来自高德地图、百度地图数据库,分别采集35×35像素大小的平面地图图像各为1 500张,并将数据集通过随机旋转与水平镜像各扩展至6 000张。分别从两数据集任意选取其中5 000张构建训练集。剩余的1 000张随机分成等量的两组作为测试集和验证集。

3.3 CNN模型训练及非线性映射构建

3.3.1 CNN训练模型分析

实验一个batch所包含的样本数为128,共分成40个batch分别训练,随着训练次数增加,当Loss曲线收敛至平稳时模型训练结束,得到初始像素点概率值。Loss函数下降曲线与模型正确率曲线如图6所示。

图6 Loss下降曲线与正确率曲线Fig.6 Loss drop curve and correct rate curve

根据图6曲线走势可以得出,模型可信度较高,迭代到Loss曲线不在下降时,模型训练结束。根据模型精度曲线走势可以得出,训练次数较少时准确率呈直线大幅上升,随着模型训练次数增加,训练精度上升变缓直至趋于平稳,由于Amap-CNN 模型的像素点正确率整体偏高于Baidu-CNN模型,有效证明本文用Amap-CNN作为模糊推理系统输入变量中被调节变量的可靠性,Amap-CNN模型和Baidu-CNN模型训练得到的道路分割图像如图7所示。

图7 CNN模型训练分割图Fig.7 CNN model training segmentation diagram

图8 像素点概率分布Fig.8 Pixel point probability distribution

根据图7可知,Amap-CNN分割结果较为准确,清晰度较高,但是道路和非道路色差较小的区域存在漏判现象。Baidu-CNN模型分割结果较为完整,但是道路与非道路区域的边界模糊,且非道路区域存在较高的误判点。其中Amap-CNN模型和Baidu-CNN模型训练后的像素点概率结果如图8所示。

3.3.2 非线性映射函数

由图8可以看出,像素点概率分布不均匀,密集的概率分布不利于建立不同概率的模糊推理系统。因此将CNN模型训练后的像素点概率值进行非线性映射,使其概率均匀分布,然后输入模糊推理系统,非线性映射构建如图9所示。

图9 非线性映射函数Fig.9 Nonlinear mapping function

依据非线性映射函数的调节,CNN模型的像素点误判概率可以均匀分布在(0,1)区间,以便有效获取模糊推理系统的输入模糊变量,经过非线性映射后像素点概率分布如图10所示。

图10 修正像素点概率分布Fig.10 Correct pixel probability distribution

由图10可知,经过非线性映射后,像素误判点的概率分布均匀,可以有效建立模糊推理系统,经过模糊推理系统得到的修正道路分割图如图11所示。

图11 修正道路分割图Fig.11 Corrected road segmentation map

由图11可知,经过模糊推理系统修正像素点概率,可以得到清晰的道路与非道路边界。且误判和漏判点都大幅减少,道路与非道路分割准确率较单独训练CNN模型有大幅提高。

3.4 图像提取标准评价体系

由于图像分割算法繁多,因此定量计算其性能,可较为客观地评价某种分割算法[17]。图像分割常用的评价标准有正确率(Aaccuracy)、召回率(Rrecall)、精度(Pprecision)、误判率(Error-rate)、漏判率(Uunderreporting-rate)及综合评价指标(F1-measure)。

(4)

(5)

(6)

为了验证本文算法的误判率及准确率,选取文献[2]和文献[3]的方法对比验证平面地图道路提取的实验效果。不同方法的提取精度如表2所示。

表2 对比不同图像分割算法Table 2 Comparison of different segmentation algorithms

通过对比表2数据的正确率、误判率、漏判率、召回率、精确率及综合评价指标6个约束指标,可以看出文献[2]和文献[3]的分割方法带来的误判率和漏判率都较高,影响道路分割准确性。而本文算法在漏判率和误判率较另外两种算法都低很多,可以得到良好的道路分割效果。

由表2可知,召回率与精度呈相互制约关系,通过计算二者关系可以得到综合指标,本文方法得到的综合指标也是三种方法中最好的。由于召回率与道路分割范围呈正相关,文献[2]和文献[3]的道路分割方法的召回率较高,因此必定会导致较低的精度。

本文算法在分割速度较文献[2]和文献[3]这种传统算法也有大幅提高,单张地图分割时间可以达到5 s/张。综上考虑,本文方法可以在保证时间的前提下较为准确地实现平面地图道路分割。

3.5 实验结果分析

为验证本文算法的有效性及实用性,用本文算法与文献[2]和文献[3]算法对比分割平面地图道路,实验效果对比如表3所示。

表3 道路分割算法对比Table 3 Comparison of road segmentation algorithms

根据表3可以看出,由于平面地图特有的颜色属性,若运用文献[2]算法,当道路与非道路颜色差异较小时,非道路区域很容易被错分为道路区域导致较高的误判率,且提取细小道路时漏判率也很高。文献[3]方法在道路线条较显著且颜色差异较大时提取效果较好,但若是提取细小的道路则提取效果较差,只能显示出大致轮廓,因此这种方法的漏判率也较高。而本文算法不论是提取道路细节特征还是提取与背景颜色差异小的道路特征都可以准确实现。综上所述,所提出的改进CNN目标函数平面地图道路模糊推理分割方法可得到精度较高的道路区域,良好地实现了平面地图道路的分割过程。

4 结论

平面地图中道路区域的分割对扩展平面地图的多样性有很重要的应用价值。据此,提出一种改进CNN分割目标函数的平面地图道路模糊概率分割方法。通过人工标记道路区域与非道路区域获得带有标签的数据集,并将分割目标函数改为Sigmoid 函数,训练一个可以区分道路及非道路的CNN模型。将得到的像素点概率通过非线性映射函数,解决像素点分布不均匀问题,并输入模糊推理模糊系统得到像素点属于道路的准确概率值,完成平面地图道路分割。提出的道路分割方法解决了传统算法在道路分割过程中无法精确提取道路细节、易受颜色干扰的问题且避免传统算法提取过程中的阈值确定问题。经实验证明,本文算法在平面地图道路提取方面有较为准确的分割精度和较低的误判率、漏判率,可以提取到较为准确的道路信息且不需要复杂的人工处理过程。因此可以将获得的道路区域做进一步处理,为丰富平面地图道路信息的多样性等问题提供保障。

猜你喜欢

像素点平面卷积
图像二值化处理硬件加速引擎的设计
基于3D-Winograd的快速卷积算法设计及FPGA实现
玩转高考真题——平面解析几何篇
基于局部相似性的特征匹配筛选算法
卷积神经网络的分析与设计
从滤波器理解卷积
立体几何基础训练A卷参考答案
基于像素点筛选的舰船湍流尾迹检测算法
基于傅里叶域卷积表示的目标跟踪算法
基于canvas的前端数据加密