APP下载

基于深度学习的建筑物识别*

2019-08-27林金朝杨宏志

关键词:框图建筑物卷积

邓 瑞, 林金朝, 杨宏志

(重庆邮电大学 通信与信息工程学院, 重庆 400065)

0 引 言

城市化的快速发展给城市带来了两方面互相矛盾的结果:城市数量猛增,城市规模膨胀,城市功能庞杂,城市个体之间的区别越来越模糊,城市越来越趋同、越来越难以辨认;城市竞争加剧,城市识别与城市营销变得越来越重要,即城市比以往更需要“抢眼”,更需要相互区别,城市日益呼唤个性。于是,城市地标[1]的概念在近几年开始热门起来,通过地标建筑物来吸引外来游客,通过地标建筑来认识一座城,越来越多地标建筑物的出现,给人们的识别也带来了一定的困扰,城市与城市间的辨识度越来越弱。

本文提出的基于深度学习的建筑物识别方法将良好地解决该问题。随着大数据时代的来临以及GPU等计算资源能力的大幅提高,深度学习这一名词逐渐出现在人们的视线中。深度学习[2]是通过深度神经网络(Convolutional Neural Network,CNN)结构来实现的一种算法,它具有深度层次结构,以实现对图像特征分层提取,从而解决了传统特征提取[3]面临的问题,由计算机自动提取图像中的特征。对于卷积神经网络,从低层可以提取到一些边缘纹理信息,中间层可以在边缘信息的基础上学习到部分区域特征,在高层可以识别目标的语义信息[4]。相较于传统特征提取技术,深度学习的层次特征是一种由数据驱动的特征学习过程,不再需要人为设计特征,而是从数据中直接学习目标特征,这种过程需要学习大量的数据。深度学习算法的一个特点是需要庞大的训练数据量,数据量越大,算法的性能越高,而且它是一个随数据量动态变化的过程。

利用深度学习算法提取图片特征能力强以及训练需要庞大数据量的优势,提出了一种基于深度学习的建筑物识别方法。不必去记忆关于某城市地标建筑物的信息,通过该方法就能得到图片中的建筑物信息。该方法使用改进后的Faster R-CNN[5]算法对大量的城市地标建筑物数据进行学习,只需要将图片输入训练好的模型,该模型就可以输出图片上的建筑物信息,大大减少因询问他人、查阅资料花费的时间。

1 Faster R-CNN算法

Faster R-CNN是一种目标检测算法,它由两大模块组成:Fast R-CNN检测模块和RPN(Region Proposal Network,区域建议网络)候选框提取模块。RPN用于提取由VGG16网络生成特征框图中的区域建议,Fast R-CNN直接检测并识别提取到的区域建议中的目标。

Faster R-CNN的网络框图如图1所示。对任意大小的图片,经过处理后由VGG16[6]网络生成特征框图,RPN在这些特征框图上用3×3的卷积核进行滑动滤波,得到的结果会送入对应回归层和分类层产生带有分数的区域建议。这些区域建议通过ROI Pooling层[7]将之前的特征框图处理为固定大小的特征向量,送入后面的分类层和回归层,再通过非极大值抑制[8]选出最优的结果。

图1 Faster R-CNN流程图
Fig.1 Faster R-CNN flow chart

回归层用于产生预测区域建议中心锚框所对应的预测框的中心点(x,y)与宽高(w,h),分类层用于判断该区域建议是前景还是背景。每次预测都和不同位置但是相同形状的特定锚框相关。Faster R-CNN 在一个位置上使用了9种锚框:3种不同尺度并使用3种长宽比。在每个位置使用9种锚框,所以在分类层产生了2×9个分数,在回归层产生了4×9个坐标。这些锚框都是精心预选好的,所以它们多种多样,同时非常合理地覆盖了不同尺度和不同长宽比的现实生活中的物体。这使初始训练将具有更好的猜测,同时允许每次预测都有特定、不同的形状。这种方式使早期的训练更加稳定和容易。对于这些锚框,规定与标记框重叠比例最大的为正样本(保证至少有一个为正样本),其余重叠比例大于0.7的记为正样本,小于0.3的记为负样本,剩余或者超出边界的锚框舍弃不用。

