AI实战营第二期 第九节 《底层视觉与MMEditing》——笔记10

news2024/11/27 14:46:56

文章目录

  • AI实战营第二期 第九节 《底层视觉与MMEditing》
  • 什么是超分辨率
    • 图像分辨率的目标
    • 应用方向
    • 超分的类型
      • 单图超分的解决思路
    • 深度学习时代的超分辨率算法
      • SRCNN
      • Fast SRCNN
      • SRResNet
  • 感知损失 VS. 均方误差
    • 均方误差
    • 感知损失
  • 对抗生成网络
    • GAN应用于超分辨率
    • 如何学习生成器网络
    • 对抗训练
    • GAN优化目标
    • DCGAN
    • SRGAN
    • ESRGAN
  • 视频复原任务流程
    • EDVR
    • BasicVSR

AI实战营第二期 第九节 《底层视觉与MMEditing》

在这里插入图片描述
本节内容 :

  • 图像超分辨率 Super Resolution
  • 基于卷积网络的模型 SRCNN 与 FSRCNN
  • 损失函数
  • 对抗生成网络 GAN 简介
  • 基于 GAN 的模型 SRGAN 与 ESRGAN
  • 视频超分辨率介绍
  • 实践 MMEditing 1

什么是超分辨率

图像超分辨率 : 根据从低分辨率图像重构高分辨率图像 。 将图像放大,变清晰

图像分辨率的目标

  • 提高图像的分辨率
  • 高分图像符合低分图像的内容
  • 恢复图像的细节、产生真实的内容
    常用的双线性或双立方揷值不能恢复图像的高频细节
    在这里插入图片描述

应用方向

经典游戏高清重制

动画高清重制
在这里插入图片描述
照片修复

在这里插入图片描述
节约高清视频传输带宽
在这里插入图片描述
民生领域,如:医疗影像,卫星影像,监控系统 (车牌或人脸),空中监察等。

在这里插入图片描述

超分的类型

在这里插入图片描述

单图超分的解决思路

在这里插入图片描述
经典的解决方法:稀疏编码 ,一种无监督的方法。
在这里插入图片描述
在这里插入图片描述
缺点:即便已经学习出字典,对低分辨率图像块进行系数分解、得到系数仍然是一个相对复杂的优化问题。而且训练和推理都很耗时!

在这里插入图片描述

深度学习时代的超分辨率算法

  • 基于卷积网络和普通损失函数
    使用卷积神经网络,端到端从低分辨率图像恢复高分辨率图像
    代表算法 : SRCNN 与 FSRCNN
  • 使用生成对抗网络
    采用生成对抗网络的策略,鼓励产生细节更为真实的高分辨率图像。
    代表算法: SRGAN 与 ESRGAN

SRCNN

SRCNN 是首个基于深度学习的超分辨率算法,证明了深度学习在底层视觉的可行性。 模型仅由三层卷积层构成构成,可以端到端学习,不需要额外的前后处理步骤。
在这里插入图片描述
SRCNN 的单个卷积层有明确的物理意义 :
第一层 : 提取图像块的低层次局部特征;
第二层 : 对低层次局部特征进行非线性变换,得到高层次特征;
第三层 : 组合邻域内的高层次特征,恢复高清图像。

在这里插入图片描述

经典方法通常将图像切分成小块, 并基于一系列基底对图像块进行分 解 (常用算法有PCA、DCT、 Haar小波等 ),分解系数向量即 为图像块在基底上的表示。
这个操作等价于用一系列卷积核 (对应经典方法中的基底) 对原图 像进行卷积。 F 1 ( Y ) F_{1}(Y) F1(Y) 中每个像素位 置上的 n 1 n_{1} n1 维度的向量即为对应图 像块在基底上的表示。
使用神经网络,基底可以从数据中学习出来。

在这里插入图片描述
在 ImageNet 数据集上训练的 SRCNN 可以学习到不同的低层次特征所对应的卷积核。

