深度学习基于GAN实现人脸图像超分辨率重建实战task1

简介: 天池龙珠计划深度学习训练营学习笔记

天池龙珠计划深度学习训练营学习笔记


超分辨的概念与应用

图像分辨率指的是图像长边像素数与图像短边像素数的乘积,比如iPhoneX手机拍摄照片的分辨率为 4032px×3024px,为1200万像素。

显然,越高的分辨率能获得更清晰的成像。与之同时,分辨率越高也意味着更大的存储空间,对于空间非常有限的移动设备来说,需要考虑分辨率与存储空间的平衡。

图像超分,就是要从低分辨率的图像恢复为高分辨率的图像,它在日常的图像和视频存储与浏览中都有广泛的应用。

10年前手机中320px×240px分辨率的图像是主流,其视觉美感相对如今随处可见的4K分辨率来说是无法比拟的。我们可以使用超分技术来恢复当年拍摄的低分辨率图像。手机图片浏览中也有超分算法的努力,即同一张图片在不同手机上的显示效果不一样,是因为显示分辨率越高的手机可以使用更清晰的分辨率进行展示。


超分辨的典型模型

近年来CNN等深度学习模型在图像超分任务中取得了非常大的进展,使得超分算法得以真正在产品中落地,目前根据上采样(upsampling)在网络结构中的位置和使用方式不同,最主流的超分网络架构有两种。

1. 前上采样(pre-upsampling)

即在网络一开始的时候就完成上采样过程。

SRCNN框架首先使用双线性插值等上采样方法进行初始化,得到想要恢复的分辨率,这一步也可以使用反卷积来完成。 然后使用卷积层对输入的局部图像块进行特征提取,得到一系列特征图,这相当于完成了稀疏编码中重叠的图像块的构建,这一步骤可以表达如下:

F1(Y)=max(W1Y+B1)F1(Y)=max(W1∗Y+B1)

其中 W1W1B1B1 分别表示卷积核和偏置, 表示卷积操作,YY 就是输入。W1W1 的尺寸为 c×n1×f1×f1c×n1×f1×f1 ,其中 cc 就是输入图的通道数量,n1n1 是输出特征通道数,f1×f1f1×f1是卷积核大小。

早期的超分算法常常只对亮度通道进行超分,颜色通道则进行双线性上采样。SRCNN算法则同时对RGB通道进行了学习,因为这三个通道之间存在较强的灰度耦合性。

接着,使用 1×1 卷积进行维度变换,即将 n1n1 个特征通道转换为 n2n2 个特征通道,这就是相当于稀疏编码中低分辨率字典到高分辨率字典的映射,这一步骤可以表达如下:

F2(Y)=max(W2F1(Y)+B2)F2(Y)=max(W2∗F1(Y)+B2)

W2W2 的尺寸为 n1×n2×f2×f2n1×n2×f2×f2 ,其中 n1n1 就是输入特征的通道数量,n2n2 是输出特征通道数,f2×f2f2×f2 是卷积核大小,实际上 f2=1f2=1

最后就是将高分辨率的图像块重新拼接成完整的图像,这一步骤可以表达如下:

F3(Y)=max(W3F2(Y)+B3)F3(Y)=max(W3∗F2(Y)+B3)

W3W3 的尺寸为 n2×c×f3×f3n2×c×f3×f3 ,其中 n2n2 就是输入特征的通道数量,c 是输出特征通道数,它等于输入图像的通道数,f3×f3f3×f3 是卷积核大小。

f2=1f2=1 时,对于输出图像中的每一个像素,它在原图中的感受野大小为(f3+f11)2(f3+f1−1)2,一个典型的设定是f1=9f1=9f3=5f3=5,此时输出像素与输出的 132=169132=169 个像素有关,相比于传统方法具有较大的感受野,因此SRCNN具有较大的优势。

SRCNN框架可以适用于任意分辨率的提升,因为在输入网络之前,上采样过程已经对输出分辨率做了初始化,所以CNN模型要学习的是由粗到精的改进,学习过程比较简单。不过由于整个网络在高分辨率空间进行计算,因此计算量大,而且噪声容易被放大。

SRCNN的整个流程与稀疏编码方法相同,因此它也被看作是使用CNN实现了稀疏编码的方案。

2. 后上采样(post-upsampling)

即在网络的最后才开始进行上采样。

在前上采样框架中首先使用反卷积来完成上采样是一种很自然的操作,但是它计算复杂度较大,因此SRCNN的作者后来将该上采样过程放置在网络最后端,通过一个反卷积来学习该上采样过程,将其命名为FSRCNN框架。而Twitter图片与视频压缩研究组则采用了与反卷积完全不同的上采样思路,提出了ESPCN模型,其中核心思想是亚像素卷积(sub-pixel convolution)