损失函数[9]是为了度量预测值与真实值之间的差异,得到的损失值通过反向传播算法更新权值,使下一次的预测值更接近于真实值。Faster R-CNN算法对一幅图像的损失函数定义为

(1)

分类损失函数Lcls计算两个类别之间的对数损失:

(2)

回归损失函数Lreg计算预测框与标记框之间的损失:

(3)

其中,R为定义鲁棒性的损失函数(SmoothL1):

(4)

另外的因式项由转换后预测框和标记框的4个坐标进行计算,计算公式如下:

(5)

其中,x、y、w、h指的是区域建议中心坐标以及宽和高。x、xa、x*分别指预测框、锚框、标记框(对y、w、h也是一样)的x坐标,可以理解为从预测框到标记框的回归。

由于在RPN和Fast R-CNN都产生了损失,所以为了将这些损失利用起来,采取了一种4步训练法:

(1) 单独训练RPN,网络参数由预训练模型载入;

(2) 单独训练Fast R-CNN,将第一步RPN的输出候选区域作为检测网络的输入;

(3) 再次训练RPN,此时固定网络公共部分的参数,只更新RPN独有部分的参数;

(4) 用RPN的结果再次微调Fast R-CNN,固定网络公共部分的参数,只更新Fast R-CNN独有部分的参数。

RPN作为 Faster R-CNN 的一部分,是和整个模型一起训练得到的。也就是说,Faster R-CNN 的目标函数既包括目标检测中的类别和边界框预测,又包括RPN中锚框的二元类别和边界框预测。最后,RPN不仅能够学习到如何生成高质量的区域建议,而且在减少区域建议数量的情况下也能保证目标检测的精度。

2 Densenet

地标建筑物在拍摄时,有可能受到天气或者光照的影响,建筑物的边缘信息被周围环境模糊,也有可能受拍摄位置的影响,建筑物在图像中呈现的特征与真实的特征有所不同,而模型对地标建筑物特征提取能力有限,有可能识别不了或者错误地识别这些特殊图片。原始的RPN利用VGG16的Conv5_3输出作为特征框图,而这种特征框图只与上一层卷积网络的输出有关,与之前层的输出关系较浅。仅通过最后一层卷积网络的输出来生成特征框图是不够的,希望生成特征框图的特征信息比原来的更加丰富,但又使计算量不会增加太多,因此,使用了一种迭代结构的CNN——Densenet[10]。通过使用Densenet来提取特征框图,可以利用之前的特征框图与本层输出结果在通道维数上进行叠加,达到特征重复利用的效果,使得生成的特征框图不但没有失去低层的边缘纹理信息,而且在深层的卷积网络使用到低层的特征框图,融合后的特征框图具有更加丰富的特征信息。

该迭代结构如图2所示。在该网络中,任何两层之间都有直接的连接,也就是说,网络每一层的输入都是前面所有层输出的并集,而该层所学习的特征框图也会被直接传给其后面所有层作为输入,实现特征信息的整合,避免了特征信息在层间传递时的丢失和梯度消失的问题,还抑制了某些噪声的产生。神经网络其实并不一定要是一个递进层级结构,也就是说网络中的某一层不仅可以依赖于紧邻的上一层的特征,而且可以依赖于更前面层学习的特征。将多个这样的迭代结构组合到一起形成一个稠密块(Dense Block)。同时,考虑特征框图合并后输入的通道数大大增加,使得模型过于复杂,在每个模块后面加入一个过渡层(Transition layer),通过1×1的卷积[11]来减少通道数,使用步幅为2的平均池化层减半高和宽,进一步降低模型复杂度。

用Densenet替换掉原算法中的VGG16模型,使得模型能产生含有更加丰富特征信息的特征框图,模型的网络结构如表1所示。先将想要识别的图像输入一个7×7的卷积网络快速整合图片特征,然后再送入池化层将特征框图的长宽减半,保留主要的特征信息,同时减少下一层的计算量。接着连续通过3个稠密块和过渡层,在不断丰富特征框图特征信息的同时,减小特征框图的大小,减少模型的计算量。最后模型输出N×512×14×14的特征框图作为RPN模块的输入,保持与原算法一致。

图2 Densenet连接图Fig.2 Densenet connection diagram

