ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:184.62KB ,
资源ID:2019900      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2019900.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高光谱图像分类讲解学习.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

高光谱图像分类讲解学习.docx

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

2、人们对相关地物的光谱属性特征的了解也不断深入,许多隐藏 在狭窄光谱范围内的地物特性逐渐被人们所发现,这些因素大大加速了遥 感技术的发展,使高光谱遥感成为 21 世纪遥感技术领域重要的研究方向之 一。在将高光谱数据应用于各领域之前,必须进行必要的数据处理。常用的 数据处理技术方法包括:数据降维、目标检测、变化检测等。其中,分类 是遥感数据处理中比较重要的环节,分类结果不但直接提取了影像数据有 效信息,可以直接运用于实际需求中,同时也是实现各种应用的前提,为 后续应用提供有用的数据信息和技术支持,如为目标检测提供先验信息、 为解混合提供端元信息等。相对于多光谱遥感而言,由于高光谱遥感的波谱覆盖范围

3、较宽,因此我 们可以根据需要选择特定的波段来突显地物特征,从而能够精确地处理地 物的光谱信 2 。目前,许多国家开展大量的科研项目对高光谱遥感进行研 究,研制出许多不同类型的成像光谱仪。高光谱遥感正逐步从地面遥感发 展到航空遥感和航天遥感,并在地图绘制、资源勘探、农作物监测、精细 农业、海洋环境监测等领域发挥重要的作用。高光谱遥感技术虽然是遥感 领域的新技术,但是高光谱图像的分类一直制约着高光谱遥感的应用 3,4,因此对其进行研究显得尤为重要。高光谱遥感图像较高的光谱分辨率给传统的图像分类识别算法提出严峻 的挑战。波段维数的增加不仅加重了数据的存储与传输的负担,同时也加 剧了数据处理过程的复杂

4、性,并且由于波段与波段间存在着大量的冗余信 息,从而使得传统图像分类算法并不适用于高光谱遥感图像的分类。传统 的分类方法往往需要很多数目的已知类别的训练样本,从而导致计算量 大,时间复杂度高。另外,如果训练样本的数目较少,采用传统分类算法 进行分类时分类精度往往是很低的,因此提高分类精度并减少运算量成为 高光谱领域的热点问题。高光谱遥感图像的波段数目多,并且波段与波段间存在着很大的相关 性,因此在进行遥感图像的处理(例如分类)之前通常需要进行降维预处 理,这样做不仅可以降低数据空间的维数,减少冗余信息,而且还有利于 人工图像解译和后续分类处理和地物识别,从而为解决高光谱遥感分类的 难点提供了方

5、便 5 。二、 高光谱图像分类的发展与现状 高光谱图像分类作为高光谱图像的基础研究,一直是高光谱图像重要的信 息获取手段,它的主要目标是根据待测地物的空间几何信息与光谱信息将图像 中的每个像素划分为不同的类别。高光谱图像分类按照是否有已知类别的训练 样本的参与,高光谱图像的分类方式分为监督分类与非监督分类 6 。在遥感图像自动分类中,传统的基于数理统计的分类方法,主要包括最小 距离分类、最大似然分类、波谱角分类、混合距离法分类等,主要依赖地物的 光谱属性,基于单个像元进行分类。统计模式识别方法本身的不足:1、最大似然法计算强度大,且要求数据服从正态分布2、 K-means聚类分类精度低,分类精

6、度依赖于初始聚类中心3、 最小距离法没有考虑各类别的协方差矩阵,对训练样本数目要求低近年来对于神经网络分类方法的研究相当活跃。它区别于传统的分类方 法:在处理模式分类问题时,并不基于某个假定的概率分布,在无监督分类 中,从特征空间到模式空间的映射是通过网络自组织完成的。在监督分类中, 网络通过对训练样本的学习,获得权值,形成分类器,且具备容错性。人工神 经网络( ANN )分类方法一般可以获得更高精度的分类结果,因此 ANN 方法 在遥感分类中被广泛应用,特别是对于复杂类型的地物类型分类, ANN 方法显 示了其优越性。专家系统分类法也在遥感分类取得了一定的应用。专家系统是模拟人类逻 辑思维的

