高光谱图像分类_第1页
高光谱图像分类_第2页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机器学习课程项目报告高光谱图像分类基于CNN和ELM院信息工程学院业电子与通信工程学生姓名曹发贤同组学生陈惠明、陈涛硕士导师杨志景2016年11月一、项目意义与价值高光谱遥感技术起源于20世纪80年代初,是在多光谱遥感技术基础之上发展起来的1。高光谱遥感能够通过成像光谱仪在可见光、近红外、短波红外、中红外等电磁波谱范围获取近似连续的光谱曲线,将表征地物几何位置关系的空间信息与表征地物属性特征的光谱信息有机地融合在了一起,使得提取地物的细节信息成为可能。随着新型成像光谱仪的光谱分辨率的提高,人们对相关地物的光谱属性特征的了解也不断深入,许多隐藏在狭窄光谱范围内的地物特性逐渐被人们所发现,这些因素

2、大大加速了遥感技术的发展,使高光谱遥感成为21世纪遥感技术领域重要的研究方向之一。在将高光谱数据应用于各领域之前,必须进行必要的数据处理。常用的数据处理技术方法包括:数据降维、目标检测、变化检测等。其中,分类是遥感数据处理中比较重要的环节,分类结果不但直接提取了影像数据有效信息,可以直接运用于实际需求中,同时也是实现各种应用的前提,为后续应用提供有用的数据信息和技术支持,如为目标检测提供先验信息、为解混合提供端元信息等。相对于多光谱遥感而言,由于高光谱遥感的波谱覆盖范围较宽,因此我们可以根据需要选择特定的波段来突显地物特征,从而能够精确地处理地物的光谱信2。目前,许多国家开展大量的科研项目对高

3、光谱遥感进行研究,研制出许多不同类型的成像光谱仪。高光谱遥感正逐步从地面遥感发展到航空遥感和航天遥感,并在地图绘制、资源勘探、农作物监测、精细农业、海洋环境监测等领域发挥重要的作用。高光谱遥感技术虽然是遥感领域的新技术,但是高光谱图像的分类一直制约着高光谱遥感的应用3,4,因此对其进行研究显得尤为重要。高光谱遥感图像较高的光谱分辨率给传统的图像分类识别算法提出严峻的挑战。波段维数的增加不仅加重了数据的存储与传输的负担,同时也加剧了数据处理过程的复杂性,并且由于波段与波段间存在着大量的冗余信息,从而使得传统图像分类算法并不适用于高光谱遥感图像的分类。传统的分类方法往往需要很多数目的已知类别的训练

4、样本,从而导致计算量大,时间复杂度高。另外,如果训练样本的数目较少,采用传统分类算法进行分类时分类精度往往是很低的,因此提高分类精度并减少运算量成为高光谱领域的热点问题。高光谱遥感图像的波段数目多,并且波段与波段间存在着很大的相关性,因此在进行遥感图像的处理(例如分类)之前通常需要进行降维预处理,这样做不仅可以降低数据空间的维数,减少冗余信息,而且还有利于人工图像解译和后续分类处理和地物识别,从而为解决高光谱遥感分类的难点提供了方便5。二、高光谱图像分类的发展与现状高光谱图像分类作为高光谱图像的基础研究,一直是高光谱图像重要的信息获取手段,它的主要目标是根据待测地物的空间几何信息与光谱信息将图

5、像中的每个像素划分为不同的类别。高光谱图像分类按照是否有已知类别的训练样本的参与,高光谱图像的分类方式分为监督分类与非监督分类6。在遥感图像自动分类中,传统的基于数理统计的分类方法,主要包括最小距离分类、最大似然分类、波谱角分类、混合距离法分类等,主要依赖地物的光谱属性,基于单个像元进行分类。统计模式识别方法本身的不足:1、最大似然法计算强度大,且要求数据服从正态分布2、K-means聚类分类精度低,分类精度依赖于初始聚类中心3、最小距离法没有考虑各类别的协方差矩阵,对训练样本数目要求低近年来对于神经网络分类方法的研究相当活跃。它区别于传统的分类方法:在处理模式分类问题时,并不基于某个假定的概

