基于改进Yolo v3算法的遥感建筑物检测研究

2020-09-15 04:48熊风光况立群徐清宇
计算机工程与应用 2020年18期
关键词:先验网络结构尺度

董 彪,熊风光,韩 燮,况立群,徐清宇

1.中北大学 大数据学院,太原 030051

2.北方自动控制技术研究所 仿真装备研发部,太原 030051

1 引言

随着遥感技术的发展,遥感图像幅员更加辽阔,包含的信息更加复杂,因此其已被广泛应用于图像识别、语义识别、视频分析、文本分析和大数据分析等领域[1]。遥感图像中对固定地物与移动地物的检测一直是研究热点,其中固定地表建筑物是人类主要活动场所,因此对该类目标实现检测显得尤为重要。考虑到实际工程应用中实时性是一个极为重要的问题,且检测目标(建筑物)小,对建筑物检测也造成了极大的困难。故而,如何实现对遥感图像中该类建筑物的检测是目标检测领域的一个研究难点[2]。

相比传统的根据建筑物颜色、形状、纹理等提取简单特征的目标检测算法,基于深度学习的目标检测利用深度神经网络强大的特征学习能力来解决复杂的遥感图像检测问题,更能满足今天遥感图像中目标检测的要求[3]。本文的研究重点为固定地表中的建筑物检测,以基于深度学习的目标检测算法Yolo v3为研究基础,并以修改特征图分辨率、调整先验框维度为改进方向,加强对小型建筑物的检测,生成更适合遥感建筑物检测的网络模型。

2 相关工作

从遥感图像中检测建筑物有传统算法和基于深度学习的算法两大类。传统目标检测算法是一种基于人工设计特征的分类方法,利用了建筑物某一方面的特征,如颜色、形状等,虽然具有一定的检测效果,但是在检测精度和检测速度上具有较大的局限性。如文献[4]提出一种阴影验证的建筑物检测方法,该方法通过建筑物的阴影、形状以及颜色特征结合起来检测建筑物,对特征简单的建筑物检测效果良好,但对于复杂特征的建筑物检测,该方法无法满足工程应用中对检测精度及实时性的要求。与之相比,基于深度学习的检测算法以其适应能力强、检测效率高而得到了广泛应用,该类检测算法以卷积神经网络为基础,具有强大的特征表示能力,在背景模糊、地理环境复杂的情况下,仍然能够学习到有用的特征,大幅提高了物体检测精度,适用于当今遥感图像复杂多变的场景,具有非常好的泛化能力和鲁棒性[5]。如文献[6]提出一种端到端的密集反卷积神经网络,将图像中的抽象特征与细节特征结合,能够捕捉到目标建筑物的细微复杂特征;文献[7]中使用金字塔技术构建多级训练的样本,提出候选建筑区域检测建筑物,在检测精度及实时性方面有显著提升。

目前基于深度学习的检测算法可以分为两类:基于区域的目标检测算法和基于端到端的目标检测算法。前者先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类,这类算法在检测精度和定位精度上占优,代表算法有:Faster RCNN[8-9]和Fast RCNN等;后者不生成候选框,直接将目标边框定位的问题转化为回归问题,这类算法在检测速度上占优,代表算法有:Yolo[10-11]系列和 SSD[12]等。

考虑到目前遥感技术的发展,需要对上千平方公里图像进行处理,而且目标小、背景复杂度高,因此检测速度及泛用性是首先考虑的问题,所以本文将基于深度学习的Yolo v3检测算法应用于建筑物的检测,并在检测小型建筑物方面提出改进。

3 改进Yolo v3算法

3.1 Yolo v3原理

Yolo v3 是基于端到端的检测算法,网络结构分为骨干网络(Darknet-53)和检测网络。Darknet-53由52个卷积层和1个全连接层组成,构成了一个53层的卷积神经网络(CNN),并输出13×13、26×26和52×52三种尺度的特征,送入检测网络。检测网络对三种尺度的特征回归,预测出多个预测框,并使用非极大抑制(NMS)算法删除置信得分较低的预测框,保留置信得分较高的预测框为目标检测框,从而得到目标的类别和位置,检测流程如图1。

图1 Yolo v3检测流程

(1)边界框预测:检测网络对13×13、26×26和52×52三种尺度的特征回归,预测出多个预测框,在检测的过程中,每个网格会产生多个边界框,每个边界框都要预测边界框位置信息(x,y,w,h)和置信度(confidence)。置信度是边界框所含目标的可能性Pr(object)与边界框准确度IOU的乘积,计算公式如式(1)所示:

若网格中包含某个目标则Pr(object)=1 ,否则表示真实标注框与预测框的交并比,用来衡量预测边界框的准确性,当IOU=1 时,说明真实标注框与预测框重合。

(2)分类:对包含目标的网格预测多个类别概率,用Pr(classi|object)表示。为了得到每个边界框的分类信息,将边界框所属网格的类别概率与边界框的置信度相乘得到置信度评分,如公式(2)所示,其代表了边界框中目标属于某个类的概率。

