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

上传人:b****1 文档编号:2019900 上传时间:2023-05-02 格式:DOCX 页数:19 大小:184.62KB
下载 相关 举报
高光谱图像分类讲解学习.docx_第1页
第1页 / 共19页
高光谱图像分类讲解学习.docx_第2页
第2页 / 共19页
高光谱图像分类讲解学习.docx_第3页
第3页 / 共19页
高光谱图像分类讲解学习.docx_第4页
第4页 / 共19页
高光谱图像分类讲解学习.docx_第5页
第5页 / 共19页
高光谱图像分类讲解学习.docx_第6页
第6页 / 共19页
高光谱图像分类讲解学习.docx_第7页
第7页 / 共19页
高光谱图像分类讲解学习.docx_第8页
第8页 / 共19页
高光谱图像分类讲解学习.docx_第9页
第9页 / 共19页
高光谱图像分类讲解学习.docx_第10页
第10页 / 共19页
高光谱图像分类讲解学习.docx_第11页
第11页 / 共19页
高光谱图像分类讲解学习.docx_第12页
第12页 / 共19页
高光谱图像分类讲解学习.docx_第13页
第13页 / 共19页
高光谱图像分类讲解学习.docx_第14页
第14页 / 共19页
高光谱图像分类讲解学习.docx_第15页
第15页 / 共19页
高光谱图像分类讲解学习.docx_第16页
第16页 / 共19页
高光谱图像分类讲解学习.docx_第17页
第17页 / 共19页
高光谱图像分类讲解学习.docx_第18页
第18页 / 共19页
高光谱图像分类讲解学习.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《高光谱图像分类讲解学习.docx》由会员分享,可在线阅读,更多相关《高光谱图像分类讲解学习.docx(19页珍藏版)》请在冰点文库上搜索。

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

高光谱图像分类讲解学习

高光谱图像分类

《机器学习》课程项目报告

高光谱图像分类

——基于CNN和ELM

学院信息工程学院

专业电子与通信工程

学号2111603035

学生姓名曹发贤

同组学生陈惠明、陈涛

硕士导师杨志景

2016年11月

一、项目意义与价值

高光谱遥感技术起源于20世纪80年代初,是在多光谱遥感技术基础之上发展起来的[1]。

高光谱遥感能够通过成像光谱仪在可见光、近红外、短波红外、中红外等电磁波谱范围获取近似连续的光谱曲线,将表征地物几何位置关系的空间信息与表征地物属性特征的光谱信息有机地融合在了一起,使得提取地物的细节信息成为可能。

随着新型成像光谱仪的光谱分辨率的提高,人们对相关地物的光谱属性特征的了解也不断深入,许多隐藏在狭窄光谱范围内的地物特性逐渐被人们所发现,这些因素大大加速了遥感技术的发展,使高光谱遥感成为21世纪遥感技术领域重要的研究方向之一。

在将高光谱数据应用于各领域之前,必须进行必要的数据处理。

常用的数据处理技术方法包括:

数据降维、目标检测、变化检测等。

其中,分类是遥感数据处理中比较重要的环节,分类结果不但直接提取了影像数据有效信息,可以直接运用于实际需求中,同时也是实现各种应用的前提,为后续应用提供有用的数据信息和技术支持,如为目标检测提供先验信息、为解混合提供端元信息等。

相对于多光谱遥感而言,由于高光谱遥感的波谱覆盖范围较宽,因此我们可以根据需要选择特定的波段来突显地物特征,从而能够精确地处理地物的光谱信[2]。

目前,许多国家开展大量的科研项目对高光谱遥感进行研究,研制出许多不同类型的成像光谱仪。

高光谱遥感正逐步从地面遥感发展到航空遥感和航天遥感,并在地图绘制、资源勘探、农作物监测、精细农业、海洋环境监测等领域发挥重要的作用。

高光谱遥感技术虽然是遥感领域的新技术,但是高光谱图像的分类一直制约着高光谱遥感的应用[3,4],因此对其进行研究显得尤为重要。

高光谱遥感图像较高的光谱分辨率给传统的图像分类识别算法提出严峻的挑战。

波段维数的增加不仅加重了数据的存储与传输的负担,同时也加剧了数据处理过程的复杂性,并且由于波段与波段间存在着大量的冗余信息,从而使得传统图像分类算法并不适用于高光谱遥感图像的分类。

