【数字图像处理3 】(上)图像超分辨率重建(SR)概述

图像超分辨率重建

    • 一、前言(废话时间)
    • 二、扫盲知识
      • 什么是 超分辨率重建?
      • 兴起原因
    • 三、传统超分辨率重建
      • 1、基于插值的超分辨率重建
      • 2、基于退化模型的超分辨率重建
      • 3、基于学习的超分辨率重建
    • 四、基于深度学习的超分辨率重建
      • 1、基于单张图像的超分辨率技术
        • 1.1、定义
        • 1.2、SRCNN 模型
        • 1.3、EDSR 模型
      • 2、基于参考图像的超分辨率技术
        • 2.1、定义
        • 2.2、Landmark 模型
        • 2.3、CrossNet 模型
        • 2.4、SRNTT 模型
      • 3、【重点】大白话总结!!!!
    • 五、动手实现:
    • 其他参考资料:

一、前言(废话时间)

这不,老师上课留下了一个大作业,主题是 图像超清晰度重建。说实话,刚拿到这选题的时候,脑子里还是有点懵的,我能想到的类似的东西也就是前一阵儿网上【图像修复林徽因却修成网红脸】的那个事儿。

也就是说,我基本是啥也不会,嗯,没错。

借着学习的机会,正好整理【超清晰度重建】的前世今生,从他为什么诞生,再到人们的一步步探索,最终选取一种方法,我再照猫画虎给他做出来,整几个示例图给大家看看。

以上就是我做这次大作业的思路了(据说还要答辩),反正又不是要做论文,不用那么严肃,那就用自己的语言来写博客了。

最终代码实现见这里

二、扫盲知识

什么是 超分辨率重建?

  • 顾名思义,这是一门【模糊】变【清晰】的神奇技术,在游戏、电影、相机、医疗影像等多个领域都有广泛的应用。
  • 而低分辨率图像一般通过一系列的退化操作得到,在损失了大量细节的同时,也引入了一系列的噪声。

兴起原因

首先近年来,随着高清设备的普及,相对早期的游戏或电影在上述设备上往往无法得到很好的表现,这促使了很多经典游戏和电影的高清重制工作被提上日程(比如《星际1高清重制版》和《魔兽3重置版》,老暴雪了233~)。

在重制过程中,核心是media的高清重建工作,而该部分工作在过去往往只能通过聘请专业的设计师耗费大量的资源来完成。而现在,通过图像超分辨率技术,大大简化了工作的流程,降低了工作的成本。

另一方面,图像超分辨率技术在相机拍摄过程中也有着广泛的应用,手机的快速发展也需要这样的技术升级:
【数字图像处理3 】(上)图像超分辨率重建(SR)概述_第1张图片

三、传统超分辨率重建

传统的超分辨率重建算法主要依靠基本的数字图像处理技术进行重建,常见的有如下几类:

1、基于插值的超分辨率重建

基于插值的方法将图像上每个像素都看做是图像平面上的一个点,那么对超分辨率图像的估计可以看做是利用已知的像素信息为平面上未知的像素信息进行拟合的过程,这通常由一个预定义的变换函数或者插值核来完成。基于插值的方法计算简单、易于理解,但是也存在着一些明显的缺陷。

首先,它假设像素灰度值的变化是一个连续的、平滑的过程,但实际上这种假设并不完全成立。其次,在重建过程中,仅根据一个事先定义的转换函数来计算超分辨率图像,不考虑图像的降质退化模型,往往会导致复原出的图像出现模糊、锯齿等现象。常见的基于插值的方法包括最近邻插值法、双线性插值法和双立方插值法等。

2、基于退化模型的超分辨率重建

此类方法从图像的降质退化模型出发,假定高分辨率图像是经过了适当的运动变换、模糊及噪声才得到低分辨率图像。这种方法通过提取低分辨率图像中的关键信息,并结合对未知的超分辨率图像的先验知识来约束超分辨率图像的生成。常见的方法包括迭代反投影法、凸集投影法和最大后验概率法等。