在这里插入图片描述
第二层:非线性映射
f 2 = 1 f_{2}=1 f2=1 时,第二层卷积将 F 1 ( Y ) F_{1}(Y) F1(Y) 每 个位置上 n 1 n_{1} n1 维度的特征非线性映射 为一个 n 2 n_{2} n2 维的特征。
该特征可以看作是图像块在高分基 底上的表示,在后一层中用于重 构。
非线性映射可以有很多层,但实验 表明只应用单层卷积层就可以达到 较好的效果

在这里插入图片描述
第三层:图像重构
第三层的卷积核对应高分辨率基 底,用 F_{2}(Y) 中的系数对高分基底 加权求和即可得到高分图像块。第 三层卷积完成这个过程。
三个步骤与稀疏编码方法中的步骤一一对应。

在这里插入图片描述


准备数据:
将 ImageNet 数据集中的图像作为高分图像,降采样再揷值升采样得到的图像作为低分图像
需要学习的参数 :
Θ = { W 1 , W 2 , W 3 , B 1 , B 2 , B 3 } \Theta=\left\{W_{1}, W_{2}, W_{3}, B_{1}, B_{2}, B_{3}\right\} Θ={W1,W2,W3,B1,B2,B3}

损失函数 : 逐像素计算恢复图像和原高分图像的平方误差 (Mean Squared Error, MSE)

L ( Θ ) = 1 n ∑ i = 1 n ∥ F ( Y i ; Θ ) − X i ∥ 2 ,  最小化损失函数即可鼓励网络完美恢复高分辨率图像  L(\Theta)=\frac{1}{n} \sum_{i=1}^{n}\left\|F\left(\mathbf{Y}_{i} ; \Theta\right)-\mathbf{X}_{i}\right\|^{2}, \quad \text { 最小化损失函数即可鼓励网络完美恢复高分辨率图像 } L(Θ)=n1i=1nF(Yi;Θ)Xi2, 最小化损失函数即可鼓励网络完美恢复高分辨率图像 

通过标准的 SGD 训练模型
Δ i + 1 = 0.9 ⋅ Δ i − η ⋅ ∂ L ∂ W i ℓ , W i + 1 ℓ = W i ℓ + Δ i + 1 \Delta_{i+1}=0.9 \cdot \Delta_{i}-\eta \cdot \frac{\partial L}{\partial W_{i}^{\ell}}, \quad W_{i+1}^{\ell}=W_{i}^{\ell}+\Delta_{i+1} Δi+1=0.9ΔiηWiL,Wi+1=Wi+Δi+1
评估

P S N R = 10 ⋅ log ⁡ 10 ( M A X I 2 M S E ) P S N R=10 \cdot \log _{10}\left(\frac{M A X_{I}^{2}}{M S E}\right) PSNR=10log10(MSEMAXI2)

峰值信噪比 (Peak signal-to-noise ratio, PSNR) 为最大信号能量与平均 噪声能量的比值,值越大恢复效果越 好。

SRCNN 在性能和速度上全面超越深 度学习前的算法
缺点

SRCNN 先对低分图像进行揷值,再在高分辨率下进行卷积运算; 然而揷值不产生额外信息,因而产生一定的几余计算;
在学术数据集上,SRCNN 的速度在 1 10 FPS,达不到实时的标准。

在这里插入图片描述

Fast SRCNN

FSRCNN 在 SRCNN 的基础上针对速度进行了改进 :

  1. 不使用掐值, 直接在低分辨率图像上完成卷积运算, 降低运算量
  2. 使用 1 × \times × 1 的卷积层对特征图通道进行压缩,进一步降低卷积的运算量
  3. 若干卷积层后再通过转置卷积层提高图像分辨率
    在这里插入图片描述
    优点
  4. 基于 CPU 进行推理,速度可以达到实时;
  5. 在处理不同上采样倍数时,只需要微调反卷积的权重,特征映射层的参数额可以保持不变,大幅加快训 练速度。
    在这里插入图片描述