7、智能系统,将其应用于遥感分类最大的优点就是可以充分利用更多的 辅助分类数据。不过由于专家系统知识库难以建立,影响了它的进一步发展。支持向量机(SVM )具有严格的理论基础,能较好地解决小样本、非线 性、高维数等问题,被成功地应用到多光谱、高光谱遥感图像分类领域。对于 高光谱数据而言,由于波段多、数据量大、数据不确定性等,易受 Hughes现象(即训练样本固定时,分类精度随特征维数的增加而下降)影响。而样本的获 取在高光谱分类中往往是一项比较困难的工作,特别是采用高维特征向量时要 求每类的样本数都要比特征维数高,因此在高维信息处理中的精度与效率和高 光谱遥感信息精细光谱与大数据量之间仍然存在着极

8、大的矛盾。三、卷积神经网络理论基础卷积神经网络是人工神经网络的一种,它的权值共享网络结构使之更类 似于生物神经网络,降低了网络模型的复杂度,减少的权值的数量以节约训练 和测试的计算时间。该优点在网络的输入是多维图像时表现得更加明显,使图 像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重 建过程。卷积神经网络是为识别二维数据而专门设计的一个多层感知机,其网 络对平移、比例变化和倾斜等具有高度不变性 7。在CNh中,图像的一小部分(局部感受区域)作为层级结构的最低层的 输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据 的最显著的特征。这个方法能够获取对平移、

9、缩放和旋转不变的观测数据的显 著特征,因为图像的局部感受区域允许神经元或者处理单元可以访问到最基础 的特征,例如定向边缘或者角点。卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,每个平 面又由多个独立的神经元组成。图 2为卷积神经网络的整体结构图一般地,C层(卷积层)为特征提取层,每个神经元的输入与前一层的局部 感受野相连,并提取该局部的特征,一旦该局部特征被提取后,它与其他特征 间的位置关系也随之确定下来;S层(下采样层)是特征映射层,网络的每个 计算层由多个特征映射组成,每个特征映射为一个平面,平面上所有神经元的 权值相等。特征映射结构采用sigmoid函数等映射函数作为卷积网络