6、率分布,在无监督分类中,从特征空间到模式空间的映射是通过网络自组织完成的。在监督分类中,网络通过对训练样本的学习,获得权值,形成分类器,且具备容错性。人工神经网络(ANN)分类方法一般可以获得更高精度的分类结果,因此ANN方法在遥感分类中被广泛应用,特别是对于复杂类型的地物类型分类,ANN方法显示了其优越性。专家系统分类法也在遥感分类取得了一定的应用。专家系统是模拟人类逻辑思维的智能系统,将其应用于遥感分类最大的优点就是可以充分利用更多的辅助分类数据。不过由于专家系统知识库难以建立,影响了它的进一步发展。支持向量机(SVM)具有严格的理论基础,能较好地解决小样本、非线性、高维数等问题,被成功地

7、应用到多光谱、高光谱遥感图像分类领域。对于高光谱数据而言,由于波段多、数据量大、数据不确定性等,易受Hughes现象(即训练样本固定时,分类精度随特征维数的增加而下降)影响。而样本的获取在高光谱分类中往往是一项比较困难的工作,特别是采用高维特征向量时要求每类的样本数都要比特征维数高,因此在高维信息处理中的精度与效率和高光谱遥感信息精细光谱与大数据量之间仍然存在着极大的矛盾。三、卷积神经网络理论基础卷积神经网络是人工神经网络的一种,它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少的权值的数量以节约训练和测试的计算时间。该优点在网络的输入是多维图像时表现得更加明显,使图像

8、可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积神经网络是为识别二维数据而专门设计的一个多层感知机,其网络对平移、比例变化和倾斜等具有高度不变性7。在CNN中,图像的一小部分(局部感受区域)作为层级结构的最低层的输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征。这个方法能够获取对平移、缩放和旋转不变的观测数据的显著特征,因为图像的局部感受区域允许神经元或者处理单元可以访问到最基础的特征,例如定向边缘或者角点。卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,每个平面又由多个独立的神经元组成。图2为卷积神经网络的整体结构图。

9、一般地,C层(卷积层)为特征提取层,每个神经元的输入与前一层的局部感受野相连,并提取该局部的特征,一旦该局部特征被提取后,它与其他特征间的位置关系也随之确定下来;S层(下采样层)是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射为一个平面,平面上所有神经元的权值相等。特征映射结构采用sigmoid函数等映射函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数,降低了网络参数选择的复杂度。卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的计算层(S-层),这种特有的两次特征提取结构使

10、网络在识别时对输入样本有较高的畸变容忍能力。卷积神经网络采用有监督学习的方式进行训练,即任何一个训练样本的类别是已知的,训练样本在空间中的分布不再是依据其自然分布倾向来划分,而是根据同类样本和不同类样本中的空间关系进行划分,这需要不断调整网络模型的参数用以划分样本空间的分类边界的位置,是一个耗时且复杂的学习训练过程8。神经网络在进行训练时,所有的网络权值都用一些不同的小随机数进行初始化,这些小的随机数能偶保证网络不会因为权值过大而进入饱和状态,导致训练失败。神经网络训练算法包括4个主要部分:(1)样本集中取出样本(X,yp)并将其输入网络,X代表图像数组,yp代表其类别;(2) 计算此次输入相

11、应的实际输出Op,这是一个前向传播的过程;(3) 用一个指定的损失函数计算出实际输出Op与理想输出Yp的误差;(4) 按极小化误差的方法反向传播调整网络权值。四、极限学习机极限学习机(extremelearningmachine)ELM是一种简单易用、有效的单隐层前馈神经网络SLFNs学习算法。2004年由南洋理工大学黄广斌副教授提出。传统的神经网络学习算法(如BP算法)需要人为设置大量的网络训练参数,并且很容易产生局部最优解。极限学习机只需要设置网络的隐层节点个数,在算法执行过程中不需要调整网络的输入权值以及隐元的偏置,并且产生唯一的最优解因此具有学习速度快且泛化性能好的优点。极限学习机的网