3、基于学习的超分辨率重建

基于学习的方法则是利用大量的训练数据,从中学习低分辨率图像和高分辨率图像之间某种对应关系,然后根据学习到的映射关系来预测低分辨率图像所对应的高分辨率图像,从而实现图像的超分辨率重建过程。常见的基于学习的方法包括流形学习、稀疏编码方法。

四、基于深度学习的超分辨率重建

目前主流的图像超分辨率技术的解决方案可以分为:

  • 基于单张图像的超分辨率技术
  • 基于参考图像的超分辨率技术

下面将分别对其展开介绍。

1、基于单张图像的超分辨率技术

1.1、定义

通过一张输入图像,对图像中的高分辨率细节进行重建,最终得到图像超分辨率的结果,是传统图像超分辨率问题中的主流方法。

1.2、SRCNN 模型

  • SRCNN 模型是第一个首次将卷积神经网络应用于图像超分辨率技术,相对于传统插值、优化算法在重建质量上取得了极大的提升。由于其首创性,在此值得简单介绍一下。
  • 该模型使用一个三层的卷积神经网络来拟合从低分辨率图像到高分辨率图像的函数。
  • 图像超分辨率过程实际上是高频纹理信息的生成过程,对于低频部分通常来源于输入的低分辨率图像。
  • 然而,SRCNN 模型的特征学习过程不仅要学习生成高频的信息,还需要对低频信息进行重建,大大的降低了模型的使用效率。
  • 针对上述问题,引出VDSR 模型。

【数字图像处理3 】(上)图像超分辨率重建(SR)概述_第2张图片

参考论文:Dong C , Loy C C , He K , et al. Image Super-Resolution Using Deep Convolutional Networks[J]. TPAMI 2016.

1.3、EDSR 模型

介绍见我的这篇博客:

https://blog.csdn.net/qq_30154571/article/details/109320411

2、基于参考图像的超分辨率技术

为了改进前者,生成对抗损失函数引入的错误纹理生成问题,基于参考图像的超分辨率技术为该领域指明了一个新的方向。

2.1、定义

  • 基于参考图像的超分辨率,顾名思义就是通过一张与输入图像相似的高分辨率图像,辅助整个超分辨率的复原过程。

  • 高分辨率参考图像的引入,将图像超分辨率问题由较为困难的纹理恢复/生成转化为了相对简单的纹理搜索与迁移,使得超分辨率结果在视觉效果上有了显著的提升(相当于把问题转化了)。

  • 接下来我会介绍几种基于参考图像的模型。

2.2、Landmark 模型

Landmark 模型,通过图像检索技术,从网络上爬取与输入图像相似的高分辨率图像,再进一步通过图像配准操作,最终合成得到对应的超分辨率结果,其算法流程见下图:
【数字图像处理3 】(上)图像超分辨率重建(SR)概述_第3张图片

参考论文:Yue H , Sun X , Member S , et al. Landmark Image Super-Resolution by Retrieving Web Images[J]. TIP 2013.

2.3、CrossNet 模型

  • CrossNet 模型进一步优化上述图像配准过程,提出了基于光流估计的模型结构(啥是光流估计我实在是没懂 ̄□ ̄)。

  • 该模型通过估计输入低分辨率图像与参考图像之间的光流来对超分辨率图像进行重建。

  • 最终结果的优劣很大程度上依赖于光流计算的准确与否,而这要求输入的低分辨率图像与参考图像在视角上不能存在很大的偏差,大大限制了上述模型的适用性。
    【数字图像处理3 】(上)图像超分辨率重建(SR)概述_第4张图片

参考论文:Zheng H , Ji M , Wang H , et al. CrossNet: An End-to-end Reference-based Super Resolution Network using Cross-scale Warping[C]. ECCV 2018.