对于维度为H×W×C的图像,标准反卷积操作输出的特征图维度为rH×rW×C,其中r就是需要放大的倍数,而从上图可以看出,亚像素卷积层的输出特征图维度为H×W×C×r2,即特征图与输入图片的尺寸保持一致,但是通道数被扩充为原来的r2倍,然后再进行重新排列得到高分辨率的结果。

整个流程因为使用了更小的图像输入,从而可以使用更小的卷积核获取较大的感受野,这既使得输入图片中邻域像素点的信息得到有效利用,还避免了计算复杂度的增加,是一种将空间上采样问题转换为通道上采样问题的思路。

相比于前上采样中在开始就进行单一的一次上采样,后采样策略能更好地利用模型的表达能力,学习更加复杂的低分辩率到高分辨率的转换,因此ESPCN模型被验证为更加有效,后续的超分模型基本沿用了该思路。


相关文章
|
8天前
|
机器学习/深度学习 并行计算 PyTorch
图像检测【YOLOv5】——深度学习
Anaconda的安装配置:(Anaconda是一个开源的Python发行版本,包括Conda、Python以及很多安装好的工具包,比如:numpy,pandas等,其中conda是一个开源包和环境管理器,可以用于在同一个电脑上安装不同版本的软件包,并且可以在不同环境之间切换,是深度学习的必备平台。) 一.Anaconda安装配置. 1.首先进入官网:https://repo.anaconda.com,选择View All Installers. 2.打开看到的界面是Anaconda的所以安装包版本,Anaconda3就代表是Python3版本,后面跟的是发行日期,我选择了最近的2022
42 28
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
深入浅出深度学习:从基础到实战
【9月更文挑战第19天】本文将带你走进深度学习的世界,从基础概念入手,逐步深入到实战应用。我们将通过简单易懂的语言和生动的比喻,让你轻松理解深度学习的原理和应用场景。同时,我们还为你准备了一些实用的代码示例,帮助你快速入门深度学习,开启你的AI之旅。
17 10
|
7天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习之文本引导的图像编辑
基于深度学习的文本引导的图像编辑(Text-Guided Image Editing)是一种通过自然语言文本指令对图像进行编辑或修改的技术。
24 8
|
9天前
|
机器学习/深度学习 自然语言处理 并行计算
深度学习之图像描述生成
基于深度学习的图像描述生成(Image Captioning)是一种将计算机视觉与自然语言处理结合的任务,其目标是通过自动生成自然语言来描述输入的图像。该技术能够理解图像中的视觉内容,并生成相应的文本描述,广泛应用于视觉问答、辅助盲人、自动视频字幕生成等领域。
27 7
|
21天前
|
机器学习/深度学习 人工智能 算法框架/工具
深入浅出:使用深度学习进行图像分类
【8月更文挑战第31天】在本文中,我们将一起探索如何利用深度学习技术对图像进行分类。通过简明的语言和直观的代码示例,我们将了解构建和训练一个简单卷积神经网络(CNN)模型的过程。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供清晰的指导和启发性的见解,帮助你理解并应用深度学习解决实际问题。
|
2天前
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
在数据驱动时代,Python凭借简洁的语法和强大的库支持,成为数据分析与机器学习的首选语言。Pandas和NumPy是Python数据分析的基础,前者提供高效的数据处理工具,后者则支持科学计算。TensorFlow与PyTorch作为深度学习领域的两大框架,助力数据科学家构建复杂神经网络,挖掘数据深层价值。通过Python打下的坚实基础,结合TensorFlow和PyTorch的强大功能,我们能在数据科学领域探索无限可能,解决复杂问题并推动科研进步。
15 0
|
1月前
|
机器学习/深度学习 人工智能 算法
【深度学习】python之人工智能应用篇——图像生成技术(二)
图像生成是计算机视觉和计算机图形学领域的一个重要研究方向,它指的是通过计算机算法和技术生成或合成图像的过程。随着深度学习、生成模型等技术的发展,图像生成领域取得了显著的进步,并在多个应用场景中发挥着重要作用。
39 9
|
30天前
|
机器学习/深度学习 API 计算机视觉
如何使用深度学习实现图像分类
深度学习在图像分类中扮演着核心角色,通过卷积神经网络(CNN)自动提取图像特征并分类。本文介绍深度学习原理及其实现流程,包括数据准备、构建CNN模型、训练与评估模型,并讨论如何在阿里云上部署模型及其实用场景。
|
1月前
|
机器学习/深度学习 PyTorch TensorFlow
【PyTorch】PyTorch深度学习框架实战(一):实现你的第一个DNN网络
【PyTorch】PyTorch深度学习框架实战(一):实现你的第一个DNN网络
76 1
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
揭秘深度学习——从理论到实战
【8月更文挑战第31天】 本文将深入探讨深度学习的奥秘,从基础理论到实际应用,带你领略深度学习的魅力。我们将通过一个简单的代码示例,展示深度学习在图像识别领域的应用,让你对深度学习有更直观的认识。