基于实例分割的城中村建筑物矢量轮廓提取
2022-04-20陈颖敏高建
陈颖敏,高建
(南京邮电大学 地理与生物信息学院,南京 210023)
0 引言
城中村是中国快速城市化进程中的产物,以低矮拥挤的建筑物为主,存在环境质量差、土地管理混乱、市政配套设施落后等问题。因此,不少学者[1-4]利用高分辨率遥感影像对城中村建筑物进行提取,从而为城中村改造业务提供地理参考资料。当前,基于深度学习的实例分割技术如两阶段算法MaskR-CNN[5]等,因为可以同时获得待检测目标的位置、数量等信息,被广泛应用于高分辨率遥感影像的目标实例识别并取得不少成果。Zhao等[6]使用MaskR-CNN算法,通过设置合理的锚框尺寸,准确地提取出遥感图像中小而密集的飞机目标;Nie等[7]使用带注意力机制的MaskR-CNN算法对高分辨率遥感影像中的近岸船舶进行提取,提升了区分船舶单体的精度;Ocer等[8]在MaskR-CNN中嵌入特征金字塔网络(feature pyramid network,FPN)[9],实现了多尺度无人机航拍影像中的林木提取和计数;惠健等[10]将深度神经网络方法与多任务学习方法相结合进行建筑物实例分割,在提升建筑物像素掩膜二分类精度的同时,区分不同建筑物个体;瑚敏君等[11]在MaskR-CNN的掩膜预测结构中添加额外分支,可以准确独立地预测高分辨率遥感影像中的建筑物掩膜,减少了目标粘连的现象。然而,两阶段实例分割算法将处理流程割裂为先检测后分割两个步骤,算法效率较低,且输出结果是遥感目标的像素掩膜,难以直接获取矢量多边形轮廓。
对此,以杭州市2017年的高分二号遥感影像为实验数据,设计了一个基于极轴建模的城中村建筑物矢量轮廓提取模型PolarMask-UV,探讨算法适用的参数设置和结构配置及其相比其他算法的优劣,以获得最佳的提取效果。
1 PolarMask-UV城中村建筑物轮廓提取算法
1.1 矢量轮廓的建模方式
传统的实例分割模型通常是在边界框包围的空间布局中通过逐像素二分类来完成目标实例的分类和定位,比如MaskR-CNN先使用目标检测器得到每个实例的类别和候选框,然后通过外接独立的全卷积网络分支对备选框内的前景像素进行分割。该类方法对实例对象采用图1(a)中的逐像素表示,由于力求恢复像素级的细节,需要处理繁重的密集预测任务,且生成的像素掩膜容易混入杂乱的伪影,难以生成后续可用的矢量边界。而PolarMask-UV采用PolarMask[12]的实例建模方式,在极坐标中凭借角度和距离定位边界点,如图1(b)所示。相比图1(a)传统的像素建模方式,它有如下优点:极坐标原点视作目标中心,边界点位置由距离和角度确定,可以简洁直观地描述目标的矢量形状,特别适用于城中村建筑物这种小型块状规整目标的提取;使用固定先验角度,只需回归已知方向上的距离即可,无需进行繁重的逐像素密集预测,简化了分割问题的处理;生成的矢量轮廓也可方便地转化为栅格掩膜,满足不同应用场景下的输出格式要求。
1.2 算法架构
PolarMask-UV算法的总体架构如图2所示,其具体流程是:首先,将图片输入深度残差网络(deep residual network,ResNet)[13]和四层FPN得到用于检测不同尺度目标的特征图;然后,通过分类和定位分支预测出中心点类别和每个先验角度上中心点到边界点的距离;最后,对预测结果进行简单转换即可得到目标的矢量轮廓。可见,由于对实例掩膜采用极坐标表示,算法回避了繁重的逐像素密集预测问题,仅需处理实例中心点分类和稀疏距离回归任务。其中,H、W、C分别是指输出特征图的高度、宽度和通道数;n是实例建模所用射线的根数。
图2 PolarMask-UV算法总体架构
1)网络结构设计。由于城中村建筑物在遥感影像中大小各异,一些楼房尺寸极小且往往密集排布,这对网络检测小型密集目标的能力提出了较高的要求。PolarMask-UV的主干网络采用ResNet-18,不同的是在FPN中加入了一个额外的浅层特征图C2,即使用四层FPN进行多尺度信息融合,使得底层空间信息更加丰富,提升对小尺寸密集城中村建筑物目标的提取能力。主干网络和特征金字塔网络的具体内部结构如图3所示。
图3 Backbone和FPN的具体内部结构
2)实例中心点分类。遥感影像中的建筑物常以其他城市建筑物为主,如商业楼房、小区楼房等,即城中村建筑物较背景负样本存在类别不均衡的现象。为强化网络对正样本的学习能力,在分类分支中采用焦点损失[14]替代原先的二分交叉熵损失进行训练。输入图片经过特征提取网络和FPN,再经过分类分支,输出大小H×W×1的特征图后应用sigmoid函数得到预测的类别概率。假设真实类别为p,分类分支得到的预测概率为p′,则分类分支的焦点损失计算如式(1)所示。
lossconf=-αp(1-p′)γlnp′-(1-α)(1-p)p′γln(1-p′)
(1)
式中:参数α用于对正负样本进行平衡;参数γ用于引导网络对难易样本的选择性学习。在实验中,γ取2,α取0.25。
另一方面,位置(x,y)如果落入实例重心的附近区域,就被视为正样本中心点,反之则为负样本点。基于增加正样本以缓解类别不平衡现象的考虑,本文将正样本采样区域定义为实例重心点向左右上下延伸1.5倍特征图下采样步幅的范围。为了获得高质量的正样本点,分类分支输出距离中心度,用于对低质量的实例中心点降低权重。给定实例对象的n条射线长度{d1,d2,…,dn}以及预测中心度Cpred,则距离中心度C′与中心度损失losscen的计算如式(2)至式(3)所示。
(2)
losscen=-C′lnCpred-(1-C′)ln(1-Cpred)
(3)
3)稀疏距离回归。经过定位分支,网络输出尺寸为H×W×n的距离预测图,之后应用指数函数将数值大小转换到区间[0,+∞]。对于极坐标系上的距离回归,定位损失计算采用极轴交并比损失,将n根射线作为一个相关的整体,联合优化,同时兼顾了定位精度和训练速度。图4直观展示了其在极坐标系中的计算原理。
图4 极轴交并比损失的计算原理
(4)
式中,观察到极轴交并比的最佳取值为1,则极轴交并比损失可以定义为极轴交并比的负对数,表达如式(5)所示。
losspolar=-ln IoUpolar
(5)
4)矢量轮廓的生成。在推理过程中,将网络输出的分类得分和距离中心度相乘可得到每个点的最终置信度。接着使用0.4阈值初步过滤预测点集合,并应用非极大抑制算法Fast-NMS[15]去除冗余的预测结果。给定实例中心点坐标(xc,yc)、固定先验角度{θ1,θ2,…,θn}以及预测的n条射线距离{d1,d2,…,dn},使用式(6)、式(7)计算得到每个对应边界点的坐标(xi,yi)。最后,从0°开始,顺次连接边界点,形成城中村建筑物的矢量轮廓。
xi=xc+dicosθi
(6)
yi=yc+disinθi
(7)
2 实验评估
2.1 研究区域与实验数据集
从2018年开始,杭州市开始了大规模的城市改造,即实现由“征迁为主”向“拆建并举”的转变,主要致力于城中村的拆除和改造。其中杭州市下城区、拱墅区和江干区作为主城区中改造项目个数最多的区域之一,预计有8 657 座建筑将被改造。因此有必要对该区域建立高效的城中村建筑物矢量轮廓提取模型以服务于有关部门的规划管理业务。
数据来源是2017年12月获得的国产高分二号卫星图像,图像场景覆盖杭州市城区范围。对于原始图像,先进行大气校正得到光谱反射率值,接着使用最近邻扩散泛锐化算法进行波段融合,得到0.8 m空间分辨率的多光谱影像。
模型训练阶段,使用LabelMe[16]软件对完成预处理影像中城中村数量较多的区域进行标注,总共勾绘了9 853栋城中村建筑物矢量多边形。最后以608像素×608像素大小的滑动窗口对各个区域的影像进行裁剪,并进行随机缩放、旋转、亮度处理的数据增强操作,得到5 394幅用于训练的影像。
在模型测试阶段,为了对不同具体配置下的算法检测效果进行合理评估,并验证本文所设计的网络的泛化能力,从城区影像中的下城区、拱墅区和江干区各选取一个局部区域作为测试样本,选取原则是该区域没有参与训练,分别记为测试集A、B、C。其中,测试集A位于城区中心城中村建筑物成片混杂于其他城市建筑的间隙,呈密集排布;测试集B位于城区边缘,城中村建筑物与裸地、工业厂房等相傍出现,地物分明;测试集C的某些区域有薄云遮挡,不少地方建筑物阴影较多,对目标提取造成一些干扰。每个测试区域大小均为1 500 m×1 500 m,总共裁剪得到2 345幅用于测试的影像。本文制作的城中村建筑物实例分割遥感数据集如图5所示。
图5 实验数据集示例
2.2 实验条件与基础设置
PolarMask-UV模型采用五折交叉验证法进行训练,初始学习率为0.001,每个训练批大小设置为8,总共进行了160个周期的多尺度训练。所有卷积神经网络模型均基于Pytorch框架实现,开发语言为Python3.6,数据读取软件包为OpenCV2.4,GPU为Tesla K40c。
2.3 精度评价指标
实例分割算法的精度评定指标采用掩膜平均精度(average precision,AP)。给定一个召回率序列r∈{0,0.01,…,1},以及对应的查准率p(r),某IoU阈值下的平均精度计算如式(5)所示。
(8)
综合考量多个IoU阈值{0.5,0.6,0.7,0.8},平均精度的最终计算如式(9)所示。
(9)
2.4 极轴数量评估
表1探讨了PolarMask-UV中的极轴数量对模型性能的影响。观察模型在测试集A、B、C上的评估结果,可以看到,使用24根射线的模型相比使用12根射线的模型AP提升了2.7%左右,在更严格的精度指标AP80下提升则超过了3%,说明更多的射线即更精细的建模确实可以获得更好的精度。然而,设置太多的射线比如30根时,模型的性能趋于饱和,因为此时射线的数量已经可以很好地拟合城中村建筑物的轮廓,不再是限制模型性能的因素。另外,测试集B由于地物较为分明而取得了最高的平均精度,测试集A次之,而测试集C因存在薄云遮挡造成的模糊现象使得算法在其上的平均精度AP稍差于测试集A和B,但使用24根射线的模型都在三个测试集中取得了超过89%AP的最佳平均精度。这说明,无论是城区中与其他城市建筑物混杂的密集城中村建筑物,还是城区边缘较易区分的城中村建筑物,采用24根极轴的PolarMask-UV都可以实现这些目标矢量多边形最准确的建模和提取,并且在干扰较多的情况下同样具有较好的检测效果。故采用24根射线作为PolarMask-UV算法的极轴建模参数。
表1 不同极轴数量下各个测试集的模型精度
2.5 网络结构评估
表2展示了使用不同的网络结构配置的各个测试集模型精度,图6是使用四层FPN与三层FPN模型的提取结果对比示例。
表2 不同网络结构配置下各个测试集的模型精度
观察表2,在测试集A、B、C上,四层FPN网络相比原来可以取得1.8%AP左右的精度提升,并且在严格的精度指标AP80下保持了最高的精度;图6中,四层FPN网络可以更加完整精细地恢复小尺寸密集城中村建筑物的边界轮廓。这应该得益于加入的浅层特征图使得网络学到了更丰富的低层特征,提升了网络对小尺寸的密集城中村建筑物的提取能力。此外,采用ResNet-18加四层FPN的PolarMask-UV算法在测试集A、B、C上均取得了最佳平均精度,说明该算法可同时适用于城区及城区边缘的城中村建筑物矢量多边形精准提取,且对于薄云遮挡、阴影等干扰具有不错的鲁棒性。另一方面,使用更深的特征提取网络并没有带来明显的精度提升,甚至当网络层数达到50层时精度反而有些许下降。所以,基于模型精度和轻量化的考虑,将ResNet-18加四层FPN作为最佳网络结构配置。
图6 三层FPN和四层FPN的提取结果对比
2.6 分类损失函数评估
表3和图7分别展示了分类分支采用不同损失函数的各个测试集模型精度和可视化提取结果。
在图7中,使用由二分交叉熵损失训练的模型进行检测,对混杂于其他城市建筑物中的城中村建筑物容易漏检,对外观与城中村建筑物相似的其他城市建筑物则容易错检,而焦点损失可以很好地解决上述问题。观察表3,在测试集A、B、C上,使用焦点损失后可取得1.7%左右的精度提升,这说明使用焦点损失确实可以缓解正负类别不平衡的问题,让模型选择性地学习城中村建筑物类别的有用特征。此外,采用焦点损失的PolarMask-UV算法在测试集A、B、C上均取得了最佳平均精度,说明该算法可在各种城区场景中准确识别城中村建筑物与非城中村建筑物,有效减少错检漏检,具有较强的泛化能力。
表3 采用不同分类损失函数的各个测试集模型精度
图7 采用二分交叉熵和焦点损失的提取结果对比
2.7 与其他算法的比较
本节将PolarMask-UV同基于像素建模的单阶段模型SOLO[17]以及两阶段模型MaskR-CNN在测试集上的性能进行比较,实验结果取各个模型在测试集A、B、C上检测结果的平均值。不同算法训练过程的验证精度曲线、最终测试精度和部分提取可视化结果分别详见图8、表4和图9。
图8 各模型训练过程中的验证精度曲线
由图8可以得到,在收敛速度方面,PolarMask-UV明显快于像素建模模型,其在训练了32周期左右后验证精度AP50即可达到85%,而SOLO和MaskR-CNN则分别于第56周期和第85周期后才达到相等的数值;观察表1和表4,在测试精度方面,采用12根极轴的PolarMask-UV可以取得和像素建模模型相似甚至更优的结果,极轴数量达到24根时相比MaskR-CNN则超越了4.6%AP;观察图9中SOLO、MaskR-CNN与本文模型的提取结果,可见示例1和示例3中SOLO算法产生了一些散布在目标外的像素伪影和粘连现象,示例2和示例4中MaskR-CNN算法则容易错误地检测出一些无关建筑物,而PolarMask-UV在正确提取的基础上保持了平滑且精确的目标轮廓,避免了各目标间的粘连。这是由于卷积网络的下采样操作会导致信息丢失,其中很多低层位置信息基于像素建模方法其实也难以恢复,而极轴分割的方式回避了繁重的逐像素预测问题,使用实例中心点分类和密集距离回归进行替代,以降低学习难度的方式在本研究中取得了性能提升。这表明PolarMask-UV模型采用的极轴分割能够很好地模拟城中村建筑物的形状掩膜,不必担心极轴建模方式会限制其在本文任务中的性能。
图9 各模型的城中村建筑物实例掩膜提取结果
PolarMask-UV在测试集部分区域上的城中村建筑物矢量轮廓绘制结果如图10所示。从图中可见,虽然真实标签注释存在少数遗漏和勾绘不准确的问题,但是PolarMask-UV仍将大部分城中村建筑物的多边形边界精确地提取出来,展现出良好的整体视觉感知效果,表明算法具有较好的鲁棒性。
图10 测试集区域的城中村建筑物矢量边界提取结果
3 结束语
城市环境中城中村建筑物的高密度、复杂的背景环境和形状的多样性给城中村建筑物的自动提取带来了很大的挑战。为了直接获得城中村建筑物的位置、形状以及数量信息以服务于城中村改造业务的开展,本文基于深度学习实例分割算法,探讨了如何实现高分辨率遥感影像中的城中村建筑物矢量多边形准确提取。首先,使用杭州市2017年的高分二号遥感影像数据,制作了城中村建筑物高分辨率遥感数据集;接着,从优化小尺寸密集目标检测效果、保持模型轻量化以及正样本学习能力等方面入手对已有模型进行改进,设计了一个基于极轴建模的实例分割模型PolarMask-UV,将繁重的逐像素密集预测问题简化为实例中心点分类和稀疏距离回归问题,实现对遥感图像中城中村建筑物的端到端矢量多边形提取;最后,对算法进行了精度评估。结果表明,当极轴数量设置为24、网络结构采用ResNet-18和四层FPN的配置且分类分支的训练采用焦点损失时,算法可在维持轻量化的同时有效地减少错检漏检的情况,并且完整精细地恢复小尺寸目标的边界轮廓,可同时适用于城区及城区边缘的城中村建筑物矢量多边形精准提取,具有良好的泛化性能;相比其他逐像素建模的方法具有处理简洁、分类准确且定位精准的优点,可直接获得城中村建筑物的矢量多边形,平均精度接近90%。本文研究成果可为城中村的规划管理业务提供详尽的建筑物位置、形状及数量信息,具有一定应用价值。