论文解读|使用深度卷积网络的图像超分辨率

news2024/10/7 4:26:44

原创 | 文 BFT机器人 

图片

论文标题:Image Super-Resolution Using Deep Convolutional Networks

网址:https://arxiv.org/abs/1501.00092

代码:https://github.com/Edwardlzy/SRCNN 

01

摘要

提出了一种单幅图像超分辨率(SR)的深度学习方法。该方法通过深度卷积神经网络 (CNN)学习低分辨率图像到高分辨率图像的端到端映射,输入是低分辨率图像,输出是高分辨率图像。

该方法通过联合优化所有层实现了更好的性能,使得其在恢复质量方面表现卓越,同时具有轻量级的结构,适用于快速在线应用。研究还探讨了不同的网络结构和参数设置,以及平衡性能和速度之间的关系。另外,方法还扩展了网络,能够同时处理三个颜色通道,并在整体重建质量上表现更出色。

02

介绍

此论文通过在非线性映射层中引入更大的滤波器尺寸来改进SRCNN,并通过增加非线性映射层来探索更深层次的结构。其次,扩展SRCNN以同时处理三个颜色通道(在YCbCr或RGB颜色空间中)。

实验表明,与单通道网络相比,该网络的性能可以得到改善。最后,在初始结果的基础上增加了大量新的分析和直观的解释。作者们还将原始实验从Set5和Set14测试图像扩展到BSD200(200张测试图像)

此研究的主要贡献包括以下三个方面:

1)提出了一种全卷积神经网络用于图像超分辨率。该网络直接学习低分辨率和高分辨率图像之间的端到端映射,几乎无需额外的预处理或后处理即可进行优化。

2)建立了基于深度学习的超分辨率方法与传统的基于稀疏编码的方法之间的关系,为网络结构的设计提供了指导。

3)证明了深度学习在经典的超分辨率计算机视觉问题中的实用性,能够实现优秀的质量和速度。

 

图片

03

相关工作

3.1 Image Super-Resolution

根据图像可知,单图像超分辨率算法可分为四种类型:预测模型、基于边缘的方法、图像统计方法和基于补丁(或实例)的方法。内部基于实例的方法利用自相似特性生成示例补丁,通过改进的变体来提高效率。

外部基于实例的方法从外部数据集学习低/高分辨率补丁之间的映射,涉及学习紧凑字典或流形空间来关联补丁,并在这些空间中执行表示。这些方法包括直接使用最近邻对进行重建、流形嵌入技术、稀疏编码公式等。

进一步的改进方法包括核回归、简单函数、随机森林和锚定邻域回归。基于稀疏编码的方法及其改进是当今最先进的超分辨率方法之一,其重点在于斑块的优化,而patch提取和聚合被视为预处理和后处理步骤。

04

用于超分辨率的卷积神经网络

4.1 Formulation

在处理单个低分辨率图像时,我们采用双三次插值将其调整到所需尺寸,这是唯一的预处理步骤。我们将插值后的图像记为Y。我们的目标是从Y中恢复出与真实高分辨率图像x尽可能相似的图像F(Y)。尽管插值后的图像Y与x大小相同,我们仍称之为“低分辨率”图像。我们希望学习一个映射F,它由以下三个操作组成:

斑块提取和表示:从低分辨率图像Y中提取(重叠)补丁,并将每个补丁表示为高维向量。这些向量由一组特征映射组成,映射的数量等于向量的维数。

图片

非线性映射:将每个高维向量进行非线性映射,得到另一个高维向量。这些映射向量在概念上代表高分辨率补丁。

图片

重建:将上述高分辨率补丁表示聚合,生成最终的高分辨率图像。这个图像预计与真实高分辨率图像X相似。如下图所示

图片

图片

4.2 Relationship to Sparse-Coding-Based Methods

基于稀疏编码的方法可以看作是一种卷积神经网络,但在构建卷积神经网络时需要优化更多操作。

