EGU-Net 一个自监督光谱解混模型理解

  • 基础知识
    • 基本术语
    • 混合原因
    • 最终目的
  • 论文理解
    • 本文主要贡献
    • 混合模型介绍
      • Linear Mixing Model-based Unmixing(基于线性混合模型的解混)
      • Bilinear Mixing Model-based Unmixing(基于双线性模型的解混)
      • Deep Learning-based Unmixed(基于深度学习的解混)
    • EGU-Net
      • E-Net部分
      • UR-Net部分
      • Spatial-Spectral Unmixing with CNNs: An Extension
  • 总结

论文地址:论文
代码地址:代码

基础知识

可视化,是所有技术的终极核心之一。如何让一个理论,一个情景从抽象的公式转变为通俗易懂的画面,始终是科研工作者们的难题。无论是目标地点的位置,或者战场的实时指挥,都离不开可视化。而遥感,正恰恰提供了一个远距离,非接触的,将原本立体的空间平面化,抽象的信息具象化的能力。因此,遥感自被发明伊始便受人重视。

然而,随着人们登入太空,掌握了卫星等为遥感服务的先进技术时,问题出现了。由于距离遥远,宇宙空间不确定性大,以及仪器精度不足等情况,遥感器的摄影等功能受到了极大的限制。为了解决此类问题,我们已经尝试构建了一系列线性混合模型,以及非线性混合模型,然而往往局限性极大,且效果不佳。在深度学习技术火热的今天,越来越多人尝试用人工智能解决高光谱混合问题,由此深度学习+高光谱解混技术(Hyperspectral unmixing)应运而生。

基本术语

  1. 像元:也称作像素,遥感器一般将捕获的信息以像元为单位存储,一个像元理论上只含有一种物体。
  2. 混合像元:在光线从地面或其他位置传播而来时,往往会发生各种反射与散射。并且像元为单位的存储方式是离散的,而地面是连续的,这会导致信息的逸散。而仪器本身也会带来很多问题。这些问题合而为一,就导致了一个像元中含有多种物体,这种像元被称为混合像元。在遥感图像中,混合像元十分普遍。
  3. 端元(endmember):由于混合像元十分普遍,为了区分每个像素中的物体种类,端元应运而生。端元是混合像元的基础单元,也即是说一个混合像元是由多个端元组成的,每个端元只由一种物体组成。
  4. 丰度:丰度类似于密度,指代的是一个混合像元中各种端元的组成比例。因此,也引出了丰度矩阵
  5. 高光谱:高光谱是相对来说的概念,我们一般接触到RGB有三个通道,而高光谱往往由30个以上光谱通道组成。一般来说,通道越多,信息也就越多。

混合原因

混合大体上可分为两类:
线性混合(光线仅仅经过一种纯净物体反射或散射)

匀质混合:物体在多种物体之间散射,或者在均匀的混合体上散射

两种可能叠加的混合:既存在线性混合,也存在非线性混合

一种解释是:混合像元是由它所包含的异种表面呈现出的特质光谱线性叠加而成的(加权求和)。这成为线性混合
另一种解释:混合像元所传输的光会与其包含表面上的不同物质发生多次散射,并且遥感器捕获时,由于朝向,光线入射位置,器材材质等因素造成的影响均并非线性。这称为非线性混合。

最终目的

深度学习+高光谱解混技术,是为了解决单纯的物理与数学建模无法解决的泛用性与精确度问题。

最终,是要利用每个混合像元高光谱中的丰富信息,以及其周边像素点之间的上下文信息,来学习与构建出可以将混合像元恢复为端元矩阵×丰度矩阵(张量)的模型。

论文理解

本文主要贡献

  1. 运用深度学习强大数据拟合能力,构建了一个更高效和泛用的能解决非线性Blind的深度学习架构——EGU-Net.
  2. 总体架构分为两个不同版本:一个是仅考虑像素级高光谱解混的深度神经网络架构;一个是综合考虑到空间光谱信息去解混高光谱图像的卷积神经网络架构。
  3. 不像以往自编码的架构,作者提出了一个端到端的双流(end-to-end,two stream)的深度解混网络,通过自监督技术,去模拟真实世界中端元的物理性质。
  4. 由于缺乏地面真值(也就是有标签数据集不足或者精度不高),因此这些方法很难得到定量检测。因此,作者给出了一个慕尼黑上空的地面真值,这个真值可以由一个架构快速生成。(类似于给了一个数据集?)

