【图像分类】基于卷积神经网络和主动学习的高光谱图像分类(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

****🏆博主优势:**🌞🌞🌞**博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️**座右铭:**行百里者,半于九十。

📋📋📋++本文目录如下:++🎁🎁🎁

目录

[💥1 概述](#💥1 概述)

[📚2 运行结果](#📚2 运行结果)

[🎉3 参考文献](#🎉3 参考文献)

[🌈4 Matlab代码实现](#🌈4 Matlab代码实现)


💥1 概述

文献来源:

深度神经网络最近已广泛应用于高光谱图像(HSI)分类。然而,它的成功在很大程度上归功于许多标记样品,这些样品的采集需要花费大量的时间和金钱。为了在降低标注成本的同时提高分类性能,本文提出了一种用于HSI分类的主动深度学习方法,该方法将主动学习和深度学习集成到一个统一的框架中。首先,我们训练一个具有有限数量的标记像素的卷积神经网络(CNN)。接下来,我们主动从候选池中选择信息量最大的像素进行标记。然后,使用通过合并新标记的像素构建的新训练集对CNN进行微调。此步骤与上一步一起迭代执行。最后,利用马尔可夫随机场(MRF)来增强类标签平滑度,以进一步提高分类性能。与其他最先进的传统和基于深度学习的HSI分类方法相比,我们提出的方法在三个基准HSI数据集上实现了更好的性能,标记样本明显更少。

原文摘要:

Abstract--- Deep neural network has been extensively applied to hyperspectral image (HSI) classification recently. However, its success is greatly attributed to numerous labeled samples, whose acquisition costs a large amount of time and money. In order to improve the classification performance while reducing the labeling cost, this article presents an active deep learning approach for HSI classification, which integrates both active learning and deep learning into a unified framework. First, we train a convolutional neural network (CNN) with a limited number of labeled pixels. Next, we actively select the most informative pixels from the candidate pool for labeling. Then, the CNN is fine-tuned with the new training set constructed by incorporating the newly labeled pixels. This step together with the previous step is iteratively conducted. Finally, Markov random field (MRF) is utilized to enforce class label smoothness to further boost the classification performance. Compared with the other state-of-the-art traditional and deep learning-based HSI classification methods, our proposed approach achieves better performance on three benchmark HSI data sets with significantly fewer labeled samples. Index Terms--- Active learning (AL), convolutional neural network (CNN), deep learning, hyperspectral image (HSI) classification, Markov random field (MRF).

📚 2 运行结果

部分代码:

%% Parameters for data

data.NameFolder = {'IndianPines', 'PaviaU', 'PaviaCenter'};

data.NameMat = {'GT.mat', 'Feature.mat'};

data.SizeOri = {145, 145, 220, 610, 340, 103, 400, 300, 102};

data.SizeWin = 8;

data.NumClass = {16, 9, 8};

data.IndBand = {10, 80, 200, 12, 67, 98, 10, 60, 90}; % to generate false RGB, which should be less contaminated bands

%data.flagPCA = true;

%data.ReducedDim = 10;

% Three datasets:

% data.flagSet = 1, Indian Pines;

% = 2, Pavia University;

% = 3, Pavia Center.

data.flagSet = 1;

data.NameFolder = data.NameFolder{data.flagSet};

data.SizeOri = data.SizeOri{data.flagSet};

data.NumClass = data.NumClass{data.flagSet};

data.IndBand = data.IndBand{data.flagSet};

%% Parameters for algorithm

alg.SampleSty = 'Rd'; % out of {'Rd', 'Classwise'}

alg.CountSty = 'Num'; % out of {'Num', 'Ratio'}

alg.NumTrn1st = {250, 107, 58};

alg.NumTrn1st = alg.NumTrn1st{data.flagSet};

% if alg.CountSty == 'Ratio'

%alg.RatioTrn1st = {0.02, 0.0025, 0.0025};

%alg.RatioTrn1st = alg.RatioTrn1st{data.flagSet};

alg.CrossVal = 0.05;

alg.NumAlAugPerIte = {250, 150, 100, 50, 107, 107, 107, 26, 20}; % The training samples added in each iteration keeps the same ratio with the training sample number of the first iteration

alg.NumAlAugPerIte = alg.NumAlAugPerIte{data.flagSet};

alg.NumIter = length(alg.NumAlAugPerIte)+1;

alg.AlStra = 'BvSB'; % out of {'BvSB', 'RS', 'EP'};

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

1 Xiangyong Cao, Jing Yao, Zongben Xu, Deyu Meng. Hyperspectral Image Classification with Convolutional Neural Network and Active Learning. IEEE Transactions on Geoscience and Remote Sensing, 2020.

2 H. Bi, F. Xu, Z. Wei, Y. Xue, and Z. Xu, An active deep learning approach for minimally supervised polsar image classification. IEEE Transactions on Geoscience and Remote Sensing, 2019.

🌈4 Matlab代码实现

相关推荐
想做小南娘,发现自己是女生喵13 分钟前
第二周学习文档 Linux C 文件操作
linux·c语言·学习
潜心一志26 分钟前
图像预处理—— 图像的变换与校正(理论)
学习·计算机视觉
nmjkhome28 分钟前
26 疲劳的几个重要概念(第51课)-solid works simulation
学习
程序猿乐锅33 分钟前
【从0-1学习Python | 第六篇】 Python 函数:定义、参数与返回值
开发语言·python·学习
燕落南枝33 分钟前
HTML 学习:input 单选、复选与文件域详解
服务器·学习·html
星恒随风12 小时前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式
qq_2842740512 小时前
数控机床编程基础与坐标系:编程六步流程、程序号/程序段/程序字格式,与右手定则下车床铣床XYZ轴判定(含考点)
笔记·学习·自动化·制造
德林恩宝12 小时前
On-Policy Distillation(OPD)学习文档
人工智能·学习·机器学习·大模型·llm·大模型微调
xxwl58513 小时前
区域赛分类题解
c++·笔记·学习·算法
xxwl58517 小时前
区域赛算法模版第八章---贪心(Greedy)
c++·笔记·学习·算法