层输出大小结 构卷积层112×1127×7卷积,步伐2池化层56×563×3max pool,stride2稠密块56×561×1卷积3×3卷积×6过渡层56×561×1卷积28×282×2平均池化,步伐2稠密块28×281×1卷积3×3卷积×12过渡层28×281×1卷积14×142×2平均池化,步伐2稠密块14×141×1卷积3×3卷积×24过渡层14×141×1卷积

3 实验与结果分析

3.1 数据集的构建

本文地标建筑物的数据集来自百度图片数据库,包含各种尺寸的图像。由于在日常生活中,地标建筑物在有遮挡物、不同天气和环境下所呈现的效果不同,在制作数据集时特意加入这些图像,使得模型在训练时能学习到相关的特征信息,强化其识别能力。对每张图像进行人工标注,采用与VOC2007数据集相同的XML格式,内容包括地标建筑物的位置信息和类别。随机从数据集中选取3/4作为训练集,1/4作为测试集。图3为数据集部分图像展示。

图3 数据集部分图像展示Fig.3 Partial image display of the data set

3.2 模型训练

采用64位Ubuntu18.04Ts操作系统作为测试环境,配置GeForce GTX1080ti的显卡,使用亚马逊的MXNet深度学习库作为软件测试平台。使用改进前后的Faster R-CNN对制作的数据集进行训练,为了加快训练速度,整个网络在训练过程中使用SGD反向传播法[12]优化整个网络模型。对改进前后的模型均迭代100次,学习率为0.001。训练完成后将数据集中的测试图像输入模型,对需要识别的21类地标建筑物进行测试,通过非极大值抑制,将分数较低的候选框去除,得到的输出结果为地标建筑物的类别、所在区域候选框以及置信度。

3.3 实验结果与分析

实验结果表明,改进的Faster R-CNN算法在地标建筑物识别方面有较好的识别效果,而且对上述提到只有局部或夜间拍摄的建筑物图像也有良好的识别效果。算法改进前后的测试图如图4所示。图像中方框为目标建筑物的预测框,数字为预测类别的概率。在图像中包含完整建筑物的情况下,两种算法均有良好的识别效果,但本文算法目标建筑物提取的区域建议更大,提取到的特征信息更多;在夜间模式下,原算法对目标建筑物的定位有所偏差,而且部分特征缺失,而本文算法将目标建筑物完整地从图像中找出;在只有建筑物局部的情况下,原算法对局部建筑物虽能识别出来,但是对目标建筑物的定位不太精准,而改进算法对目标建筑物生成的区域建议明显精准许多。由此可以看出,改进后的算法由于重复利用到了卷积网络浅层的特征信息,使得生成的区域建议更加精准,提取到的特征信息更多,模型对不同拍摄环境下建筑物的识别能力更高。

图4 算法改进前后的测试图Fig.4 Test chart before and after the algorithm improvement

使用目前常用的Faster RCNN模型在本文数据集上进行测试,比较结果如表2。

表 2 3种算法检测精度结果比较

4 结束语

利用改进的Faster R-CNN模型,用自己制作的地标建筑物数据集进行训练,根据测试集的测试结果逐步微调网络参数,使得输出结果不仅能识别出目标而且还能精确地找到其所在的位置。该方法对地标建筑物局部也有较好的识别能力,而且也可应用于其他类别事物的识别,具有较强的通用性。从实验结果可以看出,深度学习方法应用于地标建筑物的识别,可以得到较优的识别效果。但在实际应用中时,还存在着一些不足,由于迭代网络需要对之前层的输出重复提取特征框图,导致识别速度有所下降,但是根据计算机处理器高速发展的趋势,未来的识别速度将会越来越快。利用本文的方法,以后看见不认识的、风格独特的标建筑物,就能快速到它的信息。如何识别周围环境中的常见建筑物是下一步要研究的方向。

猜你喜欢

框图建筑物卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
邻近既有建筑物全套管回转钻机拔桩技术
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
描写建筑物的词语
从滤波器理解卷积
电路图2017年凯迪拉克XT5
基于傅里叶域卷积表示的目标跟踪算法
算法框图的补全
火柴游戏
基于图表法构建《万有引力定律与航天》知识网络