混合模型介绍

Linear Mixing Model-based Unmixing(基于线性混合模型的解混)

作者提出,很多成功的解决光谱多样性的解混方法尝试都是基于LMM(线性混合模型)构建出来的。
为了方便大家读取,我这边简单介绍一下:

Dictionary-Adjusted Unmixing Approach:
将SV(光谱变化)问题,转化为端元字典与光谱图书馆的错误匹配问题。并由此得出光谱特征,希望这样可以提升泛用性。

Perturbed LMM:
将SV建模为一个施加在端元上的扰动信息。

Extended LMM:
通过Geographical Perspective(几何透视)来为每个端元的因子建模。

Augmented LMM:
通过学习ELMM没有提取到的额外基于SV的字典,并且经过验证,该字典是与端元是无关或者弱相关的。

Region-based Multi-view Spare regression Model:
通过合并光谱库来矫正由SV引起的误匹配。

然而,由于其遵循线性模型改装,以上这些模型都已经达到了其瓶颈,尤其是当它们面对的是复杂的光谱环境。

Bilinear Mixing Model-based Unmixing(基于双线性模型的解混)

该种方法是为了克服以上线性解混的局限性。部分非线性模型通过特定的一些方法来提高解混性能,从而一定程度上改善了高光谱解混的性能。

这些技术很好的处理了SV,尤其是在多层的材质混合(multi-layered material mixture)。但由于其内存(内部忍耐度)不足,因此对于数据的拟合与泛化能力不足。因此,在大幅度的SV时,经常会出现模型效果不佳的问题。

Deep Learning-based Unmixed(基于深度学习的解混)

由于深度学习技术在许多领域的成功,HU也开始采取DL来减少人工调参的复杂度与增加模型的表达能力。

其中一个方法是基于ANNs光谱混合分析。
另一个是通过像素级的ANNs去解混光谱特征。

这些DL方法比起普通的线性或者非线性的模型,均在高光谱解混的目标下完成的很好。

目前,有以下的模型被提出:

  1. Pallson etal. :包含一个非线性解混模型与线性解混模型
  2. Two-stage AE:一个AE负责离群值去除,并实施HU,而另一个AE运用非负稀疏约束去强化HU的表现。
  3. 提出了解调稀疏去噪AE,为HU提供了一个潜在的解决方案。
  4. CNN-induced Research:运用了空间光谱方法解混高光谱图像。这证明了对空间信息进行建模对于HU任务的关键作用。

作者团队也正是受到CNN的启发,而尝试运用目标像素与周围之间的位置关系来进行解混的。

EGU-Net

这是一个自监督双流端到端的网络:

主干由一个端元网络(E-Net)和一个解混重构网络(UR-Net)组成。

前者主要通过学习真实的高光谱图像中(纯净的)像素的分布到类似于热编码的丰度图,学习端元的层次结构表示,并以此学习到简易的HU方法。

后者是套用以往的Backbone,形成寻常的编码-解码器。

至关重要的是,参数共享将两个流紧密的结合在了一起。
E-Net可以提取出端元潜在的性质,并将其分享给UR-Net,也可以吸收UR-Net统筹考虑全部像素的知识,使模型更加平滑与泛用。

E-Net部分

为了稳定blind HU的进程,与提取出端元和丰度值的估计值的物理特性,可以使用一个额外的网络,将一些高光谱图像中较为纯净的端元作为输入来完成端元提取工作与恰当输出类热编码的丰度值。例如VCA(顶点成分分析)——一种思路上类似于SPA(逐次投影算法)的方法。

SPA——
先找到第一个初始端元,然后循环寻找一个与已提取的端元正交的投影矩阵,再将像元投影至该矩阵,投影长度最大的则为新提取的端元。

这是一个典型的自监督网络,不需要输入任何人工标注的数据,而是需要输入高分光谱像的光谱束(Spectral Bundles),它通过以下三步来提取端元的光谱束知识。

  1. 先将高光谱图像分为确定数量的部分重叠的Block.
  2. 使用VCA从每个Block中提取端元,提取的端元数量由HySime算法决定。
  3. 使用聚类算法,例如K-Mean,用于移除重复的端元以及将提取出的端元聚集到K簇处。K值的设定在经验和实验中均设立在所有高光谱像素的20%左右。

