光谱图像超分辨率综述
光谱图像超分辨率综述
简介
论文链接:A Review of Hyperspectral Image Super-Resolution Based on Deep Learning
UpSample网络框架
1.Front-end Upsampling
在Front-end上采样中,是首先扩大LR图像,然后通过卷积网络对放大图像进行优化。如"Image Super-Resolution Using Deep Convolutional Networks"(SRCNN)中,首先使用bicubic对图像进行放大,再采用卷积进行处理。
缺点:
- 由于先进行上采样,再进行其他操作,根据上采样倍数的不同,导致卷积部分计算量巨大
- 直接进行上采样,可能将LR图像中的噪声放大,导致超分结果不理想。
2.Back-end Upsamling
为了降低计算成本,充分利用神经网络的学习能力,将Upsample层放到模型后端进行操作。也就是先通过神经网络对LR图像特征进行提取,减弱噪声部分影响,再采用上采样操作对图像进行超分辨率。如"Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network".(ESPCN),先使用卷积层进行LR图像的特征提取,再采用提出的Pixelshuffle模块——亚像素卷积层(sub-pixelconvolutionlayer)进行上采样得到重建图像。
缺点:
- 由于只进行一次上采样操作,对于较大缩放因子,仍然不是一个好的选择。
3.Progressive Upsampling
解决缩放因子较大时的问题,通过将其拆分为几个子任务进行解决。
缺点:网络结构更加复杂
Upsample方法
1.基于插值的方法
- Nearest-neighbor Interpolation
- Bilinear Interpolation:没有考虑相邻像素之间灰度值变化率的影响,从而破坏了插值图像的高频信息,经常得到模糊图像边缘
- Bicubic Interpolation:考虑了四个最近像素的灰度值的影响,同时也考虑了周围灰度值变化率的影响,从而获得比前两种插值方法更平滑的边缘、更少的伪影和更少的丢失图像信息,但是其计算量巨大。
2.Transposed Convolution转置卷积
import torch
import torch.nn as nnnn.ConvTranspose2d()#函数定义
def __init__(self,in_channels: int,out_channels: int,kernel_size: Union[int, Tuple[int, int]],stride: Union[int, Tuple[int, int]] = 1,padding: Union[int, Tuple[int, int]] = 0,output_padding: Union[int, Tuple[int, int]] = 0,groups: int = 1,bias: bool = True,dilation: Union[int, Tuple[int, int]] = 1,padding_mode: str = 'zeros',device: Any = None,dtype: Any = None) -> None
3.Pixel Shuffle
import torch
import torch.nn as nn
self.ps = nn.PixelShuffle(8)
#8为上采样因子,需要注意的是用其处理时,首先需要使用卷积调整channel维度,使其满足为采样因子平方的倍数
常见网络结构
1.残差学习
引人残差网络,方便加深网络,避免梯度消失
2.递归学习
所有残差单元共享相同的权重,大大减少了模型参数的数量。同时,递归学习固有地引入了梯度消失或梯度爆炸的问题因此将残差学习与递归学习相结合是明智的选择。
3.多路径学习
通过将图像输入到不同路径进行特征提取,方便提取多个维度的特征,可以使得特征之间的细节有效互补
4.注意力机制
采用channel attention以及spatial attention,可以分别学习channel维度(频段维度),spatial维度(空间维度hw)之间特定的信息,用于保留输入图像的关键空间信息以及频段信息。
5.密集连接
密集连接最重要的特点是能够重用包括低级特征和高级特征在内的特征,与普通skip connection相比,这是一个优越的方面。
损失计算
1.Pixel-wise损失
像素级别的损失,常见的是L1损失和L2损失,它们都是逐像素进行误差计算。
与L1损失相比,L2损失可以有力地处理较大的误差,但不能对较小的误差进行有效的惩罚,因此经常导致结果过于平滑。这使得L1损耗在大多数情况下是更好的选择。
图像评价指标
- PSNR:峰值信噪比,侧重于像素之间的差异,也就是重建的像素与像素之间的差异,无法对主观感知信息进行较好评估。
- SSIM:结构相似度,人类的主观感知对观察对象的结构很敏感,研究人员提出了结构相似性 (SSIM) 指数来衡量标记图像和重建图像之间的结构相似性。它的评估基于图像结构,比PSNR更能考虑视觉感知。使用SSIM下的结果更符合人类的主观感受
- SAM:将HSI的每个图像元素的频谱视为高维向量,通过计算对应向量之间的角度来测量光谱相似度。角度越小,它属于同一类型特征的可能性就越大。在执行分类任务时,通过计算未知向量与已知向量之间的谱角的大小来识别未知图像元素的类。
- 详细请见光谱图像常见评价指标-CSDN博客
相关文章:

光谱图像超分辨率综述
光谱图像超分辨率综述 简介 论文链接:A Review of Hyperspectral Image Super-Resolution Based on Deep Learning UpSample网络框架 1.Front-end Upsampling 在Front-end上采样中,是首先扩大LR图像,然后通过卷积网络对放大图像进行…...

Ubuntu apt-get换源
一、参考资料 ubuntu16.04更换镜像源为阿里云镜像源 二、相关介绍 1. apt常用命令 sudo apt-get clean sudo apt-get update2. APT加速工具 轻量小巧的零配置 APT 加速工具:APT Proxy GitHub项目地址:apt-proxy 三、换源关键步骤 1. 更新阿里源 …...