SRResNet

Twitter 于2016年提出的 模型使用类似 ResNet 的网络结构从低分图像生成高分图像。
在这里插入图片描述

感知损失 VS. 均方误差

  • 逐像素计算的损失函数
    比较恢复图像与原始高分图像的每个像素值,并计算均方误差。
    例如 : SRCNN 和 FSRCNN 中用到的均方误差损失 (MSE Loss)
  • 感知损失函数
    比较恢复图像与原始高分图像的语义特征,并计算损失。
    语义特征的计算由预先训练的神经网络模型给出。例如 : 使用在 ImageNet 数据集上预训诪好的神经网络计算语义特征。

均方误差

在这里插入图片描述

感知损失

比较恢复图像与原始高分图像的语义特征,并计算损失
损失网络一般是训练图像分类任务得到的模型构成,例如 VGG 网络
损失网络不参与学习,在训练过程中参数保持不变

在这里插入图片描述

对抗生成网络

对抗生成网络是一种基于神经网络的无监督学习模型,可以建模数据的分布,并通过采样生成新数据。
在这里插入图片描述

GAN应用于超分辨率

使用普通损失函数训练的模型细节还有些模糊
使用对抗训练方法训练的模型 细节恢复得更好
GAN

如何学习生成器网络

问题 : 我们希望 p x p_{x} px p d a t a p_{d a t a} pdata 近似,但二者没有闭式表达,无法直接计算 “差距” 或损失函数。
思路 : 如果 p x p_{x} px p d a t a p_{d a t a} pdata 有差别,那么它们的样本就可以区分 → \rightarrow 使用一个分类网络区分两类样本,将分类 正确率作为两个概率分布的“差距”。二者越接近,分类正确率应该越低。
在这里插入图片描述

对抗训练

判别器网络 D 和生成器网络 G 采用对抗的方式进行训练 :

  • 训练 D 网络时降低分类损失,尽力分辨 G 网络产生的假样本
  • 训练 G 网络时提高分类损失,尽力迷惑 D 网络,使之无法区分真假样本

二者相互对抗相互进步,最优状态下 G 网络可以生成以假乱真的样本

在这里插入图片描述

GAN优化目标

在这里插入图片描述

  • 对于给定的 G 网络,训练出最佳判别器网络,记录对应的分类损失 (的负值)
  • 在所有可能的 G 网络中,找到使得上述损失最大 (对应负值最小 ) 的 G 网络。
  • 可以证明,最优 G \mathrm{G} G 网络满足 p G = p data  p_{G}=p_{\text {data }} pG=pdata 

DCGAN

在这里插入图片描述

SRGAN

SRGAN 在 SRResNet 的基础上额外增加了判别器网络,用于区分训练集中的高分图像 ( 真实图像 ) 以及 SRResNet 恢复的高分图像 ( 虚假图像 )
在这里插入图片描述

ESRGAN

Enhanced SRGAN (ESRGAN) 从网络结构、感知损失、对抗损失三个角度对 SRGAN 进行了全面改进,在超 分辨率效果上取得了很大的提升,同时获得了 PIRM2018 超分辨率挑战赛冠军。
在这里插入图片描述
在这里插入图片描述

视频复原任务流程

在这里插入图片描述

EDVR

  • 适用于不同视频复原任务的通用框架
  • PCD: 通过金字塔级联变形对齐处理大的运动,使用形变卷积以由粗到细的方式在特征级别进行帧对齐
  • TSA: 时空注意力机制

在这里插入图片描述

  • 由于遮挡,模糊和末对齐等等问题,相邻 帧的信息不足, 不同的相邻帧应该有不同 的权重
  • 我们通过以下方式在每帧上分配像素级聚 合权重 :
    ✓ t e m p o r a l a t t e n t i o n \checkmark temporal attention temporalattention 时间注意机制
    ✓ s p a t i a l a t t e n t i o n \checkmark spatial attention spatialattention 空间注意机制

