内容概述:超分辨率技术是指从观测到的低分辨率图像重建出相应的高分辨率图像,随着深度学习技术的发展,超分辨率技术在电影、医疗影像、游戏等领域的应用,也愈发广泛。在本文中,帝视科技将深入探讨超分辨率的背景及原理,解释超分辨率的配置和训练模型。
关键词:超分辨率、插值算法、深度学习
图像一般是指用有限数值表示的像素组成的数字图像。
像素是影像的一个最小的抽象取样。每个像素通常对应于空间中一个特定的“位置”,并且有一个或者多个与那个点相关的采样值组成数值。
图像超分辨率,顾名思义就是放大图像的分辨率。将图像或影片从低分辨率转化为高分辨率,恢复或补足丢失的细节,往往需要用到超分辨率技术。
现有主流的图像超分辨率的方法通常可以分为2种:基于图像插值和基于深度学习的方法
插值算法是指通过在图像原有的像素周围插入新像素来加大图像的尺寸,插入像素后还要给这些像素赋值,从而恢复图像内容,达到提高图像分辨率的效果。
常用的线性插值包括:最近邻插值、双线性插值、双三次插值。
非线性插值方法运算更为复杂,但是图像边缘保护得更好。
基于边缘信息的插值算法
基于边缘信息的插值算法是对非边缘像素点采用无方向的线性插值方法进行插值,而对于边缘像素点则采用有方向的插值方法,这样做是为了保护边缘,让边缘更光滑。
基于小波系数的插值算法
基于小波系数的插值算法将图像的高、低频信息分离,单独对高频信息进行处理。若能准确地得到图像的高频细节,利用重构理论,将得到的高频与原有的低频相叠加,再通过离散小波逆变换就可以得到一幅高分辨率的图像。
基于深度学习的插值算法
基于深度学习的插值算法可以将低分辨率图像恢复出清晰的纹理,效果比之前的传统算法更好,特别是当上采率比较高的时候,传统算法不能很好的重构出所对应的高清图像,基于深度学习的算法优势明显,可以获得更好的图像恢复效果。
一般来说,我们所说的超分辨率都默认指代基于深度学习的插值算法。
基于深度学习的超分主要利用对髙分辨率图像的先验知识和以混叠形式存在的高频信息进行复原,在视频中还会利用到相邻图像之间的互补信息。
超分利用深度神经网络通过训练,提前学习到了这些知识,训练好的深度神经网络就是超分模型。
将真实的低分辨率图像输入到训练好的超分模型中,利用模型习得的先验知识,重建图像的高频细节,从而获得较好的图像恢复效果。
基于深度学习的算法步骤包括:
01 开始训练的时候用随机数初始化模型的权重。
02 将训练数据里面的低清图像输入到模型里面,正向计算得到输出重建的高清图像。
03 比较生成的重建高清图像和真实高清图像之间的差异,用损失函数衡量。
04 利用梯度下降法最小化损失函数,目的是使重建高清图像和真实高清图像尽量接近,利用梯度反向传播法更新模型的权重。
Tips:损失函数是用来评价模型的预测值和真实值不一样的程度。包括:像素损失(Pixel-wise Loss),内容损失(Perceptual Loss),纹理损失(Texture Loss),对抗损失(GAN Loss)
超分最常见的是像素损失,更强大的模型往往采用将多种损失函数相结合的方式。
SRCNN是首次应用在超分上的卷积神经网络,它的网络结构非常简单,仅仅用了三个卷积层。
对抗损失是让超分模型能够真正无中生有的生成纹理的关键。
使用对抗损失需要额外训练一个判别器模型,用来鉴别图像是真实的高分辨率图像还是超分重建的高分辨率图像。
01 超分模型的目标是尽可能生成更真实的图像,以此欺骗判别器,使判别器相信它们是真实的。
02 判别器的目标是尽可能的分辨出哪些是超分模型生成的图像。
训练过程中,超分模型和判别器模型的相互对抗和博弈,最终可以使超分模型生成逼真的图像,所以这种网络也叫生成对抗网络。
背景超分是一个较为通用的超分模型,对风景、建筑等常见背景的效果比较显著,擅长生成纹理细节。
文字超分是专门应对各种文字的超分模型,可以消除锯齿,擅长处理线条边缘。
人脸超分擅长修复人脸五官,可以生成瞳孔、睫毛和牙齿等原来不存在的细节。