12、络训练模型采用前向单隐层结构。设m,M,n分别为网络输入层、隐含层和输出层的节点数,g(x)是隐层神经元的激活函数,b为阈值。i设有N个不同样本(x,t),1<i<N,其中iix=x,x,,xTeRm,t=t,t,,tTeRn,则极限学习机的网络训练模型11ii1i2imii1i2in如图1所示。图1极限学习机的网络训练模型极限学习机的网络模型可用数学表达式表示如下:弋0g(3x+b)=o,j=1,2,.,Niiiiji=1式中,3=w,3,,3表示连接网络输入层节点与第i个隐层节点的输入权i1i2imi值向量;0=0,0,,0t表示连接第i个隐层节点与网络输出层节点的输出ii1i

13、2in权值向量;o=o,o,.,oT表示网络输出值。ii1i2in极限学习机的代价函数E可表示为E(S,0)=纠|。厂j!j=1式中,s=(3,b,i=1,2,.,M),包含了网络输入权值及隐层节点阈值。Huangii等指出极限学习机的悬链目标就是寻求最优的S,",使得网络输出值与对应实际值误差最小,即min(E(S,0)。min(E(S,0)可进一步写为min(E(S,0)=minH(33,bb,xx)0-Til3,"0"1M1M1N"式中,H表示网络关于样本的隐层输出矩阵,”表示输出权值矩阵,T表示样本集的目标值矩阵,H,”,T分别定义如下:H(3,

14、.,3,b,.,b,x,.,x)=1M1M1Ng(3x+b)g(3x+b)111M1Mg(3x+b)g(3x+b)0=0T1,T=tT10TtTMMxNNNxM1N1mNM-NxN极限学习机的网络训练过程可归结为一个非线性优化问题。当网络隐层节点的激活函数无限可微时,网络的输入权值和隐层节点阈值可随机赋值,此时矩阵H为一常数矩阵,极限学习机的学习过程可等价为求取线性系统H0=T最小范数的最小二乘解B,其计算式为0=H+T式中H+时矩阵H的MP广义逆。五、具体实现及主要代码1、训练的样本及其样本图ROSISPaviaUniversityNoNameTrainTest1Asphalt5486631

15、2Meadows540186493Gravel39220994Trees52430645Metalsheets26513456Baresoil53250297Bitumen37513308Bricks51436829Shadows231947Total392142776ROSISPaviaCenterNoNameTrainTest1Water824659712Trees82075983Meadow82430904Bricks80826855Soil82065846Asphalt81692847Bitumen80872878Tile1260428269Shadows4762863Total745

16、6148152SalinasNoNameTrainTest1Brocoli_green_weed_130120092Brocoli_green_weed_255937263Fallow29619764Fallow_rough_plow20913945Fallow_smooth40226786Stubble59439597Celery53735798Grapes_untrained1691112719Soil_vinyard_develop930620310Corn_sensced_green_weeds492327811Lettuce_romaine_4wk160106812Lettuce_r

17、omaine_5wk289192713Lettuce_romaine_6wk13791614Lettuce_romaine_7wk161107015Vinyard_untrained1090726816Vinyardverticaltrellis2711807Total811954129FicEdHVkhInseitTankgktnpVtndwtHelp程白毗'、心触了:asTnFileEdtInsert'w?:De?dnpWhim.HtpJddil、雲辭、余2Uk1ffl1W2003M1«2003004W5ftffiffl?O»FileEdilVie*In

18、set"cdsDesktopWindcmH旳9日B窃b瓦久甥尙凰盘豊|d目口2、原图及进行分类后的图和各个高光谱数据集每一类的分类精度TheresultofPaviaUniversityFirEdithsrrtTmkCtsldbcpWkJmHelp庞时k讥帖駅诵DISiQso1(»iaa»so300TrainingTine=L.3344IrainingAccuracy=.3707lestinglinft二L6536hstingAccuracy=cnn+<?i诟吐辺1AECuri'j£fl.53235cnn+<?iAtbceAccuri

19、'yisO.D3?Ez5cnn+<?iCAAcjiiyiac?isLE9城6cnn+<?i<AAcjiiacpis.§娜闇cnn+<?iCAAcjiiyiac?isl.SGP'cnn+<?i<A加j呼racyis1.&8041Scnn+<?iCAAcjiiyiac?is.铀:邯Lcnn+<?i<AAcjiiacpis.927620cnn+<?iCAAcjiiyiac?isL9M135cnn+<?i<A加j呼racyis1.91091Scnn+<?iCAAcjiiyiac?is.99?

