超分辨率学习记录

2023-11-17

这篇博客主要内容来自于天池网站的超分辨率理论基础,同时对于其中涉及的学术名词也进行了解释,作为自己学习的记录(注:所有名词右上方带*的下面都有详细解释),博客还会一直更新

超分定义

超分辨率(Super-Resolution)即通过硬件或软件的方法提高原有图像的分辨率,通过一系列低分辨率的图像来得到一幅高分辨率的图像过程就是超分辨率重建。譬如想把一张图片做四倍超分,那实际上做的事情就是如何把一个像素点扩展成四个像素点,并且在扩展中保留更多的细节。目前超分大多采用深度学习的方式,但也有传统方法,如最常用且在超分里经常出现的bicubic双立方插值,直接利用数学公式,将当前像素点与周围相邻像素点融合进行插值,从而将一个点扩充成四个点,但这样做的效果往往不是很好。
在超分任务中,一般会有低分辨率(LR)-高分辨率(HR)图像对作为训练集,LR作为输入,HR作为label用于计算loss,下图就是一个例子,左边是LR(186x273)右边是HR(744x1092)
在这里插入图片描述

经典模型

主流框架分为两种:前上采样后上采样
前上采样就是在网络一开始的时候就上采样,后采样是最后才开始进行上采样
前上采样

前上采样-SRCNN

最经典的代表就是超分模型开山之作SRCNN,因为SRCNN的整个流程与稀疏编码*方法相同,所以它也被看作是使用CNN实现了稀疏编码的方案
请添加图片描述
共三个阶段:

  • Patch extraction and representation:提取特征-卷积+激活
    从低分辨率图像中提取多个patch,经过卷积变为多维向量,所有特征向量组成特征矩阵,类比稀疏编码中的重叠图像块的构建
  • Non-linear mapping:卷积+激活,将n1维特征矩阵转化为n2维特征矩阵,类比稀疏编码中的低分辨率字典映射到高分辨率字典 (我个人理解就是从一组基换到了另一组基*)
  • Reconstruction:卷积,将特征矩阵还原为超分图像

损失函数:MSE

优点:相比于传统方法具有较大的感受野
缺点:由于整个网络在高分辨率空间进行计算,因此计算量大,而且噪声容易被放大

后上采样–FSRCNN

这里介绍一下FSRCNN
请添加图片描述
图的上方是SRCNN,下方是FSRCNN,可以看到FSRCNN并没有一上来就上采样,而是维持在低分辨率,然后压缩,减少维度,之后恢复,反卷积,FSRCNN最大的特点就是全程在低分辨率而且中间还有降维,所以模型比较轻量

除了FSRCNN还想说一下pixel shuffle,也是上采样的一种方式,pixel shuffle可以减少因为采样率不足而导致的棋盘效应
这里需要介绍sub-pixel,输入图和特征图的尺寸一样,但是特征图的通道数是输入图通道的r^2倍,r在这里表示放大倍数,之后通过周期筛选,完成下面的转变
请添加图片描述

请添加图片描述


稀疏编码(借鉴博客理解稀疏编码稀疏编码和字典学习

  • 定义

通过学习训练,找到一组,使得每个输入样本都可以用这些基的线性组合表示,基前面的系数就是输入样本的特征,而稀疏编码要求只需要较少的几个基就可以将信号表示出来
请添加图片描述

  • 满足条件

下图为编码示意图,若满足

  1. 系数a是稀疏*的
  2. 且通常具有比x更高的维数f(x)非线性
  3. x’=g(a),重建后的x与x’相似

则可认为该编码方式a=f(x)为稀疏编码
请添加图片描述

  • 代价函数

该系统对应代价函数为:
请添加图片描述
该代价函数对系数和基都做了约束,公式的来源是为了找到一组基,使输入样本的出现概率与输入样本的经验分布概率尽量相等,也就是让他们的KL距离*尽量小

  • 过程
    送入训练样本–>学习得到基–>测试阶段通过凸优化方法求得特征值(基前面的系数)

1)Training阶段:给定一系列的样本图片[x1, x 2, …],我们需要学习得到一组基[Φ1, Φ2, …],也就是字典。

稀疏编码是k-means算法的变体,其训练过程也差不多(EM算法的思想:如果要优化的目标函数包含两个变量,如L(W, B),那么我们可以先固定W,调整B使得L最小,然后再固定B,调整W使L最小,这样迭代交替,不断将L推向最小值。)

训练过程就是一个重复迭代的过程,按上面所说,我们交替的更改a和Φ使得下面这个目标函数最小。

每次迭代分两步:

a)固定字典Φ[k],然后调整a[k],使得上式,即目标函数最小(即解LASSO问题)。

b)然后固定住a [k],调整Φ [k],使得上式,即目标函数最小(即解凸QP问题)。

不断迭代,直至收敛。这样就可以得到一组可以良好表示这一系列x的基,也就是字典。

2)Coding阶段:给定一个新的图片x,由上面得到的字典,通过解一个LASSO问题*得到稀疏向量a(注:此时已经得到字典)。这个稀疏向量就是这个输入向量x的一个稀疏表达了。


KL距离
请添加图片描述


稀疏矩阵
稀疏矩阵是一个几乎由零值组成的矩阵。稀疏矩阵与大多数非零值的矩阵不同,非零值的矩阵被称为稠密矩阵。


