【图像分类】基于卷积神经网络和主动学习的高光谱图像分类(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代码实现

相关推荐
电科_银尘2 小时前
【深度学习项目实战·15】小样本图像分类:迁移学习识别蚂蚁与蜜蜂
深度学习·分类·迁移学习
La Pulga2 小时前
【FreeRTOS源码学习笔记】任务延时列表
笔记·mcu·学习·嵌入式·freertos·实时操作系统
楚山之石4 小时前
【JCO】mpMRI 先行替代 TURBT 初始分期:BladderPath 随机试验让 MIBC 患者提前 45 天得到正确治疗
人工智能·学习·mri·医学影像
Peter-OK7 小时前
PostgreSQL学习笔记(入门-进阶-精通说明)
笔记·学习·postgresql
承渊政道7 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
橙橙笔记9 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
Hhy_110712 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
山甫aa13 小时前
锁一篇搞定:乐观锁、悲观锁、CAS、数据库锁与分布式锁【从零开始的 Web 后端学习】
java·数据库·分布式·后端·学习·web
m0_5648768413 小时前
CMake学习
学习
只愿云淡风清14 小时前
正则表达式学习笔记 02:基础语法
笔记·学习·正则表达式