磐舟CI-Web前端项目
整体介绍 磐舟作为一个devops产品,它具备基础的CI流水线功能。同时磐舟的流水线是完全基于云原生架构设计的,在使用时会有一些注意事项。这里首先我们要了解磐舟整体的流水线打包逻辑。 文档结构说明 一般来说,磐舟推荐单个业务的标准git库…...

Flink 运行架构和核心概念
Flink 运行架构和核心概念 几个角色的作用: 客户端:提交作业JobManager进程 任务管理调度 JobMaster线程 一个job对应一个JobMaster 负责处理单个作业ResourceManager 资源的分配和管理,资源就是任务槽分发器 提交应用,为每一个…...

中间件安全:Apache Tomcat 文件上传.(CVE-2017-12615)
中间件安全:Apache Tomcat 文件上传. 当存在漏洞的 Tomcat 运行在 Windows / Linux 主机上,且启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为ialse) , 攻击者将有可能可通过精心构造的攻击请求数据包向服务…...

Linux 命令补充
目录 tr 命令 命令举例 cut 命令 命令举例 uniq 命令 命令举例 sort 命令 命令举例 面试题 1. 给你一个文件如何提取前 10 的 IP 2. 如何提前 ss 中的状态 tr 命令 作用tr转换tr -d删除tr -c取反tr -s压缩 命令举例 cut 命令 作用cut提取cut -f指定列cut -d指定分…...
HTTP常见面试题(小林coding版总结)
1:HTTP基本概念 超文本 传输 协议 2:常见状态码 1xx 提示信息 2xx 成功 3xx 重定向 4xx 客户端错误 5xx 服务器错误 3:HTTP常见的字段 host 指定服务器的域名 Content-Length 回应的数据长度 Connection 长连接(Keep-Alive&#x…...

一整个分析模型库,大数据分析工具都这么玩了吗?
一整个分析模型库,100张BI报表,覆盖销售、财务、采购、库存等多个分析主题。只需对接ERP,就能自动生成BI报表,完成对海量数据的系统化分析。现在大数据分析工具都发展到这种程度了吗? 放眼看去,现阶段能做…...

最新企业服务总线ESB的国内主要厂商和开源厂商排名,方案书价格多少
企业服务总线ESB是什么? ESB平台(企业服务总线,Enterprise Service Bus)是一种企业级集成平台,它提供了一种开放的、基于标准的消息机制,通过简单的标准适配器和接口,来完成粗粒度应用ÿ…...

react重要知识点(面经)
react重要知识点(面经) react生命周期classhooks reduxredux 核心概念redux 计数器案例 react页面加载卡顿使用懒加载异步加载JavaScript压缩和缓存静态资源使用React.memo() PubSub使用方式1.1 react导入库1.2 react 页面引入pubsubjs1.3 pubsubjs使用2…...

面试题-6
1.精灵图和base64的区别是什么? 精灵图:把多张小图整合到一张大图上,利用定位的一些属性把小图显示在页面上,当访问页面可以减少请求,提高加载速度 base64:传输8bit字节代码的编码方式,把原本二进制形式转为64个字符的单位,最后组成字符串 …...

九宫格 图片 自定义 路径
<image :src" ../../static/img/ item.urlname .png " class"u-w-82 u-h-82 u-p-t-36"></image>使用场景:九宫格里含有多张图片 html <view class"u-p-b-46 u-p-x-35"><u-grid :border"false" c…...

Leetcode经典题目之“双指针交换元素“类题目
1 LC 27. 移除元素 class Solution {public int removeElement(int[] nums, int val) {int nnums.length;int s0;for(int i0;i<n;i){// 只有不等于目标值的时候才会进行交换,然后移动s指针if(nums[i]!val){swap(nums,i,s);}}return s;}void swap(int[]nums, int…...

计算机基础知识54
ORM的介绍 # ORM是什么? 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(增、删、改、查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql、oracle…...

深度系统(Deepin)开机无法登录,提示等待一千五百分钟
深度系统(Deepin)20.0, 某次开机无法登录,提示等待一千五百分钟。 ????????? 用电脑这么多年,头一回遇到这种…...

工具及方法 - 多邻国: Duolingo
网站:Duolingo 有iOS和Android应用,在App Store和Google Play上都能下载。也可以使用网页版。我就在iOS上安装了付费版,为了小朋友学习英语,一年的费用¥588。 目前学习中的课程是英语、日语和粤语。英语是小学课程&a…...

Redis篇---第十一篇
系列文章目录 文章目录 系列文章目录前言一、说说Redis持久化机制二、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题三、热点数据和冷数据是什么前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章…...

linux CentOS7 安装git 配置秘钥公钥克隆代码
第一步:安装git yum -y install git #查看版本 git --version 第二步:配置git信息 git config --global user.name "username" git config --global user.email "XXXXX.com" 第三步:生成密钥和公钥, 后…...

深度学习之生成唐诗案例(Pytorch版)
主要思路: 对于唐诗生成来说,我们定义一个"S" 和 "E"作为开始和结束。 示例的唐诗大概有40000多首, 首先数据预处理,将唐诗加载到内存,生成对应的word2idx、idx2word、以及唐诗按顺序的字序列。…...

算法设计与分析算法实现——删数问题
通过棋盘输入一个高精度的正整数n(n的有效位数<=240)去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。变成对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 输入:n,s 输出:最后剩下的最小数 输入实例: 178543 4 输出示例: 13 首先…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
基于鸿蒙(HarmonyOS5)的打车小程序
1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...