超分辨率技术如何发展?这6篇ECCV 18论文带你一次尽览

2023-11-08

原作:Tetianka Martyniuk
林鳞 编译自 Medium
量子位 出品 | 公众号 QbitAI

还有什么能比国际顶会更能反映图像技术的最前沿进展?

在这篇文章中,亲历了ECCV 2018的机器学习研究员Tetianka Martyniuk挑选了6篇ECCV 2018接收论文,概述了超分辨率(Super-Resolution, SR)技术的未来发展趋势。

量子位将文章要点翻译整理如下与大家分享。

640?wx_fmt=png

一:学习图像超分辨率,先学习图像退化

论文:
To learn image super-resolution, use a GAN to learn how to do image degradation first

地址:
http://openaccess.thecvf.com/content_ECCV_2018/html/Adrian_Bulat_To_learn_image_ECCV_2018_paper.html

为什么超分辨率经常被认为是个相当简单的问题?我曾经说过,因为它能够轻松得到训练数据(只需要降低获取图像的清晰度即可),所以和图像修复任务相比,超分辨率可能显得有些无聊。

但人工生成的低分辨率图像,和真实自然存在的图像一样吗?答案是否定的。和通过双三次插值生成的图像不同,真实世界的低分辨率图像明显属于不同类别。

因此,有人认为用这些人工生成的图像训练GAN并不能生成真实的图像。

为了处理这个问题,这篇论文的作者建议了两步走的方法:首先,用未配对的图像训练一个降低分辨率的GAN,所以它学习了如何减小高分辨率图像的规模。

当图片有多级退化或未知退化(比如运动模糊)时,能够帮我们获取真实结果的并不是建模过程,而是图像退化的学习过程。此外,它还解决的重建图像时的“老大难”问题:难以获取配对图像。

所以,在第一阶段,我们可以使用不同的未配对数据集,比如由Celeb-A、AFLW、LS3D-W和VGGFace2组成的高分辨率图像数据集,或者低分辨率图像数据集Widerface。第二阶段,用上一步的输出结果,用成对训练数据从低分辨率到高分辨率地训练GAN。

论文作者还提到,作者表示,唯一的另外一种写到了真实低分辨率面部图像超分辨率结果的方法,也出自自己实验室,而且中了CVPR 18。这些结果只包含面部图像,因为它用到了面部标记,因此不能被应用到其他物体分类中。

这是一些让人印象深刻的结果:

640?wx_fmt=png

二:由面部五官热力图指导的面部超分辨率

论文:
Face Super-resolution Guided by Facial Component Heatmaps

地址:
http://openaccess.thecvf.com/content_ECCV_2018/html/Xin_Yu_Face_Super-resolution_Guided_ECCV_2018_paper.html

在这篇论文中,作者认为自己的Face SR方法的结果优于SOTA,是因为它考虑到了人脸的面部特征,因此可以捕捉到动作的变化。此外,这大大降低了训练样例的数量。

他们主要的方法是借助提升采样的多任务CNN和辨别网络。这个提升采样的网络包含两个分支:一个提升采样的分支和一个相互协作的面部五官热力图分支。

640?wx_fmt=png

在16*16的图像中检测面部五官是一个颇具挑战性的任务,所以作者首先拿到了低分辨率图像的超分辨率版本,然后部署空间变换网络配准特征图,随后,用经过上采样的特征图来预估面部五官的热力图。

配准特征图是可以减少训练数据规模的重要原因之一,预计的面部热力图也提供了可视化信息,这些是无法从像素级信息推断出来的。

640?wx_fmt=png

这里还有一些结果:

640?wx_fmt=png

 a:未配准的低像素的输入,b:原始高清图像,c:配准低分辨率人脸的最近邻,d:级联Bi-Network结果,e:TDAE(Transformative Discriminative Autoencoders)结果,f:用作者的训练数据训练过的TDAE结果,g:作者的结果

总的来说,与其他满量程(Full scale range,FSR)方法主要的不同点是,作者不仅应用到了相似强度映射,并且将收集的结构信息当作额外的先验。

三:用深度残差通道的注意网络的图像超分辨率

论文:
Image Super-Resolution Using Very Deep Residual Channel Attention Networks

地址:
http://openaccess.thecvf.com/content_ECCV_2018/html/Yulun_Zhang_Image_Super-Resolution_Using_ECCV_2018_paper.html

在这篇文章中,作者提出了一种让CNN更深的方法:首先要做的就是,准备10个残差组,其中每组包含20个残差通道注意模块。