20、8SScnn+<?i上啷3is1.91121GTheresultofPaviaCenterlestingTime=5.5692TestinjAccuracy=0.9892Trainingline=cnn+elBOverallAccuracyis0.S89227crui+eAverageAccuracyi.s0+376B63cnn+el>CA3.3334cim+eLBCAcrui+eCAcnn+elBCAAcuuyracyAcuuyracyAcuuyracAcuuyracyisiscrui+eCA999803958147970550978359JrainingAccuracy=cnn

21、+elBCAcnn+elwCA0.9362cnn+eliCAcnn+elMCAAcuuyrac7AcuuyracyAcuuyrcyAcuuyracyAcuuyracyisis965067982483946063992341998952crui+elkappais98475STheresultofSalinasFiguislOddx惦曲3Z10FitEditViewhsrtloohCesktEpWindowHe|p2C«KBD10C12DI4C1®IK3XTestirigJme=6.6316IcstinsAccuracy=0.9490ctitt+eln.OverallAccu

22、racyis0.943(129Gtiii+eln.AverageAccuracyis0»973815cfitt+n+n+eln.CACACAAcLuirscyAcjuyracyAcjuyracyisis150.Q.0.9995029931219卿品Irauunjline=cnn+e-ln.CAAcjuyracyISQ.997131cnn+elniCAAcuijyracy150.996992crm+rljiGAAcuuyracy15a.352112cnn+elniGAAcuijyracy15a.995927cnn+eln.GAAcaayracyIS0.9940

23、01cnn+eln.CAAcaayrscyisQ.996292cnn+eln.CAAcaijyracy13Q.IraiiiingAECiiiacT=cnn+eln.CAAcaayrscyisQ.993446Cfitt+eln.CAAcLuiracyisL.ooooooctirri-eln.CAAcacirGcyis0.993150D.9S31Cfitt+eln.CAAcLuiracyis0.973832cnn+eln.CAAcjjuyracy150.B23473cnn+eln.CAA匸ijLiyracy150.931738cnn+eln.kappais0.9431993、主要代码Themain

24、codeofPaviaUniversityofMatlab%ConvolutionNeuralNetworkAndExtremLearningMachine%Test1forPaviaUniversity%STEP1:InitializecnnConfig=config();theta,meta=cnnInitParams(cnnConfig);n_class=cnnConfig.layermeta.numLayers.dimension;loadPaviaU;loadPaviaU_gt;images,labels,indexs,samimage=loadtrain(paviaU,paviaU

25、_gt);d=cnnConfig.layer1.dimension;images=reshape(images,d(1),d(2),d(3),);%STEP2:Train(TheCnnAndElm)options.epochs=1;options.minibatch=30;options.alpha=0.05;newtheta=minFuncSGD(x,y,z)cnnCost(x,y,z,cnnConfig,meta),theta,images,labels,options);K=cnnExtract(newtheta,images,cnnConfig,meta);TrainingTime,T

