神经网络超分辨率——未来的视频神器?

如果要评选最让人受不了的图片,下面这张图一定榜上有名。

不用刷了,就是它!

在刷剧、直播、看片的你只好心有不甘地选择了切换清晰度——144P流畅模式,怀着有总比没有强的心态强忍着看完了视频,心中感慨到:

马赛克是阻挡人类进步的顽石。

– “中国队夺冠啦!”

– “咦,你在看什么?”

由于网络环境的影响,即便是尊贵的网站VIP,也可能无法随时随地观看纯正1080P大片。每当此时你可能不禁会问,难道就没有办法推动人类的进步了吗?

办法当然是有的。我国计划在2020年左右部署更好更快的5G网络,大幅提高网络带宽。除此之外,还有一种图像技术可以把320P、144P这种低清图像恢复至1080P高清图像,它就是超分辨率技术(Super-Resolution)。

不同的超分辨率算法

上图从左到右依次是原图、Bicubic、SMPSR、SRCNN、IRCNN、RDN三倍放大结果。使用的神经网络越复杂,得到的输出效果越好。

超分辨率是一项底层图像处理任务,将低分辨率的图像映射至高分辨率,以期达到增强图像细节的作用。图像模糊不清的原因有很多,比如各式噪声、有损压缩、降采样,甚至还有可能是你熬夜过多所致……

低分辨率图像可以定义为其“高清”版本的一系列变换:

这里,IHR是原始图像样本,f(·)是包含参数K的模糊过程,S↓是某种降采样方法,g(·)是噪声N的叠加,ILR是观测到的低清图像。“高清”之所以加上引号,是因为IHR并不能与通常意义上的高清划等号。实际上,严格的IHR往往是未知的。我们看到的照片、合成图、渲染视频都是采样后的输出,不过为了简化问题,我们一般将高分辨率、准确对焦、人主观感受清晰可辨的图像近似为IHR。同时,如果IHR可以忽略模糊和噪声,则表达式(1)可以直接简化为:

由于S↓是不可逆的,超分辨率任务便是找到一种函数f,使得

θ是函数f的参数(也可能为空),输出I^HR期望与IHR尽可能相近,其距离判定一般采用L1或者L2函数。

别急,让我们先看看LOL的插值效果究竟如何:

LOL视频的超分辨率结果(4倍)

上图依次是原图、SRCNN、VDSR、EDSR

可以看出,虽然输出图像远好于低分辨率的输入,但距离真正的高清原图还有一定差距。超分辨率究竟是否堪当大任,最新研究进展如何呢?别急,这还得从头说起。

自卷积神经网络(CNN)在图像分类任务中取得显著进步后,基于学习(监督、半监督和无监督)的CNN网络结构开始向各个图像任务延伸。2015年,Dong Chao,He Kaiming等率先采用3层神经网络用于超分辨率任务的学习,首先提出了SRCNN(超分辨率重建),在X2,X3倍率上相对传统算法取得了不错的提升。

SRCNN的结构,2个隐含层和1个输出层

为什么采用CNN取得的结果比传统算法更好?

SRCNN训练一个3层神经网络模型,将ILR映射至其对应的IHR:

目标函数是:

其中,S↑是一个上采样方法,将输入LR(Low Resolution)样本映射到高维的HR(High Resolution)空间,θ是网络参数,L是参数正则项。通过优化目标函数使得IHR-I^HR的2范数(MSE)最小。而MSE是一种常用的图像相似性判断标准,网络的目标就是找到MSE最小的一种映射。

当时认为,相比于传统的线性采样算法,CNN可以学习到更多特征,而且感受野更大,比如9-5-5的卷积尺寸能够达到17的感受野,每个像素点参考了周边17x17个像素,因此局部特性优于仅有2x2的线性采样和4x4的立方采样。

