[0039] 下面结合具体实施例对本发明做详细说明,以下实施例有助于本领域的技术人员更好的理解本发明。应当指出的是,本领域内的其他技术人员在不脱离于本发明和实例的基础上演变而来的其他实例,都属于本发明的保护范围。
[0040] 图1所示一种基于深度学习和云计算的遥感建筑物震害评估方法的技术流程图,其主要详细步骤如下:
[0041] (1)建筑物震害遥感影像获取和处理:从防灾减灾部门获取经过粗配准的青海省玉树市地震前后的高分辨率卫星遥感影像,影像地面分辨率为1米。通过ENVI遥感数字图像处理软件选择道路交叉口、建筑物边缘等同名控制点,利用ENVI几何多项式配准工具对地震前后影像进行精确配准,生成配准后的地震前后原始影像。
[0042] (2)样本集制作与数据增强:在地震前后原始影像上,利用ArcGIS Pro软件对震前建筑物进行目视解译轮廓标绘制作标签图像。对震后建筑物进行目视解译轮廓标绘,制作建筑物震害破坏程度标签图像,包括完整建筑物、完全倒塌建筑物和部分倒塌建筑物的标签图像。
[0043] 样本裁减:采用ArcGIS Pro软件样本裁剪工具分别对震前建筑物、震后建筑物破坏程度样本图像及其标签图像进行裁减,将震前和震后样本图像及其对应标签图像随机裁剪为256×256大小,分别生成包含50000个震前建筑物样本和50000个震后建筑物震害样本的深度学习样本集。
[0044] 数据增强:采用虚拟样本增强技术扩大样本集,对裁减好的样本进行多角度旋转(90°、180°、270°)、镜像变换、高斯模糊、亮度调整以及添加噪声点等处理进行数据增强,将震前建筑物深度学习样本数目扩大到300000。按3:1:1的比例将样本集随机分成训练集、验证集和测试集。将震后建筑物震害样本集数目扩大到500000。按3:1:1的比例将样本集随机分成训练集、验证集和测试集。
[0045] (3)基于特征图像的样本集扩充:依据震后完全倒塌建筑物的随机纹理分布特征,震前建筑物、震后完整建筑物的几何特征,震后部分倒塌建筑物的几何与随机纹理兼有的特征。分别提取震前影像的几何特征,震后影像的几何和纹理特征,分别生成震前的几何特征图像、震后的几何特征图像和纹理特征图像,实现对步骤(2)中震前和震后影像样本数据集进行扩充。
[0046] 详细实施步骤和方法如下:
[0047] a)对于震前建筑物,震后完整建筑物、部分倒塌建筑物,提取建筑物几何角点特征。先用Canny算子从地震前后原始影像中提取边缘特征,通过波段运算加权求和获得边缘特征图像,然后采用Harris算法从边缘特征图像中提取几何角点特征,与地震前后对应原始影像进行融合,生成几何特征图像。
[0048] 本实施例根据Canny提出的判断边缘检测算子的三个准则,利用泛函数求导的方法能导出一个由边缘定位精度和信噪比乘积组成的表达式,采用Canny算子提取边缘特征。
[0049] ①信噪比准则。信噪比越大,提取边缘的质量越高。这里信噪比SNR定义为:
[0050]
[0051] 式中G(x)代表边缘函数,h(x)代表带宽为W的滤波器的脉冲响应。σ代表高斯噪声的均方差。
[0052] ②定位精度准则。边缘定位精度L如下定义:
[0053]
[0054] 式中G'(x)和h'(x)代表G(x)和h(x)的导数。L越大表明定位精度越高。
[0055] ③单边缘响应准则。要保证对单边缘只有一个响应,检测算子的脉冲响应导数的零交叉点平均距离DZCU(f′)应满足h”(x)为h(x)的二阶导数:
[0056]
[0057] 通过ENVI波段运算工具,将提取到的边缘线段特征与与原始图像按权重1:1比例进行波段加权求和处理,获得边缘特征图像。采用Harris算法从边缘特征图像中提取几何角点特征如公式(4)所示:
[0058]
[0059] 式中x为像元列值,y为像元行值,u为列偏移量,v为行偏移量,E(u,v)为灰度值变化梯度,w(x,y)为窗口函数,I(x,y)为原始图像灰度,I(x+u,y+v)为平移后的图像灰度,(u,v)为窗口的偏移量。(x,y)为窗口内所对应的像元坐标位置。Ix和Iy是一阶灰度梯度,可通过对图像卷积运算求得:
[0060]
[0061] M为偏导数矩阵:
[0062]
[0063] 窗口函数使用二元高斯函数如公式(6)所示:
[0064]
[0065] 式中,G为二元高斯函数,σ为高斯滤波器宽度,本例σ取1。
[0066] 每个像元点的角点响应计算公式如(7)所示:
[0067] R=AB‑C2‑k(A+B)2 (7)
[0068] 式中,R为角点响应函数,k为常量,本例k取0.05。
[0069] 当角点响应函数R值大于阈值,阈值根据具体图像设定,本例阈值设置为90。将几何角点特征通过ENVI软件转为栅格图像,再通过ENVI的Transform Image Sharpening/GS菜单与地震前后原始影像进行融合处理,生成震前建筑物,震后完整建筑物、部分倒塌建筑物的几何特征图像。
[0070] b)对于震后部分倒塌建筑物、完全倒塌建筑物,本实施例采用LBP算法从震后原始影像中提取纹理特征,生成纹理特征图像。
[0071] 利用公式(8)计算LBP纹理特征。
[0072]
[0073] 式中,(xc,yc)为中心像元,ic为灰度值,ip为相邻像元的灰度值,s为符号函数,具体公式见公式(9)。
[0074]
[0075] 对生成的几何特征图像和纹理特征图像,通过步骤(2)中的样本裁剪实现对样本数据集进行扩大,将震前建筑物深度学习样本数目扩大到400000,震后建筑物震害样本集数目扩大到600000。
[0076] (4)深度卷积网络模型设计:对于震前建筑物、震后完整建筑物提取,震后完全倒塌建筑物、部分倒塌建筑物提取,分别设计不同的深度卷积神经网络模型,如图2所示。
[0077] 本实施例设计的深度网络提取模型主要由编码器、解码器结构,Input输入层和Soft‑max分类器层组成。编码器结构包括卷积层,其中Conv a‑b(例如,Conv 3‑64)表示该层卷积核的大小为a×a(3×3),该层卷积核的数量为b(64);(×n)表示网络模型在此处有结构相同的n层,卷积层后采用ReLU激活函数;池化层,Maxpool2表示所述池化层的核大小为2×2。解码器包括卷积层、上采样层,UpSampl2表示上采样层的上采样核大小设定为2×2。
[0078] 如图2所示,优选地,震前建筑物、震后完整建筑物提取的深度卷积网络模型,本实施例中输入层为1层,卷积层采用26层,池化层为5层,上采样层为5层,最后一层为Soft‑max层。卷积层中,卷积核大小设计为3×3,卷积核数量为64、128、256、512;最大池化层核大小采用2×2,上采样层核大小采用2×2。
[0079] 由于震后部分倒塌建筑物、完全倒塌建筑物的影像包括与完整建筑物影像显著区分的瓦砾堆纹理特征和部分倒塌建筑物残留的几何特征,需要网络模型提取准确的震害建筑物边界,对完全倒塌建筑物、部分倒塌建筑物提取的网络模型设计主要通过减少池化层、上采样层数量,增加了卷积层数量、瓶颈层(Bottleneck层)实现。如图2所示,在震后部分、完全倒塌建筑物提取网络模型中加入Bottleneck层,位于编码器和解码器中间,Bottleneck层结构表现为:Conv1‑512(1),含一层512个1×1大小的卷积核的卷积层。优选地,震后部分倒塌建筑物、完全倒塌建筑物提取的网络模型:输入层为1层,卷积层为33层,池化层为4层,上采样层设计为4层,最后一层为Soft‑max层。除Bottleneck层的卷积核大小设计为1×1,其余的卷积层卷积核大小设计为3×3,卷积核数量为64、128、256、512。最大池化层核大小采用2×2,上采样层核大小采用2×2。
[0080] (5)地震前后建筑物及其震害深度学习样本集、高分影像云端存储:综合考虑并行计算的性能需要和数据存储的安全性,通过Hadoop云平台将震前建筑物、震后建筑物震害深度学习样本,地震前后高分影像存储在分布式文件系统HDFS中。
[0081] (6)图3为实施例提供的基于智能体的模型训练超参数自动获取流程图,详细步骤包括:
[0082] a)深度学习样本随机调用:利用随机函数抽取步骤(5)中HDFS中存储的建筑物震害深度学习样本。
[0083] b)Agent与Q函数初始化:利用学习率等于0.01、权重衰减值等于0.0005、滑动步长等于2等超参数对智能体Agent与Q函数进行初始化。
[0084] c)Agent随机探索:智能体每作出一次动作后,对应状态发生改变,不同的状态对应的奖励不同。若Agent执行某次动作后,深度学习网络模型对输入图像的震害建筑物提取精度相较于执行动作前有提高,则获得即时奖励r;反之,提取精度下降,则获得即时奖励‑r。
[0085] d)动态贪婪策略动作优化:采用动态贪婪策略(ε‑greedy)平衡“探索”与“利用”状态,通过奖赏值引导Agent在下次迭代中以更高的概率选择作出准确率高的超参数值的动作(Action),直到选出最优动作。“探索”是指智能体在已知的状态‑动作二元组分布之外,选择其他未知的动作调整参数,“利用”是指智能体在已知的所有状态‑动作二元组分布中,基于获得最大奖赏值得的原则选择最优的动作调整。
[0086] ε‑greedy策略是Agent假设在状态sk时,Agent以概率为ε随机选择超参数的调整动作Action,智能体动作Action的集合为A={a1,a2,a3,…,am},以概率1‑ε选择当前动作。在该策略中ε代表知识的“探索”和“利用”之间的比例,选择的动作ai概率函数表达式如下:
[0087]
[0088] 式中,
[0089]
[0090] s为状态,a为动作,k为当前学习次数,Q(sk,am)为状态动作Q函数值,M为总学习次数。ε(k)值大小表示动作选择时随机性的大小。当k=1时,ε(k)≈1代表学习刚开始时只探索不利用;当k=M时,ε(k)≈0代表只利用不探索。当算法进入学习的中间阶段后,随着学习次数k的增加逐渐地降低ε(k),Q值高的动作被选择的概率增加,动作趋于最优。
[0091] e)计算累积奖励回报(Reward)。
[0092] 累积奖励回报(Reward)计算公式:
[0093]
[0094] 式中,t为动作次数,rt+1为第t+1次动作的奖赏值,γ为折扣因子,k为常参。
[0095] 使用Q函数求出累积奖励回报最大策略的期望,如下:
[0096]
[0097] 式中,Eπ为最大策略的期望,s为状态,a为动作, 为Q函数,s0为初始状态,a0为初始动作,t为动作次数,rt+1为第t+1次动作的奖赏值,γ为折扣因子(取值在[0,1])。
[0098] f)接受精度验证。最终判断Agent的动作策略收获累积奖励回报是否达到给定的验证精度的超参数的累积奖励回报。若未达到,通过贝尔曼方程更新Q函数,返回子步骤b)重新进行Q函数初始化;若达到,则输出智能体作出动作的累积奖励回报对应的学习率、权重衰减值、滑动步长等超参数。
[0099] 贝尔曼方程定义如下:
[0100]
[0101]
[0102] 式(14)、(15)中,Vπ(s)为关于状态值函数的贝尔曼方程,Qπ(s,a)为关于行为值函数的贝尔曼方程π为策略,Eπ为最大策略的期望,s为状态,a为动作,s′为某一状态,a′为某一动作,t为动作次数,r为动作的奖赏值,γ为折扣因子(取值在[0,1]),k为常参, 为状态转移概率, 为期望回报。
[0103] (7)模型云端训练:利用步骤(4)中设计的深度卷积网络模型和(6)中优化的模型训练超参数,在云端分别训练适合震前建筑物、震后完整建筑物提取,震后完全倒塌建筑物、部分倒塌建筑物提取的深度卷积神经网络模型。
[0104] 本实施例采用Hadoop平台作为云端核心,在云端配置Tensorflow深度学习框架和Keras库。训练过程中采用随机梯度下降方法(Stochastic gradient descent,SGD)调整网络的权重参数,通过反向传播使得损失函数达到最小。损失函数采用交叉熵函数计算,如下:
[0105]
[0106] 式中,L为损失函数,n为训练样本数目。yi为第i个像元的真实震害类型值,取值范围为(0,1),ai为预测值。
[0107] 利用MapReduce编程模型实现节点间训练数据的协同并行化处理,使用各个节点存储的样本数据与权值、偏置值等网络参数对网络模型进行训练,计算出权值和偏置的局部梯度改变量之后做一次汇总得到权值和偏置的全局梯度改变量,然后用全局梯度改变量更新权值和偏置。具体采用MapReduce模型协同并行化处理:Mapper类首先调用setup()函数,从分布式缓存中读取网络参数,包括网络层卷积核数量及权值和偏置,并对网络进行初始化。然后调用map函数接收(权值,局部梯度改变量)键值对,经过前向推导和反向传播,计算出网络每一个权值W的局部梯度改变量ΔW,生成(key=W,value=ΔW)的中间键值对,产生的中间结果暂时存储在内存,达到设定值之后写入磁盘。Reducer类调用Reduce函数,以网络中的权值和权值局部梯度改变量列表为输入,统计、求出权值的全局梯度改变量,然后将权值和权值全局梯度改变量以键值对的形式输出。对于Map任务每一个权值均会启动一个Reduce任务。在多次MapReduce任务之后,若深度卷积神经网络的全局梯度改变量较小(本实例中权值的全局梯度改变量<0.001,或输出学习精度在规定精度范闱内(实例中训练集精度train_acc>0.94,验证集精度val_acc>0.92,测试集精度高于0.85),或满足最大迭代次数(本例大于等于10次),结束训练,保存训练好的网络模型。
[0108] (8)震后影像中完全倒塌、部分倒塌区域、完整建筑物提取:利用(7)中训练好的完全倒塌建筑物、部分倒塌建筑物提取深度卷积神经网络模型对震后遥感影像进行分类,提取获得完全倒塌、部分倒塌区域;利用完整建筑物提取的深度卷积神经网络模型对震后影像分类,提取获得完整建筑物。
[0109] (9)完全倒塌、部分倒塌区域对应震前影像裁剪:采用ENVI掩膜工具建立震后完全倒塌、部分倒塌区域掩膜图像。利用ENVI裁剪工具通过震后完全倒塌、部分倒塌区域掩膜图像裁剪震前影像,获得完全倒塌、部分倒塌区域对应的震前影像。
[0110] (10)完全倒塌、部分倒塌区域对应震前影像建筑物提取:在完全倒塌、部分倒塌区域对应震前影像中,利用步骤(7)中云端训练好的震前建筑物提取的深度卷积神经网络模型,结合震前建筑物深度学习样本,提取完全倒塌、部分倒塌区域包含的震前单体建筑物。
[0111] (11)震前建筑物灾损等级标注:根据步骤(9)获得的完全倒塌、部分倒塌区域对应震前影像标记,利用ArcGIS 10.7地理空间云“ArcGIS Pro”属性标记功能对(10)中提取的震前建筑物标记其震害破坏类型,即将震前单体建筑物灾损标记为完全倒塌建筑物或部分倒塌建筑物。
[0112] (12)震害完全倒塌、部分倒塌区域震前建筑物数量统计与制图:利用ArcGIS 10.7地理空间云“ArcGIS Pro”统计分析模块统计计算步骤(11)从玉树市震前影像中提取的标记为完全倒塌、部分倒塌的建筑物数目,将该建筑物数目和步骤(8)中提取的震后完整建筑物数目求和,计算得到的评估区建筑物总数。计算完全倒塌、部分倒塌建筑物数目与评估区建筑物总数的百分比,即建筑物震害破坏比率。将评估区中单体建筑物破坏程度空间分布及其破坏比率,生成建筑物震害灾情评估专题图。
[0113] 本发明还提供了一种基于深度学习和云计算的遥感建筑物震害评估系统,系统结构如图4所示,所述系统包括:
[0114] 用户终端S1、网络通信基站S2、网关服务器S3、中心云服务端S4。
[0115] 所述用户终端S1,主要面向各行政级别应急管理局、防灾减灾委员会、自然资源局、大数据局等震害防灾减灾相关部门用户进行应用。用户终端包括:安装无线网卡的台式电脑、掌上便携设备pad、手机移动端app等,防灾减灾相关部门通过用户终端提交震害遥感评估与结果查询请求到Hadoop云平台。
[0116] 所述网络通信基站S2,是与用户终端S1与网关服务器S3之间进行信息双向传递的无线电收发信电台,用于通信功能的实现。
[0117] 所述网关服务器S3,为网间连接器和协议转换器,用于通过VPN/DDN和防火墙连接网络通信基站S2和中心云服务端S4,实现流量管控、安全防护和业务隔离,为面向高分遥感、深度学习和云计算的震害信息提取与评估系统提供一个安全、高效的访问环境。
[0118] 用户终端通过网络通信基站S2、网关服务器S3与中心云服务端S4双向通信。用户终端设备通过WiFi连接网络通信基站,通过网络通信基站、Internet与网关服务器进行通信,进而将用户终端S1提交的任务请求传递给S4,同时也将中心云服务端处理结果传递回S1。
[0119] 所述中心云服务端S4,由如下部分组成:Web服务器S41、GIS服务器S42、Hadoop云平台S43。
[0120] 所述Web服务器S41,用于用户终端向Web服务器发送请求,请求训练卷积网络模型与建筑物震害信息提取;还用于将GIS服务器生成的建筑物震害灾情评估专题图经由Web服务器,反馈给用户终端,用于指导抗震减灾工作。
[0121] 所述GIS服务器S42,用于地震破坏区域标绘以及建筑物灾损信息统计分析,包括地震破坏区域标绘、震害建筑物破坏程度分类与数量统计,计算完全倒塌、部分倒塌建筑物数目,统计计算建筑物震害破坏比率,生成建筑物震害灾情评估专题图。
[0122] Hadoop云平台S43与Web服务器、GIS服务器连接,用于接收防灾减灾部门通过用户终端向云计算服务器发送的震害评估深度学习计算请求,请求在云端训练深度卷积网络模型。
[0123] 如图4所示,S43由一个名称节点服务器(NameNode节点)S431和N个数据节点服务器(DataNode节点)S432组成的。其中,S431 NameNode节点运行有分布式文件系统HDFS,Job Tracker负责管理集群中文件系统的命名空间、管理映射数据块和用户终端对文件的访问操作。DataNode节点运行有本地文件系统。用户终端分别与名称节点,数据节点1、数据节点2,数据节点3,……,数据节点N‑1,数据节点N相连。
[0124] 图5为本发明遥感建筑物震害评估系统云平台数据分布式存储读写原理图。用户终端向名称节点发送请求写入/读取消息,名称节点返回待写入/读取的数据块列表。在训练样本数据写入过程中,用户终端首先向NameNode节点发出写入深度学习样本与模型训练源码请求,返回可写入的数据块列表,NameNode节点查询在数据节点中是否存在文件。若文件不存在,分布式文件系统HDFS将新建文件。将深度学习样本集按照128MB切分成不同的数据块,按照名称节点返回的可写入的数据块列表分别向其中写入切分后形成的数据,将模型训练源码拷入对应的块。数据写入完成后关闭输出流,发送完成信号给NameNode节点。
[0125] 数据读取过程中,用户终端访问NameNode节点,查询文件数据信息,获得待查询文件的数据块列表,返回给用户终端。用户终端根据数据块列表位置,找到存储该数据块的DataNode节点服务器,请求建立输入流并读取数据。
[0126] 综合上述,可以通过以上实施例的详细步骤,实现本发明提出的基于深度学习和云计算的遥感建筑物震害评估方法和系统对建筑物震害进行快速提取与评估。