【文章阅读】The Devil is in the Decoder【计算机视觉中的上采样方式-6种】

图像处理常用插值方法总结 常用的插值方法                                                                                                                                                         1、最邻近元法   这是最简单的一种插值方法,不需要计算,在待求 阅读详情

一、这是google的一篇探索的文章,探讨decoder结构的一篇文章

二、主要贡献点

     1、 探讨了不同的几种decoder的优劣,提出自己的上采样方案

     2、 提出针对上采样的residual connection

     3、 横向多任务对比各种不同方案

三、不同结构decoder的对比

Transposed Convolution:这个也是我们常说的“反卷积” “上采样卷积”,但是要注意这并不是卷积的“反操作”,而是一种类似普通上采样的操作。具体过程分为两步:1、根据放大倍数,填0;2、普通卷积操作。下面这张图非常清晰的显示了,整个过程,3x3的反卷积,总体stride=2.从结构上谈这个模块的缺点的话,我认为主要是输出map的每个pixel的来源不平衡,有的来源2个,有的4个,有的只有1个。3x3的卷积核能否应对h,w较大时,产生一个较好的soomth系数,对于feature map的每个区域都适用?

                                    

Decomposed Transposed Convolution:这个如果熟悉inception的人,其实很好理解,把3x3的卷积拆成1x3,和3x1,这样参数就少了,那么整个操作流程就是:先竖着填0,卷积,横着填0,卷积。这是第一种的严格子集。

                              

Separable Transposed Convolution : 这个就是分离卷积,先通道,在1x1,依然是减少参数。这是第一种的严格子集。

Depth To Space :可以搜下pixel shuffle,基本上就是这个意思。这个会带入“对齐问题”,因为同一组feature maps,虽然不同通道,但是计算来源都是一样的。The drawback of this approach is that it introduces alignment artifacts.为什么呢?我没办法给出一个理论上的解释。有没有人解释下?

                                 

Bilinear Upsampling :增加显存的同时,后续的卷积也会需要更多的操作。

Bilinear additive upsampling :借鉴 “depth to space”,不同的在于,上采样后,这里直接用加法了,输出的feature map,可以发现,每个pixel来源都是平衡的。

四、上采样residual

     用作者的Bilinear additive upsampling + conv(通道增加4倍)输出的为X',在把原始输入经过普通的bilinear upsample得到 X'',加起来就是了。

     下面这个图的skip,就是我们Unet常用的那种线,这也基本上证明了,这个skip是有效的,但是作用不是特别大。

CNN 真的需要下采样(上采样)吗? 我们不得不去想,下采样,上采样真的是必须的吗?可不可能去掉呢? 阅读详情

相关推荐

3D Gaussian Splatting环境配置和运行

使用conda命令根据environment.yml文件创建虚拟环境时,安装的pytorch是使用conda install 命令来安装的,实际上并不能成功安装带有gpu的pytorch,而这两个模块的安装依赖于带gpu的pytorch。如果不注释掉这三行,直接安装会报错

m0_46360757的博客 3326

上采样方法汇总(updating...)

近期在看一些Segmentation的文章,很多用到了encoder-decoder的结构,encoder基本都是各类的CNN很熟悉了,decoder涉及到上采样或者反卷积的各种方法,这里直接做一个总结。 网上很多的总结都是按照方法总结,但总感觉缺点儿上下文,因此本文以论文为梳理对象,总结一下不同论文里用到的上采样方法。 当然,论文的梳理不只包括Segmentation的文章,后面遇到涉及到上采样的文章也会总结到这里。 1. Semantic Segmentation 1.1 Fully Convoluti

weixin_44808865的博客 1163

GD32单片机引脚复用指南:如何让JTAG接口的PA15/PB3发挥第二功能?

本文详细介绍了GD32F103Cx系列单片机如何通过AFIO模块进行引脚复用,特别是将默认用于JTAG调试接口的PA15、PB3等引脚释放为普通IO或复用功能引脚。文章从原理出发,结合代码实践,讲解了如何配置调试端口重映射,将JTAG引脚安全地转换为GPIO或定时器通道,并提供了常见问题排查与最佳实践,帮助开发者高效利用有限的引脚资源。

nept的博客 806

详解上采样的两种常用方法(附以TensorFlow 2.x实现的小demo)

我们以Unet网络来进入我们今天将要分享的主题,请看下图: 我们知道,Unet网络结构大致可以分为三大部分: 编码器(Encoder):由四个子模块构成,每个子模块包含两个卷积层,并且在每个子模块之后均有一个通过max_pooling实现的下采样层;通过观察网络层级结构我们可以知道,Encoder共下采样4次,一共下采样16倍; 解码器(Decoder):同样由四个子模块组成,与Encoder对应,Decoder共上采样4次,从而可以将Encoder得到的高级语义特征图恢复到原图片的分辨率; skip

石璞东 5096

【视频编码学习】AVS3参考软件HPM-4.1简单配置运行

