深度学习基于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模型被验证为更加有效,后续的超分模型基本沿用了该思路。


相关文章
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
利用深度学习实现图像风格迁移
【8月更文挑战第73天】本文通过深入浅出的方式,介绍了一种使用深度学习技术进行图像风格迁移的方法。我们将探讨如何将一张普通照片转化为具有著名画作风格的艺术作品。文章不仅解释了背后的技术原理,还提供了一个实际的代码示例,帮助读者理解如何实现这一过程。
|
19天前
|
机器学习/深度学习 编解码 算法
什么是超分辨率?浅谈一下基于深度学习的图像超分辨率技术
超分辨率技术旨在提升图像或视频的清晰度,通过增加单位长度内的采样点数量来提高空间分辨率。基于深度学习的方法,如SRCNN、VDSR、SRResNet等,通过卷积神经网络和残差学习等技术,显著提升了图像重建的质量。此外,基于参考图像的超分辨率技术通过利用高分辨率参考图像,进一步提高了重建图像的真实感和细节。
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
揭秘深度学习中的微调难题:如何运用弹性权重巩固(EWC)策略巧妙应对灾难性遗忘,附带实战代码详解助你轻松掌握技巧
【10月更文挑战第1天】深度学习中,模型微调虽能提升性能,但常导致“灾难性遗忘”,即模型在新任务上训练后遗忘旧知识。本文介绍弹性权重巩固(EWC)方法,通过在损失函数中加入正则项来惩罚对重要参数的更改,从而缓解此问题。提供了一个基于PyTorch的实现示例,展示如何在训练过程中引入EWC损失,适用于终身学习和在线学习等场景。
74 4
揭秘深度学习中的微调难题:如何运用弹性权重巩固(EWC)策略巧妙应对灾难性遗忘,附带实战代码详解助你轻松掌握技巧
|
14天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习的奇迹:如何用神经网络识别图像
【10月更文挑战第33天】在这篇文章中,我们将探索深度学习的奇妙世界,特别是卷积神经网络(CNN)在图像识别中的应用。我们将通过一个简单的代码示例,展示如何使用Python和Keras库构建一个能够识别手写数字的神经网络。这不仅是对深度学习概念的直观介绍,也是对技术实践的一次尝试。让我们一起踏上这段探索之旅,看看数据、模型和代码是如何交织在一起,创造出令人惊叹的结果。
26 0
|
1月前
|
机器学习/深度学习 人工智能 算法
揭开深度学习与传统机器学习的神秘面纱:从理论差异到实战代码详解两者间的选择与应用策略全面解析
【10月更文挑战第10天】本文探讨了深度学习与传统机器学习的区别,通过图像识别和语音处理等领域的应用案例,展示了深度学习在自动特征学习和处理大规模数据方面的优势。文中还提供了一个Python代码示例,使用TensorFlow构建多层感知器(MLP)并与Scikit-learn中的逻辑回归模型进行对比,进一步说明了两者的不同特点。
64 2
|
1月前
|
机器学习/深度学习 数据挖掘 数据处理
深度学习之卫星图像中的环境监测
基于深度学习的卫星图像环境监测是指通过使用深度学习模型处理和分析来自卫星的遥感数据,以实现对地球环境的自动化监测和分析。这项技术极大提升了环境监测的效率、精度和规模,应用于气候变化研究、生态保护、自然灾害监测、城市扩张评估等多个领域。
88 0
|
1月前
|
机器学习/深度学习 PyTorch API
深度学习入门:卷积神经网络 | CNN概述,图像基础知识,卷积层,池化层(超详解!!!)
深度学习入门:卷积神经网络 | CNN概述,图像基础知识,卷积层,池化层(超详解!!!)
|
7天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术在图像识别领域的应用,重点分析了卷积神经网络(CNN)的工作原理及其在处理图像数据方面的优势。通过案例研究,展示了深度学习如何提高图像识别的准确性和效率。同时,文章也讨论了当前面临的主要挑战,包括数据不足、过拟合问题以及计算资源的需求,并提出了相应的解决策略。
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
3天前
|
机器学习/深度学习 数据采集 测试技术
深度学习在图像识别中的应用
本篇文章将探讨深度学习在图像识别中的应用。我们将介绍深度学习的基本原理,以及如何使用深度学习进行图像识别。我们将通过一个简单的代码示例来演示如何使用深度学习进行图像识别。这篇文章的目的是帮助读者理解深度学习在图像识别中的作用,并学习如何使用深度学习进行图像识别。

热门文章

最新文章

下一篇
无影云桌面