PixelShuffle原理笔记(paper,pytorch实现)

PixelShuffle上采样原理讲解及程序实现 PixelShuffle(Sub-Pixel Convolutional Neural Network,像素重组)是一种经典的上采样Upsample方法, torch.nn.PixelShuffle(),可以对缩小后的特征图进行有效的放大操作在,最初在处理图像超分辨率的问题上提出,是目前最优秀的上采样方法。变化公式为:[H,W,C*r*r]->[H*r,W*r,C] 阅读详情
AI摘要

PixelShuffle是一种避免传统插值的图像上采样方法,通过在低频特征空间直接转换为超分辨率图像。该方法基于假设高频信息在某些超分辨率任务中是冗余的。网络前几层处理输入,然后通过PixelShuffle层将通道信息展开为上采样后的图像。公式和图像解释了如何通过channel的重新排列实现上采样。训练使用像素级别的MSE损失函数。这种方法将上采样的信息编码在通道中,通过展开这些通道得到上采样图像。

pixel shuffer是一种图像上采样的方法,参考paper

它在Pytorch中的实现为

pixel_shuffle = torch.nn.PixelShuffle(r)
output = pixel_shuffle(input)

或者

torch.nn.functional.pixel_shuffle(input, r)

其中r为上采样倍率。输入输出如下:
在这里插入图片描述
举个例子,比如input的shape是(1, 64, 20, 30), r = 2,
而这个shape对应的是(1, r2C, H, W), 也就是r2C = 2x2xC = 64, 所以C=16,
所以output应该是(1, C, rH, rW),也就是(1, 16, 40, 60)

下面是原理:

paper中提到,之前的上采样通过插值把低分辨率(LR)图像转换到高分辨率(HR),然后在HR特征空间处理,得到超分辨率(SR)图像。

paper提出了一种跳过插值转换HR的步骤,直接从LR特征空间转换为SR图像。

它基于的假设是,在很多SR技术中,高频数据是冗余的,因而可以直接由低频部分得到。

网络的前L-1层如下:
在这里插入图片描述
W是conv2D, ϕ \phi ϕ表示非线性激活函数。

最后一层就是把LR转换到SR空间。
公式如下:
在这里插入图片描述
公式不太好理解,用图来说明吧
在这里插入图片描述可看到经过前L-1层处理后,得到了shape为(N, r2C, H, W)的output,
现在要把它转换为shape为(N, C, rH, rW)的SR图像。

以output中(0, 0)pixel为例,它对应了r2个channel, 把这些channel铺成 r * r的一个大像素,
假如r = 3,那么output中一个pixel有9个channel,它对应右边SR图像中一个3 * 3的大像素(注意看颜色的对应)。

回到r,每个pixel有r2个channel,把它铺平,成为一个r * r的SR大像素,
所以(r2C, H * W)就成了(C, r * r * H * W), 也就是(C, rH, rW)

这就是公式(4)中的mod(y, r), mod(x, r);
SR图像中大像素与output中小像素的对应关系为在这里插入图片描述

训练的损失函数为pixel-wise MSE
在这里插入图片描述

总结一下,pixel shuffle主要解决图像的上采样问题,那么如何通过深度学习来学到上采样的像素信息?作者把上采样的像素信息放在了channel里,用CNN的channel来储存信息。
通过把channel的信息展开,就得到了上采样之后的图像。

【深度学习笔记】亚像素 / sub-pixel、亚像素卷积 近段时间需要用到亚像素卷积的知识,因此上网查阅了论文和资料,此文是根据网上的博文以及相关论文,依据个人的理解整理而来。 总而言之,拾人牙慧而已。 Content1 亚像素的定义1.1 亚像素理解1.2 何谓亚像素?1.3 何谓亚像素精度?2 图像处理中的sub-pixel是什么意思?3 PixelShuffle参考文献 1 亚像素的定义 下面的内容引自1-2 1.1 亚像素理解 在相机成像的过程中,获得的图像数据是将图像进行了离散化的处理,由于感光元件本身的能力限制,到成像面上每个像素只代表附近. 阅读详情

相关推荐

【深度学习】PixelShuffle处理操作

PixelShuffle是通过重排特征图的像素,将多个低分辨率的子像素合并成一个高分辨率图像的高效方法。这种方法减少了传统超分辨率方法中常见的高分辨率卷积操作的计算复杂度,并提高了图像超分辨率任务的处理速度与效率。

猫天意的博客 1779

PixelShuffle方法

原文链接:https://blog.youkuaiyun.com/u014636245/article/details/98071626 PixelShuffle是一种上采样方法,可以对缩小后的特征图进行有效的放大。可以替代插值或解卷积的方法实现upscale PixelShuffle PixelShuffle(像素重组)的主要功能是将低分辨的特征图,通过卷积和多通道间的重组得到高分辨率的特征图。这一方法最...

rocking_struggling的博客 2万+

PixelShuffler实现上采样的原理

