单图像超分辨率 (Single image super resolution,SR) 是计算机视觉中的一个经典问题, 其目的是从单个低分辨率图像中恢复高分辨率图像。这个问题本质上是不适定的,因为对于任何给定的低分辨率像素都存在解决方案的多重性。换句话说,这是一个不确定的问题,其解决方案不是唯一的。这样的问题通常通过由强先验信息约束解空间来缓解。
目的是从单幅低分辨率图像中恢复出高分辨率图像。
项目介绍
本项目基于(https://arxiv.org/abs/1501.00092v3)论文对超分辨率卷积神经网络 (SRCNN) 的三种实现方式。
整体的思路:
考虑单个低分辨率图像,首先使用双三次插值将其放大到所需的大小,这是执行的唯一预处理。将插值图像表示为Y。我们的目标是从Y中恢复与真实高分辨率图像X尽可能相似的图像F (Y) 。为了便于演示,我们仍然将Y称为 “低分辨率” 图像,尽管它的大小与X相同。我们希望学习一个映射F ,它在概念上包括三个操作:
补丁提取和表示: 该操作从低分辨率图像Y中提取 (重叠) 补丁,并将每个补丁表示为高维向量。这些向量包括一组特征图,其数量等于向量的维数。
非线性映射: 将每个高维向量非线性映射到另一个高维向量。每个映射向量在概念上是高分辨率补丁的表示。这些向量包括另一组特征图。
重建: 聚合上述高分辨率分片表示以生成最终的高分辨率图像。该图像预期与地面实况X相似。
所有这些操作形成一个卷积神经网络。下图描述了网络的概况。
三种实现方式
Torch:用于训练网络、提取权重和升级
Numpy:用于升级
Cython:用于升级(能够在ZedBoard上运行)
纯 CPU 运行或在 ZedBoard 的 FPGA 上运行 2D 卷积
用法
有关使用说明和先决条件,请参阅项目中文件夹中相应实现的 README.md 文件:
Torch
https://github.com/Fivefold/SRCNN/blob/main/Torch
Numpy
https://github.com/Fivefold/SRCNN/blob/main/Numpy
Cython
https://github.com/Fivefold/SRCNN/blob/main/Cython
指标/性能
Set5 数据集每个指标的平均值。
实例
地面真相是用于与放大版本进行比较的原始(理想)图像。
双三次是使用简单双三次插值将地面实况缩小 3 倍并放大 3 倍。
SRCNN与 Bicubic 相同,但使用经过训练的卷积神经网络。
审核编辑:黄飞
-
计算机视觉
+关注
关注
8文章
1698浏览量
45982 -
超分辨率
+关注
关注
0文章
27浏览量
9926 -
cnn
+关注
关注
3文章
352浏览量
22204
原文标题:基于CNN的图像超分辨率
文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论