基于生成对抗网络的建筑物损毁检测
2022-03-07葛小三赵文智李瑞祥
葛小三,陈 曦,,赵文智,李瑞祥
1. 河南理工大学测绘与国土信息工程学院,河南 焦作 454003; 2. 河南理工大学自然资源部矿山时空信息与生态修复重点实验室,河南 焦作 454003; 3. 北京师范大学地理科学学部遥感科学与工程研究院, 北京 100875
近年来,全球气候变化不断加剧、自然灾害日益频发,造成了严重的人员伤亡和经济损失,已成为威胁人类生命安全的重大问题之一[1]。建筑物作为人们生活的主要场所,是人口和财产的集中地带,快速准确地了解灾后建筑物的损毁信息对于灾后应急决策与恢复重建意义重大[2]。随着遥感平台和传感器的发展,遥感影像的分辨率逐渐提高,可以从影像中提取更详细的地表覆盖信息,为遥感技术在灾情检测中的应用带来可能。但更详细的信息意味着更加严重的类内差异,再加上大气干扰和光照变化带来的大量伪变化,使得高分辨率影像建筑物变得难以识别。在灾害中破损建筑物的光谱和纹理信息更为复杂,因此准确检测损毁建筑物是一个极大的挑战[3]。
国内外学者针对损毁建筑物检测任务利用多种遥感数据源做了大量工作,高分辨率影像、SAR影像和激光雷达等数据先后被应用到损毁建筑物检测中。其中,基于高分辨率影像的研究主要集中在损毁特征以及检测方法的选择上[4]。高分辨率的灾后影像包含丰富的地物细节,如颜色特征[5]、纹理特征[6]、高度特征[7]等。由于倒塌建筑物结构复杂,单一特征往往难以准确描述复杂建筑物目标[8],而简单的多特征堆叠会带来计算的冗余,因此怎样选择典型特征一直是建筑物损毁研究的难点[9-11]。SAR影像能够穿透云雨雾雪,在灾害等恶劣环境下具有天然的优势[12]。完好建筑物和损毁建筑物在SAR影像中主要表现为极化特征与纹理特征的差异,但对数据质量的要求相对较高,且应用端需要相对较高的专业知识水平。激光雷达作为一种主动式观测技术,可提供建筑物较为全面的视角及更多的形态学特征,但观测区域有限,数据难以做到全面覆盖[13-14]。现阶段,应用高分辨率影像进行灾损检测仍是最好的选择,其中单一地使用灾后影像和使用灾前灾后双时相影像两种方式较为常用。相对于使用灾前灾后双时相遥感影像,单一的灾后影像获取较为容易,常用于灾后信息快速获取。但单一的灾后影像可提供的信息有限,往往难以获得令人满意的结果[15]。在灾前灾后影像充足的情况下,使用灾前灾后影像进行变化检测可以获得更好的检测结果[16]。
在过去的几十年中,新的变化检测方法不断出现。其中,最常见的是机器学习的方法,如支持向量机(SVM)、变化向量分析(CVA)[17]和主成分分析(PCA)[18]。然而,在自然灾害发生之后,破损建筑物特征呈现出巨大的差异,传统机器学习方法很难区分。深度学习算法的兴起为建筑物损毁信息提取提供了一种新的解决方案。深度学习方法能够通过多层卷积结构识别影像中语义丰富的高级特征,在损毁检测任务中具有显著优势[19-22]。文献[23]利用深度卷积神经网络(DCNN)提取深层次影像特征来判断建筑物是否损坏,并证明了DCNN提取的高级特征相对于传统特征具有更好的表征能力。文献[24]将卷积自动编码器学习到的知识转移到CNN分类器,发现CNN分类器可以改善特征的辨识度。文献[25]使用UNet进行建筑物屋顶损伤检测,并提出了4种策略来缓解样本数量失衡带来的过拟合效应。然而,CNN、UNet都是判别式网络,需要大量精确的标记样本,在灾害背景下往往很难满足这一要求。
生成对抗模型(GAN)作为一种无或半监督生成网络,其训练过程只需要少量训练样本,因此在遥感目标识别领域中得到广泛应用[26]。文献[27]利用条件生成对抗网络(CGAN)将光学数据和SAR数据融合进行变化监测,有效减小了伪变化的影响。文献[28]使用pix2pix-GAN对高分辨率遥感影像进行了变化检测研究,证明了pix2pix框架在变化监测中的可用性。文献[29]提出了一种MeGAN模型,将季节变化项和度量学习融入pix2pix框架用于两个不同季节之间遥感影像的变化监测,该模型有效抑制了季节性差异产生的伪变化。pix2pix是一种端到端的框架,不需要特殊的人为设计,通过生成网络和判别网络的相互对抗竞争建立输入图像和输出图像之间的良好映射关系,适合复杂环境下的变化检测任务。然而,pix2pix的局限性在于通过多层卷积运算提取感兴趣区域,通常会导致计算的冗余,并且很难找到建筑物准确边界。此外,损毁建筑物具有复杂的变化特征,单一的GAN结构很难达到理想的效果。
综上所述,损毁建筑物检测的主要困难在于如何准确确定建筑物变化区域轮廓和解决样本不足带来的训练不足或过拟合问题。因此,本文提出了一种基于pix2pix框架的RecurSive-GAN(RS-GAN)方法。该方法学习灾前灾后双时相影像之间的特征差异,实现损毁建筑物自动检测,并输出建筑物受损分布图。本文采用了两个相同的pix2pix框架,分别用于建筑物识别和损毁建筑物检测,如图1所示。为了解决检测边界模糊问题,将建筑物识别结果与灾前灾后影像输入损毁建筑物检测模块,为其提供潜在区域建议。由于损毁建筑物检测是建立在建筑物识别的结果之上,两者具有很强的相关性,因此加入联合损失函数以提高模型对损毁特征的识别能力。
图1 RS-GAN工作流程Fig.1 Procedure of RS-GAN method
1 研究方法
由于建筑物损毁信息提取是一个十分复杂的过程,单一的映射过程难以获得好的效果,因此基于多模态GAN的原理,本文提了recursive-generative adversarial networks(RS-GAN)方法。RS-GAN基于pix2pix框架构建,由两个相似的pix2pix模块组成。
1.1 pix2pix网络模型
pix2pix算法由一个生成器和一个判别器构成,生成器用来生成模拟样本,使其分布pz尽可能类似于真实样本数据分布pd以欺骗判别器D(x),判别器尽可能地区分样本来源于生成器还是真实样本,通过两个模块间的对抗过程使模型达到最优。pix2pix的目标函数可以表示为
Ez~pz[log(1-D(x,G(z)))]
(1)
式中,pd表示真实数据x的样本分布;z表示随机噪声;G(z)表示生成器产生的模拟样本。令θg和θd分别代表生成器G和鉴别器D的参数,在训练的过程中θd每更新一次,θg也对应更新一次,直到损失函数收敛。本文在表1中展示了一个pix2pix网络的具体配置,生成器是一个类似于UNet的跳网结构,包括8个下采样和8个上采样步骤,并在最后加入了tanh激活函数;判别器采用8个下采样。最终输出损毁建筑物分布图。
表1 pix2pix详细配置Tab.1 Detail configuration of pix2pix framework
1.2 Recursive-generative adversarial networks(RS-GAN)方法
GAN是一个动态对抗过程,在生成器与判别器的博弈中寻找源域到目标域的最佳映射。建筑物损毁信息提取是一个十分复杂的过程,单一的映射过程难以获得好的效果。建筑物识别任务到损毁建筑物检测任务是一个递进的过程,两者之间有很强的相关性。因此,使用两个pix2pix框架将两者联系起来。如图2所示,将同一地区建筑物识别生成器模块的输出作为叠加项输入损毁建筑物检测模块中,在训练过程中,为损毁建筑物检测生成器提供潜在区域建议。同时,设计了一个联合损失函数,充分利用两个任务之间的潜在互利性,增强模型的鉴别能力。用xp表示输入灾前影像,yp表示建筑物真实地表标签,建筑物识别pix2pix的目标函数可以表示为
图2 RS-GAN框架Fig.2 Architecture diagram of RS-GAN method
Ex~pd[logD1(xp,yp)]+
Ez~pz[log(1-D1(xp,G1(xp)))]
(2)
式中,pd表示真实建筑物地面分布(建筑物标签图)的数据分布;pz表示输入灾前图像的数据分布。将建筑物识别pix2pix的输出表示为s=G1(xp),灾后建筑物和建筑物损毁真实地表标签分别表示为xq、yq,那么损毁建筑物检测pix2pix的目标函数可以表示为
Ex~pt[logD2(s,xq,yq)]+
Es~ps[log(1-D2(s,xq,G2(G1(xp),xq))]
(3)
同时,为了使模型更快达到纳什均衡,本文在模型中加入了L1损失函数
(4)
(5)
式中,c为平衡建筑物识别和损毁信息提取任务所需的超参数,在本文中设置为3。在训练过程中,生成器组和鉴别器组的参数θg,θd是一个交替更新的过程,直到损失函数收敛,RS-GAN的训练过程如下。
算法 Recursive Generative Adversarial Networks(RS-GAN)算法,其中pz和ps分别为建筑物真实地表和损毁建筑物真实地表的样本分布。
输出:建筑物损毁分布图
4.2.3 优化农机维修网络布局,着力解决高新农机具维修难的问题,不断提升农机维修服务能力,满足广大农民的需求。
for number of training iterations do
Step 1:更新建筑物检测鉴别器D1的参数
Step 2:更新损毁建筑物检测鉴别器D2的参数
Step 3:更新建筑物检测鉴别器G1的参数
Step 4:更新损毁建筑物检测鉴别器G2的参数
end for
2 试验与分析
2.1 试验数据
试验数据集分别选用圣罗莎大火(Santa Rosa,2017,美国加利福尼亚州)和飓风多里安(Missouri,2011,美国密苏里州)两组灾前灾后worldview影像,影像来源于DigitalGlobe提供的XBD建筑物损毁数据集[30]。该数据集收集了世界各地19个灾害事件(如洪水、地震和飓风)的高分辨率遥感影像对,并经过了严格的影像配准。如图3、图4所示,圣罗莎和密苏里数据集的尺寸分别为3072×3072和5120×4096,空间分辨率约为0.5 m,包含RGB 3个波段。该数据集结合实地调查数据,参考HAZUS自然灾害分析工具[31]、美国联邦应急管理局(FEMA)损坏评估操作手册、Kelman所提出的灾损评估标准[32]和欧洲宏观地震烈度表(EMS-98)[33]将建筑物损毁分为4级。由于卫星视角所带来的局限性,大多数情况下只能看到建筑物的顶面,传统的基于物理结构或功能的建筑物损毁评价标准在此情况下难以适用。因此基于此数据集所提出的建筑物损毁评价,将建筑物分为完好或轻度损毁(完好)和中度损毁或倒塌(损毁)两级目标,如图5所示。
图3 圣罗莎大火数据集Fig.3 Santa Rosa data sets
图4 密苏里龙卷风数据集Fig.4 Missouri tornado data sets
图5 建筑物损毁描述Fig.5 Description of damage buildings
在本文试验中,数据集的30%作为训练集,其余的70%作为测试集。为了避免训练样本与测试样本之间可能存在的相关性,训练集和测试集被分成两个独立的区域。本文将数据集裁剪为256×256的小块,为了扩充训练样本,本文随机不重复抽取样本点,并以样本点为中心切割影像块;测试集以相邻影像块中心点距离为256作无重叠切割。为了验证所提出方法的性能,分别使用了RandomForest(RF),UNet和pix2pix作为比较算法。比较算法中pix2pix算法与本文算法采用相同的结构。为了定量说明模型的准确性,选择精度(precision),召回率(recall),总体精度(overall accuracy),平均精度(average accuracy)和Kappa系数进行准确性评估。
2.2 圣罗莎(Santa Rosa)数据集检测结果和比较
圣罗莎数据集的试验结果展示在图6和表2中。在灾害背景下,影像中存在大量的伪变化和随机噪声,传统的检测方法很难达到良好的检测效果。在表2中,随机森林的各项指标均为最低。UNet采用多层卷积结构,可以捕捉具有表征性的建筑物特征,区分建筑物是否受损。在遥感影像上,受损建筑物表现为复杂的光谱和纹理特征,单纯的卷积结构难以区分,UNet存在明显的漏检情况。pix2pix算法是典型的生成式模型,在生成器和判别器的对抗过程中自动学习具有稳健性的特征,不需要大量的样本。与UNet相比,pix2pix对完好和损毁筑物的检测精度分别提高了0.04和0.01。与UNet相比,pix2pix的检测效果更加平滑,但仍旧很难区分建筑物是否受损,recall仅为0.70和0.76。本文提出的RS-GAN采用多模态的检测模式,加入联合损失函数充分利用建筑物识别和损毁建筑物之间的潜在互利性,同时用建筑物识别结果指导损毁建筑物检测,检测结果拥有更加清晰的轮廓。RS-GAN的OA、AA和Kappa均为最高,分别为0.01、0.86和0.78。本文将建筑物识别GAN和建筑物损毁检测GAN的loss曲线展示在图7中,可以发现两者在相互对抗的过程中达到最佳效果。
图6 圣罗莎数据集检测结果Fig.6 Detection results of Santa Rosa data sets
表2 圣罗莎数据集检测结果及比较Tab.2 Detection results and comparison of Santa Rosa data sets
图7 RS-GAN在圣罗莎数据集上训练的loss曲线Fig.7 Loss curves that RS-GAN trained on the Santa Rosa data sets
2.3 密苏里(Missouri)龙卷风数据集检测结果和比较
为了检测RS-GAN的普适性,本文在另一个密苏里州龙卷风数据集上做了进一步的测试(见表3和图8)。不同于火灾数据集,龙卷风破坏建筑物会产生大量建筑物残片,影响检测效果。在此试验中,RS-GAN和标签之间拥有最高的吻合度,Kappa值达到了最高的0.55。随机森林难以检测出损毁建筑物,Kappa值只达到了0.27。UNet虽然检出率较高但错检现象严重。pix2pix和RS-GAN因为加入了对抗结构,可以学习到更具稳健性的典型特征,相比于其他方法检测效果有所提高。总的来说,RS-GAN拥有最好的检测效果,OA和Kappa均达到了最高的0.87和0.55。
图8 密苏里龙卷风数据集检测结果Fig.8 Detection results of Missouri tornado data sets
表3 密苏里龙卷风数据集检测结果及比较Tab.3 Detection results and comparison of Missouri tornado data sets
3 讨 论
准确检测损毁建筑物对于灾害发生后的应急救援有着重要的意义,但由于受损建筑物在遥感影像中大量的模糊像元,且灾前灾后影像存在季节、光照、地表覆盖等差异的影响,定位建筑物并进行准确的损毁等级划分仍是一个巨大的挑战。除此之外,样本的获取困难和影像分辨率的限制,容易导致检测效率和精度低下。本文试验所选影像的分辨率为0.5 m,单个建筑物在图像上表示约为1000个像元且存在大量的模糊像元。在两组不同灾害影响下的数据集上检测了本文提出模型的性能,其中圣罗莎数据集具有充足的样本且类别均衡,密苏里数据集场景相对复杂,RS-GAN均取得了相对较好的检测效果。本文在一个环境更为复杂的多里安数据集上做了进一步的测试。相比于以上两个数据集,多里安数据集建筑物更为分散且存在严重的类别失衡。测试的结果如图9和表4所示,可以看到在极端环境下各模型的检测精度整体偏低,RS-GAN拥有最好的检测效果,AA和Kappa均达到了最高的0.49和0.41。因此准确检测损毁建筑物除了需要准确定位建筑物外,更需要模型有更强的泛化能力,提取更具有表征性的特征,这将是笔者下一步研究的重点。
图9 多里安数据集检测结果Fig.9 Detection results of Dorian data sets
表4 多里安数据集检测结果及比较Tab.4 Detection results and comparison of Dorian data sets
4 结 论
本文提出了一种RS-GAN模型来检测灾后建筑物的受损情况,并在圣罗莎和多里安数据集上进行了测试,结果表明,RS-GAN拥有明显的检测优势。本文主要的贡献点在于:①提出了由两个pix2pix分支组成的多模态模型,将建筑物损毁信息提取任务分为建筑物识别和损毁建筑物检测两个子任务,充分利用了灾前灾后双时相影像信息优势。同时将建筑物检测结果加入损毁建筑物检测,在训练过程中动态提供潜在区域建议,使检测结果具有更加清晰的轮廓。②设计了一种联合损失函数,将建筑物提取和损毁建筑物检测两个子网络合并为一个整体,充分利用了两个任务之间的潜在互利性,从而对损毁建筑物有着更强的检测能力。③RS-GAN自动化程度较高,在输入灾前灾后影像及少量训练样本基础上,能够实现损毁建筑物自动检测。在未来的研究中,会在现有研究基础上继续提高模型的泛化能力,在更多数据集上做尝试,提升模型的检测能力。