LASSO回归模型
请添加图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超分辨率学习记录 的相关文章

随机推荐

  • AI革命:AI+算力,霸主即将诞生!

    随着人工智能技术的飞速发展 AI 算力 的结合应用已成为科技行业的热点话题 甚至诞生出 AI 算力 最强龙头 的网络热门等式 该组合不仅可以提高计算效率 还可以为各行各业带来更强大的数据处理和分析能力 从而推动创新和增长 那么对于这个时下的
  • 二维多孔介质图像的粒度分布研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 使用流域分割算法对岩石二维二值图像进行粒度
  • Scala深入浅出——从Java到Scala

    本文适合有一定Java基础的 并想系统学习Scala的小伙伴借鉴学习 文章有大量实例 建议自己跑一遍 Scala深入浅出 从Java到Scala Scala 一 介绍 1 什么是Scala 2 特点 3 安装 二 Scala特点 三 sca
  • SecureCRT9.1高亮配色设置

    参考 http zh cjh com qita 1623 html https download csdn net download qq 45698138 88310255 spm 1001 2014 3001 5503 1 创建文件co
  • fork的例子

    以下是下列代码的头文件 forks c Examples of Unix process control include
  • Ruoyi-cloud集成Sa-Token SSO单点登录

    文章目录 服务端 客户端前端 客户端后端 https github com dromara Sa Token Sa Token SSO 模式三 修改本地hosts 127 0 0 1 sa sso server com 127 0 0 1
  • ionic3代码压缩和apk优化

    我们在做ionic打包的时候 通常执行这条命令 ionic cordova build android release prod 使用这个命令生成的apk是ionic项目导出的最优化的apk 但是如果还想继续压缩 那么还可以借助Androi
  • Unity 空气墙Shader

    废话不多说 先上效果图 具体代码如下 Shader Hidden AirWall Properties Color Color Color 1 1 1 1 颜色 Interval Interval float 10 间隔 SubShader
  • springmvc注解和参数传递

    一 SpringMVC注解入门 创建web项目 在springmvc的配置文件中指定注解驱动 配置扫描器 Xml代码 收藏代码
  • FFmpeg 实战指南

    文章目录 表达式 滤镜效果 zoompan 中心视距由远及近 中心视距由近及远 水平视距从左到右 水平视距从右到左 垂直视距从上到下 垂直视距从下到上 rotate 顺时针旋转 PI 6 弧度 逆时针旋转 PI 6 弧度 顺时针旋转 45
  • 【Flink】处理函数Process

    目录 处理函数 基本处理函数 ProcessFunction 处理函数的功能 ProcessFunction解析 处理函数的分类 按键分区处理函数 KeyedProcessFunction 定时器Timer 和定时服务 TimerServi
  • 几种css炫酷背景欣赏

    这里为大家带来几种表现惊人的css背景效果 纯css表现效果 有桌布效果 星空效果 心形效果 砖墙效果等 请欣赏 background radial gradient rgba 255 255 255 0 0 rgba 255 255 25
  • 2020-10-29 org.apache.commons.lang3.StringUtils

    public static void TestStr null 和 操作 判断是否Null 或者 System out println StringUtils isEmpty null System out println StringUt
  • 基于神经网络的模式识别

    一 项目设计的目的 通过构建BP网络和离散Hopfield网络模式识别实例 输出稳定结果 二 相关原理知识介绍 BP学习算法是通过反向学习过程使误差最小 其算法过程从输出节点开始 反向地向第一隐含层 即最接近输入层的隐含层 传播由总误差引起
  • Ceres Solver从零开始手把手教学使用

    目录 一 简介 二 安装 三 介绍 四 Hello Word 五 导数 1 数值导数 2解析求导 六 实践 Powell函数 一 简介 笔者已经半年没有更新新的内容了 最近学习视觉SLAM的过程中发现自己之前学习的库基础不够扎实 Ceres
  • 用JS获取移动设备信息

    获取设备信息少不了的一个JS脚本就是 mobile detect js 如图第二个script链接就是mobile detect js的网上链接 它的官方链接我给大家放在这里了 mobile detect js官方地址https www m
  • 【毕业设计】深度学习图像语义分割算法研究与实现 - python 机器视觉

    文章目录 0 前言 2 概念介绍 2 1 什么是图像语义分割 3 条件随机场的深度学习模型 3 1 多尺度特征融合 4 语义分割开发过程 4 1 建立 4 2 下载CamVid数据集 4 3 加载CamVid图像 4 4 加载CamVid像
  • SpringBoot学习笔记35——实现List校验@Validated

    在 Controller 类上 加上 Validated 在需要校验的参数上加上 Valid 就可以校验list里的实体类的属性 还需要在统一异常处理类中添加异常处理 参数校验异常类 param exception return autho
  • redis未授权访问漏洞利用+redis日志分析

    redis未授权访问漏洞利用 redis日志分析 redis未授权访问 远程连接redis kali redis cli h IP redis常用语句 set key value 设置键值对 get key 获得值 incr intkey
  • 超分辨率学习记录

    超分辨率学习记录 超分定义 经典模型 前上采样 SRCNN 后上采样 FSRCNN 这篇博客主要内容来自于天池网站的超分辨率理论基础 同时对于其中涉及的学术名词也进行了解释 作为自己学习的记录 注 所有名词右上方带 的下面都有详细解释 博客