在模型训练中,将边界框每个类别的置信度评分按高低排序,将置信度得分小于设定阈值的边界框的置信度设为0,然后再用非极大值抑制算法(NMS)去掉重复率较大的边界框,最后每一个边界框只保留置信度评分大于0且最高的类,从而检测出各类目标。

3.2 改进Yolo v3

Yolo v3算法的网络权重是基于COCO数据集训练测试所得,COCO数据集包括80种类别目标,且该数据集目标与本文检测的遥感建筑物尺度差异较大,故而原Yolo v3 算法不适用本文应用场景,尤其是对小型建筑物的检测表现不好。

目前随着Yolo v3 的广泛应用,已有相关文献针对具体场景做出了相应改进。文献[13]提出一种基于Yolo v2 的船舶检测算法Yolt,该算法网络结构与Yolo v2 相比,最大的修改是最后输出特征尺寸为26×26,加强了对小目标的检测,结果表明在稀疏的小目标场景下检测效果良好,但在目标密集的场景下表现不好[13];文献[14]提出了一种基于Yolo v3改进的电气元件检测算法,通过对PASCAL VOC 和KITTI 数据集进行k-means 聚类分析,调整先验框维度,并在原来三种尺度的特征图上增加104×104 的特征图,达到加强小目标检测的能力,结果表明在文献提供的电气元件的数据集中表现良好,但该应用场景不具有泛用性[14]。

故本文在以下两方面进行改进:一是修改特征图分辨率,扩大感受野,减少语义特征丢失;二是使用k-means算法对本文的遥感建筑物数据集进行聚类分析,得到对应的先验框维度[15]。

3.2.1 修改特征图分辨率

Yolo v3 为加强对小目标的检测,借鉴了特征金字塔网络FPN(Feature Pyramid Network),将高层特征与浅层特征信息融合,采用多个尺度融合的方式,在多个尺度的特征图上进行位置和类别预测,但Yolo v3网络结构采取的三个尺度的特征融合方法对遥感图像中检测较小的目标有不利的影响,13×13的特征图语义丢失严重,易造成小目标丢失。考虑到特征的分辨率将直接影响小目标的检测和整体性能指标,所以在Darknet-53基础上对原特征图三个尺度的分辨率13×13、26×26 和52×52修改为两个较大尺度的分辨率26×26和52×52。

修改后的网络模型结构如图2所示,将原网络结构26×26的特征图分辨率作为第一尺度;将 L61(61层)结果进行五次卷积操作(Convolutional Set),首先为了提升计算效率进行1×1 卷积操作降维,然后上采样(Up Sample),再与 L36(36层)融合,最后融合之后采用3×3的卷积核对融合结果进行卷积,目的是消除上采样的混叠效应,如此就得到了一个新的特征图52×52,作为第二尺度特征。

图2 修改后的网络结构

经修改后,本文对Yolo v3 改进的网络结构能够在深层网络中保持较高分辨率和较大的特征图的感受野,以增强对小目标的检测能力。

3.2.2 k-means聚类分析调整先验框维度

Yolo v3 借鉴先验框来预测边界框坐标,使用kmeans 算法预测得到9 个先验框,并将其均分到3 个尺度特征图,以此来获得更多的目标边缘信息。Yolo v3中计算得到的9 组先验框维度分别为(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326),但是在本文应用场景中,Yolo v3算法中计算得到的先验框维度不适合建筑物的检测。因此,在遥感建筑物检测场景下,使用k-means 算法对自制的建筑物数据集进行聚类分析,得到先验框维度,从小到大分别为:(49,47),(92,50),(52,97),(175,51),(142,95),(74,200),分辨率较小的26×26 特征图有较大的感受野,故采用较大的先验框(175,51),(142,95),(74,200),分辨率较大的52×52的特征图有较小的感受野,故采用较小的先验框(49,47),(92,50),(52,97),如表1所示。

表1 数据集的先验框

4 实验结果及分析

4.1 数据集制作

本文使用的数据集来自我国北方某城市的卫星图像,使用谷歌地图下载,图像尺寸为25 km×25 km,对图像裁剪及筛选,使用标注工具labelImg 进行标注,制作本文的数据集。

labellmg 是专门为Yolo 系列算法的网络训练准备数据的工具,利用该标注工具,手动完成矩形框标注,最后得到xml文件,操作界面如图3所示。一共得到1 000张训练集和200张测试集。

图3 标注界面

4.2 实验过程及平台

本文采用计算机为笔记本电脑,配置为Intel i7-9750H,32 GB内存,64位Windows 10操作系统;开发环境为tensorflow1.14,opencv4.1,python3.7。

原Yolo v3 及本文改进算法都是在keras 环境下运行,以1 000张遥感图像为训练集,200张做测试集,初始阶段学习率为0.001,衰减系数为0.000 5,为使损失函数进一步收敛,在训练迭代次数为 25 000次时,学习率降低为0.000 1。最终,loss 值稳定在0.5 左右,迭代至30 000次停止,如图4。

图4 损失值曲线

4.3 实验结果与分析

4.3.1 本文网络模型检测结果