BasicVSR

BasicVSR在结构上更简单,效果比EDVR更好
在这里插入图片描述

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

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

相关文章

flutter:数据持久化

简单的数据持久化 保存数据到本地磁盘是应用程序常用功能之一,比如保存用户登录信息、用户配置信息等。而保存这些信息通常使用 shared_preferences,它保存数据的形式为 Key-Value(键值对),支持 Android 和 iOS。shar…

1. linux系统下在QT中配置OPenCV开发环境

1. 说明: 在Linux系统下配置OpenCV的开发环境,需要在官网上下载源码,并使用CMake工具对源码进行编译,与在Windows系统中配置相比复杂许多,本文linux系统为linux minit,opencv是最新版本4.7.0,不过对于linux和opencv的版本要求行不高。 效果展示: 2. 配置步骤: 2.1 …

深度学习(22)——YOLO系列

深度学习(22)——YOLO系列 文章目录 深度学习(22)——YOLO系列1. 物体检测方法的两种类型2. YOLO-v12.1 网络结构2.2 loss 函数2.3 NMS(非极大值抑制)2. 4 优缺点 3. YOLO v23. 1 相较于v1改进点3. 2 网络结构3.3 感受野3.4 特征融…

使用无代码工具开发一款问卷调查小程序

目录 1 创建项目2 创建页面3 创建后台4 前端调用后端5 预览总结 自2017年小程序概念提出以来,越来越多的场景已经可以在小程序上实现。比如我们在线预约、点餐、查询各类信息、购物等等。小程序的特点是不需要预先按照应用程序,使用时打开,不…

dpdk21.11 添加igb_uio模块

文章目录 前言igb_uio模块下载链接编译编译方式1:make编译方式2:mesonninja1. 解压,复制 dpdk-kmods/linux/igb_uio/ 到 dpdk-stable-21.11.4/kernel/linux/ 目录下2. vi dpdk-stable-21.11.4/kernel/linux/meson.build 4创建文件 meson.buil…

大模型入门(五)—— 基于peft微调ChatGLM模型

ChatGLM 是基于 General Language Model (GLM) 架构,针对中文问答和对话进行了优化。经过中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术,ChatGLM因为是中文大模型,在中文任务的表现要优于LLaMa,我在一…

ARP协议,带你了解ARP协议

目录 一、ARP协议概述 二、使用ARP的四种情况 三、ARP缓存 四、ARP的工作原理 1. 地址解析 2. 地址缓存 五、ARP报文格式 1. ARP请求报文格式 2. ARP响应报文格式 六、免费ARP 七、代理ARP 一、ARP协议概述 ARP(Address Resolution Protocol)地…

1、产品经理的宏观定义

什么是产品经理?为了引出来定义,我们来看一段对话,这个对话方式中的场景就是小明上了一年班,回家过年了,那亲戚可能就会会问小明在外面是做什么的? 亲戚:小明,你在外面是做什么的啊&…

# SIG Mesh协议学习

SIG Mesh协议学习 1. 简介 Bluetooth SIG组织在2017年7月17日发布了蓝牙Mesh标准. 蓝牙Mesh不同于传统Bluetooth Low Energy(BLE)协议的1对1, 1对多的通信方式, 它实现了多对多的通信. 这使得mesh网络中的各个节点之间可以相互通信. 蓝牙Mesh协议建立在BLE的物理层和链路层之…

Spark大数据处理学习笔记(3.8.2) Spark RDD典型案例-利用RDD统计每日新增用户

该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/Twpwe】 文章目录 一、任务目标二、准备工作2.1 在本地创建用户文件2.2 将用户文件上传到HDFS指定位置 三、完成任务3.1 在Spark Shell里完成任务3.1.1 读取文件,得到RDD3.1.2 倒排&am…