一,普通的上采样采用的临近像素填充算法,主要考虑空间因素,没有考虑channel因素,上采样的特征图人为修改痕迹明显,图像分割与GAN生成图像中效果不好。 二,PixelShuffler结合channel维度的信息来填充像素,可以实现超高分辨率,生成的图像更逼真,更完美。 三,PixelShuffler实际原理 pixelshuffle算法的实现流程如上图,其实现的功能是:将一个H × W的低分...

qq_43258953的博客 3885

去雾笔记-Pixel Shuffle,逆Pixel Shuffle,棋盘效应,转置卷积

去雾笔记-Pixel Shuffle,逆Pixel Shuffle,棋盘效应,转置卷积

weixin_46028606的博客 4163

手写 Piexel shuffle & 解析

在这个影像无处不在的时代,我们总希望能看到更清晰、更生动的画面。无论是手机里珍藏的照片,还是在线观看的电影,图像质量的好坏,直接影响着我们的视觉体验。然而,很多时候,受限于设备条件、网络带宽或者存储空间,我们得到的往往是分辨率不那么高的图像。这时,就成了解决这个问题的“魔法”,它能把模糊的画面变得清晰可辨。在众多的超分辨率方法中,有一个听起来有点技术范儿,但实际上非常巧妙的技巧,那就是。它就像是图像处理领域里的一位“幕后英雄”,默默地将那些看似杂乱无章的信息,巧妙地重新组合成一幅细节更丰富的画面。

prinTao的博客 924

【NLP】使用 PyTorch 从头构建自己的大型语言模型 (LLM)

如果我们在 n 维空间中绘制一个向量,看起来相似的物体(如狗和猫)将彼此靠近,而看起来不相似的物体(如学校和家庭)的嵌入向量将位于更远的地方。为此,我们将使用一种流行的标记器,称为 BPE 标记器,这是一种子词标记器,正在 GPT3 等模型中使用。:前馈网络使用深度神经网络来学习两个线性层(第一层有 d_model 节点,第二层有 d_ff 节点,根据注意力论文分配值)中嵌入向量的所有特征,并且将 ReLU 激活函数应用于第一线性层的输出,为嵌入值提供非线性,并应用 dropout 以进一步避免过度拟合。

sikh_0529的博客 1947

SenseNova-U1.5-8B-MoT 预览版深度解析:基于 NEO-unify 的原生统一多模态图像生成与编辑实战指南