在基于稀疏编码的方法中,首先从输入图像中提取低分辨率补丁f1,然后通过稀疏编码求解器将其投影到低分辨率字典上,相当于应用n1个线性过滤器;稀疏编码求解器迭代处理n1个系数,输出n2个系数,这些系数表示高分辨率斑块的特征;稀疏编码求解器在下图的中间部分表示为非线性映射算子,但从卷积神经网络的角度来看,它是基于稀疏编码的方法;ReLU可以等效地视为第二个操作的一部分,而第一个操作变为纯线性卷积;基于稀疏编码的方法中的稀疏编码求解器是迭代的,而我们的非线性算子是完全前馈的,更有效;上述系数经过稀疏编码投影到高分辨率字典,然后进行重建和平均,相当于在特征映射上的线性卷积。

图片

05

结论

提出的SRCNN方法通过学习低分辨率图像到高分辨率图像的端到端映射,减少了额外的预处理和后处理步骤。SRCNN采用了轻量化的结构,在性能方面超过了最先进的方法。研究者认为,通过进一步研究不同的滤波器和训练策略,可以进一步提升性能。

此外,所提出的方法具有简单和鲁棒性的特点,适用于其他低级视觉问题,如图像去模糊或同步超分辨率和去噪。还可以研究适用于不同升级因素的网络结构。

作者 | 淳豪

排版 | 居居手

更多精彩内容请关注公众号:BFT机器人

本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/846611.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker菜谱

DockerHub:https://hub.docker.com/ 记录docker常用软件安装,欢迎大家投稿。😎😎😎 文章目录 1. Redis 1. Redis 1、下载redis镜像: docker pull redis:6.2.8 docker pull redis:7.0.02、启动容器&#x…

python入门篇01- 安装python必备环境和helloworld书写

目录 1. 前言简介 1.1 python简介: 1.1.1 Python是一种高级编程语言, 1.1.2 Python的命名是受到了英国喜剧团体Monty Python的启发。 1.1.3从1990年开始,Python获得了一些用户 1.2 python与java的区别 2. python书写helloworld 2.1 安装pytho…

pytorch求导

pytorch求导的初步认识 requires_grad tensor(data, dtypeNone, deviceNone, requires_gradFalse)requires_grad是torch.tensor类的一个属性。如果设置为True,它会告诉PyTorch跟踪对该张量的操作,允许在反向传播期间计算梯度。 x.requires_grad 判…

选择移动CRM需必备哪几大功能?

随着信息技术的飞速发展,移动CRM成为企业数字化转型的必备工具。本文将探讨移动CRM主要功能有哪些?帮助大家在CRM选型中少走弯路,认识移动CRM可以做哪些事。 1.整合客户数据 移动CRM的首要功能是帮助企业轻松采集和整合客户数据。通过移动设…

基于Java+SpringBoot制作一个智能用电小程序

在当今快节奏的生活中,高效利用能源变得越来越重要。制作一个智能用电小程序,旨在帮助您更智能地管理家庭电器的用电,从而提升能源利用效率,助您掌握用电情况,降低能耗成本,实现绿色低碳生活。 目录 一、小程序1.1 项目创建1.2 首页轮播图快捷导航iconfont图标引入

【LeetCode 75】第二十三题(2352)相等行列对

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 题目很简洁,就是要我们寻找行与列相同的对数。相同行与列不仅是要元素相同,还需要顺序也一样&#xff08…

Apipost接口自动化测试入门

今天我们来聊一聊接口自动化测试。以往我们都是以以代码的形式编写自动化测试脚本做自动化测试,网上也有非常多的攻略,那么在不会代码的情况下该怎么做接口自动化呢,今天给大家介绍Apipost自动化测试模块,不用写代码也能做接口自动…

ROS获取IMU的数据

消息格式 上ROS官网查看👉ROS ROS官网给定的主题,一般我们使用第二个。   实现思路 (1)maweiUbuntu:~/catkin_ws/src$ catkin_create_pkg imu_pkg roscpp rospy sensor_msgs 实现代码👇   //imu_node.cpp #in…

云知识库软件的推荐清单,你看看你喜欢哪一个?

