【图像分类】基于卷积神经网络和主动学习的高光谱图像分类(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. ## [🌈](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzk0MDMzNzYwOA==&action=getalbum&album_id=2591810113208958977#wechat_redirect "🌈")****4 Matlab代码实现****

相关推荐
EnglishJun15 分钟前
Linux系统编程(二)---学习Linux系统函数
linux·运维·学习
im_AMBER15 分钟前
Leetcode 115 分割链表 | 随机链表的复制
数据结构·学习·算法·leetcode
Liue6123123116 分钟前
【YOLO11】基于C2CGA算法的金属零件涂胶缺陷检测与分类
人工智能·算法·分类
小陶的学习笔记43 分钟前
python~基础
开发语言·python·学习
学编程的闹钟1 小时前
92【<h1-h6>指定文字大小】
学习
森之鸟1 小时前
【我的经济学基础01-宏观经济】
学习
我的xiaodoujiao1 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 46--撰写 README项目说明文档文件
python·学习·测试工具·pytest
第七序章1 小时前
【Linux学习笔记】初识Linux —— 理解gcc编译器
linux·运维·服务器·开发语言·人工智能·笔记·学习
学编程的闹钟1 小时前
99【html与php的混写】
学习
-Springer-1 小时前
STM32 学习 —— 个人学习笔记5(EXTI 外部中断 & 对射式红外传感器及旋转编码器计数)
笔记·stm32·学习