2.4、SRNTT 模型

  • 针对上述问题,SRNTT 模型提出了基于图像块的全局搜索与迁移模块,最终结果的优劣不再高度依赖于光流计算的精准度
  • 该模型通过在不同尺度上对输入低分辨率图像与高分辨率参考图像中的相似图像块进行全局的搜索与迁移,可以很好地通过高分辨率的参考图像中的高频纹理对输入低分辨率图像进行表达,进而得到非常真实的超分辨率结果。

参考论文:Zhang Z , Wang Z , Lin Z , et al. Image Super-Resolution by Neural Texture Transfer[C]. CVPR 2019.

3、【重点】大白话总结!!!!

  • 说白了,基于单张图片就是依靠现有低频信息去猜高频信息,用了很多数学知识就看能不能猜的准,猜得准就好用,这个过程就很麻烦,费时间。
  • 另外的基于参考图像方法,就是我先搜一张和你差不多的图像,我先看看他的低频信息和高频信息是怎么联系起来的,之后我再照猫画虎去推导我的高频信息。

五、动手实现:

见我的另一篇博客:

https://blog.csdn.net/qq_30154571/article/details/109262622

其他参考资料:

微软亚洲研究院官网博客:
https://www.msra.cn/zh-cn/

一文掌握图像超分辨率重建(算法原理、Pytorch实现)——含完整代码和数据:https://blog.csdn.net/qianbin3200896/article/details/104181552#3.1%20%E4%BC%A0%E7%BB%9F%E8%B6%85%E5%88%86%E8%BE%A8%E7%8E%87%E9%87%8D%E5%BB%BA%E7%AE%97%E6%B3%95

利用OpenCV实现基于深度学习的超分辨率处理:
https://mp.weixin.qq.com/s/xPzEK1PyYxYMnliw-KT3Hw

opencv插件安装指南
https://segmentfault.com/a/1190000019837915#:~:text=OpenCV%20Contrib%20%E6%98%AF%20OpenCV%20%E7%9A%84%E6%89%A9%E5%B1%95%E6%A8%A1%E5%9D%97%EF%BC%8C%E5%8C%85%E5%90%AB%E4%BA%86%E8%AE%B8%E5%A4%9A%E6%9C%80%E6%96%B0%E7%9A%84%E4%BB%A5%E5%8F%8A%E5%8F%AF%E8%83%BD%E8%BF%98%E6%B2%A1%E6%9C%89%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83%E6%9C%89%E5%BE%85%E8%BF%9B%E4%B8%80%E6%AD%A5%E5%AE%8C%E5%96%84%E7%9A%84%E7%AE%97%E6%B3%95%EF%BC%8C%E5%8F%AF%E4%BB%A5%E7%90%86%E8%A7%A3%E4%B8%BA%E6%98%AF%20OpenCV%20%E7%9A%84%E6%89%A9%E5%B1%95%E5%8C%85%EF%BC%8C%20Github%E7%BD%91%E9%A1%B5%E7%82%B9%E5%87%BB%E6%9F%A5%E7%9C%8B,%E6%98%AF%E6%99%AE%E9%80%9A%20OpenCV%20%E7%9A%84%E8%B6%85%E9%9B%86%EF%BC%8C%E5%8C%85%E5%90%AB%E4%BA%86%E6%89%80%E6%9C%89%20OpenCV%20%E6%AD%A3%E5%B8%B8%E7%89%88%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%8C%E5%8F%AF%E4%BB%A5%E7%90%86%E8%A7%A3%E4%B8%BA%20%E2%80%9COpenCV%20PLUS%E2%80%9D%20%E3%80%82.

[OpenCV实战]44 使用OpenCV进行图像超分放大
https://blog.csdn.net/LuohenYJ/article/details/108207700

你可能感兴趣的:(数字图像处理,图片超分辨率重建,数字图像处理,清晰度修复,超清晰度重建,Python,OpenCV,1024程序员节)