1、用Visual Studio2017打开HPM-4.1文件夹 2、找到文件夹目录下x86_windows文件夹,因为是在win上运行该代码 3、然后找到对应vs版本(我当时2017版)的解决方案sln文件,双击打开可以看到该解决方案下的全部项目。 4、重新生成解决方案时发现提示sdk版本问题,所以右键点击所有的项目,选择重定向项目,修改一下sdk版本。 ...

谦虚勤奋诚实感恩 3098

40分钟快速入门Dart基础(上)

针对final 和const 理解的有点模糊的可以参考这篇文章: 可以参考这里Flutter 知识梳理(Dart)-Dart中static final const 区别看是不是超级好上手,好操作~其实Dart的整个学习起来还是蛮简单的,对于有基础的老司机更简单一些。分分钟敲起来~这篇文章就简单的介绍到这里如何短时间快速入门Dart,避免入坑。由于是想让大家快速入门Flutter,所以针对上面的这些章节我们讲解的只是一些在开发Flutter 过程中常用的一些方法和函数。

qq_7813180 4569

U-net网络详解

U-net网络详解

ThreeStones1029的博客 6662

RV1126B芯片实战:如何用这款视觉处理器SoC打造你的第一个AI摄像头项目

本文详细介绍了如何利用瑞芯微RV1126B视觉处理器SoC从零构建AI摄像头项目。涵盖硬件选型、开发环境搭建、ISP配置、AI模型部署及系统集成等关键步骤,帮助开发者高效实现边缘计算方案,特别适合智能安防和工业检测应用。

dropout6artist的博客 929

【计算机视觉】上采样和下采样

【计算机视觉】上采样和下采样

wzk4869的博客 2506

汇编语言与USB量产工具开发解析

本文解析了汇编语言在USB量产工具开发中的应用。USB量产工具主要用于批量配置USB设备,包括固件烧录、格式化、信息写入等功能。汇编语言在底层硬件操作中发挥关键作用,如直接控制USB寄存器、编写驱动和精确时序控制。文章通过伪代码示例展示了USB控制器初始化和固件烧录流程,并强调硬件依赖性、安全机制和时序精度等注意事项。开发需严格遵循芯片手册,建议优先使用厂商SDK,避免设备损坏风险。

RulesChen的博客 1024

STM32开发 -- LIS3DH三轴加速度计开发详解

这次要讲一下LIS3DH三轴加速度计的开发使用,之前是有讲过 MPU6050开发 的,但当时是在Linux下做的。额,还是个半成品,哈哈。现在手边有STM32的开发板,可以实实在在的来实现以下卡尔曼滤波了。 一、LIS3DH初识 依照惯例,先看一下手册,大致先了解一下,LIS3DH是什么模块。 下载:LIS3DH datasheet 1、描述 LIS3DH是一款超低功耗高性能三轴线性加速度计,属于...

不积跬步,无以至千里 2万+

51c深度学习~合集8

方法的完整数学描述略显复杂,如果只是想了解主要思想,可以只看上面 PatchMix的流程图即可(其实只是公式多,每个公式也不复杂,后续有机会做个演示动画,帮助大家理解。这个方法也可以用简单的 Mask 方法实现,但是本方法在大规模图像处理上效率是最高的),对该工作感兴趣的同行可以看一下,我尽量写得清楚一些。结合 PatMix 的流程图,主要过程如下:由于混合图像和混合图像之间,重叠比例的不同,mix-to-mix label 中每一项的权重分数是不同的,根据上图,可以得到权重系数可以表示为。

whaosoft~aiotの开发板商城 2955

Qt C++ 串口调试助手

1. **串口配置**:支持自动检测可用串口,可配置波特率(9600~921600)、数据位(5~8)、校验位(无/奇/偶/标记/空格)、停止位(1/1.5/2)。- HEX 模式发送时,输入格式需为十六进制字符(0-9、A-F),可带空格(如 `01 A3 FF`)或不带空格(如 `01A3FF`)。// 发送模式:true=HEX,false=ASCII。// 字符串转HEX字节数组。ui->parity->addItems({"无", "奇校验", "偶校验", "标记校验", "空格校验"});

寒寒豆豆软件公司的博客 144

tf depth_to_space 与torch pixshuffle 踩坑

0 前言 根据文档中对于api介绍, tf.depth_to_space与torch中pixshuffle功能应该是一致的, 都是把深度维的数据给move到宽度和高度上。然而实际测试发现了不一致的情况。 1 现象 当输出通道不为1的时候, 两者的结果不一致, 当输出通道为1的时候, 两者的结果一致。 试验代码如下: import tensorflow.compat.v1 as tf import torch from torch.nn import functional as F import numpy

1930

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

光流 速度_cnn结构设计技巧-兼顾速度精度与工程实现(持续更新)