本文网络模型基于Yolo v3 算法,通过修改特征图分辨率及使用k-means 算法对本文遥感建筑物数据集进行聚类分析,加强对小型建筑物的检测。经过本文网络模型检测,选取尺寸相差较大、排列密集的建筑物检测场景做样例分析,结果如图5。

图5 网络模型检测结果

从检测结果可以看出,本文对Yolo v3进行改进,通过选择合适的特征图分辨率及调整先验框维度提高了对小型建筑物的检测能力,对场景中排列密集建筑物(样例1)、尺度差距大(样例2)、背景复杂度高(样例3)及在有道路下的建筑物(样例4)做到了很好的识别效果,尤其对于小型建筑物的检测效果良好。

4.3.2 评价指标

本文采用平均检测精度(mAp)、召回率(recall)、平均检测时间(time)作为检测评价指标。其中精度和召回率分别定义为:

以遥感建筑物为例,TP、FP分别表示检测模型将建筑物检测正确与错误的数量,FN表示误检的数量。召回率(recall)表示能够正确识别建筑物的概率;precision表示已识别为建筑物的检测精度,对precision 取平均值,以平均检测精度(mAp)作为评价指标;time 表示平均每张检测时间。

4.3.3 本文网络模型效率对比分析

本文针对遥感图像中的小型建筑物展开研究,选取建筑物排列密集(a组)和相对尺寸差距大(b组)两种场景做对比分析,经过本文网络模型(Article method)与原Yolo v3算法检测结果对比如图6所示。

图6 检测结果对比

对比实验结果可以看出,a 组的小型目标建筑物排列密集,b组目标建筑物尺度差距相对较大。原Yolo v3算法对小型建筑物(a1、b1)的检测效果表现不好,在场景a1中右方排列密集的小型建筑物和在场景b1中下方的小型建筑物都出现了漏检;本文网络结构(Article method)的检测结果(a2、b2)很好地实现了小型目标建筑物的检测,在排列密集和相对尺度大的两种场景中都能对小型建筑物做到了很好的检测效果,且对于相同目标的检测,本文改进的网络结构相比原Yolo v3算法的检测精度也有提高。

基于深度学习的目标检测算法分为基于区域的目标检测算法和基于端到端的目标检测算法。Yolo v3算法是一种基于端到端的检测算法,为验证本文改进网络的优越性,故与主流算法进行对比分析。因此,本文设计实验:以本文自制遥感建筑物数据集为实验数据集,200 张作为测试集,通过本文改进网络结构(Article method)与原 Yolo v3 算法、同样基于端到端的 SSD 算法及基于区域的Faster RCNN 算法在平均检测精度(mAp)、平均每张检测时间(time)及召回率(recall)等方面做效率比较,效率分析如表2所示。

表2 效率分析

从实验结果可以看出,在平均检测精度(mAp)方面,原Yolo v3 算法的平均精度为85.94%,SSD 算法的平均精度为80.49%,Faster RCNN 算法的平均精度为93.81%,本文改进网络结构(Article method)平均精度为 91.29%,比 Faster RCNN 算法略低,较原Yolo v3 算法和SSD 算法提高了5.35%和10.8%;而在检测时间(time)方面,原Yolo v3算法的检测时间为0.041 s,SSD算法的检测时间为0.253 s,Faster RCNN算法的检测时间为2.37 s,本文改进网络结构(Article method)的检测时间为0.042 s,仅比原Yolo v3 算法的检测时间多0.001 s,较SSD算法和Faster RCNN算法快了0.211 s和2.328 s,很好地满足了实时性;在召回率(recall)方面,原Yolo v3 算法的召回率为93.27%,SSD 算法的召回率为90.84%,Faster RCNN 算法的召回率为97.33%,本文改进网络结构(Article method)的召回率为95.61%,比Faster RCNN 算法略低,较原 Yolo v3 算法及 SSD 算法提高了2.34%和4.77%。

故本文改进网络结构(Article method)在保持了原算法速度优势的基础上,提高了平均检测精度和召回率,所以本文提出的基于Yolo v3的改进网络模型对遥感建筑物检测效果更好。

5 结束语

本文针对遥感建筑物的检测,对小型建筑物检测难度大的问题进行研究,提出了基于深度学习的Yolo v3改进算法,以修改特征图分辨率、调整先验框维度为方向得到一种适合遥感建筑物检测的网络模型,加强了对小型建筑物的检测能力。实验结果表明,本文提出的方法在满足了实时性的基础上,有效解决了遥感图像中固定地物建筑物检测过程中存在的小型建筑物检测难度大的问题。接下来将针对遥感图像中移动地物做研究。

猜你喜欢
先验网络结构尺度
财产的五大尺度和五重应对
基于无噪图像块先验的MRI低秩分解去噪算法研究
基于自适应块组割先验的噪声图像超分辨率重建
基于广义混合图的弱节点对等覆盖网络结构
体系作战信息流转超网络结构优化
宇宙的尺度
康德审美判断的先验演绎与跨文化交流
基于互信息的贝叶斯网络结构学习
复杂网络结构比对算法研究进展
基于平滑先验法的被动声信号趋势项消除