数学部分
被提取出的端元定义为: { x i } i = 1 N e ∈ R B \left\{x_i\right\}_{i=1}^{N_e}\in R^B {xi​}i=1Ne​​∈RB
指代B个带和第Ne个像素
而它们的纯净丰度为: { y i } i = 1 N e ∈ R C \left\{y_i\right\}_{i=1}^{N_e}\in R^C {yi​}i=1Ne​​∈RC
第i个端元在E-Net的第l个编码层的表示为 z i ( l ) z_{i}^{(l)} zi(l)​

在此处,g(.)代表着一个非线性激活函数
每一个编码层的输出都会紧跟着一个BN去加快参数学习速度并减轻梯度爆炸与消失的问题。
BN层如下
z B N i ( l ) = γ z ^ i ( l ) + β z_{{\rm BN}_i}^{\left(l\right)}=\gamma{\hat{z}}_i^{\left(l\right)}+\beta zBNi​(l)​=γz^i(l)​+β
其中 z ^ i ( l ) {\hat{z}}_i^{\left(l\right)} z^i(l)​是 z i ( l ) {{z}}_i^{\left(l\right)} zi(l)​Z-Score标准化的结果,γ和β是可学习的网络参数。
在将 z B N i ( l ) z_{{\rm BN}_i}^{\left(l\right)} zBNi​(l)​放入激活函数之前,Dropout层可能可以在一定程度上帮助我们丢掉可能的异常值和SV。在作者模型中,Dropout层仅仅在第一个Block中被激活,最终结果如下:
a i ( l ) = g ( z D r o p o u t i ( l ) ) a_i^{\left(l\right)}=g\left(z_{{\rm Dropout}_i}^{\left(l\right)}\right) ai(l)​=g(zDropouti​(l)​)

损失函数,作者使用的是交叉熵函数

L E = − 1 N e ∑ i = 1 N e [ y i l o g a S o f t i + ( 1 − y i ) l o g ( 1 − a S o f t i ) ] L_E=\frac{-1}{N_e}\sum_{i=1}^{N_e}\left[y_iloga_{{\rm Soft}_i}+(1-y_i)log(1-a_{{\rm Soft}_i})\right] LE​=Ne​−1​∑i=1Ne​​[yi​logaSofti​​+(1−yi​)log(1−aSofti​​)]

UR-Net部分

作者团队受到最近基于AE的解混架构的启发,设计了与之相似的UR-Net,使用了与编码解码类似的结构,解混与重构。为了提高其效果,作者主要用了以下两个方法。

  1. 采取大量非线性函数,而不是线性函数,以提升表达能力
  2. 与E-Net参数共享,以提升学习能力。

损失函数如下:
L U R = min ⁡ W u r b u r X − f r g u W u r , b u r , X F 2 L_{UR}=\begin{matrix}\min\\W_{ur}b_{ur}\\\end{matrix}X-frguWur,bur,XF2 LUR​=minWur​bur​​X−frguWur,bur,XF2
s . t . W u r = W e , b u r = b e s.t.W_{ur}=W_e,b_{ur}=b_e s.t.Wur​=We​,bur​=be​
其中,gu和fr是重构与解混模块

最终损失函数为:
L O = L E + L U R L_O=L_E+L_{UR} LO​=LE​+LUR​

Spatial-Spectral Unmixing with CNNs: An Extension

该网络以Siamese网络作为Backbone具体结构如下:

总结

该论文使用双流结构成功的实现了端到端的高光谱解混,并将CNN与DeConv融入进去,提升表达能力。还使用擦书共享来提升训练速度与泛化能力,最终达到了自监督的模型效果。

后续的实验部分由于篇幅较大将会在其他文章中给出,感谢!