大模型入门(一)—— LLaMa/Alpaca/Vicuna

LLaMa模型是Meta开源的大模型,模型参数从7B到65B不等,LLaMa-7B在大多数基准测试上超过了GPT3-173B,而LLaMa-65B和Chinchilla-70B、PaLM-540B相比也极具竞争力。相比于ChatGPT或者GPT4来说,LLaMa可能效果上还有差距,但相…

python3 爬虫相关学习10:RE 库/ regex /regular experssion)正则表达式学习

目录 1 关于:re / regex / regular expression 1.1 什么是正则表达式 1.2 在python中导入 re 1.3 查看regex相关信息 2 正则表达式的相关符号 2.1 行定位符 2.2 元字符 (注意是 反斜杠\) 2.3 限定符号 2.4 字符类,字符集合 需要 中括号[] 2.…

Site-to-Site VPN配置和调试实践:构建安全的远程网络连接

Site-to-Site VPN配置和调试实践:构建安全的远程网络连接 【实验目的】 理解Site to Site VPN的含义。掌握Site to Site VPN的含义。验证配置。 【实验拓扑】 实验拓扑如下图所示。 实验拓扑 设备参数表如下表所示。 设备参数表 设备 接口 IP地址 子网掩码…

一组网格加载动画

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>网格动画</title><style>import url("https://fonts.googleapis.com/css2?familyOrb…

蓝牙ble的常见概念

蓝牙广播 包组成结构 低功耗蓝牙一共有40个信道&#xff0c;频段范围从2402Mhz-2480Mhz&#xff0c;每2Mhz一个信道&#xff0c;37 38 39 是广播信道&#xff0c;其余为数据信道 一个广播信道最长37字节&#xff0c;有6字节用作蓝牙设备的MAC地址&#xff0c;我们只需要关注剩…

tftp服务器环境搭建与nfs服务器环境搭建

目录 tftp 服务器环境搭建 实验步骤&#xff1a; nfs 服务器环境搭建 实验步骤 tftp 服务器环境搭建 实验步骤&#xff1a; 一、 tftp 服务器环境搭建 1 、 打开一个命令行终端&#xff0c;执行如下命令查看是否已安装 tftp 服务器 $ dpkg -s tftpd-hpa 若显示如下信…

vue可视化面板创建项目

前端项目初始化步骤 安装 vue 脚手架 通过vue脚手架创建项目 在命令行输入vue ui 等待可视化界面打开 填写项目名称&#xff08;必须英文&#xff09;和仓库信息(可选填&#xff09;&#xff0c;然后点击下一步进入“预设面板” 这里根据需要选择一个选项&#xff0c;然后…

Node.js入门之 - 初识Node.js

初识 Node.js 1. 起源 Node.js 起源于 2009 年,由 Ryan Dahl 开发,起初的目的是为了解决一些网络应用运行缓慢的问题。 在 Node.js 之前,一般会采用 LAMP(Linux Apache MySQL PHP)或者 MEAN等技术栈开发 web 应用。这些技术通常会采用请求-响应模型: 客户端(浏览器)发送一…

机器学习 day19(使用python和np实现前向传播)

烤咖啡豆模型 使用一维数组来表示这些向量和参数&#xff0c;所以只有一个方括号W1_1&#xff1a;表示layer 1的第一个神经元的WZ1_1&#xff1a;表示 W1_1和输入X之间的点积&#xff0c;再与b1_1相加a1_1&#xff1a;表示应用Z1_1的sigmoid函数a1&#xff1a;表示把a1_1&…

Explain和索引基本优化示例

一、Explain介绍 1、Explain不用版本的使用 在mysql8.0版本只能用explain&#xff0c;已经弃用了explain extended和explain partitions&#xff0c;用了都会出现语法问题&#xff0c;只能用explain&#xff1b;在explain语句后面加上show warnings;可以查看mysql优化后的语句…