本发明属于计算机视觉和灾害监测领域,特别使用一种结合深度学习的地震灾害场景识别方法的地震灾害场景识别技术。
背景技术:
地震作为一种突发性、破坏性极强的自然灾害,对人类有着极大的危害。一方面,地震自身所带来的灾害以及其所引起的滑坡、堰塞湖、房屋坍塌会给人类的生命财产带来巨大隐患。另一方面,由于地震场景比较复杂,识别起来比较费时费力。
在现有科技和经济条件下,地震应急应当具有“少量投入、快速见效、显著实效”等优点,因此地震应急是世界各国普遍重视的一项工作。从理论上讲,所谓地震的应急过程,实际上就是在有限时效内所作出的一系列决策和实施过程的集合,地震应急应该具有时间紧迫、至关重要等特点。(2017参考文献1)因此,在一定的时间约束下,地震应急决策和行动是否科学合理和各种决策实施过程是否及时有效,是地震应急工作成败的关键。而地震应急决策的科学性和合理性以及决策实施的时效性和实际效用,从根本上取决于决策和决策实施过程是否能够建立在全方位、高精度、及时性的地震灾情信息的基础上(2002参考文献2,2012参考文献3)。
在深度学习出现以前,传统的目标检测识别方法主要是依据一定的先验知识,通过建立某种数学模型来完成,目前传统目标检测识别方法应用较广泛的有:帧差法(1959参考文献4)、hough变换(1975参考文献5)、背景减除法(2005参考文献6)、光流法(1981参考文献7)、滑动窗口检测模型(2003参考文献8)、可变形部件模型(2010参考文献9)等。具体地说,帧差法、hough变换、背景减除法以及光流法主要采用特征+数学模型的模式,利用已有数据某种特性的特征来建立相应的数学模型,求解该数学模型从而得到目标检测识别的结果;而滑动窗口检测模型方法以及可变形部件模型方法则是主要采用特征提取+分类的模式,利用手工设计特征,比如shift特征提取(2004参考文献10)、hog特征提取(2005参考文献11)、haar特征提取(2008参考文献12);并结合分类器进行分类,如:svm分类器(2009参考文献13)、adaboost分类器(2010参考文献14),根据手工设计特征进行分类从而得到目标检测的结果。传统识别方法对于简单的场景识别效果很不错,但是地震场景具有复杂多变的特性,因此对于地震复杂多变的场景识别是一个关键问题。
目前检测识别近几年已经成为计算机视觉领域重要的研究方向以及研究热点(2014参考文献15)近年来,深度学习技术的出现革新了目标检测的模式,大幅度提升了目标检测的精度和鲁棒性。由于深度神经网络能够自主学习不同层级的深层特征,所以基于深度学习的目标检测模型,相比于传统手工设计特征+分类器检测这一方法,学习的特征更加丰富,对于特征表达能力更强(2016参考文献16)。
但是,现在地震场景识别大多数使用的是目视解译,对于传统的场景识别方法(机器学习),其精度不能满足地震场景识别的要求。目前尚未有将深度学习用于地震场景识别的相关研究出现,难点主要在于深度学习在大数据条件下起效,而地震场景数据量通常不足,缺乏专家标注图片,以及地震场景复杂度较高。
相关背景文献:
文献1:陈子翰,窦爱霞,王晓青,etal.基于高分辨率影像的九寨沟7.0级地震道路震害评估[j].中国地震,2017.
文献2:聂高众,陈建英,李志强等,2002.地震应急基础数据库建设.地震,22(3):105—112.
文献3:聂高众,安基文,邓砚,2012.地震应急灾情服务进展.地震地质,34(4):782—791.
文献4:singlan.motiondetectionbasedonframedifferencemethod[j].internationaljournalofinformation&computationtechnology,2014,4(15):1559-1565
文献5:merlinpm,farberdj.aparallelmechanismfordetectingcurvesinpictures[j].ieeetransactionsoncomputers,1975,100(1):96-98.
文献6:leeds.effectivegaussianmixturelearningforvideobackgroundsubtraction[j].ieeetransactionsonpatternanalysisandmachineintelligence,2005,27(5):827-832.
文献7:hornbkp,schunckbg.determiningopticalflow[j].artificialintelligence,1981,17(1-3):185-203.
文献8:violap,jonesm.rapidobjectdetectionusingaboostedcascadeofsimplefeatures[c]//ieeconferenceoncomputervisionandpatternrecognition,2003,1:i-511-i-518.
文献9:felzenszwalbpf,girshickrb,mcallesterd,etal.objectdetectionwithdiscriminativelytrainedpart-basedmodels[j].ieeetransactionsonpatternanalysisandmachineintelligence,2010,32(9):1627-1645.
文献10:lowedg.distinctiveimagefeaturesfromscale-invariantkeypoints[j].internationaljournalofcomputervision,2004,60(2):91-110.
文献11:dalaln,triggsb.histogramsoforientedgradientsforhumandetection[c]//computervisionandpatternrecognition,ieeecomputersocietyconferenceon,ieee,2005,1:886-893.
文献12:panninga,al-hamadiak,nieser,etal.facialexpressionrecognitionbasedonhaar-likefeaturedetection[j].patternrecognition&imageanalysis,2008,18(3):447-452.
文献13:burgescjc.atutorialonsupportvectormachinesforpatternrecognition[j].dataminingandknowledgediscovery,1998,2(2):121-167.
文献14:zhuj,zouh,rossets,etal.multi-classadaboost[j].statisticsanditsinterface,2009,2(3):349-360.
文献15:erhand,szegedyc,tosheva,etal.scalableobjectdetectionusingdeepneuralnetworks[c]//proceedingsoftheieeeconferenceoncomputervisionandpatternrecognition,2014:2147-2154.
文献16:kongt,yaoa,cheny,etal.hypernet:towardsaccurateregionproposalgenerationandjointobjectdetection[c]//proceedingsoftheieeeconferenceoncomputervisionandpatternrecognition,2016:845-853.
技术实现要素:
基于遥感数据,对地震灾害场景进行模型训练分类。发明旨在对传统的场景识别分类进行改进,引入深度卷积网络来进行深度学习,进一步提高分类效率,同时提高准确率。
本发明所采用的技术方案提供一种结合深度学习的地震灾害场景识别方法,获取震后场景的遥感图像后进行切片处理,然后进行扩展得到用于深度学习的数据,使用对单点多盒探测器目标检测器方法ssd的改进方案来进行地震场景的深度学习以及识别;所述对单点多盒探测器目标检测器方法ssd的改进方案,包括对网络进行修改,将第十六层卷积层加上一个relu激活函数,将第十九层卷积层加上一个relu激活函数以及maxpooling池化层,得到修改后的模型。
而且,实现过程包括以下步骤,
步骤1,数据获取,包括获取震后场景的遥感图像;
步骤2,对步骤1所获取的数据进行切片,然后进行扩展得到用于深度学习的图片数据,包括训练集和测试集;
步骤3,数据标注,将步骤2所得用于深度学习的图片数据进行数据标注,将图像中的地震场景进行分类并画框;
步骤4,数据格式转换,将步骤3所得标注好的数据转换为单点多盒探测器目标检测器方法ssd所需要的数据格式;
步骤5,基于训练集进行模型的训练,包括统一图片规格,生成boundingbox,将图像按照修改后的模型进行卷积操作、激活函数增加鲁棒性和池化操作,进行全连接层及softmax分类;最后初始化设定权重以及偏置,通过反向传播算法得到最优化模型,然后输出模型;
步骤6,基于测试集进行步骤5所输出模型的精度评价;
步骤7,将实时地震场景图片放入所得训练好的模型中,实现实时识别地震场景类别。
而且,步骤2中,所述扩展通过平移像素点、旋转和镜像变化实现。
而且,步骤6中,通过召回率recall、精度precision以及综合评价指标f1来评估模型可靠性。
本发明对深度学习ssd目标检测方法进行改进,在此基础上研究提供地震灾害场景识别技术,可以更好识别复杂的地震场景,提高识别的精度,缩短识别时间,模型训练以及识别简单,而且可以直接在图像中给出框住物体并给出分类结果。
附图说明
图1为本发明实施例的流程图。
图2为本发明实施例的模型训练流程图。
图3为本发明实施例的模型精度评价图。
图4为现有技术中vgg-16所用网络模型结构图
图5为本发明实施例的网络模型结构图。
具体实施方法
为了便于本领域普通技术人员理解以及实施本发明,下面结合附图及实施例对本发明作进一步阐述,应当理解,此处所述的实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明要解决的问题是:传统图像识别方法难以识别复杂多变的地震场景,并且由于地震场景复杂多变,使用传统的图像特征提取+分类方法,无法准确进行分类。针对这些问题,本发明基于遥感影像数据,使用并改进单点多盒探测器目标检测器识别方法(ssd),进而进行地震场景识别及分类。
本发明实施例中基于遥感影像数据,使用对单点多盒探测器目标检测器方法(ssd)的改进方案来进行地震场景的深度学习以及识别。使用这种结合深度学习的地震灾害场景识别方法不仅能够快速识别复杂的地震场景,还可以提高识别的精度。
参见图1,本发明实施例提供的地震灾害场景识别方法,包括以下步骤:
步骤1:数据获取,包括获取震后场景的遥感图像。
实施例中,在地震发生后,从高分一号卫星、高分二号卫星、北京二号卫星等来源获取震后场景的数据。
步骤2:对步骤1所获取的数据进行切片,然后进行扩展得到用于深度学习的图片数据;
地震发生后,通过遥感影像获取数据后将数据进行切片处理,获取研究区内尽可能的全部覆盖的场景图像。可以将遥感影像切片,得到包含地震场景的小规模影像图,将这些图片以训练集:测试集=4:1的比例分好,用作训练和测试。
实施例中,所获取的遥感影像数据因为范围大且数据量大,需要将有用的数据提取出来,因此将数据进行切片,提取有用的数据,将一副遥感影像图切分成众多带有地震场景的图片,建议尽量保证每个图片的分辨率大于300*300以便下一步操作。
进一步地,由于深度学习数据量不足的问题,本发明提出:数据切片后可以通过平移数个像素点、旋转、镜像变化等方法来获取大量数据进行训练,比如可以平移1个像素点、2个像素点、3个像素点,加上原始数据,则将数据扩容了4倍;通过旋转90°,180°,270°又可以将数据扩容到原来的四倍;通过镜像变化,可以将数据增大两倍。将以上三种方法结合起来,再划分训练集和测试集,可以在少有的数据量情况下获得大量的训练数据以满足深度学习模型的训练。
步骤3:数据标注,将步骤2所得用于深度学习的图片数据进行数据标注,将图像中的地震场景进行分类并画框。
可以将图像中的场景标框,然后将每个框的类别分好,以便训练和测试使用。
实施例中,通过标注把地震场景框出来,将数据标注好以后生成标签格式是:
objectnumber//标注框个数
classnamex1miny1minx1maxy1max//场景类别第一个框x最小值第一个框y最小值第一个框x最大值第一个框y最大值
classnamex2miny2minx2maxy2max//场景类别第二个框x最小值第二个框y最小值第二个框x最大值第二个框y最大值
…
每个数据类别数据量要求尽量一致,可以通过数据上采样方法来避免数据不平衡导致某一类分类结果过差。
步骤4:数据格式转换,将步骤3所得标注好的数据(txt格式)转换为单点多盒探测器目标检测器方法ssd所需要的数据格式(xml),这一步的目的是为了方便生成lmdb格式的训练集和测试集。
步骤5:基于训练集进行模型的训练,包括resize(调整大小)图片尺度,生成boundingbox(边框),按照修改后的模型将图像进行卷积操作,加激活函数增加鲁棒性并进行池化操作,接着进行全连接层及softmax分类;最后初始化设定weight(权重)以及bias(偏置),然后通过反向传播算法得到最优化模型,然后输出模型并用于步骤6进行精度评价。
实施例中反向传播算法采用sgd方法,训练最优化模型实现过程为,设定迭代次数和学习率,将学习到的内容使用反向传播算法中的stochasticgradientdescent(sgd,随机梯度下降)方法来调整weight,bias的值,然后通过softmax分类计算loss函数的值,当loss函数收敛时,得到最优化的模型。
参见图2,实施例中,步骤5具体步骤如下:
步骤5.1:统一图片规格,将图片resize成300*300的规格,统一规格以便后续的操作。依次遍历每个图片以及xml格式的标注文件,分别创建list和data,将数据转换为lmdb格式以进行训练。
其中,
resize指的是将图片调整尺寸;
list是一个列表格式;
data是数据存放的格式;
xml是标注文件的数据格式;
lmdb是符合ssd训练的数据格式。
因为本发明所用的ssd方法要通过深度学习进行卷积池化等一系列操作,所以要在训练之前把图像统一格式,实施例在次模型网络选用的图像为300*300;因此需要把图像统一resize成300*300,然后就是生成lmdb格式的训练集和测试集.
步骤5.2:生成boundingbox:
1)首先进行网络的构造,
参见图4,现有技术中的vgg-16网络的结构如下:
第一层包括卷积层和relu层,第二层包括卷积层和relu层、池化层,第三层包括卷积层和relu层,第四层包括卷积层和relu层、池化层,
第五层包括卷积层和relu层,第六层包括卷积层和relu层,第七层包括卷积层和relu层、池化层,
第八层包括卷积层和relu层,第九层包括卷积层和relu层,第十层包括卷积层和relu层、池化层,
第十一层包括卷积层和relu层,第十二层包括卷积层和relu层,第十三层包括卷积层和relu层、池化层,
以上前十三层记为convolution4_3,
第十四层为全连接层,第十五层为全连接层,第十六层为全连接层,最后为softmax分类层。
参见图5,现有技术中的ssd目标检测方法基于传统vgg-16网络进行了如下改进:将vgg-16的第十四层的全连接层和第十五层的全连接层转化为卷积层,记为卷积层6(第十四层),去掉第十六层的全连接层,新增加卷积层7(第十五层)、卷积层8_2(第十六层)、卷积层9_2(第十七层)、卷积层10_2(第十八层)、卷积层11_2层(第十九层)和全连接层(第二十层),卷积层6(第十四层)和卷积层7(第十五层)之间设置池化函数pool5;添加了atrous算法(多孔算法),将pool5进行变换;抽取convolution4_3(前十三层)、卷积层7(第十五层)、卷积层8_2(第十六层)、卷积层9_2(第十七层)、卷积层10_2(第十八层)、卷积层11_2层(第十九层)的featuremap(图像特征),然后分别在这些featuremap层上面的每一个点构造6个不同尺度大小的boundingbox,然后分别进行检测和分类,生成多个boundingbox;这样的改动相对于基于vgg-16网络的目标检测方法,去掉了全连接层从而可以更快的检测出目标,增加了6个卷积层可以更加深度学习到特征从而更加准确的识别出场景,构造6个不同尺度大小的boundingbox可以同时进行多个场景识别,但是由于地震场景具有复杂多样的特性,直接通过ssd方法训练得到的模型可能不具有很好的鲁棒性并且由于数据缺乏,直接训练可能会产生欠拟合,直接应用到本发明时通过数据增强后训练可能会产生过拟合现象。
于是本发明提出,结合地震场景的特性,结合ssd方法的优点进行以下改进使它更好的适用于地震场景之中,参见图5,:
将第十六层卷积层加上一个relu激活函数,将第十九层卷积层加上一个relu激活函数以及maxpooling池化层,得到修改后的模型。其中,maxpooling表示最大池化。
添加激活函数的目的可以更好的增加模型鲁棒性,但是这样就增加了模型的训练时间,所以本发明提出在第十九层加入maxpooling池化层,以保证能够在不改变尺寸的情况下更好的提取有用的信息并加快收敛过程,并在第二十层新加入一个全连接层以防止过拟合现象,这样可以在同等甚至更少训练时间基础上使用ssd方法的数据格式训练得到具有更好鲁棒性的模型。
2)模型改进之后,将不同featuremap获得的boundingbox结合起来,经过nonmaximalsuppression(非极大值抑制)方法来抑制掉部分重叠或者不正确的boundingbox,最终生成检测结果。
生成最终的boundingbox集合(即检测结果)时,生成的boundingbox的最小尺寸smin以及最大尺寸smax由以下的公式决定。
s指第k个最终生成的boundingboxx大小;
smin指初步生成的boundingbox的最小尺寸;
smax指初步生成的boundingbox的最大尺寸;
k是用于标记预测的第k个boudingbox的标号。
步骤5.3:将图像进行卷积操作,卷积是卷积神经网络(cnn)的核心层,其作用是提取特征,将m×n的图像经过i×i的卷积层最终得到一个提取特征后的(m-i)×(n-i)的图像层
步骤5.4:根据当前层的设置,如果需要的话进行其他操作,例如第二层,在卷积后通过一层激活函数,经过了卷积和激活层以后,模型会进行pooling(池化)操作:
目前比较常用的激活函数由sigmoid函数,relu函数,sigmoid函数的公式为
目前比较常用的poolinglayer为maxpooling和meanpooling,由于池化层的作用是压缩图片并进一步提取特征,所以此方法只使用了maxpooling来进行池化,maxpooling通过取区域内最大值来进行下采样,可以选出分类辨识度更好的特征。
步骤5.5:判断是否是最后一个网络层(第十九层),如果不是最后一个网络层,那么进入下一层继续重复5.3和5.4的步骤,如果是最后一层网络层,则进入下一步骤5.6。
步骤5.6:全连接层+softmax分类,由全连接层来将学习到的特征映射到样本标记空间,然后通过softmax方法进行分类。
本发明采用的分类器为softmax,softmax函数实际上是有限项离散概率分布的梯度对数归一化。因此,softmax函数在包括多项逻辑回归,多项线性判别分析,朴素贝叶斯分类器和人工神经网络等的多种基于概率的多分类问题方法中都有着广泛应用。特别地,在多项逻辑回归和线性判别分析中,函数的输入是从k个不同的线性函数得到的结果,而样本向量x属于第j个分类的概率p(y=j|x)为:
其中,xt指的是向量x的转置向量,wk指的是第k个分类所占的权重,e指的是数学常数。
步骤5.7:设定初始weight(权重)以及bias(偏置),然后设定迭代次数和学习率,使用反向传播算法中的stochasticgradientdescent(sgd,随机梯度下降)方法,得到最优化模型后输出。随机梯度下降方法通过负梯度l(wt)和上一次得到的权重更新值vt来更新得到新的w权重,其迭代公式如下:
vt+1=uvt-al(wt)
wt+1=wt+vt+1.
其中,
wt是第t-1次随机梯度下降得到的权重
wt+1是第t次随机梯度下降得到的权重
vt+1是其通过随机梯度下降得到的一个中间的权重更新值,通过vt+1与wt的和得到新的权重wt+1;
a是负梯度的学习率(base_lr),u是上一次梯度值的权重(momentum),用来加权之前梯度方向对现在梯度下降方向的影响,这两个参数一般根据经验来进行设定,对于学习率的设定,太大可能会导致梯度在最小值附近来回震荡,从而使模型无法收敛;而学习率太小会使模型收敛过程十分缓慢。因此实施例优选设置初始学习率0.01,而对于u的值,一般设置为0.9,初始权重可以让用随机梯度下降的深度学习方法更加稳定、快速。
模型的训练过程就是不断调整weight,bias的值,使得loss函数(损失函数)最小,最终得到最优化的模型,其中损失值l的计算公式如下。
其中,fw(xi)是数据xi上的loss值,r(w)是权值衰减weight_decay,是为了减弱过拟合现象;m是待求参数惩罚系数,n是样本数量。
具体实施时,可以使用loss函数曲线图将模型训练过程可视化,可更方便得到最优化参数,具有实际应用价值。
步骤6:进行步骤5所输出模型的精度评价。
本发明提出通过召回率recall、精度precision以及综合评价指标f1来评估模型可靠性。
实施例中步骤6具体实现步骤如下:
步骤6.1:基于测试集,将训练好的模型进行测试,。
步骤6.2:初始化tp=0,fn=0,fp=0。
truepositive(真正,tp):将正类预测为正类数
falsepositive(假正,fp):将负类预测为正类数误报(typeierror)
falsenegative(假负,fn):将正类预测为负类数→漏报(typeiierror)
步骤6.3:将测试所得到的框与原始标注的框做对比,计算产生的候选框(candidatebound)与原标记框(groundtruthbound)的交叠率,即它们的交集与并集的比值,得到intersection-over-union(iou,交并比)值。
步骤6.4:对于某一类别的所有测试图片,如果iou小于等于0.5,记该类别fn=fn+1,否则记该类别tp=tp+1;对于测试为某一类别的图片,如果iou大于0.5,则判断其预测的类别和实际类别是否一致,如果是一致的,则记该类tp=tp+1,如果不是,记fp=fp+1.
步骤6.5:判断是否遍历了所有需遍历的图片,否则重复步骤6.3以及6.4,是则进入步骤6.6整理计算recall以及precision。
步骤6.6:根据识别得出的结果计算模型的recall(召回率)以及precision(精度)。
其中precision其实就是在识别出来的图片中,truepositives所占的比率,图中简称为p:公式如下:
其中的n代表的是truepositives(将正类预测为正类数)+falsepositives(将负类预测为正类数误报),也就是系统一共识别出来多少照片。
recall是被正确识别出来的个数与测试集中所有的个数的比值,图中简称为r:公式如下:
recall的分母是truepositives(将正类预测为正类数)+falsenegatives(将正类预测为负类数→漏报)这两个值的和。
步骤6.7:计算综合评价指标f1,precision和recall指标有时候会出现一个很大一个很小的情况,不能准确评价所得到的模型好坏;所以,本发明提出需要综合考虑这两个因素,最常见的方法就是f1指标,f1的公式如下:
其中p指的是precision,r指的是recall,如果f1指标大于0.6,则说明模型训练成功,f1指标越大,说明模型越好,对于实际场景的检测越有效,否则说明模型效果差。
参见图3,把所有的测试图片先整理,然后通过整理得到的某一类别的所有测试图片计算该类别的召回率recall;通过整理测试结果为某一类别的所有图片计算该类别的精确率precision,流程可设计两个分支,以便将这两个指标结合起来计算f1。
步骤7:将实时地震场景图片放入所得训练好的模型中,实现实时识别地震场景类别。
本发明所提供的结合深度学习的地震灾害场景识别方法,可以更好识别复杂的地震场景,提高识别的精度,缩短识别时间,模型训练以及识别简单,而且可以直接在图像中给出框住物体并给出分类结果。
具体实施时,以上技术方案可采用计算机软件技术实现自动运行,运行本方法的硬件装置也应当在本发明的保护范围内。
应当理解的是,上述针对本发明中较佳实施例的表述较为详细,但不能因此认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在本发明权利要求保护范围内,可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围以所附权利要求书为准。