在选择云知识库软件时,有很多因素需要考虑,如功能、易用性、可定制性、安全性、价格等。下面是一些我喜欢的云知识库软件推荐清单: Confluence: Confluence是一款由Atlassian开发的知识管理和协作工具。它提供了强大的编辑和协作…

P1144 最短路计数(SPFA)(内附封面)

最短路计数 题目描述 给出一个 N N N 个顶点 M M M 条边的无向无权图,顶点编号为 1 ∼ N 1\sim N 1∼N。问从顶点 1 1 1 开始,到其他每个点的最短路有几条。 输入格式 第一行包含 2 2 2 个正整数 N , M N,M N,M,为图的顶点数与边数…

小程序裂变怎么做?小程序裂变机制有哪些?

做了小程序就等于“生意上门”?其实并不是这样。小程序跟流量平台较为明显的区别就在于小程序并非“自带流量”,而是需要企业利用自己的营销推广能力来建立引流渠道,从而完成用户的拉新和留存、转化。因此,想要用小程序来增加自己…

国内首届“熵密杯”密码应用安全竞赛 | 赛宁网安全面保障

​​为进一步提升商用密码合规、正确、有效的应用意识,提高密码应用安全防护水平,由中国密码学会支持,2023商用密码大会执委会主办,南京赛宁信息技术有限公司提供技术支撑的首届“熵密杯”密码应用安全竞赛将于8月10日在郑州举办。…

python基于自己模型数据集和权重混淆矩阵生成

混淆矩阵(Confusion Matrix)是用于评估分类模型性能的一种表格形式。它显示了在分类问题中模型的预测结果与实际标签之间的各种组合情况。 混淆矩阵通常用于二分类问题,但也可以扩展到多分类问题。对于二分类问题,它由四个重要的…

dotNet 之网络TCP

**硬件支持型号 点击 查看 硬件支持 详情** DTU701 产品详情 DTU702 产品详情 DTU801 产品详情 DTU802 产品详情 DTU902 产品详情 G5501 产品详情 ARM dotnet 编程 dotNet使用TCP,可以使用Socket和TcpClient 、TcpListener类 2种,对于高级用户&…

win11下docker安装testsigma自动化测试平台教程

Testsigma是一个基于云端的、支持测试左移的、以AI驱动测试的自动化平台,适用于Web、移动应用以及RESTful服务等各种应用的测试服务。 一、如何开始使用? 有三种方式:1、直接使用 Testsigma Cloud(目前已经不开放个人邮箱注册&am…

LeetCode[207]课程表

难度:Medium 题目: 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习…

CRITICAL_SECTION 用法

#include <stdio.h> #include <windows.h> typedef RTL_CRITICAL_SECTION CRITICAL_SECTION; CRITICAL_SECTION g_cs; //声明关键段 // 共享资源 char g_cArray[10]; unsigned int g_Count 0; DWORD WINAPI ThreadProc10(LPVOID pParam) { // 进入临界区 …

返回一组数据中出现频率最多的元素(众数),可能是一个或多个statistics.multimode()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 返回一组数据中出现频率最多的 元素(众数)&#xff0c;可能是一个或多个 statistics.multimode() 选择题 下列说法错误的是? import statistics data [0, 1, 1, 2, 2, 3] print(【显示】d…

无涯教程-Perl - endservent函数

描述 此功能告诉系统您不再期望使用getservent从服务文件中读取条目。 语法 以下是此函数的简单语法- endservent返回值 此函数不返回任何值。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perlwhile(($name, $aliases, $port_number,$protocol_name)getservent())…

【宝藏系列】嵌入式软件设计的 7 种架构模式

【宝藏系列】嵌入式软件设计的 7 种架构模式 文章目录 【宝藏系列】嵌入式软件设计的 7 种架构模式前言1️⃣分层架构2️⃣多层架构3️⃣管道/过滤器架构4️⃣客户端、过滤器架构5️⃣模型、视图、控制器架构&#xff08;MVC&#xff09;6️⃣事件驱动架构7️⃣微服务架构 前言…