传统的分类方法往往需要很多数目的已知类别的训练样本,从而导致计算量大,时间复杂度高。

另外,如果训练样本的数目较少,采用传统分类算法进行分类时分类精度往往是很低的,因此提高分类精度并减少运算量成为高光谱领域的热点问题。

高光谱遥感图像的波段数目多,并且波段与波段间存在着很大的相关性,因此在进行遥感图像的处理(例如分类)之前通常需要进行降维预处理,这样做不仅可以降低数据空间的维数,减少冗余信息,而且还有利于人工图像解译和后续分类处理和地物识别,从而为解决高光谱遥感分类的难点提供了方便[5]。

二、高光谱图像分类的发展与现状高光谱图像分类作为高光谱图像的基础研究,一直是高光谱图像重要的信息获取手段,它的主要目标是根据待测地物的空间几何信息与光谱信息将图像中的每个像素划分为不同的类别。

高光谱图像分类按照是否有已知类别的训练样本的参与,高光谱图像的分类方式分为监督分类与非监督分类[6]。

在遥感图像自动分类中,传统的基于数理统计的分类方法,主要包括最小距离分类、最大似然分类、波谱角分类、混合距离法分类等,主要依赖地物的光谱属性,基于单个像元进行分类。

统计模式识别方法本身的不足:

1、最大似然法计算强度大,且要求数据服从正态分布

2、K-means聚类分类精度低,分类精度依赖于初始聚类中心

3、最小距离法没有考虑各类别的协方差矩阵,对训练样本数目要求低

近年来对于神经网络分类方法的研究相当活跃。

它区别于传统的分类方法:

在处理模式分类问题时,并不基于某个假定的概率分布,在无监督分类中,从特征空间到模式空间的映射是通过网络自组织完成的。

在监督分类中,网络通过对训练样本的学习,获得权值,形成分类器,且具备容错性。

人工神经网络(ANN)分类方法一般可以获得更高精度的分类结果,因此ANN方法在遥感分类中被广泛应用,特别是对于复杂类型的地物类型分类,ANN方法显示了其优越性。

专家系统分类法也在遥感分类取得了一定的应用。

专家系统是模拟人类逻辑思维的智能系统,将其应用于遥感分类最大的优点就是可以充分利用更多的辅助分类数据。

不过由于专家系统知识库难以建立,影响了它的进一步发展。

支持向量机(SVM)具有严格的理论基础,能较好地解决小样本、非线性、高维数等问题,被成功地应用到多光谱、高光谱遥感图像分类领域。

对于高光谱数据而言,由于波段多、数据量大、数据不确定性等,易受Hughes现象

(即训练样本固定时,分类精度随特征维数的增加而下降)影响。

而样本的获取在高光谱分类中往往是一项比较困难的工作,特别是采用高维特征向量时要求每类的样本数都要比特征维数高,因此在高维信息处理中的精度与效率和高光谱遥感信息精细光谱与大数据量之间仍然存在着极大的矛盾。

三、卷积神经网络理论基础

卷积神经网络是人工神经网络的一种,它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少的权值的数量以节约训练和测试的计算时间。

该优点在网络的输入是多维图像时表现得更加明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。

卷积神经网络是为识别二维数据而专门设计的一个多层感知机,其网络对平移、比例变化和倾斜等具有高度不变性[7]。

在CNh中,图像的一小部分(局部感受区域)作为层级结构的最低层的输入,信息再依次传输到不同的层,每层通过一个数字滤波器去获得观测数据的最显著的特征。

这个方法能够获取对平移、缩放和旋转不变的观测数据的显著特征,因为图像的局部感受区域允许神经元或者处理单元可以访问到最基础的特征,例如定向边缘或者角点。

卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,每个平面又由多个独立的神经元组成。

图2为卷积神经网络的整体结构图

一般地,C层(卷积层)为特征提取层,每个神经元的输入与前一层的局部感受野相连,并提取该局部的特征,一旦该局部特征被提取后,它与其他特征间的位置关系也随之确定下来;S层(下采样层)是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射为一个平面,平面上所有神经元的权值相等。

特征映射结构采用sigmoid函数等映射函数作为卷积网络的激活函数,使得特征映射具有位移不变性。

此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数,降低了网络参数选择的复杂度。

