【图像超分辨率】一个简单的总结
文章目录
- 图像超分辨率(Image Super-Resolution, ISR)
- 1 什么是图像超分辨率?
- 2 图像超分辨率通常有哪些方法?
- (1)基于插值的方法
- (2)基于重建的方法
- (3)基于学习的方法(LR image in, HR image out)
- (4)基于隐式神经表示的方法(coordinates in, corresponding intensity out)
- 1.基于坐标的表示
- 2.连续表示
- 3.INR的特点
- 4.一些基于INR的方法
图像超分辨率(Image Super-Resolution, ISR)
1 什么是图像超分辨率?
超分辨率(Super-Resolution)即通过硬件或软件的方法提高原有图像的分辨率,通过一系列低分辨率的图像来得到一幅高分辨率的图像过程就是超分辨率重建。
2 图像超分辨率通常有哪些方法?
(1)基于插值的方法
通过数学插值算法来估计高分辨率图像像素值。
- 双线性插值:计算四个邻近像素的加权平均值。
- 双三次插值:使用16个邻近像素进行加权平均,效果较双线性插值更好。
- Lanczos插值:通过更复杂的数学公式进行插值,能保留更多的细节。
(2)基于重建的方法
通过建立图像的先验模型,利用优化算法进行重建。
- 稀疏表示方法:假设图像可以用少数基向量表示,通过稀疏编码和字典学习进行超分辨率重建。
- 正则化方法:加入各种正则化项(如全变分、边缘保留等)来抑制噪声,恢复图像细节。
(3)基于学习的方法(LR image in, HR image out)
随着深度学习的发展,基于学习的方法在图像超分辨率中取得了显著的进展。主要包括:
-
卷积神经网络(CNN):如(2015年)SRCNN(Super-Resolution Convolutional Neural Network),通过多层卷积网络提取特征,恢复高分辨率图像。
Image Super-Resolution Using Deep Convolutional Networks
具体细节:SRCNN直接处理图像数据。它接受低分辨率图像作为输入,通过一系列卷积层提取特征,最终生成高分辨率图像。SRCNN学习从低分辨率图像到高分辨率图像的映射关系,但这个映射关系是通过网络的权重和偏置存储的。每次超分辨率操作都需要输入具体的图像数据。


-
生成对抗网络(GAN):如SRGAN(Super-Resolution Generative Adversarial Network),通过生成器和判别器的对抗训练,生成更为逼真的高分辨率图像。
具体细节:SRGAN也直接处理图像数据。生成器接受低分辨率图像生成高分辨率图像,判别器则区分生成的图像与真实高分辨率图像。SRGAN学习从低分辨率图像到高分辨率图像的映射关系。生成器的权重和偏置参数存储了这个映射关系。

这里的HR指的是真实的高分辨率图像(real image),SR指的是生成器生成的高分辨率图像(fake image) -
自编码器和变分自编码器(VAE):利用编码器和解码器结构学习图像的低维表示,并重建高分辨率图像。
Image Super-Resolution With Deep Variational Autoencoders
具体细节:VAE通过编码器将输入图像编码为一个低维潜在变量,然后通过解码器将潜在变量重新生成高分辨率图像。VAE存储的是从输入图像到潜在变量的编码映射,以及从潜在变量到生成图像的解码映射。这些映射关系通过网络的权重和偏置参数表示。

(4)基于隐式神经表示的方法(coordinates in, corresponding intensity out)
隐式神经表示(Implicit Neural Representations, INRs)是一种新兴的技术,在图像超分辨率及其他计算机视觉任务中表现出色。INRs使用神经网络来表示连续函数,可以用于表示图像、3D形状等数据。
VideoINR: Learning Video Implicit Neural Representation for Continuous Space-Time Super-Resolution


IREM: High-Resolution Magnetic Resonance Image Reconstruction via Implicit Neural Representation

NeRP: Implicit Neural Representation Learning With Prior Embedding for Sparsely Sampled Image Reconstruction