总纲cnn中各个参数的辩证矛盾。深度决定了网络的表达能力,网络越深学习能力越强。宽度(通道数)决定了网络在某一层学到的信息量,另外因为卷积层能重组通道间的信息,这一操作能让有效信息量增大(这也是1x1卷积的作用,它能学习出重组信息,使得对于任务更友好,所以这里不能和分离卷积一起比较,传统卷积的有效卷积数更多,正比于输入通道乘以输出通道,分离卷积的有效卷积正比于输入通道数,传统卷积相当于分离卷积前升...

weixin_35106463的博客 371

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

卷积神经网络之上采样-pytorch

       利用卷积神经网络进行图像处理(图像超分、图像编码、风格转换、图像语义分割等)时避免不了要用到上采样操作,一般常见的上采样有:       1、传统上采样。pytorch的双线性上采样函数torch.nn.Upsample(scale_factor=scale_factor, mode='bilinear'),参数model为选择的上采样插值算法。       2、反卷积。pyto...

cs_softwore的专栏 7408

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

计算机视觉中upsampling(上采样)的三种方式

bilinear 双线性插值是目前在语义分割中用的比较多的一种方式,比如FCN中就是用的这种方法。 这种方法特点是不需要进行学习,运行速度快,操作简单。只需要设置好固定的参数值即可,设置的参数就是中心值需要乘以的系数。 一个简单的例子可以参考如下(来自互联网): 具体的实现方式,可以直接参考fcn.berkerlyvision.org中的surgery.py如下: def u

Jinming Su 5万+

upsampling(上采样)& downsampled(降采样)

缩小图像 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的是两个: 使得图像符合显示区域的大小; 生成对应图像的缩略图; 下采样的原理: 对于一幅图像尺寸为M*N,对其进行s倍的下采样,即得到(M/s)*(N/s)尺寸的分辨率图像,当然,s应该是M和N的公约数才可以,如果考虑是矩阵形式的图像,就是把原始图像s*s窗口内的...

weixin_33779515的博客 1594

【Encoder-Decoder】

Ecoder and Decoder

CharilePuth的博客 4894

Beam Search、GREEDY DECODER、SAMPLING DECODER等解码器工作原理可视化以及在自然语言生成领域的使用

图像标注的任务让我们可以构建和训练一个为任何给定图像生成字幕的神经网络。在设计时使用了解码器的来完成文字的生成。当我们描述了每个解码器的工作原理时,我发现当它们被可视化时,更容易理解它们。 图像标注任务流程图 与翻译模型类似,我们的图像字幕模型通过输入图像张量和特殊的句首标记(即)来启动字幕生成过程。这个模型生成了我们单词的概率分布(实际上是logits)。橙色方框显示解码算法的选择,帮助我们选择使用哪个单词。然后,选择的单词和图像再次传递给模型,直到我们满足停止条件,即我们获得特殊的句子结束标记(即)作

deephub 6761

Encoder-Decoder架构与注意力机制

Encoder-Decoder架构模型,如下图: Encoder会利用整个原始句子生成一个语义向量,Decoder再利用这个向量翻译成其它语言的句子。这样可以把握整个句子的意思、句法结构、性别信息等等。 Encoder对X 进行非线性变换得到中间语义向量c : Decoder根据语义c 和生成的历史单词来生成第个单词  : Encoder和Decoder具体使用什么模型,都可以自己...

qq_18310041的博客 8147

上采样的几种方法

在做图像语义分割的时候,编码器通过卷积层得到图像的一些特征,但是解码器需要该特征还原到原图像的尺寸大小,才可以对原图像的每个像素点进行分类。从一个较小尺寸的矩阵进行变换,得到较大尺寸的矩阵,在这个过程就是上采样。 常见的上采样的方法有(1)插值法(最邻近插值、双线性插值等) (2)转置卷积(又称为反卷积) (3)上采样(unsampling)(4)上池化(unpooling) 插值法 插值法不需...

jackzhang11的博客 2万+

tf.depth_to_space详解

tf.depth_to_space ( input , block_size , name = None ) 将数据从深度重新排列为空间数据块.这是 SpaceToDepth 的逆向转换.更具体地说,此 op 输出输入张量的一个副本,其中来自深度维度的值在空间块中移动到高度和宽度维度.attr block_size 表示输入块的大小以及数据的移动方式. 从深度大小...

sysleo的博客 6942

反卷积(Deconvolution)、上采样(UNSampling)与上池化(UnPooling)

FCN于反卷积(Deconvolution)、上采样(UpSampling)https://blog.youkuaiyun.com/nijiayan123/article/details/79416764 反卷积(Deconvolution)、上采样(UNSampling)与上池化(UnPooling)https://blog.youkuaiyun.com/A_a_ron/article/details/79181...

秀呀秀的博客 1249

2019.04.22-2019.04.28论文阅读笔记

2017_CVPR_Zhu_Semantic Amodal Segmentation 由FaceAI公司提出的一个新的任务(和数据集),侧重在任务的提出和数据的标注工作。 至于为什么会看到这篇文章,因为Kaiming He在2018 arXiv的Panoptic Segmentation中引用了这篇文章,目前本文引用量为20。 Motivation: 人在进行场景感知和理解的时候,如果碰到...

qq_31049727的博客 2401

基于深度学习的计算机视觉:原理与实践(上部)

本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人优快云博客。本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

上一篇: pytorch loss 出现nan,原因之一,计算图中存在torch.sqrt或者 **0.5,以及如何解决
下一篇: 【文章解读】FreeAnchor: Learning to Match Anchors for Visual Object Detection
Jie Ou
博客等级 码龄10年 176粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值