10、的激活函 数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的 个数,降低了网络参数选择的复杂度。卷积神经网络中的每一个特征提取层(C-层)都紧跟着一个用来求局部平均与二次提取的计算层( S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。卷积神经网络采用有监督学习的方式进行训练,即任何一个训练样本的类 别是已知的,训练样本在空间中的分布不再是依据其自然分布倾向来划分,而 是根据同类样本和不同类样本中的空间关系进行划分,这需要不断调整网络模 型的参数用以划分样本空间的分类边界的位置,是一个耗时且复杂的学习训练 过程8。神

11、经网络在进行训练时,所有的网络权值都用一些不同的小随机数进行初 始化,这些小的随机数能偶保证网络不会因为权值过大而进入饱和状态,导致 训练失败。神经网络训练算法包括 4个主要部分:(1) 样本集中取出样本(X,yp)并将其输入网络,X代表图像数组,yp代表 其类别;(2) 计算此次输入相应的实际输出 Op ,这是一个前向传播的过程;(3) 用一个指定的损失函数计算出实际输出 Op与理想输出Yp的误差;(4) 按极小化误差的方法反向传播调整网络权值。四、极限学习机极限学习机(extreme learning machine) ELM 是一种简单易用、有效的单隐层前馈神经网络 SLFNs学习算法。

12、2004年由南洋理工大学黄广斌副教授提 出。传统的神经网络学习算法(如 BP算法)需要人为设置大量的网络训练参数,并且很容易产生局部最优解。极限学习机只需要设置网络的隐层节点个 数,在算法执行过程中不需要调整网络的输入权值以及隐元的偏置,并且产生 唯一的最优解,因此具有学习速度快且泛化性能好的优点。极限学习机的网络训练模型采用前向单隐层结构。设 m,M,n分别为网络输入层、隐含层和输出层的节点数, g x是隐层神经元的激活函数, b为阈值。设有N 个不同样本知匕 ,1 i N ,其中 A xi1,xi2,.,xm T Rm,t ti1,ti2,.,tin T Rn,则极限学习机的网络训练模型

13、如图1所示。图1极限学习机的网络训练模型极限学习机的网络模型可用数学表达式表示如下:式中,i li,2i,mi表示连接网络输入层节点与第i个隐层节点的输入权 值向量;i i1, i2,,in T表示连接第i个隐层节点与网络输出层节点的输出 权值向量;Oj OjOQ.rqn 丁表示网络输出值。极限学习机的代价函数E可表示为NE S, |回 jj i式中,s b/ 1,2,., M ,包含了网络输入权值及隐层节点阈值。 Hua ng际值误差最小,即min E S,min E S, 可进一 步 写为集的目标值矩阵,H , B T分别定义如下:点的激活函数无限可微时,网络的输入权值和隐层节点阈值可随机

14、赋值,此时矩阵H为一常数矩阵,极限学习机的学习过程可等价为求取线性系统 H T最小范数的最小二乘解?,其计算式为式中H时矩阵H的MP广义逆。五、具体实现及主要代码1、 训练的样本及其样本图ROSIS Pavia Uni versityNoNameTrainTest1Asphalt54866312Meadows540186493Gravel39220994Trees5243064 J5Metal sheets2651345 16Bare soil53250297Bitume n37513308Bricks51436829Shadows231947Total392142776ROSIS Pavia

15、 Cen terNoNameTrainTest1Water824659712Trees82075983Meadow8243094Bricks80826855Soil82065846Asphalt81692847Bitume n80872878Tile1260428269Shadows4762863Total7456148152Sali nasNoNameTrainTest1Brocoli gree n weed 130120092Brocoli gree n weed 255937263Fallow29619764Fallow rough plow20913945Fallow smooth40

16、226786Stubble5943959 H7Celery5373579 18Grapes untrained1691112719Soil v iny ard develop930620310Corn sen sced gree n weeds4923278 111Lettuce romai ne 4wk160106812Lettuce roma in e 5wk289192713Lettuce_romai ne_6wk137916 J14Lettuce roma in e 7wk1611070 n15Vi nyard un trai ned1090726816Vinyard vertical

17、 trellis2711807Total8119541292、原图及进行分类后的图和各个高光谱数据集每一类的分类精度The result of Pavia University1.6536ng刈cirtelu Accun:y is I.9223SZcn+n trecaje Accuncy iscm+tln 寫 町 is (L 就锻cr+eln :占 h匸?i凸7 ls 匚 二:非cn+n 需 仙yrary 讣 阮 S6:3-I r aini.Tig 1 xme =tn+*Jii角血苴酊is烏削幻11. 9344m+n :* r;xyray ii Q.那一36:m+山:A tmay rs C.

18、5-?cn+G A Rizyr眄 it 0.泳於Training Accuracy cm+tln 寫 rLonty is L9W91ct+cnn+el*cnrrl-el*CAAcuuyracy Acttuyracy Acuuyracy Aruuyracy0,9993030.9581470. f 705500. 97S399CA AcuuyracyCA AcuuyracyCA AcuuyracyCA AcuuyryCA Acuuyracy0. &650670.9824830,940630.9923410. massktppt is 0 9B4768The result of Sali nasle

19、si: lh T LU?-6.6316lest lnA亡皿思亡审=0.94003、主要代码The mai n code of Pavia Un iversity of Matlab% Con voluti on Neural Network And Extrem Lear ning Mach ine%Test 1 for Pavia Un iversity% STEP 1:1 nitializecnnConfig=config();theta, meta = cnnInitParams(cnnConfig);n_class = cnnConfig.layermeta.numLayers.dim

20、ension; load PaviaU ;load PaviaU_gt ;images, labels, indexs,samimage = loadtrain(paviaU, paviaU_gt);d = cnnConfig.layer1.dimension; images = reshape(images,d(1),d(2),d(3),);% STEP 2: Train (The Cnn And Elm) options.epochs = 1;options.minibatch = 30;options.alpha = 0.05;newtheta = minFuncSGD(x,y,z) c

21、nnCost(x,y,z,cnnConfig,meta),theta,images,labels,options);K = cnnExtract(newtheta,images,cnnConfig,meta); TrainingTime,TrainingAccuracy,InputWeight,BiasofHiddenNeurons,Output Weight,NumberofOutputNeurons =elmtrain(K,labels ,1, 900);% STEP 3: TesttestImages, testLabels, testIndexs = loadtest(paviaU,

22、paviaU_gt); testImages = reshape(testImages,d(1),d(2),d(3),);row, col = size(paviaU_gt);testK = cnnExtract(newtheta,testImages,cnnConfig,meta); TestingTime, TestingAccuracy,testoutputlabel,actualoutputs = elmpredict(testK,testLabels,testIndexs,1,InputWeight,BiasofHiddenNeu rons,OutputWeight,Numberof

23、OutputNeurons,row,col); predimage1=zeros(row,col);predimage1(testIndexs)=testoutputlabel; figure,imagesc(predimage1);axis off ;OA,kappa,AA,CA= calcError(testLabels, predimage1(testIndexs), 1:n_class);fprintf( cnn+elm Overall Accuracy is %fn ,OA);fprintf( cnn+elm Average Accuracy is %fn ,AA);fprintf(

24、 cnn+elm CA Acuuyracy is %fn ,CA);fprintf( cnn+elm kappa is %fn ,kappa); figure,imagesc(paviaU_gt);axis off ;The main code of Pavia Center of Matlab % Convolution Neural Network And Extrem Learning Machine %Test 2 for Pavia center cnnConfig = config3();theta, meta = cnnInitParams(cnnConfig);n_class

25、= cnnConfig.layermeta.numLayers.dimension;load Pavia ;load Pavia_gt ;images, labels, indexs = loadtrain3(pavia,pavia_gt);d = cnnConfig.layer1.dimension;images = reshape(images,d(1),d(2),d(3),);% STEP 2: Train (The Cnn And Elm)options.epochs = 1;options.minibatch = 25;options.alpha = 0.05;newtheta =

26、minFuncSGD(x,y,z) cnnCost(x,y,z,cnnConfig,meta),theta,images,labels,options);K = cnnExtract(newtheta,images,cnnConfig,meta); TrainingTime,TrainingAccuracy,InputWeight,BiasofHiddenNeurons,Output Weight,NumberofOutputNeurons =elmtrain(K,labels ,1, 850);% STEP 3: TesttestImages, testLabels, testIndexs

27、= 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,testoutputlabel = elmpredict(testK,testLabels,1,InputWeight,BiasofHiddenNeurons,Output Weight,NumberofOutputNeur

28、ons,row,col);predimage1=zeros(row,col);predimage1(testIndexs)=testoutputlabel;figure,imagesc(predimage1);axis offOA,kappa,AA,CA= calcError(testLabels, predimage1(testIndexs),1:n_class);fprintf( cnn+elm Overall Accuracy is %fn ,OA);fprintf( cnn+elm Average Accuracy is %fn ,AA);fprintf( cnn+elm CA Acu

29、uyracy is %fn ,CA);fprintf( cnn+elm kappa is %fn ,kappa); figure,imagesc(pavia_gt);axis offThe main code of Salinas of Matlab % Convolution Neural Network And Extrem Learning Machine %Test 1 for Salinas % STEP 1: Initialize cnnConfig=config();theta, meta = cnnInitParams(cnnConfig); n_class = cnnConfig.layermeta.numLayers.dimension; load Salinas_corrected ;load Salinas_gt ;images, labels, indexs,samimage

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2