卷积神经网络中的每一个特征提取层

(C-层)都紧跟着一个用来求局部平均与二次提取的计算层(S-层),这种特

有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。

卷积神经网络采用有监督学习的方式进行训练,即任何一个训练样本的类别是已知的,训练样本在空间中的分布不再是依据其自然分布倾向来划分,而是根据同类样本和不同类样本中的空间关系进行划分,这需要不断调整网络模型的参数用以划分样本空间的分类边界的位置,是一个耗时且复杂的学习训练过程[8]。

神经网络在进行训练时,所有的网络权值都用一些不同的小随机数进行初始化,这些小的随机数能偶保证网络不会因为权值过大而进入饱和状态,导致训练失败。

神经网络训练算法包括4个主要部分:

(1)样本集中取出样本(X,yp)并将其输入网络,X代表图像数组,yp代表其类别;

(2)计算此次输入相应的实际输出Op,这是一个前向传播的过程;

(3)用一个指定的损失函数计算出实际输出Op与理想输出Yp的误差;

(4)按极小化误差的方法反向传播调整网络权值。

四、极限学习机

极限学习机(extremelearningmachine)ELM是一种简单易用、有效的单

隐层前馈神经网络SLFNs学习算法。

2004年由南洋理工大学黄广斌副教授提出。

传统的神经网络学习算法(如BP算法)需要人为设置大量的网络训练参

数,并且很容易产生局部最优解。

极限学习机只需要设置网络的隐层节点个数,在算法执行过程中不需要调整网络的输入权值以及隐元的偏置,并且产生唯一的最优解,因此具有学习速度快且泛化性能好的优点。

极限学习机的网络训练模型采用前向单隐层结构。

设m,M,n分别为网络输

入层、隐含层和输出层的节点数,gx是隐层神经元的激活函数,b为阈

值。

设有N个不同样本知匕,1iN,其中Axi1,xi2,...,x^mTRm,tti1,ti2,...,tinTRn,则极限学习机的网络训练模型如图1所示。

图1极限学习机的网络训练模型

极限学习机的网络模型可用数学表达式表示如下:

式中,ili,2i,…,mi表示连接网络输入层节点与第i个隐层节点的输入权值向量;ii1,i2,…,inT表示连接第i个隐层节点与网络输出层节点的输出权值向量;OjOjOQ.rqn丁表示网络输出值。

极限学习机的代价函数E可表示为

N

ES,|回j

ji

式中,s「b/1,2,...,M,包含了网络输入权值及隐层节点阈值。

Huang

际值误差最小,即minES,

minES,可进一」步写为

集的目标值矩阵,H,BT分别定义如下:

点的激活函数无限可微时,网络的输入权值和隐层节点阈值可随机赋值,此时

矩阵H为一常数矩阵,极限学习机的学习过程可等价为求取线性系统HT

最小范数的最小二乘解?

,其计算式为

式中H时矩阵H的MP广义逆。

五、具体实现及主要代码

1、训练的样本及其样本图

ROSISPaviaUniversity

No

Name

Train

Test

1

Asphalt

548

6631

2

Meadows

540

18649

3

Gravel

392

2099

4

Trees

524

3064J

5

Metalsheets

265

13451

6

Baresoil

532

5029

7

Bitumen

375

1330

8

Bricks

514

3682

9

Shadows

231

947

Total

3921

42776

ROSISPaviaCenter

No

Name

Train

Test

1

Water

824

65971

2

Trees

820

7598

3

Meadow

824