1.基于坐标的表示
INRs通过神经网络将输入坐标(如图像的(x, y)坐标)映射到相应的像素值。这种方法不直接存储图像像素,而是存储一个映射函数。
2.连续表示
由于神经网络可以表示连续的函数,INRs可以自然地处理不同分辨率下的图像表示。通过查询任意坐标,INRs可以生成不同分辨率的图像。在图像超分辨率任务中,INRs通过学习一个低分辨率图像的隐式表示(这个隐式表示就是上面提到的一个从坐标到像素值的一个映射函数,通常是随机初始化一个MLP,然后通过学习得到一个参数化好的MLP就是该映射函数),可以生成高分辨率图像。例如,使用一个多层感知机(MLP)网络来映射输入坐标到像素值。
注:为什么使用多层感知机(MLP)作为隐式神经表示的基础结构?
- MLP作为一种通用的函数逼近器,能够表示任意连续函数。 通过适当的训练,MLP可以学习从输入坐标(如图像的(x, y)坐标)到输出值(如像素值)的复杂映射关系。这种能力使得MLP特别适合用于隐式表示数据,如图像或3D形状。
- 使用MLP来表示图像或其他数据,实际上是在存储一个函数而不是数据本身。 这种表示方式在存储空间上更加高效,尤其是对于高分辨率图像。此外,通过查询任意坐标,MLP可以生成对应的像素值,使得生成不同分辨率的图像变得更加灵活和方便。
- 在INRs中,激活函数的选择对网络性能有重要影响。MLP可以结合各种激活函数,如ReLU、正弦函数等,以适应不同的数据特性和任务需求。例如,SIREN使用正弦激活函数,能够更好地表示高频信号。
3.INR的特点
- 高效存储:相比于直接存储高分辨率图像,INRs可以显著减少存储空间。
- 灵活性:可以生成任意分辨率(任意上采样率) 的图像,无需重新训练模型。
- 细节保留:能够在图像放大时保留更多细节。
4.一些基于INR的方法
- SIREN(Sinusoidal Representation Networks):通过使用正弦激活函数的神经网络表示复杂的信号,包括图像。
- NeRF(Neural Radiance Fields):虽然主要用于3D场景表示,但其基本思想也可应用于图像超分辨率,通过隐式函数表示和查询生成高分辨率图像。
相关文章:
【图像超分辨率】一个简单的总结
文章目录 图像超分辨率(Image Super-Resolution, ISR)1 什么是图像超分辨率?2 图像超分辨率通常有哪些方法?(1)基于插值的方法(2)基于重建的方法(3)基于学习的方法(LR im…...
WEB与低代码:B/S架构在开发中的应用与优势
在互联网迅猛发展的今天,WEB应用已经成为人们日常生活和工作中不可或缺的一部分。随着技术的进步和需求的多样化,开发高效、灵活且易于维护的WEB应用变得尤为重要。B/S架构(Browser/Server Architecture)作为一种常见的WEB应用架构…...
内容营销专家刘鑫炜揭秘:姜萍一夜暴红背后的品牌传播密码
在互联网的浪潮下,品牌传播的方式愈发多样和复杂。近日,江苏省涟水中等专业学校的十七岁中专生姜萍因在世界级数学竞赛中取得优异成绩而一夜暴红,成为网络上的热议焦点。 在这个充满变数的时代,谁也无法预测下一个网红会是谁。然…...
安装VEX外部编辑器
Houdini20配置VEX外部编辑器方法_哔哩哔哩_bilibili 下载并安装Visual Studio Code软件:Download Visual Studio Code - Mac, Linux, Windows 在Visual Studio Code软件内,安装相关插件,如: 中文汉化插件vex插件 安装Houdini Expr…...
ISO 19110全局要求类/req/global/bound-association-role要求的详细解释
/req/global/bound-association-role 要求: 如果模型允许在一个关联角色(association role)中存在“rolePlayer”关联,并且该角色属于一个“globalProperty”角色,那么这种绑定必须通过一个绑定的关联角色实体(bound …...
武汉凯迪正大等简述电缆电容检测:原理、应用与重要性
为了确保电缆的安全稳定运行评估电缆绝缘质量以及检测潜在故障,需要对电缆做一些必要的检测。本文将依照凯迪正大的一些经验对电缆电容检测的原理、应用及其重要性进行简单的序述。 一、电缆电容检测的原理 电缆电容检测基于电容的基本特性,电容是指两个…...
python调用阿里云OSS对象存储
1)安装SDK import oss2 print(oss2.__version__) 如果能返回SDK版号,则安装成功 2)配置访问凭证 import oss2 from project1 import settings #以下参数在阿里云账号中可以查到 auth=oss2.Auth(settings.ACCESS_KEY_ID, settings.ACCESS_KEY_SECRET) endpoint=settings.E…...
530、二叉搜索树的最小绝对差
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数,其数值等于两值之差的绝对值。 代码如下: class Solution { private: int result INT_MAX; TreeNode* pre NULL; void traversal(TreeNode…...
docker配置redis主从复制
下载redis,复制redis.conf 主节点(6379) 修改redis.conf # bind 127.0.0.1 # 注释掉这里 protected-mode no # 改为no port 6379从节点(6380) 修改redis.conf bind 127.0.0.1 protected-mode no # 改为no port 6380 replicaof 172.17.0.2 6379 # 这里的ip为主节点容器的i…...
IPython调试秘籍:pdb调试器深度解析与实战
🐞 IPython调试秘籍:pdb调试器深度解析与实战 在Python编程中,调试是开发过程中不可或缺的一环。IPython,作为一个强大的交互式Python解释器,内置了pdb调试器,使得代码调试变得异常便捷。本文将深入探讨如…...
MySQL 死锁处理
查询是否锁表 SHOW OPEN TABLES WHERE In_use > 0; 查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 查看等待锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; 查看进程信息 SHOW PROCESSLIST; 或者 SELECT * FROM INFORMATION_SCHE…...
scatterlist的相关概念与实例分析
概念 scatterlist scatterlist用来描述一块内存,sg_table一般用于将物理不同大小的物理内存链接起来,一次性送给DMA控制器搬运 struct scatterlist {unsigned long page_link; //指示该内存块所在的页面unsigned int offset; //指示该内存块在页面中的…...
leetCode.97. 交错字符串
leetCode.97. 交错字符串 题目思路 代码 class Solution { public:bool isInterleave(string s1, string s2, string s3) {int n s1.size(), m s2.size();if ( s3.size() ! n m ) return false;vector<vector<bool>> f( n 1, vector<bool> (m 1));s1 …...
算力时代,算能(SOPHGO)的算力芯片/智算板卡/服务器选型
数字经济时代,算力成为支撑经济社会发展新的关键生产力,全球主要经济体都在加快推进算力战略布局。随着大模型持续选代,模型能力不断增强,带来算力需求持续增长。算力对数字经济和GDP的提高有显著的带动作用,根据IDC、…...
ManageEngine连续荣登Gartner 2024年安全信息和事件管理魔力象限
我们很高兴地宣布,ManageEngine再次在Gartner的安全信息和事件管理(SIEM)魔力象限中榜上有名,这是我们连续第七年获得这一认可。 Gartner ManageEngine Log360是一款全面的SIEM解决方案,旨在帮助组织有效处理日志数据…...
51单片机第11步_在C语言中插入汇编语言
本章重点介绍如何在C语言中插入汇编语言。要不是有记录,真不知道怎么搞。 /* 你在 Project Workspace窗口中,将光标移到DELAY.c处,点下鼠标右键,选择"Options for file DELAY.c", 点击右边的"Generate Assembler SRC File"和“Assemble SRC …...
【Qt+opencv】图片与视频的操作
文章目录 前言图片的操作图片的读取图片的写入示例代码 视频的操作打开视频关闭视频 总结 前言 在现代计算机视觉应用中,图像和视频处理起着至关重要的作用。这些应用范围广泛,包括图像识别、物体跟踪、3D建模等。为了实现这些功能,我们需要…...
Kubernetes面试整理-PersistentVolumes和PersistentVolumeClaims的使用和配置
在 Kubernetes 中,PersistentVolumes (PV) 和 PersistentVolumeClaims (PVC) 提供了一种分离存储和使用存储的机制。PV 是集群中存储资源的抽象表示,而 PVC 是用户对存储资源的请求。通过这种机制,用户可以动态地申请和管理存储资源。 PersistentVolumes (PV) PersistentVol…...
C++学习全教程(Day2)
一、数组 在程序中为了处理方便,常常需要把具有相同类型的数据对象按有序的形式排列起来,形成“一组”数据,这就是“数组”(array) 数组中的数据,在内存中是连续存放的,每个元素占据相同大小的空间,就像排…...
Transformer详解encoder
目录 1. Input Embedding 2. Positional Encoding 3. Multi-Head Attention 4. Add & Norm 5. Feedforward Add & Norm 6.代码展示 (1)layer_norm (2)encoder_layer1 最近刚好梳理了下transformer,今…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
CppCon 2015 学习:Time Programming Fundamentals
Civil Time 公历时间 特点: 共 6 个字段: Year(年)Month(月)Day(日)Hour(小时)Minute(分钟)Second(秒) 表示…...