本篇技术指南聚焦开源仓库 SenseNova-U1 系列的最新预览版模型 **SenseNova-U1.5-8B-MoT(Preview)**,系统讲解其在原生 4K 生成、文字渲染、图像编辑与跨任务泛化上的技术改进、基准评测结果、已知限制,以及可复现的推理、训练与 Prompt 增强最佳实践。读完本文,你将掌握该模型的推理命令与关键采样参数、两条推荐工作流(Image PE Skill 与 Ca

gitblog_00579的博客 1192

双相机坐标系标定

工业双相机对位标定

sinat_33762356的博客 8316

res-downloader 完全指南:3 步用代理抓包把视频号视频存到本地

你有没有遇到过这种情况:想存一条视频,复制链接丢进下载工具,几分钟后链接就失效了?麻烦的根源在于,媒体地址藏在流量里,抓下来还得自己筛。res-downloader 是一款跨平台资源下载器,它在本地起一个代理,把流量里的视频、音频、图片、m3u8、直播流自动嗅探出来,列成清单,你点一下就下载。视频号、抖音、快手、小红书、QQ音乐、普通网页,操作都一样。 ## 别在几千条请求里逐条翻:res-do

gitblog_00068的博客 450

5.4 磁悬浮轴承控制系统仿真:在MATLAB/Simulink中搭建包含功放、传感器模型的闭环系统模型,进行稳定性与动态性能仿真

磁悬浮轴承控制系统仿真方法 摘要:磁悬浮轴承控制系统仿真需建立包含转子动力学、传感器、控制器、功率放大器和电磁执行器的高保真非线性模型。通过MATLAB/Simulink搭建闭环系统,重点建模传感器带宽限制与噪声、功放饱和特性以及电磁力非线性。仿真分析包括时域阶跃响应、扰动抑制测试,频域稳定性分析(伯德图、奈奎斯特图),以及参数摄动下的鲁棒性验证。关键要验证控制算法在非线性因素影响下的稳定性和动态性能,为实际系统实现提供可靠依据。仿真中需特别注意物理量单位一致性和数字控制离散化效应。

技术工作者 1104

【RK3588开发记录】超详细的RK3588修改debug串口波特率为115200

修改RK3588的debug串口为115200

Crazydrams的博客 4803

【深度学习】PixelShuffle与Sub-pixel卷积详解

本文介绍了PixelShuffle与Sub-pixel的相关知识。PixelShuffle作为一种高效的上采样方法,通过亚像素卷积的思想,在图像超分辨率、图像生成等任务中展现出了优越的性能。它不仅计算效率高,还能有效避免传统上采样方法中的棋盘效应问题,成为深度学习中图像处理的重要工具。

欢迎来到我的优快云个人博客主页! 5010

ComfyUI-controlnet控制出图

提供加载预处理器节点。

Bu2n的博客 5493

PyTorch学习笔记 ——上采样和PixelShuffle

去年曾经使用过FCN(全卷积神经网络)及其派生Unet,再加上在爱奇艺的时候做过一些超分辨率重建的内容,其中用到了毕业于帝国理工的华人博士Shi Wenzhe(在Twitter任职)发表的PixelShuffle《Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network》的论文。 PyTorch 0.4.1将这些上采样的方式定义为Vision Laye

AbiUni(YY熊) 9042

【产品经理修炼之道】-如何搭建企业级账务系统?

笔者公司的业务模式具有一定的独特性,不同于我们常见的市面上供应链类公司的进销存模式。公司主要为各大银行和金融机构提供信贷领域的风控服务,客户主要通过请求公司的数据产品接口产生费用,可以简单地理解为请求一次接口收费0.5元,一个月若是有1w人请求同一个接口则公司需要收费5000元。

xiaoli8748的专栏 5404

YOLO11改进-注意力-引入自调制特征聚合模块SMFA

SMFA(自调制特征聚合模块): SMFA模块用于协同建模局部和非局部信息,它分为两个分支:一个是EASA(Efficient Approximation of Self-Attention,简化的自注意力分支),用于捕获非局部信息;另一个是LDE(Local Detail Estimation,局部细节估计分支),用于捕获局部细节。EASA通过对输入特征进行下采样,然后利用全局特征的方差进行调制,再与原始特征进行聚合,提取非局部结构信息。LDE分支则通过卷积操作提取输入特征中的高频局部信息。

qq_64693987的博客 2205

深度学习中的Pixel Shuffle和Pixel Unshuffle:图像超分辨率的秘密武器

Pixel Shuffle是一种从特征图中提取空间信息的方法,主要应用于图像超分辨率等任务。超分辨率(Super-Resolution,SR)指的是通过机器学习算法生成比输入分辨率更好的图像。Pixel Shuffle操作可以帮助模型通过减少通道数、扩大空间分辨率来重建出更精细的图像。这不仅有效提升了模型的效果,还在一定程度上降低了计算成本。

介绍AI领域相关知识 6453

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

PixelShuffler原理

PixelShuffler是一种端到端可学习的上采样模块,通过设置上采样比例,就可由低分辨率图像获取指定倍率的高分辨率图像。上采样可以理解为在同一个位置,原来只是以1:1的比例提取信息,而现在以1:4的比例提取信息,提取信息的频率更高了,所以能反映的细节也就更多。对于tensor来说,在同一个位置多提取信息,也就是通过卷积生成通道数更多的tensor。具体过程为(以一个(n,64,64,64)的特征图为例) 通过卷积,得到通道数倍增的特征图(n,64,64,256) 将特征图切割成若干份,对每一份(n,6

一路嵌行的博客 2650

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

PyTorch学习笔记(10)——上采样和PixelShuffle

去年曾经使用过FCN(全卷积神经网络)及其派生Unet,再加上在爱奇艺的时候做过一些超分辨率重建的内容,其中用到了毕业于帝国理工的华人博士Shi Wenzhe(在Twitter任职)发表的PixelShuffle《Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional...

g11d111的博客 12万+

PixelShuffle详解和cuda实现

1.背景 1.1 PixelShuffle的出处 PixelShuffle这一操作出自论文[https://arxiv.org/abs/1609.05158](Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network), 论文中称为periodic shuffling operator。Pytorch将其实现为 torch.nn.PixleShuffl

BigerBang的博客 5619

【2023.06.11】复现论文《TOWARD AUTOMATIC BUILDING FOOTPRINT DELINEATION FROM AERIAL IMAGES》

最近pua老师一直让我不停给毕设做实验,无奈去给他打工。实话来说毕设工作并不开心,其实自己是有许多想法,但是被他打击后并不想在这篇工作里继续深挖,只想着早日毕业,自己在工作之外多多读文献,练练编程~最近武大的师兄建了个pytorch学习群,让我们几个即将入学的研0同学互相学习交流,这篇博客写的目的也是记录一下论文复现过程。

KLeinLAN的博客 809

【PyTorch单点知识】像素洗牌层:torch.nn.PixelShuffle在超分辨率中的作用说明

torch.nn.PixelShuffle的使用说明

使者大牙ℂypher的博客 3122

结合PixelShuffle操作,对高维张量reshape以及transpose维度交换的理解

以numpy为例,从二维矩阵的转置出发,理解高维张量的维度交换。记录一篇博客,供自己学习与记忆

tequila53的学习空间 578

nn.PixelShuffle 与nn.Upsample的不同

前者是 通道数 处要注意,后者直接是H,W

weixin_40970506的博客 1788
上一篇: Bottleneck结构(附代码)
下一篇: torch module.apply(fn)说明
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值