上采样 及 Sub-pixel Convolution (子像素卷积)
参考:https://blog.csdn.net/leviopku/article/details/84975282
参考:https://blog.csdn.net/g11d111/article/details/82855946
上采样的概念:
上采样可以理解为任何可以将图像变成更高分辨率的技术;最简单的方式就是重采样和插值法:将输入图片 input image 进行 rescale 到一个想要的尺寸;而且计算每个点的像素点,使用如双线性插值bilinear 等插值方法对其余点进行插值;
Unpooling 是在CNN中常用来表示max pooling 的逆操作。由2013年纽约大学Matthew D. Zeiler和Rob Fergus发表的《Visualizing and Understanding Convolutional Networks》引用:因为max pooling 不可逆,因此使用近似操作得到 max pooling 操作之前的原始情况;(记住max pooling做的时候的size,比如如下图的4x4的矩阵,max pooling的size 为2x2, stride为2,反卷积操作需要记住最大值的位置,然后将其余的位置置为0就可以)
反卷积在CNN中常用于表示一种反向卷积,但是它并不是一个完全符合数学规定的反卷积操作;
与Unpooling不同,使用反卷积来对图像进行上采样是可以习得的。通常用来对卷积层的结果进行上采样,使其回到原始图片的分辨率;
反卷积也被称为分数步长卷积或者转置卷积或者后向卷积;
早PyTorch中,上采样的层被封装在torch.nn中的Vision Layers里面,一共有4中:
1、PixelShuffle
2、Upsample
3、UpsampleNearest2d
4、UpsamplingBilinear2d
其中,PixelShuffle表示如下:
Sub-pixel convolution 是一种巧妙的图像及特征图upscale的方法,又叫pixel shuffle(像素洗牌)。我们知道,用深度学习处理图像的话,经常需要对特征图放大。常见的方法有直接上采样,双线性插值,反卷积等。本文主要介绍一种在超分辨率中经常使用的 upscale 方法 —— sub-pixel convolution.
采用CNN对feature map 进行放大的方法,除了有 deconvolition 之外,还有一个叫做 sub- pixel convolution 。如果做SR(超分辨率)的话,需要将一张低分辨率图像转换成一张高分辨率图像。如果直接用 deconvolution 作为 upscale 手段的话,通常会带入过多人工因素进来。而 sub-pixel conv 会大大降低这个风险。先看 sub-pixel 是怎么做的:
前面就是一个普通的CNN网络,到后面的彩色部分就是 sub- pixel conv 的操作了。首先如果对原图放大3倍,那么就要生成3^2=9 (通道数)个相同尺寸的特征图。然后将9个相同尺寸的特征图拼接成一个x3的大图,也就是对应的 sub - pixel convolution 操作;
其实也就是要放大r倍的话,那就生成r方个channel的特征图,这里的r也可以称为上采样因子;
这对应的是抽样的反思想,如果把一张 x3 的大图,每隔三个点抽样依次,那么就得到9张低分辨率的图像;于是就可以通过CNN来获得这么9张低分辨率的图像,然后再组成一张高分辨率大图;
上采样 及 Sub-pixel Convolution (子像素卷积)的更多相关文章
- pytorch torch.nn 实现上采样——nn.Upsample
Vision layers 1)Upsample CLASS torch.nn.Upsample(size=None, scale_factor=None, mode='nearest', align ...
- 上采样和PixelShuffle(转)
有些地方还没看懂, mark一下 文章来源: https://blog.csdn.net/g11d111/article/details/82855946 去年曾经使用过FCN(全卷积神经网络)及其派 ...
- 图像的下采样Subsampling 与 上采样 Upsampling
I.目的 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的: 1.使得图像符合显示区域的大小: 2.生成对应图像的缩略图. 放大图像(或称为上采样(ups ...
- 【转】图像的上采样(upsampling)与下采样(subsampled)
转自:https://blog.csdn.net/stf1065716904/article/details/78450997 参考: http://blog.csdn.net/majinlei121 ...
- 图像的上采样(upsampling)与下采样(subsampled)
缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略图. 放大图像(或称为上采样(upsampli ...
- upsampling(上采样)& downsampled(降采样)
缩小图像 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的是两个: 使得图像符合显示区域的大小: 生成对应图像的缩略图: 下采样的原理: 对于一幅图像尺寸为 ...
- 卷积和池化的区别、图像的上采样(upsampling)与下采样(subsampled)
1.卷积 当从一个大尺寸图像中随机选取一小块,比如说 8x8 作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个 8x8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去. ...
- pytorch 不使用转置卷积来实现上采样
上采样(upsampling)一般包括2种方式: Resize,如双线性插值直接缩放,类似于图像缩放,概念可见最邻近插值算法和双线性插值算法——图像缩放 Deconvolution,也叫Transpo ...
- 轻量级通用上采样算子-CARAFE
转载:https://zhuanlan.zhihu.com/p/76063768 前言 这篇论文被 ICCV 2019 接收为 oral presentation.之前我们主要研究物体检测(例如 Hy ...
随机推荐
- cocos2dx基础篇(25) 简单碰撞检测
[3.x] 将数学类 CCPoint.CCRect 改为v3.x版本的 Vec2.Rect 就好了. [简单碰撞检测] 在一些游戏中经常会遇到碰撞检测的情况,如愤怒的小鸟飞出去后,是否与石头发生碰撞. ...
- tagged和untagged
tagged和untagged遵循以下五条原则 1. Tagged数据帧 Tagged数据帧 Untagged数据帧 Untagged数据帧 in out in out Tagged端口 原样 ...
- 【VS开发】【图像处理】RGB各种格式
RGB格式 RGB组合格式 名字 RGB组合格式 描述 此格式用来匹配PC图形帧缓存.每个像素占据8,16,24或32个位,他们都是组合像素格式,其意为在内存中所有像素数据都是相邻排列的.当使用这些格 ...
- 数组遍历方法forEach 和 map 的区别
数组遍历方法forEach 和 map 的区别:https://www.cnblogs.com/sticktong/p/7602783.html
- 手把手教你用Python搭建自己的量化回测框架【均值回归策略】
手把手教你用Python搭建自己的量化回测框架[均值回归策略] 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的, ...
- js汉字转换为拼音
片段 1 片段 2 gistfile1.txt /* --- description: Pinyin, to get chinese pinyin from chinese. license: MIT ...
- PHP 模拟http 请求
php 模拟请求类 <?php /** * fangdasheng * http 模拟请求 */ class Myhttp { private $apiUrl; // 构造函数 public f ...
- P2496 [SDOI2012]体育课
传送门 分块 对每个块维护一个 $add$ 和 $del$ 标记,对于块 $o$ 内某个位置 $i$,它真实的修改量为 $a[i]+add[o]*i-del[o]$ 这样就可以维护一个区间加一个等差数 ...
- 服务安全之:JWT
JWT是JSON Web Tokens的缩写.既然叫JSON Web Tokens,所以JWT Tokens中真正包含的是多个JSON对象.为什么是多个JSON对象呢?因为SWT Token实际 ...
- 将本地的java项目提交到github出错解决
1.我们新建一个了java项目后,需要提交到github进行版本控制 2.如果此时github中的仓库不为空,我们在本地使用git push提交时会报以下错误, ! [rejected] ...