309°[

4

Bricks

808

2685

5

Soil

820

6584

6

Asphalt

816

9284

7

Bitumen

808

7287

8

Tile

1260

42826

9

Shadows

476

2863

Total

7456

148152

Salinas

No

Name

Train

Test

1

Brocoligreenweed1

301

2009

2

Brocoligreenweed2

559

3726

3

Fallow

296

1976

4

Fallowroughplow

209

1394

5

Fallowsmooth

402

2678

6

Stubble

594

3959H

7

Celery

537

35791

8

Grapesuntrained

1691

11271

9

Soilvinyarddevelop

930

6203

10

Cornsenscedgreenweeds

492

32781

11

Lettuceromaine4wk

160

1068

12

Lettuceromaine5wk

289

1927

13

Lettuce_romaine_6wk

137

916J

14

Lettuceromaine7wk

161

1070n

15

Vinyarduntrained

1090

7268

16

Vinyardverticaltrellis

271

1807

Total

8119

54129

2、原图及进行分类后的图和各个高光谱数据集每一类的分类精度

TheresultofPaviaUniversity

1.6536

ng刈

cirteluAccun:

yisI.9223SZ

cn+

cm+tln寫町is(L就锻

cr+eln:

占h匸?

i凸7ls匚§二:

cn+^n需仙yrary讣阮S6^:

3-

Iraini.Tig1xme=

tn+*Jii角血苴酊is烏削幻1

1.9344

*r;'xyra

m+山:

AtmayrsC.5"^-?

cn+G"ARizyr眄it0.泳]於

TrainingAccuracy■

cm+tln寫rL^ontyisL9W9]1

ct+

£上匚yr已7L5t.

0・97-07

om+tbhpfaisL91121I

TheresultofPaviaCenter

Testin(Accuracy=

Iraininpluxe

3.3334

IrainingAccuracy=

0.9862

cnn+#l*OverallAccuracyis9S&22?

cnn+t1*Avera(eAccuracyisQ・976868

cnn+el*CA

cnn+elwCA

cnn+elMCA

cnm-el*

cnn+el*

cnrr+el*

匚nrH-el>

cnn+el*

cnrrl-el*

CA

AcuuyracyActtuyracyAcuuyracyAruuyracy

0,999303

0.958147

0.f70550

0.97S399

CAAcuuyracy

CAAcuuyracy

CAAcuuyracy

CAAcuuyr^y

CAAcuuyracy

0.&65067

0.982483

0,94^063

0.992341

0.mass

ktpptis0«9B4768

TheresultofSalinas

 

lesi:

lh£TLU?

-

 

6.6316

lestln£A^亡皿思亡审=

0.9400

3、主要代码

ThemaincodeofPaviaUniversityofMatlab

%%ConvolutionNeuralNetworkAndExtremLearningMachine

%%Test1forPaviaUniversity

%%STEP1:

1nitialize

cnnConfig=config();

[theta,meta]=cnnInitParams(cnnConfig);

n_class=cnnConfig.layer{meta.numLayers}.dimension;loadPaviaU;

loadPaviaU_gt;

[images,labels,indexs,samimage]=loadtrain(paviaU,paviaU_gt);

d=cnnConfig.layer{1}.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,TrainingAccuracy,InputWeight,BiasofHiddenNeurons,OutputWeight,NumberofOutputNeurons]=elmtrain(K,labels',1,900);

%%STEP3:

Test

[testImages,testLabels,testIndexs]=loadtest(paviaU,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,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%f\n',OA);

fprintf('cnn+elmAverageAccuracyis%f\n',AA);

fprintf('cnn+elmCAAcuuyracyis%f\n',CA);

fprintf('cnn+elmkappais%f\n',kappa);figure,imagesc(paviaU_gt);

axisoff;

ThemaincodeofPaviaCenterofMatlab%%ConvolutionNeuralNetworkAndExtremLearningMachine%%Test2forPaviacentercnnConfig=config3();

[theta,meta]=cnnInitParams(cnnConfig);

n_class=cnnConfig.layer{meta.numLayers}.dimension;

loadPavia;

loadPavia_gt;

[images,labels,indexs]=loadtrain3(pavia,pavia_gt);

d=cnnConfig.layer{1}.dimension;

images=reshape(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,OutputWeight,NumberofOutputNeurons]=elmtrain(K,labels',1,850);

%%STEP3:

Test

[testImages,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,testoutputlabel]=elmpredict(testK,testLabels',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%f\n',OA);

fprintf('cnn+elmAverageAccuracyis%f\n',AA);

fprintf('cnn+elmCAAcuuyracyis%f\n',CA);

fprintf('cnn+elmkappais%f\n',kappa);figure,imagesc(pavia_gt);

axisoff

ThemaincodeofSalinasofMatlab%%ConvolutionNeuralNetworkAndExtremLearningMachine%%Test1forSalinas%%STEP1:

InitializecnnConfig=config();

[theta,meta]=cnnInitParams(cnnConfig);n_class=cnnConfig.layer{meta.numLayers}.dimension;loadSalinas_corrected;

loadSalinas_gt;

[images,labels,indexs,samimage]

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

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

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