研究人员表示网络的深度很重要,我们也认为如此,也见证过EDSR和MDSR带来的一波浪潮。然而,通过简单堆叠残差块来构建更深的网络可能很难得到更大的提升,需要在架构方面有更多进展。

所以,他们提出了RIR(residual in residual)架构,堆叠的每个残差组里包含很多残差块,因此我们也可以获得长跳过连接和短跳过连接。

上述提到的映射和残差块中的快捷键可以绕开低频信息。

640?wx_fmt=png

 网络架构

这篇论文中第二个亮点是通道注意机制,基于CNN的方法主要的问题是,他们会平均对待每个通道特征,缺少分辨跨特征通道的学习能力。所以,引入的通道注意自适应性重新调整每个通道的特征,可以将注意力集中到更有用的通道中。

640?wx_fmt=png

基本模组如下:

640?wx_fmt=png

结果如下:

640?wx_fmt=png

四:用于图像超分辨率的多尺度残差网络

论文:
Multi-scale Residual Network for Image Super-Resolution

地址:
http://openaccess.thecvf.com/content_ECCV_2018/html/Juncheng_Li_Multi-scale_Residual_Network_ECCV_2018_paper.html

在这篇论文中,作者从重建经典的超分辨率模型开始讲起,包括SRCNN、EDSR和SRResNet这些已知的经典模型。基于这些重建实验,研究人员认为这些模型具有一些共同点:

  • 难以重现

  • 特征利用率不足

  • 可扩展性差

所以,研究人员提出了一种新型的网络架构,并称之为多尺度残差网络(Multi-scale residual network,MSRN)。

640?wx_fmt=png

它由两部分构成:多尺度特征融合和局部残差学习,可以用不同大小的卷积核来适应性检测不同规模的图像特征。采用残差学习法可以让神经网络更高效。

640?wx_fmt=png

每个多尺度残差网络的输出都被用作全局特征融合的分层特征,最终,所有这些特征都在重建模型中用于修复高分辨率图像。

作者在没有任何初始化或技巧的情况下,用DIV2K数据集训练网络,证明了这可以解决我们上述提到的第一问题:复现性差。

可以看看论文中给出的结果:

640?wx_fmt=png

在其他低级计算机视觉的任务中的结果也可以拿来对比,这个方法对作者来说最大的意义就是开创了一个用于图像修复的单个多任务模型。

640?wx_fmt=png

五:级联残差加持的快速、准确、轻量级的超分辨率网络

论文:
Fast, Accurate, and Lightweight Super-Resolution with Cascading Residual Network

地址:
http://openaccess.thecvf.com/content_ECCV_2018/html/Namhyuk_Ahn_Fast_Accurate_and_ECCV_2018_paper.html

首先向大家展示不同基准算法在Mult-Adds和参数数量方面的对比:

640?wx_fmt=png

这篇文章的主要贡献也显而易见,就是提供了一个轻量级的网络,作者称之为CARN(Cascading Residual Network,级联残差网络)。

640?wx_fmt=png

它具有以下三个特征:

  • 全局和局部级联连接

  • 中间特征是级联的,且被组合在1×1大小的卷积块中

  • 使多级表示和快捷连接,让信息传递更高效

然而,多级表示的优势被限制在了每个本地级联模块内部,比如在快捷连接上的1×1卷积这样的乘法操作可能会阻碍信息的传递,所以认为性能会下降也在情理之中。

高效的CARN

为了提升CARN的效率,作者提出了一种残差-E模块。

640?wx_fmt=png

这种方法和MobileNet类似,但是深度卷积被替换为了分组卷积。因为分组卷积中间必然有trade-off,因此在用户可以选择合适的分组大小。

为了进一步降低参数,论文中用到了一种与递归神经网络相似的技巧,就是将级联模块的参数共享,让模块高效递归。

640?wx_fmt=png

 通过将普通残差块更改为高效残差块,可以精简操作数量

CARN的处理结果如下:

640?wx_fmt=png

六:SRFeat:具有特征识别的单个图像超分辨率

论文:
SRFeat: Single Image Super-Resolution with Feature Discrimination

地址:
http://openaccess.thecvf.com/content_ECCV_2018/html/Seong-Jin_Park_SRFeat_Single_Image_ECCV_2018_paper.html

在这篇论文中,作者主要提出了一种方法,部署一个可以在特征域中起作用的额外的辨别器。

作者表示,与像素上的均方误差相似,VGG特征中的均方误差不足以用来完全表示特征图的真实特点。所以,他们在特征图中加入了对抗性损失,并将其命名为“SRFeat”。

640?wx_fmt=png

作者通过两个步骤训练了生成器:即预训练和对抗训练。

