【图像超分辨率】一个简单的总结

news2024/11/22 11:29:10

文章目录

  • 图像超分辨率(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场景表示,但其基本思想也可应用于图像超分辨率,通过隐式函数表示和查询生成高分辨率图像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1880154.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jenkins 发布服务到linux服务器

1.环境准备 1.1 需要一台已经部署了jenkins的服务器,上面已经集成好了,jdk、maven、nodejs、git等基础的服务。 1.2 需要安装插件 pusblish over ssh 1.3 准备一台额外的linux服务器,安装好jdk 2.流程描述 2.1 配置jenkins,包括p…

统计是一门艺术(参数假设检验)

1.参数假设检验 在总体分布已知的情况下,对分布中未知参数的检验。 (1)相关基本概念 零假设/原假设与对立假设/备择假设: 任务:根据样本作出是否接受H0 复合假设与简单假设: 否定域/拒绝域与接受域&…

Python:谈谈常规滤波器(带通、低通、高通、带阻)的用法

一、滤波器的作用 滤波器在信号处理中用于移除或减少信号中的噪声,同时保持信号的某些特性。滤波器通常用于音频、视频和图像处理等领域。滤波器根据其 designed for different purposes and can be divided into several types, such as lowpass filters, highpass…

【Unity设计模式】✨使用 MVC 和 MVP 编程模式

前言 最近在学习Unity游戏设计模式,看到两本比较适合入门的书,一本是unity官方的 《Level up your programming with game programming patterns》 ,另一本是 《游戏编程模式》 这两本书介绍了大部分会使用到的设计模式,因此很值得学习 本…

Linux rpm与yum

一、rpm包管理 rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了R…

Python pip install模块时C++编译环境问题

pip install模块时C编译环境问题 在接触和使用python后,常常会通过pip install命令安装第三方模块,大多数模块可以直接安装,但许多新同学仍会遇见某些模块需要实时编译后才能安装,如报错信息大概是缺乏C编译环境,本文则…

Golang-GMP

GMP调度 golang-GMP语雀笔记整理 GMP调度设计目的,为何设计GMP?GMP的底层实现几个核心数据结构GMP调度流程 设计目的,为何设计GMP? 无论是多进程、多线程目的都是为了并发提高cpu的利用率,但多进程、多线程都存在局限性。比如多进程通过时…

Python变量的命名规则与赋值方式

第二章:Python 基础语法 第一节:变量的命名规则与赋值方式 2.1.1 引言 在编程中,变量是存储数据的基本单元。变量的命名和赋值是编程语言中表达和操作数据的基础。了解和遵循变量命名规则对于编写清晰、可维护的代码至关重要。 2.1.2 变量…

嵌入式Linux系统编程 — 5.2 Linux系统时间与日期

目录 1 了解Linux系统时间 1.1 几种常用的时间 1.2 如何查看几种常用的时间 1.3 Linux 系统中的时间 2 time、gettimeofday获取时间 2.1 time函数 2.2 ​​​​​​​gettimeofday函数: 2.3 示例程序 3 时间转换函数 3.1 ctime与ctime_r函数 3.2 localti…

小白学python(第四天)顺序与分支篇

这几天因为个人原因,python篇会更新比较慢,还望大家谅解,那么废话不多说,我们现在就进入正题 顺序篇 这个没啥好说的,就是自上而下,依次执行 分支篇 条件(if)语句语法格式&#…

Listary(Windows 文件搜索工具)专业版值得购买吗?

说到经典的国货软件,有一款 Win 软件是一定绕不过去的。它就是知名的本地文件搜索工具 Listary! 便捷的文件搜索窗口;快捷操作的体验;与系统更匹配的外观设计;更智能的排序和更可靠的索引。 便捷的文件搜索窗口 紧凑…

百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现

百亿级存储架构: ElasticSearchHBase 海量存储架构与实现 尼恩:百亿级数据存储架构起源 在40岁老架构师 尼恩的读者交流群(50)中,经常性的指导小伙伴们改造简历。 经过尼恩的改造之后,很多小伙伴拿到了一线互联网企业如得物、阿…

AI大模型API:驱动人工智能创新的核心引擎

在当今快速发展的人工智能领域,AI大模型API成为了开发者必备的利器。这些API为开发者提供了强大的人工智能模型和算法,使他们能够轻松地构建智能化应用和解决方案。作为开发者,我们可以借助AI大模型API实现自然语言处理、图像识别、声音合成等…

windows电脑使用netsh添加端口转发、设置端口转发和删除端口转发

目录 1. 添加端口转发 2. 查看是否添加成功 3. 设置端口转发 4. 删除端口转发 除查看命令外,其他命令需要以管理员方式运行。 1. 添加端口转发 命令: netsh interface portproxy add v4tov4 listenaddress你的外部IP listenport你的外部端口 conne…

Winform使用Flurl调用WebApi的基本用法

微信公众号“CSharp编程大全"的文章《.NET超简单轻量级的HTTP请求组件Flurl》介绍了便捷构建URL及创建HTTP请求的.NET模块Flurl。与HttpClient相比,Flurl封装的更简捷易用,代码量更少。本文学习并测试基于Fluri调用WebApi的基本用法。   基于Fluri调用WebApi…

DIY智能音箱:基于STM32的低成本解决方案 (附详细教程)

摘要: 本文详细介绍了基于STM32的智能音箱的设计与实现过程,包括硬件设计、软件架构、语音识别、音乐播放等关键技术。通过图文并茂的方式,结合Mermaid流程图和代码示例,帮助读者深入理解智能音箱的工作原理,并提供实际操作指导。…

51单片机第11步_在C语言中插入汇编语言

本章重点介绍如何在C语言中插入汇编语言。要不是有记录,真不知道怎么搞。 /* 你在 Project Workspace窗口中,将光标移到DELAY.c处,点下鼠标右键,选择"Options for file DELAY.c", 点击右边的"Generate Assembler SRC File"和“Assemble SRC …

recogito-js:用于文本注释/图像注释的前端插件

创建批注: 继续批注: 右侧批注列表: 1、功能与应用: 文本注释:recogito-js可以将注释功能添加到网页上,或者作为构建完全自定义注释应用程序的工具箱。图像注释:除了文本注释外,它还…

ros笔记01--初次体验ros2

ros笔记01--初次体验ros2 介绍安装ros2测试验证ros2说明 介绍 机器人操作系统(ROS)是一组用于构建机器人应用程序的软件库和工具。从驱动程序和最先进的算法到强大的开发者工具,ROS拥有我们下一个机器人项目所需的开源工具。 当前ros已经应用到各类机器人项目开发中…

python sklearn机械学习模型-回归

🌈所属专栏:【机械学习】✨作者主页: Mr.Zwq✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询! 您…