文@
142857
1 什么是超分辨率
超分辨率(Super-Resolution, SR)重建技术的基本思想是釆用信号处理的方法,在改善低分辨率(Low Resolution, LR)图像质量的同时,重建成像系统截止频率之外的信息,从而在不改变硬件设备的前提下,获取高分辨率(High Resolution, HR)的图像。通过深度学习方法提升图像/视频的分辨率,作为将模糊的图像变清晰的神奇技术,图像超分辨率技术在游戏、电影、相机、医疗影像等多个领域都有广泛的应用,例如手机拍月亮、视频去马赛克(敲黑板,老司机最感兴趣的深度学习技术)。
使用深度学习方法实现超分辨率需要在大量数据集上训练深度神经网络模型,然后将训练好的模型应用在实际数据上进行超分辨率处理。
1.1 数据
超分辨率常用的数据集有 Set5, Set14, DIV2K, Urban100, BSD100 等, 其中 DIV2K 是常用的训练集。
在超分辨率任务中, 我们一般会使用已知的下采样方式来得到成对的数据, 常用的方式是 bicubic down sampling,常用的下采样在 PIL, opencv 等图像处理工具包能够找到。但需要留意的是, 在不同工具包下, 即使是同一个下采样方法也会有细微分别, 所以在准备数据时需要确保你使用的是跟其他方法一样, 否则比较就会变得不公平。目前常用的是利用 MATLAB 的
imresize
function 来进行 bicubic 下采样。
1.2 模型结构
超分辨率深度学习模型由上采样模块和大量特征提取模块组成,广泛使用跳接结构。下图为 ESRGAN 算法的网络结构,一层卷积层将三通道图片转化为含有多个通道(一般为64)的特征图,然后使用大量 Basic Block 进行特征提取,经过跳跃连接后进行上采样,最后经过两层卷积层加工后得到超分辨率结果。
Basic Block 可以是残差块 (Res Block),也可以是稠密连接块 (Residual Dense Block),还可以像 ESRGAN 一样使用嵌套残差的稠密连接块 (Residual in Residual Dense Block)。
.css-19xugg7{position:absolute;width:100%;bottom:0;background-image:linear-gradient(to bottom,transparent,#ffffff 50px);}
< style data-emotion-css="12cv0pi">
.css-12cv0pi{box-sizing:border-box;margin:0;min-width:0;height:100px;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:absolute;width:100%;bottom:0;background-image:linear-gradient(to bottom,transparent,#ffffff 50px);}
style>
< style data-emotion-css="1pr2waf">
.css-1pr2waf{font-size:15px;color:#09408e;}
style>
< style data-emotion-css="ch8ocw">
.css-ch8ocw{position:relative;display:inline-block;height:30px;padding:0 12px;font-size:14px;line-height:30px;color:#1772F6;vertical-align:top;border-radius:100px;background:rgba(23,114,246,0.1);}.css-ch8ocw:hover{background-color:rgba(23,114,246,0.15);}
style>
< style data-emotion-css="1xlfegr">
.css-1xlfegr{background:transparent;box-shadow:none;}
style>
< style data-emotion-css="1gomreu">
.css-1gomreu{position:relative;display:inline-block;}
style>
openmmlab