在预训练阶段,作者通过最小化均方误差损失来训练网络,通过预训练步骤得到的网络已经能够实现高PSNR,然而,它不能产生看起来令人满意的带理想高频信息的结果。

640?wx_fmt=png

在随后的对抗训练阶段,需要最小化这样一个损失函数:它包含了视觉上看起来相似的损失、图像图像GAN损失和特征GAN损失。

使用ImageNet预训练生成器,再用DIV2K进行进一步训练后,结果如下:

640?wx_fmt=png

SRFeat的结果看起来更优秀一些。

传送门

原文链接如下~请注意科学前往:

https://medium.com/lets-enhance-stories/super-resolution-trends-at-eccv18-809d5383a3fb

加入社群

量子位AI社群28群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;


此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。


进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

640?wx_fmt=jpeg

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

超分辨率技术如何发展?这6篇ECCV 18论文带你一次尽览 的相关文章

  • Redis的这些都没有掌握,你还想要拿Offer?

    Redis 简介 Redis 是完全开源免费的 遵守 BSD 协议 是一个高性能的 key value 数据库 Redis 与 其他 key value 缓存产品有以下三个特点 Redis 支持数据持久化 可以将内存中的数据保存在磁盘中 重
  • 反爬虫策略的应对方法汇总

    现在越来越多的工作需要用到爬虫程序 但是同时也有很多人会通过爬虫程序恶意竞争 因此为了能够保护自己的正当权益 各种反爬虫程序被研发利用起来 所以很多时候 在进行爬虫工作的时候首要面对的就是爬虫和反爬虫的拉锯战 这里就说一下常见的防爬虫策略和
  • c语言排序之冒泡排序升序的使用详解

    在c语言中实现冒泡排序 简介 冒泡 这个名字的由来是因为越大的元素会经由交换慢慢 浮 到数列的顶端 故名 冒泡排序应该是最常见的排序方法了 c语言初学者一定要学会使用 冒泡排序 BubbleSort 的基本概念是 依次比较相邻的两个数 将小
  • OpenCV中RotatedRect的角度问题与平行判定

    OpenCV中RotatedRect的角度问题与平行判定 在运用OpenCV的过程中 想对两个细窄长方形进行平行判定 但是因为RotatedRct的角度问题 走了很多弯路 RotatedRect OpenCV中 以左上角角点为O点 竖直向下
  • Nginx 部署 Django Python虚拟环境创建 傻瓜教程

    这里不讨论uwsgi 与 nginx之间的关系 但是建议学习 通俗说 Nginx就是可以让你的网页支持更多请求时保证负载均衡 简单的网页用uwsgi部署配合django runserver也可以达到要求 所以从负载能力是 Nginx gt
  • 浮点数在计算机中存储方式

    C语言和C 语言中 对于浮点类型的数据采用单精度类型 float 和双精度类型 double 来存储 float数据占用32bit double数据占用64bit 我们在声明一个变量float f 2 25f的时候 是如何分配内存的呢 如果
  • 什么是软件测试?零基础入门知识要点总结篇,5分钟带你快速了解

    1 什么是软件测试 软件测试 英语 Software Testing 描述一种用来促进鉴定软件的正确性 完整性 安全性和质量的过程 换句话说 软件测试是一种实际输出与预期输出之间的审核或者比较过程 通俗的来讲 软件测试 就是软件测试人员验证
  • 如何使用 Flask 和 GPT-4 API 创建人工智能驱动的 Python Web 应用程序

    欢迎来到 Web 开发的未来 人工智能 AI 正在彻底改变我们创建在线应用程序并与之交互的方式 在这篇博文中 我们将向您介绍使用 Flask 网络框架和 OpenAI 最先进的 GPT 4 API 创建尖端的人工智能 Python 网络应用
  • Vue06/Vue中this.$nextTick( ) 的用法及详细介绍

    一 nextTick 语法 this nextTick 箭头函数体 作用 this nextTick这个方法作用是当数据被修改后使用这个方法 回调函数获取更新后的dom再渲染出来 注意 1 data改变 更新DOM是异步的 2 获取更新后的
  • 基于Camera2和MediaRecorder实现视频录制

    一 概述 视频录制 在一般开发中很少遇到 大部分开发工作都是写写页面 请求接口 展示数据等等 真要遇到 可能采用第三方库实现 一来实现快速 二来可能觉得别人实现的比较好 特别是在开发周期很紧的情况下 一般都不会自己花时间实现 其实最好是使用
  • 「AntV」使用AntV X6实现流程编排设计器

    通过对BPMN的深入学习 以及对业界成熟的流程编排设计器的调研 了解到要研发一个流程编排设计器 需要实现如下几个主要的功能 支持创建各种流程图元素 包括任务 活动 网关 事件等 支持绘制各种连接线 包括普通连接线 条件连接线 消息连接线等
  • osg学习(四十八)Windows Error #2000

    Windows Error 2000 Win32WindowingSystem OpenGLContext Unable to restore current OpenGL rendering context Reason 无效的像素格式
  • 海思移植opencv+人脸检测+速度优化

    文章为9crk大神发表在海思论坛 为了备忘 特转到自己博客 地址 http www ebaina com bbs thread 4858 1 1 html 1 确保ubuntu能上网 2 安装cmake 代码 全选 sudo apt get
  • 关于KEIL5编译出现“Target not createt”全系列解决办法——情况1:字节限制 RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT

    前言 在KEIL5编程 往往遇到许多 Target not createt 即目标不能实现这类情况 由此为帮助大家解决这些问题特开此贴 情况如下 1 2K字节限制错误 ERROR RESTRICTED VERSION WITH 0800H
  • 01背包问题动态规划(二维数组)

    01背包问题动态规划 二维数组 问题描述 一个旅行者有一个最多能装 M 公斤的背包 现在有 n 件物品 它们的重量分别是W1 W2 Wn 它们的价值分别为C1 C2 Cn 求旅行者能获得最大总价值 输入格式 第一行 两个整数 M 背包容量
  • maven项目中新建Servlet问题

    maven项目中新建Servlet问题 该文章分享本人在maven基础学习中遇到的一些问题 以及解决的方法 在IDEA中创建一个maven的web骨架项目后 然后在src main下新建一个directory java 并且设置文件夹为So
  • 为什么选择软件测试这个岗位?(面经)

    面试官 这么多岗位 你为什么会选择软件测试这个岗位 言外之意 你比起这么多应聘者有什么优势 从以下方面回答 1 对软件测试的理解 2 对岗位职责的了解 用自己在大学期间的学习 实习以及自己的优势对于这个岗位有什么好处和满足这个岗位的招聘需求
  • 微信小程序保存图片到相册

    先来看小程序中的保存图片到相册的api wx saveImageToPhotosAlbum filePath test png 这个只是测试路径 没有效果 success res console log success fail funct
  • java环境检测_如何检查是否安装了java环境(即JRE)

    浏览器访问一些调用了图形界面的网页 需要使用JRE 这个时候我们就需要检测操作系统是否已经安装了java环境 JRE 1 点击开始菜单 输入cmd 2 在cmd窗口中输入java 若提示 java 不是内部或外部命令 也不是可运行的程序或批
  • Spring Boot系列之修改内置Tomcat版本

    背景 在 spring boot 出来之前 或者没有使用 spring boot 时 Java EE 开发时如果选择 tomcat servlet 需要自己指定 tomcat 版本 此处没有考虑那种直接把打包的 war 直接扔到本地安装的任