26、rainingAccuracy,InputWeight,BiasofHiddenNeurons,OutputWeight,NumberofOutputNeurons=elmtrain(K,labels',1,900);%STEP3:TesttestImages,testLabels,testIndexs=loadtest(paviaU,paviaU_gt);testImages=reshape(testImages,d(1),d(2),d(3),);row,col=size(paviaU_gt);testK=cnnExtract(newtheta,testImages,cnnConfi

27、g,meta);TestingTime,TestingAccuracy,testoutputlabel,actualoutputs=elmpredict(testK,testLabels',testIndexs,1,InputWeight,BiasofHiddenNeurons,OutputWeight,NumberofOutputNeurons,row,col);predimage1=zeros(row,col);predimage1(testIndexs)=testoutputlabel;figure,imagesc(predimage1);axisoff;OA,kappa,AA,

28、CA=calcError(testLabels,predimage1(testIndexs),1:n_class);fprintf('cnn+elmOverallAccuracyis%fn',OA);fprintf('cnn+elmAverageAccuracyis%fn',AA);fprintf('cnn+elmCAAcuuyracyis%fn',CA);fprintf('cnn+elmkappais%fn',kappa);figure,imagesc(paviaU_gt);axisoff;ThemaincodeofPaviaC

29、enterofMatlab%ConvolutionNeuralNetworkAndExtremLearningMachine%Test2forPaviacentercnnConfig=config3();theta,meta=cnnInitParams(cnnConfig);n_class=cnnConfig.layermeta.numLayers.dimension;loadPavia;loadPavia_gt;images,labels,indexs=loadtrain3(pavia,pavia_gt);d=cnnConfig.layer1.dimension;images=reshape

30、(images,d(1),d(2),d(3),);%STEP2:Train(TheCnnAndElm)options.epochs=1;options.minibatch=25;options.alpha=0.05;newtheta=minFuncSGD(x,y,z)cnnCost(x,y,z,cnnConfig,meta),theta,images,labels,options);K=cnnExtract(newtheta,images,cnnConfig,meta);TrainingTime,TrainingAccuracy,InputWeight,BiasofHiddenNeurons,

31、OutputWeight,NumberofOutputNeurons=elmtrain(K,labels',1,850);%STEP3:TesttestImages,testLabels,testIndexs=loadtest3(pavia,pavia_gt);testImages=reshape(testImages,d(1),d(2),d(3),);row,col=size(pavia_gt);testK=cnnExtract(newtheta,testImages,cnnConfig,meta);TestingTime,TestingAccuracy,testoutputlabe

32、l=elmpredict(testK,testLabels',1,InputWeight,BiasofHiddenNeurons,OutputWeight,NumberofOutputNeurons,row,col);predimage1=zeros(row,col);predimage1(testIndexs)=testoutputlabel;figure,imagesc(predimage1);axisoffOA,kappa,AA,CA=calcError(testLabels,predimage1(testIndexs),1:n_class);fprintf('cnn+e

33、lmOverallAccuracyis%fn',OA);fprintf('cnn+elmAverageAccuracyis%fn',AA);fprintf('cnn+elmCAAcuuyracyis%fn',CA);fprintf('cnn+elmkappais%fn',kappa);figure,imagesc(pavia_gt);axisoffThemaincodeofSalinasofMatlab%ConvolutionNeuralNetworkAndExtremLearningMachine%Test1forSalinas%STE

34、P1:InitializecnnConfig=config();theta,meta=cnnInitParams(cnnConfig);n_class=cnnConfig.layermeta.numLayers.dimension;loadSalinas_corrected;loadSalinas_gt;images,labels,indexs,samimage=loadtrain(salinas_corrected,salinas_gt);d=cnnConfig.layer1.dimension;images=reshape(images,d(1),d(2),d(3),);%STEP2:Tr

35、ain(TheCnnAndElm)options.epochs=1;options.minibatch=30;options.alpha=0.05;newtheta=minFuncSGD(x,y,z)cnnCost(x,y,z,cnnConfig,meta),theta,images,labels,options);K=cnnExtract(newtheta,images,cnnConfig,meta);TrainingTime,TrainingAccuracy,InputWeight,BiasofHiddenNeurons,OutputWeight,NumberofOutputNeurons

36、=elmtrain(K,labels',1,2300);%STEP3:TesttestImages,testLabels,testIndexs=loadtest(salinas_corrected,salinas_gt);testImages=reshape(testImages,d(1),d(2),d(3),);row,col=size(salinas_gt);testK=cnnExtract(newtheta,testImages,cnnConfig,meta);TestingTime,TestingAccuracy,testoutputlabel,actualoutputs=el

37、mpredict(testK,testLabels',testIndexs,1,InputWeight,BiasofHiddenNeurons,OutputWeight,NumberofOutputNeurons,row,col);predimage1=zeros(row,col);predimage1(testIndexs)=testoutputlabel;figure,imagesc(predimage1);axisoff;OA,kappa,AA,CA=calcError(testLabels,predimage1(testIndexs),1:n_class);fprintf('cnn+elmOverallAccuracyis%fn',OA);fprintf('cnn+elmAverageAccuracyis%fn'

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论