基于KNN算法的遥感图像分类

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

模式识别实验报告学生姓名:王晨曦班学号:075113-08指导老师:马丽中国地质大学(武汉)机械与电子信息学院2014年6月基于kNN算法的遥感图像分类实验目标:1.掌握KNN算法原理2.用MATLAB实现kNN算法,并进行结果分析实验内容:1.采用zy3sample数据(400*400*4),该数据分为4个类别:土地;农作物/植被;大棚;道路。有余力的同学最好再使用INP高光谱数据(数据全称:IndianaIndianPines,大小145*145*200)进行分类。2.随机在所有带标记的数据中(也就是你自己做的ROI)选择train和test数据(比例自己定,可以50%train数据,50%test数据,也可以30%train数据70%test数据,或者其他比例;可以尝试不同train数据数目下,分类效果的差别)【提供随机选择数据的代码】,然后进行kNN分类。随机选择10次,然后求平均结果(以及标准差)作为最终对算法的评价。3.利用所有或者部分带标记的数据作为train数据,对整个图像进行分类,得到整个图像的分类结果图。【提供ColorTable和画出分类图像的代码】4.关于K值的选择,可以选择为1,3,5,7,9,11等。有余力的同学,分别用这6种K的取值进行kNN算法,得到每种K值下的总体分类精度OA,然后进行比较(plot画出不同K值下的OA变化曲线,或者给出表格,写出每种K值下的OA)。5.关于距离度量的选择,可以采用欧氏距离或者光谱角距离(提供代码;zy3数据应该欧式距离更好,INP数据应该SAM更好,因为INP是高光谱数据,zy3只有4个波段是多光谱数据。SAM对高光谱数据的效果更好),有余力的同学,这两种距离都采用,然后做比较,或者尝试其他可能更有效的距离度量方式。数据介绍:1.调用multibandread函数从二进制文件中读取多波段数据。2.用reshape函数,重置图像的行数列数。4.用find函数查找各个类别对应的样本。5.用plot函数画出所有类别的平均光谱。5.用imagesc函数画出所有类别的协方差矩阵。实验结果与分析:心得体会:经过本次试验,我不仅学会利用Matlab软件对遥感图像进行简单的处理,他速度快,方法科学,可为遥感影像的判读提供良好的条件,从而提高判读精度,还学会了使用软件ENVI,对遥感图像进行数据处理、图像分类等等,产生了浓厚的兴趣。相信通过学习,我会更好的将ENVI运用到今后的学习实践中。基于PCA/LDA降维的遥感图像分类实验目标:1.掌握K-means算法原理2.用MATLAB实现K-means算法,并进行结果分析实验内容:1.采用INP数据(145*145*200),该数据有16个类别,任选PCA或LDA算法进行数据降维,然后对降维数据采用kNN分类(k=1)。2.如果选择PCA降维算法,(1)得到整个图像的降维结果,报告中画出前面5个主成分/波段的图像。(2)降维波段数量d作为一个参数(选择为:3,5,10,15,20,30,40,50)。对每一个d下的降维结果(8个不同的d取值,对应8个不同的降维数据),进行kNN(k=1)分类。具体实现:随机10次选择train数据和test数据(例如30%train,70%test),对每次选择出来的数据,进行pca降维,求出不同d下的OA(8个不同的d,那么就有8个OA)。10次运行的话,就可以对每个d的10个OA求一个平均结果。然后画图(plot,x轴表示降维所保留的波段数量d,y轴表示每种d下的10次平均OA)。(3)和第三次上机的结果进行比较(数据不降维,直接采用kNN算法分类),看PCA降维的作用(对于kNN算法,PCA降维是因为信息损失而使得分类效果下降,还是PCA降维提高了分类效果)。3.如果选择LDA降维算法,(1)得到整个图像的降维结果(INP数据有16个类别,那么LDA的降维结果有15个波段),报告中画出前面5个波段的图像。(2)对于降维数据,进行kNN(k=1)分类,随机10次选择train数据和test数据(例如30%train,70%test),求出10次分类的平均结果OA。(3)【选作optional】采用LDA降维数据对全图进行1NN分类(1NN分类器作用在LDA降维数据上),画出全图分类结果。(4)和第三次上机的结果进行比较(数据不降维,直接采用kNN算法分类),看LDA降维的作用(对于kNN算法,LDA降维是因为信息损失而使得分类效果下降,还是LDA降维提高了分类效果)。算法原理:(1)原理:首先从n个数据对象任意选择k个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数.k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。该算法的最大优势在于简洁和快速。算法的关键在于初始中心的选择和距离公式。(2)步骤:初始化距离K个聚类的质心(随机产生);计算所有数据样本与每个质心的欧氏距离,将数据样本加入与其欧氏距离最短的那个质心的簇中(记录其数据样本的编号);设置最多迭代次数,也就是不管迭代有没有收敛,只要达到这个迭代次数就停止。数据介绍:1.调用multibandread函数从二进制文件中读取多波段数据。2.用reshape函数,重置图像的行数列数。4.用find函数查找各个类别对应的样本。5.用Euclidian_distanc函数选择初始聚类中心根据最小距离原则分类。5.用colortable函数画出整个图像的聚类结果。实验结果与分析:心得体会:通过本次试验,我学会了通过K-means算法对遥感图像进行分类,但是过程中遇到了不少问题,比如程序运行的速度过慢等等。由于道路占有的像素很少,所以分类过后道路和大棚没有很好地区分开,这个问题还没有很好的解决,造成了遗憾,相信在大家的讨论和更进一步的学习之后,我们能够完善这一程序,得到更好的结果。

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功