随机推荐

  • 流提取运算符( >> )过滤空白符

    流提取运算符 gt gt 过滤空白符 转载于 https www cnblogs com kevinGaoblog archive 2012 04 12 2444822 html
  • SpringBoot中Swagger2多包扫描问题

    API接口类没有能都放在同一个包下 是按功能模块分的 所以涉及多包扫描的问题 贴出来解决办法 Swagger在POM配置好后 修改SwaggerConfig类 我只贴出要修改的 直接用 swagger2的配置文件 在项目的启动类的同级文件建
  • idea中编写spark程序并打包到集群执行

    本篇主要介绍了如何使用IDEA在本地打包Spark应用程序 以K Means为例 并提交到集群执行 1 安装JDK与Scala SDK JDK和Scala SDK的安装在这里不再赘述 需要注意的是 要设置好环境变量 这样新建项目时就能自动检
  • matlab训练神经网络时,使用mse(均方误差)以外的性能函数。

    除了默认的mse 均方误差 这个性能函数外 还有mae 平均绝对误差 sae 绝对值和误差 sse 平方和误差 crossentropy 交叉熵 要调用其他性能函数 只需要加一行代码 net performFcn mae net是网络名 这
  • Python第二章作业(初级)

    第1关 三角形周长及面积 任务描述 输入的三角形的三条边a b c 的长度 计算并依次输出三角形的周长和面积 结果严格保留2位小数 测试用例的数据保证三角形三边数据可以构成三角形 三角形面积计算公式 公式 其中s a b c 2 输入格式
  • 添加锚点的三种方式

    1 通过链接跳转到指定id的位置 a href a 跳转到指定位置 a ul li 1 li li 1 li li style color red 2 li li 1 li li 1 li ul 2 只有对a标签有效的方法 设置name属性
  • 深度学习09 -Transformer2 - 理论篇

    参考文档 详解Transformer 1 开局来一张Transformer的整体结构图 2 结构图每步分析 1 Encoder 1 Input Embedding 就是对输入的数据进行向量化编码 可能是one hot等等 2 Positio
  • 基于Sqli-Labs靶场的SQL注入-17~22关

    目录 Less 17 基于POST请求方式的中级注入 爆破数据库名 爆破表名 爆破列名 爆破字段值 第十七关代码审计 Less 18 HTTP头部注入 UA注入 爆破数据库名 爆破表名 爆破列名 爆破字段值 HTTP头部注入判断方法 Les
  • mybatis 中 Example 的使用 :条件查询、排序、分页(三种分页方式 : RowBounds、PageHelpler 、limit )

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到教程 import tk mybatis mapper entity Example import com github pagehelper Pa
  • 不要再无头苍蝇般寻找AI工具了--100个AI工具网站请查收

    随着ChatGPT的爆火 人工智能也成为当今最热门的领域之一 它正在改变我们的生活和工作方式 想要学习人工智能的基础知识 或者利用人工智能来提升业务效率和创新能力 都需要找到合适的AI工具来帮助您实现目标 然而 在海量的AI工具中 如何快速
  • python写闲鱼脚本_自动化篇

    1 目 标 场 景 前篇文章讲了如何在 iOS 端使用 Airtest 实现自动化的操作 本篇将继续带大家做 iOS 端的自动化项目 如果你经常用闲鱼 应该每天都要进行下面操作 App 签到 鱼塘签到 擦亮宝贝 这一系列操作都是重复且枯燥的
  • 利用opencv进行目标跟踪(python和c++)

    参考来自 https www cnblogs com annie22wang p 9366610 html https learnopencv com object tracking using opencv cpp python pyth
  • win10 pro 使用远程桌面

    今天升级到了win10 专业版 有了几个家庭版没有的功能 比如win10自带的远程桌面功能 远程桌面就是可以通过其他设备访问并操作电脑的功能 比如说Android手机 使用win10家庭版的同学可以参考我的这篇文章升级成为win10专业版
  • 数据列表组件 jqGrid 二次封装

    前段时间在jqgrid基础上 进行了二次封装 应用在公司新的开发平台上 相比以前效果更佳 开发更方便 减少代码50 共享下提供大家参考学习 先看效果 数据表格 树结构表格 多级表头 最多支持3级 用法
  • c++ set用法 入门必看 超详细

    1 set的作用 set就是集合的意思 集合的特点就是不会出现重复的内容 一般用来作查重或去重操作 举个场景 给出一个表 姓名 爱好 小明 打篮球 小刚 画画 小明 听音乐 问该表中出现了多少个人 学会了set 就可以很轻松地解决这个问题
  • python3收邮件_认真对待 Python3 收邮件

    前言 之前老是用Python发邮件 用起来挺方便的 但是一直没实现用Python收邮件 最近忙着笔试面试 但是又不能时刻打开浏览器 刷手机看看有没有新邮件 尤其是有没有关于面试 笔试通知的邮件 啊 所以写个脚本来做下定时任务 一旦有相关的主
  • 黑客爱用的 HOOK 技术大揭秘!

    黑客爱用的 HOOK 技术大揭秘 什么是 HOOK 技术 病毒木马为何惨遭杀软拦截 商业软件为何频遭免费破解 系统漏洞为何能被补丁修复 这一切的背后到底是人性的扭曲 还是道德的沦丧 敬请收看今天的专题文章 什么是 HOOK 技术 上面是开个
  • Ninja简介-Android10.0编译系统(九)

    Android取经之路 的源码都基于Android Q 10 0 进行分析 Android取经之路 系列文章 系统启动篇 Android系统架构Android是怎么启动的Android 10 0系统启动之init进程Android10 0系
  • 【深度学习与计算机视觉】3、最优化与梯度下降

    三 最优化与梯度下降 上一节深度学习与计算机视觉系列 3 线性SVM与SoftMax分类器中提到两个对图像识别至关重要的概念 用于把原始像素信息映射到不同类别得分的得分函数 score function 用于评估参数W效果 评估该参数下每类
  • 超分辨率技术如何发展?这6篇ECCV 18论文带你一次尽览

    原作 Tetianka Martyniuk林鳞 编译自 Medium量子位 出品 公众号 QbitAI 还有什么能比国际顶会更能反映图像技术的最前沿进展 在这篇文章中 亲历了ECCV 2018的机器学习研究员Tetianka Martyni