高分影像密集建筑物Correg-YOLOv3检测方法
2023-01-14陈占龙李双江徐永洋徐道柱赵军利
陈占龙,李双江,徐永洋,徐道柱,马 超,赵军利
1. 中国地质大学(武汉)地理与信息工程学院,湖北 武汉 430078; 2. 中国地质大学(武汉)地质探测与评估教育部重点实验室,湖北 武汉 430074; 3. 自然资源部城市国土资源监测与仿真重点实验室,广东 深圳 518034; 4. 西安测绘研究所,陕西 西安 710054; 5. 地理信息工程国家重点实验室,陕西 西安 710054; 6. 中国地质大学(武汉)计算机学院,湖北 武汉 430078; 7. 中南电力设计院有限公司,湖北 武汉 430071
遥感影像具备监测范围大、信息传输快、全天候工作的特点,使政府在智能化监测与评估的工作中节约了大量的人力、物力及财力的运作成本,为国土的规划、资源调配及可持续发展提供了更为高效、可靠的手段。当前,在机器视觉技术的协助下通过遥感影像提取地面目标信息是重要的研究课题之一[1-3]。特别是在城建区域内,基于机器视觉的建筑物检测方法在城市规划、灾情评估、国土资源、城市地理信息系统平台建设、地图更新、违章建筑物检测、智慧城市建设、军事侦察等方面均获得了广泛的应用[4-9]。
传统的建筑物目标检测算法侧重于描述建筑物的底层视觉特征,例如建筑物颜色、形状、纹理、阴影等单一特征检测建筑物[10-13]或是几种特征的简单组合[14-15],并且加入了激光雷达、DEM等其他数据源的建筑物检测算法[16-17]。然而,这类方法往往受到与建筑物具有相似特征的地物干扰,使得检测结果不够准确。此外,特征提取很多情况下需要人工干预来完成,这很难完整地表达建筑物目标特征,在面对海量数据时缺乏泛化能力且费时费力,同时也不易通过图像特征训练出一个较好的分类器。
近年来,基于深度学习的模型往往能够凭借强大的深度神经网络对大量数据进行学习,不仅能够提取目标的浅层信息,还能够挖掘出目标潜藏的深层语义信息来解决复杂的遥感图像检测问题;在特征提取方面也有着巨大的优势,泛化能力强、稳健性好,解决了传统建筑物目标检测的不足[18-20]。目前,应用于建筑物检测的深度学习模型主要有两类:一类是基于候选区域的双阶段方法。首先通过区域推荐网络(region proposal network,RPN)生成候选区域,然后利用卷积神经网络进行分类和边框修正,该方法检测精度较高,但检测速度较慢,如Fast R-CNN[21]、Faster R-CNN[22]、Mask R-CNN[23]等。另一类是基于回归的单阶段方法,将目标检测框的定位问题转化为回归问题来处理,不用产生候选框,直接使用单一的卷积神经网络对目标类别和位置进行预测。该类算法检测速度快[24],例如YOLO[25]和SSD[26]等。由于在工程项目中需要考虑时间成本的原因,单阶段方法要比双阶段方法更为常用。
具体地,文献[27—28]通过优化特征图分辨率、调整先验框维度以得到一种适合遥感图像中小型建筑物检测的网络模型。文献[29]以提升建筑物检测速度为目的进行模型设计。然而,以上方法没有顾及密集型建筑物的检测。此外,文献[30—31]提出的模型在密集型建筑物检测中有良好的性能,但是所用的建筑物数据较为规则,数据集中不包含检测框重叠比高的样本。基于此,本文首先通过构建形状多样的密集型建筑物数据集,然后提出一种Correg-YOLOv3方法,该方法以YOLOv3模型为基础,通过嵌入角点回归机制,增设一个关于顶点相对于边界框中心点的偏移量的额外损失项,使其可同时输出矩形检测框及建筑物角点,实现了检测框重叠比高的建筑物的精准定位。
1 Correg-YOLOv3目标检测方法
1.1 设计思路
本文以YOLOv3模型为基础进行算法设计,该算法引入特征金字塔网络,能够降低小目标的漏检率,由于其显著的速度和识别优势,已成为深度学习目标检测领域最受关注的网络模型,相对于YOLOv4、YOLOv5模型,YOLOv3训练模型较小,能大大提高模型的训练效率,提高计算资源的利用率[32]。
本文方法流程如图1所示。主要分为模型训练和模型测试两个阶段。首先获取高分辨率遥感影像数据并制作样本集,然后利用本文方法进行网络训练并调整参数,多次迭代训练网络模型,利用训练好的网络对测试样本进行检测,判断测试结果是否符合试验要求,如果不符合试验要求,则重新调整预训练参数进行训练,直到测试结果符合试验要求为止,最后得到优化的建筑物检测模型。
图1 目标检测方法Fig.1 The object detection method flowchart
1.2 网络模型
本文充分地利用YOLOv3在目标检测中的优势,对其进行改进使其适应密集建筑物的精准检测,提出一种Correg-YOLOv3方法。该方法的网络结构如图2所示,Darknet53卷积网络是特征提取器,如图2紫色虚线框所示。Darknet53主要由一系列1×1和3×3的卷积层组成,共53层。每个卷积层后面都有一个批量归一化(BN)[33]层和Leakyrelu层。Darknet53中引入了许多残差网络模块,它是从ResNet[34]中派生出来的。添加残差层的目的是解决网络中梯度消失或梯度爆炸的问题,这样就可以更容易地控制梯度的传播并进行网络训练。此外,还采用了多尺度预测、特征融合、边界框回归和角点回归等多种策略。
(1) 多尺度预测:采用多尺度预测方法,最终输出3个不同尺度的特征图,每个特征图分配3组不同大小的锚框,以适应不同尺寸目标的检测,如图2红色虚线部分,由于输出网格的感受野不同,锚框的尺寸也需要做出调整,实现不同尺度上的目标检测。锚框大小可以通过K-means算法聚类得到,以提升算法的检测能力。
(2) 特征融合:采用类似特征金字塔结构实现深层特征与浅层特征融合,如图2中Concat部分,将深层网络提取的细粒度特征经过上采样后与浅层网络提取的粗粒度特征进行融合,在保留了位置信息的同时提升细节感知能力,融合浅层特征与深层特征能进一步提升对纹理、颜色和边缘信息相对较少的目标的检测精度。
图2 Correg-YOLOv3网络结构Fig.2 Correg-YOLOv3 network structure
(3) 边界框回归:采用边界框回归的方式预测相对于特征图网格单元的偏移,用以确定中心点坐标,同时预测相对于锚框宽高的比例系数,用以确定目标大小。目标框与锚框的关系图如图3所示。
回归公式为
bx=σ(tx)+cx
(1)
by=σ(ty)+cy
(2)
bw=pw×etw
(3)
bh=ph×eth
(4)
式中,(bx,by,bw,bh)为目标边界框的中心点坐标及宽和高;(tx,ty,tw,th)为网格预测的边界框中心点偏移量和宽高偏移量;(cx,cy)为目标中心点所在的网格单元左上角在特征图上的位置偏移;(pw,ph)为与目标边界框最匹配的锚框的宽和高;σ为Sigmoid函数。
图3 目标框与锚框之间的关系Fig.3 Relationship between target box and anchor box
(4) 角点回归:本文方法增设一种角点回归预测的方法,如图3所示,4个角点1、2、3、4到中心点坐标的水平与垂直偏移量分别为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4),从而使用边界框回归和角点回归共同预测建筑物的位置。
角点的偏移和边界框宽高的预测方式相同,计算公式如下
(5)
(6)
(7)
(8)
式中,(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)分别为左上、右上、右下、和左下4个顶点的水平与垂直偏移量;(tx1,ty1)、(tx2,ty2)、(tx3,ty3)、(tx4,ty4)分别为预测4个顶点的偏移量;(pw,ph)为与目标边界框最匹配的锚框的宽和高。
1.3 损失函数
本文方法的损失函数包括中心点坐标损失、宽高损失、置信度损失、类别概率损失和角点偏移损失。具体使用的损失函数分别为:①中心点x、y的调整参数使用BCELoss;②anchor的宽高w、h的调整参数使用MSELoss;③置信度confidence使用BCELoss;④类别预测class使用BCELoss;⑤角点偏移参数调整使用smoothL1计算,计算公式为
(9)
本方法损失函数L的计算公式如式(10)所示
(10)
1.4 评价指标
为了定量评估所选模型的性能,本文采用准确率(p)、召回率(r)、平均检测精度(AP)、F1作为检测评价指标。
精确率和召回率的计算公式分别为
(11)
(12)
式中,TP表示被预测为建筑物,实际为建筑物;FP表示被预测为建筑物,实际为非建筑物;FN表示被预测为非建筑物,实际为非建筑物。
通常定义的平均精度(average precision)是指召回率在0~1之间的平均精度值,也是精度召回曲线下的区域。一般地,平均精度越高,模型性能越好。每个类别都可以根据准确率(precision)和召回率(recall)绘制一条曲线,具体可表示为
(13)
F1用于评估模型的综合性能,计算公式为
(14)
2 试验与结果分析
2.1 数据来源与数据处理
2.1.1 遥感影像数据
本文高分辨率遥感影像数据空间分辨率为0.6 m,图像覆盖了中国的不同城市住区,包括北京、石家庄、郑州、西安、太原等,影像裁剪为416×416像素。该影像数据集部分数据如图4所示,建筑物种类丰富、形状各异、大小不一、色彩鲜明、地物清晰、质量很高,可以满足试验要求。
图4 遥感影像建筑物数据(部分)Fig.4 Building data from remote sensing images (part)
2.1.2 数据集制作
通过人工筛选及手动标注,采用了LabelImg标注工具,该标注工具可以框出目标物体,并通过所选定的目标类型进行标签文件生成。当前,YOLOv3、SSD、Faster-RCNN等目标检测所需要的数据集,均需借助此工具标定图像中的目标,所生成的XML文件遵循PASCAL VOC数据的格式。标签文件记录了目标位置和目标类别,位置信息是由左上角和右下角坐标表示。共标注建筑物样本1757张,其中训练集1405张,测试集352张。
2.1.3 训练样本增强
数据增强是深度学习模型训练的关键组成部分。作为本文主要的检测目标,建筑物在不同区域的影像中的分布规律多样,形状大小多变(多为不规则的多边形),房屋的排列方向也不同。为了防止模型在训练过程中出现过拟合现象,本文采用的数据增强方式有图像旋转、翻转、HSV、高斯噪声、亮度、HSV+亮度、HSV+亮度+高斯噪声。数据增强结果如图5所示,其中旋转是在原始影像上旋转90°、180°和270°,翻转是在旋转的基础上进行了翻转;HSV变化用来调节图像色调、饱和度、明度。除此之外,还有添加高斯噪声、调整亮度及HSV+亮度、HSV+亮度+高斯噪声等数据增强方式。
图5 数据增强处理结果Fig.5 Data enhancement processing results
2.2 试验环境与参数设置
本文的模型均搭建在PyTorch深度学习框架下,操作系统环境为Ubuntu18.04,配置2路12 GB显存的Nvidia 3080GPU,并使用Cuda11.1和cudnn-8.0.5进行GPU加速计算,深度学习算法代码和训练得到的模型都被保存在Ubuntu系统环境下,方便保存和维护。对于模型软件环境,本文试验所有网络模型都是由Pytorch实现的,初始学习率设定为0.000 1,批处理大小为8,epoch为200。
2.3 结果与分析
为了验证本文方法的有效性,以自建高分辨率遥感影像数据集为基础,训练集共有1405张,测试集352张,通过样本数据增强使得训练集为18 265张,训练过程中随机抽出10%作为验证集,通过调整网络参数,如学习率、训练次数和锚框大小等,并将准备好的数据放入网络中训练,最后分别利用改进前后训练好的模型进行测试。
由于建筑物大小不一、形状各异,锚框尺寸也需要做出调整。针对建筑物数据集,采用K-means算法聚类计算出9个锚框的大小,并将其均分到3个尺度的特征图,以此来获得更多的目标边缘信息,锚框大小分别为:(128,64)、(140,64)、(165,50)、(64,64)、(92,32)、(112,40)、(32,32)、(48,48)、(64,48)。分辨率较小的13×13的特征图有较大的感受野,故采用较大的锚框(128,64)、(140,64)、(165,50);分辨率为26×26的特征图对于检测中等大小的目标有利,故采用中等的锚框(64,64)、(92,32)、(112,40);分辨率较大的52×52的特征图有较小的感受野,故采用较小的锚框(32,32)、(48,48)、(64,48)。
本文分别对YOLOv3和Correg-YOLOv3方法在先验框聚类前后进行了试验对比分析(表1)。由表1可知,不管是YOLOv3还是Correg-YOLOv3方法,采用K-means调整先验框维度后的结果都相较于原始先验框检测结果都好,精度、召回率和平均精度都有所提升。本文方法检测精度、召回率和平均精度分别达到了96.45%、95.75%和98.05%,较原算法YOLOv3分别提高了2.73%、5.4%和4.73%。
表1 YOLOv3与Correg-YOLOv3方法调整先验框前后试验对比
此外,本文对比了YOLOv3和Correg-YOLOv3方法调整先验框前后训练时损失的变化情况(图6),可以看出不管是否加入K-means算法调整先验框维度,本文方法的损失收敛较快,如图6黄色线和蓝色线所示,在epoch大约为15时趋向于平稳,而原始YOLOv3方法收敛较缓慢,如图6绿色线和红色线所示,在epoch大约为30时才趋向于平稳。此外,再经过多次迭代训练,可以看出4种方法的损失值相差较小,但调整先验框维度后的Correg-YOLOv3方法的损失在epoch为160时,开始始终低于其他3种方法的损失,这也体现了本文方法的优越性。
图6 YOLOv3和Correg-YOLOv3方法调整先验框前后损失变化Fig.6 YOLOv3 and Correg-YOLOv3 were used to adjust the loss changes before and after the prior frame
为了验证本文方法的可行性,本文又对原始YOLOv3方法和本文方法的检测效果图及流行的目标检测方法SSD和Faster R-CNN进行对比分析,如图7、图8所示。通过对比发现,本文方法对密集型建筑物检测效果较好,漏检明显减少。
图7展示了4种网络模型对于密集建筑物场景下的检测效果,第1行检测结果对比可以看出,SSD和Faster R-CNN方法检测的建筑物定位不准确,漏检较多,YOLOv3方法大部分检测结果还可以,仅仅对难以区分边界的建筑物(图7黄色箭头所指向区域)检测结果较差,本文方法能够有较好的检测结果(图7蓝色箭头所指向区域);第2行检测结果对比可以发现,YOLOv3和SSD方法对图7黄色框内建筑物误认为是一个建筑物,Faster R-CNN方法比YOLOv3和SSD检测结果相比检测较好,但存在检测框定位不准确的问题,而本文方法能够有较好的检测结果(图7蓝色箭头所指向区域)。图8展示了对于非水平排列的建筑物中4种网络模型检测效果的对比,第1行检测结果对比可以看出,虽然SSD和Faster R-CNN方法对于黄色框区域内建筑物检测效果较好,但是这两种方法存在漏检、错检较多,以至于影响建筑物整体检测结果,本文方法不仅能够改善非水平排列密集型建筑物检测效果,而且整体上也检测较好;第2行检测结果对比也可以发现,SSD和Faster R-CNN方法错检、漏检较多,本文方法整体上检测效果较好。
图7 密集建筑物检测效果对比Fig.7 Comparison of detection results of dense buildings
图8 非水平排列密集建筑物检测效果对比Fig.8 Comparison of detection results of non-horizontal arrangement of dense buildings
为了验证改进算法的可行性,本文又与当前目标检测比较流行的Faster R-CNN、SSD进行了定量对比,分别采用相同阈值IoU=0.5时进行测试,不同模型的评价指标结果见表2。
表2 不同模型评价指标对比分析
由表2可以看出,当前流行的Faster R-CNN、SSD、YOLOv3方法中YOLOv3有较大的优势,主要是因为YOLOv3采用类似特征金字塔结构,对大小不一的目标检测相对于其他两种网路比较友好,这也是本文选择在YOLOv3上做进一步改进的原因。以上3种流行的方法都是利用边界框回归的方式进行预测的,而本文方法是通过嵌入角点回归机制,增设建筑物角点损失,扩展其输出维度,使其可同时输出矩形检测框及建筑物角点,利用边界框回归和角点回归共同预测,对密集排列的建筑物起到了较好的检测效果,充分说明了本文方法在密集建筑物检测领域的先进性。
为了进一步验证本文方法的性能,本文模型对不同IoU阈值下的各评价指标进行了统计,见表3。
表3 本文算法在不同IoU阈值下的评价指标
将表3中的结果与表2中阈值设置为0.5的其他模型相比,可以看出,本文方法在阈值为0.65时,各评价指标仍然具有明显的优势。随着阈值的增大,准确率开始下降,是因为阈值增大后,FP增多所致,另外AP在阈值为0.75时,仍然保持较高的平均精度,充分证明了本文方法的优越性。
3 总 结
本文针对现有的以先验框回归方式输出的目标检测算法在密集型建筑物检测中存在检测框重叠比高的问题,提出了一种基于YOLOv3的高分辨率遥感影像中密集建筑物检测方法Correg-YOLOv3。该方法是以YOLOv3为基础,通过嵌入角点回归机制,增设一个关于顶点相对于边界框中心点的偏移量的额外损失项,使其可同时输出矩形检测框及建筑物角点。同Faster R-CNN、SSD、YOLOv3方法相比,本文方法在准确率、召回率、平均检测精度、F1等方面都有较为显著的提升,有效解决了高分影像中密集型建筑物的检测问题。
本文方法虽然在一定程度上提升了建筑物检测的精度,但仍然还有提升的空间,如图像中建筑物背景模糊、树木遮挡、高建筑物遮挡,以及城中村建筑物小且密集难以区分边界等情况,因此会导致对此类建筑物难以检测出来。在接下来的工作中,可以通过融合纹理特征、优化网络结构、扩充建筑物数据种类等措施,提升模型在上述难以检测的环境下的建筑物检测精度。