那么,进一步增加感受野能否提升输出效果呢?随后的研究发现,随着卷积尺寸增大,层数加深,输出图像的效果改变并不明显。这是由于过深的网络导致梯度消失,训练早停。另外,大卷积也带来了运算效率下降的问题。

但是,残差网络的提出有效解决了深度网络导致的梯度消失问题,来自首尔大学的Kim等人发表于CVPR2016的VDSR(超分辨率)便是一个代表性工作,他们将CNN扩展到20层,并且以训练残差ΔI=IHR-I^HR差代替直接训练IHR。

VDSR堆叠了更多的卷积层,并且用残差结构避免梯度消失的问题

虽然VDSR做到了最好的基准成绩,但对细节的处理让人仍不满意。当“更大更好”这个逻辑仍然成立时,研究者把目光放向更加复杂的结构,主要思路可以概括为两点——特征层的划分和组合,极大地扩展了卷积层数。

不断加深的层数和不断提升的成绩

常用的组合结构:(a)残差块;(b)密集块

随着研究进一步发展,人们开始将目光转向视频序列的超分辨率。相对于单帧图像,视频是由时间上连续的图像构成,具有高度的时间关联性。同一场景下连续的两帧It和It+1,可以看作It经过“运动”变成了It+1。

如果忽略时间维度,仅对单帧独立超分辨率,虽然可以得到看似“不错”的结果,但如果将输出帧再连起来播放,就会发现视频中容易出现“波浪”效果。这是由于忽略了时间相关性,生成像素在时间上不一定连续,使得时间上匹配的像素发生了偏移,连贯播放起来就产生了波浪效果。

低清GIF

SISR GIF

VSR GIF

在视频任务中,主流做法是采用光流法引入时间关联。所谓光流,是指两帧图像对应像素的运动矢量。有了光流信息,就能用“运动”的概念联系起帧间信息。为了使卷积网络能够正确处理运动关联,一般将d-1个参考帧根据光流信息重新采样到目标帧:

加强长度为d的帧的集合在空间上的重合度,有利于网络学习到像素的多重关联信息。

针对视频处理的超分辨率网络结构

实时网络

在效率上,不少研究者认为在浅层网络直接学习HR到HR的映射效率不高,因为浅层CNN可能很难掌握HR空间中的细节,更多的是LR空间便能学到的粗信息。因此一开始并不像SRCNN和VDSR那样先将ILR通过插值映射到HR空间,而是在最后几层通过转置卷积的方法将特征层上采样到HR空间。Twitter发表于CVPR2016上的工作ESPCN通过采用类似于固定参数的转置卷积层(称为Efficient Sub-pixel,或Depth to Space层),快速对特征层上采样,大受好评,其与相关变种后来被广泛应用于超分辨率网络。

不过,当前要想取得优良的输出质量仍然离不开大量的卷积层叠加,而超分辨率的运算维度又非常大,实时化运算仍然需要寻找新的突破口。

对抗生成

超分辨率是一个典型的非适定性(ill-posed)问题,LR到HR的映射具有高度不确定性,每一个LR输入都有大量的合理的HR与之对应,但是神经网络往往无法从这些合理HR集合中挑选出单一样本,而只能输出整个集合的统计期望(优化L2目标函数近似得到平均值),因此导致输出图像锐度消失。采用生成对抗网络(GAN)训练框架,有助于解决纹理缺失的问题。GAN是一个非常庞杂的问题,在超分辨率领域,主要依靠增加的对抗损失函数来指导生成网络训练,在经过仔细调参后,使生成网络输出接近训练集HR空间分布的图像,填充缺失的细节纹理。

近期针对神经网络超分辨率的研究工作极大地推进了超分辨率输出图像的效果,在单一图像放大场景已经有许多不错的应用,比如医疗图像增强、图像增强APP等,但在视频方面仍有许多工作亟待解决,需要研究界共同努力才能为广大用户带来真正的『高清』体验。

来源:英特尔中国研究院返回搜狐,查看更多

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()