EGU-Net——端元导向的解混网络相关推荐

  1. 论文阅读-Endmember-Guided Unmixing Network (EGU-Net) 端元指导型高光谱解混网络

    标题:端元引导分解网络(EGU-NET):一种通用的自监督高光谱分解深度学习框架 期刊: IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTE ...

  2. 高光谱解混(一)——高光谱分解综述:基于几何,统计和稀疏回归的方法

    高光谱解混综述论文精读笔记/一 摘要 引言 线性和非线性混合模型 非线性解混方法的简要综述 高光谱解混处理流程 章节安排 Reference 摘要 成像光谱仪优点:成像光谱仪以更高的光谱分辨率同时测量 ...

  3. 高光谱解混:基于几何,统计,稀疏回归的方法概述

    高光谱解混方法概述 问题引入 问题何来? 基础知识 核心任务 基础方法 线性与非线性模型 线性混合模型 非线性混合模型 非线性方法的概述 高光谱解混流程 大气校正(Atmospheric Correc ...

  4. 高光谱解混学习笔记(一)------概述

    1术语 混合像元:是构成遥感影像的基本单元,若其中包含多种覆盖类型,称为混合像元 端元:每个混合像元的基本组成单元. 丰度:每个端元在其所在像元中所占比例. 由于遥感器的空间分辨率有限及自然界地物的复 ...

  5. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  6. 移动端html5手写板,Vue+canvas实现移动端手写板步骤详解

    这次给大家带来Vue+canvas实现移动端手写板步骤详解,Vue+canvas实现移动端手写板的注意事项有哪些,下面就是实战案例,一起来看一下. 清除 保存 Canvas画板 var draw; v ...

  7. 高光谱地物识别练习-从ENVI标准波普库中选择端元进行物质识别

    高光谱地物识别练习-从ENVI标准波普库中选择端元进行物质识别 1.首先打开一个高光谱文件 2.打开标准波普库里的展示 3.选择矿物质有14个数据的一类 4.从14个数据中选

  8. IoT:大端与小端字节数据详解

    大端与小端字节数据详解 转自:https://blog.csdn.net/dosthing/article/details/80641173 前言 计算机的数据以01构成的字节存储,这就涉及数据大小端 ...

  9. 高光谱解混与变化检测专题

    利用深度学习做高光谱解混的论文(优选,稀疏解混未纳入) 1. [TGRS-2020,一区]盲分解:Convolutional Autoencoder for Spectral Spatial Hype ...

最新文章

  1. 比特币如何实现—《区块链历史链条》2
  2. 800万中文词,腾讯AI Lab开源大规模NLP数据集
  3. PyCharm缺少cv2模块怎么办?怎样在PyCharm中安装自己需要的package?
  4. 10分钟带你入门MATLAB
  5. 恩施软件开发人员每月多少钱_恩施建个大棚多少钱搭建、养猪大棚价格
  6. python函数的高级用法
  7. 【.Net Micro Framework PortingKit – 12】SysTick驱动开发
  8. SAP Spartacus Ngrx 使用的一些准则
  9. 前端页面内含外显相关知识
  10. GLIBC中NPTL线程实现代码阅读
  11. 【nexus】nexus 仓库组的概念 以及相关配置 代码发布相关
  12. mysql忘记了密码、允许远程连接、mysql卸载 -- linux
  13. lsb算法 java,解决:-bash: lsb_release: command not found办法
  14. linux操作系统基础教程第二版附录答案,Linux操作系统(第2版) 课后习题答案
  15. zai php 里面写js,php中写入js代码
  16. CMOS Image Sensor的接口硬件设计(DVP/MIPI CSI)
  17. VNPY3.0 量化交易软件开源代码-探索更真实的量化交易世界,
  18. APP原生开发与APP混合开发的区别
  19. vue3中瀑布流插件 vue-masonry 的使用
  20. 牙齿间隙变大怎么办_牙缝大怎么办?

热门文章

  1. 程序员接私活,接单平台
  2. java 、ssm、 springboot、 vue、 python 、php、 asp.net 、mysql 微信小程序、安卓APP、加入RNN算法,招聘信息管理系统的设计与实现源码下载
  3. javaweb设计简易计算器
  4. Nuke的viewer里的HSLV参数不显示并且Cryptomatte节点里crypto_object无法选择
  5. oracle字符索引丢失,Timestamp导致Oracle索引失效
  6. 国美假货太多,维权根本没希望!
  7. 微软、阿里云们的下一个十年:深耕政企市场,打破现有格局
  8. IDEA快捷键-重构
  9. 通信工程师给儿子的信2:为什么铜线能导电?
  10. 【C语言】------ 动态内存分配