当前位置: 首页 > news >正文

【论文阅读】 Learning to Upsample by Learning to Sample

论文结构目录

  • 一、之前的上采样器
  • 二、DySample概述
  • 三、不同上采样器比较
  • 四、整体架构
  • 五、设计过程
    • (1)初步设计
    • (2)第一次修改
    • (3)第二次修改
    • (4)第三次修改
  • 六、DySample四种变体
  • 七、复杂性分析
  • 八、定性可视化
  • 九、对比实验分析
  • 十、DySample代码分析

在这里插入图片描述

论文地址:Liu_Learning_to_Upsample_by_Learning_to_Sample_ICCV_2023_paper.pdf
代码地址:https://github.com/tiny-smart/dysample.git

一、之前的上采样器

随着动态网络的普及,一些动态上采样器在几个任务上显示出巨大潜力。CARAFE通过动态卷积生成内容感知上采样核来对特征进行上采样。后续工作FADESAPA提出将高分辨率引导特征和低分辨率输入特征结合起来生成动态核,以便上采样过程能够受到更高分辨率结构的引导。这些动态上采样器通常结构复杂,推理时间成本高,特别是对于FADESAPA,高分辨率引导特征引入了更多的计算工作量,并缩小了它们的应用范围。

二、DySample概述

DySample是一种快速、有效且通用的动态上采样器,其主要概念是从点采样的角度来设计上采样过程,而不是传统的基于内核的动态上采样方法。DySample通过生成上采样位置而非内核,显著减少了计算资源的消耗,并且不需要定制的CUDA包。与其他动态上采样器相比,DySample在延迟(latency)、训练内存(memory)、训练时间(training time)、浮点运算次数(GFLOPs)和参数量(parameters)等方面表现出更高的效率。在本文测试DySample上采样模块的过程中,首先从一个简单的实现开始,然后通过不断调整公式和参数等逐步改进其性能。

三、不同上采样器比较

  • 该图是对不同上采样器的性能、推理速度和 GFLOPs 进行比较。
  • 圆圈大小表示 GFLOPs 成本。 通过将大小为 256×120×120 的特征图进行×2 上采样来测试推理时间。
  • 在大型室内场景 ADE20K 数据集上使用 SegFormer-B1 模型。
  • 测试平均交并比(mIoU)性能和额外增加的 GFLOPs

四、整体架构

与近期基于内核的上采样器不同,我们将上采样的本质理解为点重采样。在DySample中,有着基于动态上采样和模块设计的采样过程。其中输入特征X 、上采样特征X‘ 、生成偏移量O,原始采样网络G,采样集S

  • (a)图:采样集S由采样点生成器生成,通过网格采样函数对输入特征进行重新采样。
  • (b)图:采样集S=生成偏移量O+原始采样网络G。 上框表示具有静态范围因子的版本,其中偏移量通过线性层生成。下框描述具有动态范围因子的版本,其中先生成一个范围因子,然后用它来调制偏移量。σ表示 Sigmoid 函数。

五、设计过程

(1)初步设计

  • 变量注释:输入特征X 、上采样特征X‘ 、生成偏移量O,原始网格G,采样集S

X ′ = grid_sample ( X , S ) . (1) X' = \text{grid\_sample}(X, S).\tag{1} X=grid_sample(X,S).(1)

O = linear ( X ) , (2) O = \text{linear}(X),\tag{2} O=linear(X),(2)

S = G + O , (3) S = G + O,\tag{3} S=G+O,(3)

  • 目标检测:Faster R-CNN (DySample) : 37.9%的APFaster R-CNN (CARAFE):38.6%的AP
  • 语义分割:SegFormer-B1 (DySample) 获得了41.9%的mIoUSegFormer-B1 (CARAFE)
    42.8%的 mIoU

(2)第一次修改

  • 点和彩色掩码分别表示初始采样位置和偏移范围;
  • 本次示例,我们考虑采样四个点。

在这里插入图片描述

  • (a)在Nearest Initialization的情况下,四个偏移量共享相同的初始位置,这会导致初始采样位置分布不均匀;
  • (b)在Bilinear Initialization的情况下,我们将初始位置分开,使他们的初始采样位置分布均匀。

(3)第二次修改

我们发现,当(b)在没有偏移调制的情况下,偏移范围通常会重叠,所以在(c)中,我们局部约束偏移范围以减少重叠。

在这里插入图片描述
我们重写公式(2),通过不断实验确定静态范围因子为0.25时DySample达到最优效果
O = 0.25 × linear ( X ) (4) O = 0.25 \times \text{linear}(X) \tag{4} O=0.25×linear(X)(4)

(4)第三次修改

然而,乘以静态范围因子是重叠问题的一种软解法,这种方法无法完全解决问题。
在这里插入图片描述

最终我们引入动态范围因子,重写公式(4),并且通过不断实验确定分组卷积个数为g=4DySample达到最优效果。
O = 0.5 ⋅ sigmoid ( linear 1 ( X ) ) ⋅ linear 2 ( X ) (5) O = 0.5 \cdot \text{sigmoid}(\text{linear}_1(X)) \cdot \text{linear}_2(X) \tag{5} O=0.5sigmoid(linear1(X))linear2(X)(5)
通过第三次修改,DySample应用在Faster R-CNNSegFormer-B1 的效果超过CARAFE

六、DySample四种变体

DySample系列。根据范围因子的形式(静态/动态)和偏移生成样式(LP/PL),我们研究了四种变体:

  1. DySample:具有静态范围因子的LP风格;
  2. DySample+:具有动态范围因子的LP风格;
  3. DySample-S:具有静态范围因子的PL风格;
  4. DySample-S+:具有动态范围因子的PL风格。

其中LPPL即采样点生成器(Sampling Point Generator)中线性层和像素重排层的顺序:
在这里插入图片描述

七、复杂性分析

从图中可以就看出,DySample在延迟(latency)、训练内存(memory)、训练时间(training time)、浮点运算次数(GFLOPs)和参数量(parameters)等方面表现出更高的效率。

需要注意的是:

  • 虽然LP所需的参数比PL多,但前者更灵活,内存占用更小,推理速度更快;
  • S版本在参数和 GFLOPs 方面的成本更低,但内存占用和延迟更大,因为PL需要额外的存储。 +版本也增加了一些计算量。

八、定性可视化

在这里插入图片描述

九、对比实验分析

此处仅展示目标检测领域,该实验使用Faster R-CNNMSCOCO数据集上进行对比实验
可以看出DySample+版本在BackboneR50R101时均保持最优检测性能

十、DySample代码分析

上述代码就是公式(5)的具体实现
O = 0.5 ⋅ sigmoid ( linear 1 ( X ) ) ⋅ linear 2 ( X ) (5) O = 0.5 \cdot \text{sigmoid}(\text{linear}_1(X)) \cdot \text{linear}_2(X) \tag{5} O=0.5sigmoid(linear1(X))linear2(X)(5)

  • style 参数定义了上采样的风格(LP/PL
  • groups 参数用于分组卷积g的个数
  • dyscope 参数是用于确定是否使用动态范围因子(+
  • 此代码代表默认的第一种DySample

Ultralytics封装的YOLO系列中,DySample部署模块时的task.py如下图所示

在这里插入图片描述

相关文章:

【论文阅读】 Learning to Upsample by Learning to Sample

论文结构目录 一、之前的上采样器二、DySample概述三、不同上采样器比较四、整体架构五、设计过程(1)初步设计(2)第一次修改(3)第二次修改(4)第三次修改 六、DySample四种变体七、复…...

堆排序(含证明)

引言 前面我们讲过堆的基本操作的实现,现在给定一个int类型的数组,里面存放的数据是无序的,我们如何利用堆的思想来实现数组内数据的升序排列或降序排列呢? 通过前面讲到的堆的实现,我们可以想到,我们再开…...

蓝桥杯模拟题不知名题目

题目:p是一个质数&#xff0c;但p是n的约数。将p称为是n的质因数。求2024最大质因数。 #include<iostream> #include<algorithm> using namespace std; bool fun(int x) {for(int i 2 ; i * i < x ; i){if(x % i 0)return false;}return true; } int main() …...

C#中的工厂模式

在C#中&#xff0c;工厂模式&#xff08;Factory Pattern&#xff09; 是一种常见的设计模式&#xff0c;它属于创建型模式&#xff0c;主要用于定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。通过使用工厂模式&#xff0c;客户端代码不需要直接实例化具体…...

深度学习与持续学习:人工智能的未来与研究方向

文章目录 1. 持续学习与深度学习1.1 深度学习的局限1.2 持续学习的定义 2. 目标与心智2.1 奖励假说2.2 心智的构成 3. 对研究方法的建议3.1 日常写作记录3.2 中立对待流行趋势 1. 持续学习与深度学习 1.1 深度学习的局限 深度学习注重“瞬时学习”&#xff0c;如ChatGPT虽在语…...

OGRE 3D----4. OGRE和QML共享opengl上下文

在现代图形应用开发中,OGRE(Object-Oriented Graphics Rendering Engine)和QML(Qt Modeling Language)都是非常流行的工具。OGRE提供了强大的3D渲染能力,而QML则用于构建灵活的用户界面。在某些应用场景中,我们需要在同一个应用程序中同时使用OGRE和QML,并且共享OpenGL…...

【Umi】常用配置

具体见&#xff1a;alias 1. 基础配置 1)配置别名alias 2)配置sourcemap devtool 配置项 3)添加hash 4)图片转base64 inlineLimit 配置项 5)设置JS压缩方式 jsMinifier (webpack) 、jsMinifierOptions 配置项 6)设置umi插件 plugins 配置项 7)设置打包后资源导入的路…...

Windows加固脚本

echo off REM 清屏 cls title 安全策略设置批处理 color f0 echo **************************************** echo write by afei echo https://www.jianshu.com/u/ea4c85fbe8c7 echo **************************************** pause cls color 3f echo ********************…...

玩游戏常常出现vc++runtime library error R6025 这是什么意思,该怎么解决?

当玩游戏时常常出现“vc runtime library error R6025”错误&#xff0c;这通常表明微软C开发运行库组件存在问题。以下是对该错误及其解决方法的详细解释&#xff1a; 错误含义 “vc runtime library error R6025”是一个与Visual C运行时库相关的错误&#xff0c;该错误表明…...

AGX orin下电控制

AGX orin下电主要有两种&#xff0c;一种通过软件控制下电&#xff0c;另一种通过按键强制关机。下电流程和电脑关机流程类似。 AGX orin核心板与扩展板 AGX orin核心板由英伟达生产&#xff0c;不提供原理图&#xff0c;通过下图所示连接器与扩展板连接。 AGX orin扩展板&am…...

flutter 报错 error: unable to find git in your path.

项目issue&#xff1a;WIndows: "Unable to find git in your PATH." if terminal is not in admin mode Issue #123995 flutter/flutter 解决办法&#xff0c; 方法一&#xff1a;每次想要运行flutter的时候以管理员方式运行&#xff0c;比如以管理方式运行vsco…...

芯科科技率先支持Matter 1.4,推动智能家居迈向新高度

Matter 1.4引入核心增强功能、支持新设备类型&#xff0c;持续推进智能家居互联互通 近日&#xff0c;连接标准联盟&#xff08;Connectivity Standard Alliance&#xff0c;CSA&#xff09;发布了Matter 1.4标准版本。作为连接标准联盟的重要成员之一&#xff0c;以及Matter标…...

C语言数据相关知识:静态数据、越界与溢出

1、静态数组 在 C 语言中&#xff0c;数组一旦被定义后&#xff0c;占用的内存空间就是固定的&#xff0c;容量就是不可改变的&#xff0c;既不能在任何位置插入元素&#xff0c;也不能在任何位置删除元素&#xff0c;只能读取和修改元素&#xff0c;我们将这样的数组称为静态…...

文本分析之余弦相似度

余弦相似度(Cosine Similarity)是一种用于衡量两个非零向量之间相似度的指标,尤其常用于文本分析和自然语言处理领域。其核心思想是通过计算两个向量的夹角余弦值来评估它们的相似性。具体而言,余弦相似度的值范围从-1到1,其中1表示两个向量完全相同,0表示它们之间没有相…...

【VUE3】【Naive UI】<n-button> 标签

【VUE3】【Naive UI】&#xff1c;n-button&#xff1e; 标签 **type**- 定义按钮的类型&#xff0c;这会影响按钮的颜色和样式。**size**- 设置按钮的大小。**disabled**- 布尔值&#xff0c;控制按钮是否处于禁用状态。**loading**- 布尔值&#xff0c;表示按钮是否处于加载状…...

css使盒子在屏幕的地点固定

在 CSS 中&#xff0c;要将一个元素固定在页面的某个位置&#xff0c;可以使用 position: fixed 属性。以下是详细的代码示例和中文解释&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta n…...

Transformers快速入门代码解析(六):注意力机制——Transformer Encoder:执行顺序解析

Transformer Encoder&#xff1a;执行顺序解析 引言执行顺序解析1. 设置模型检查点和分词器2. 输入预处理操作说明&#xff1a; 3. 加载模型配置configconfig 包含的主要参数常见配置&#xff08;BERT-base&#xff09; 4. 初始化 TransformerEncoder5. Transformer Encoder 的…...

图像小波去噪与总变分去噪详解与Python实现

目录 图像小波去噪与总变分去噪详解与实现1. 基础概念1.1 噪声类型及去噪问题定义1.2 小波去噪算法基础1.3 总变分去噪算法基础2. 小波去噪算法2.1 理论介绍2.2 Python实现及代码详解2.3 案例分析3. 总变分去噪算法3.1 理论介绍3.2 Python实现及代码详解3.3 案例分析4. 两种算法…...

【深度学习基础】预备知识 | 微积分

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…...

CTF-PWN glibc源码阅读[1]: 寻找libc中堆结构的定义(2.31-0ubuntu9.16)

源代码在这里下载 来到malloc/malloc.c 在980行发现这段代码 // 定义最大 mmap 值为 -4 #define M_MMAP_MAX -4// 如果没有定义 DEFAULT_MMAP_MAX&#xff0c;则将其定义为 65536 #ifndef DEFAULT_MMAP_MAX #define DEFAULT_MMAP_MAX (65536) #endif// 引…...

宏集eXware物联网网关在水务管理系统上的应用

一、前言 水务管理系统涵盖了对城市水网、供水、排水、污水处理等多个环节的监控与管理。随着物联网&#xff08;IoT&#xff09;技术的快速发展&#xff0c;物联网网关逐渐成为水务管理系统中的关键组成部分。 宏集物联网网关以其高效的数据采集、传输和管理功能&#xff0c…...

【大数据学习 | Spark-SQL】定义UDF和DUAF,UDTF函数

1. UDF函数&#xff08;用户自定义函数&#xff09; 一般指的是用户自己定义的单行函数。一进一出&#xff0c;函数接受的是一行中的一个或者多个字段值&#xff0c;返回一个值。比如MySQL中的&#xff0c;日期相关的dateDiff函数&#xff0c;字符串相关的substring函数。 先…...

#Java-JDK7、8的时间相关类,包装类

1. JDK7-Date类 我们先来看时间的相关知识点 世界标准时间: 格林尼治时间/格林威治时间(Greenwich Mean Time)简称GMT。目前世界标准时间(UTC)已经替换为:原子钟中国标准时间: 世界标准时间8小时 时间单位换算: 1秒1000毫秒 1毫秒1000微秒 1微秒1000纳秒 Date类 Date类…...

tc 命令

Windows Network Shaper目前只能在win10及以下版本使用&#xff0c;在github上有源码。 iperf 是一个网络性能测试工具&#xff0c;可以测试网络带宽和延迟。 webrtc M96版本的GCC sudo tc qdisc del dev eth1 root //关闭限速 sudo tc qdisc add dev eth1 root handle 1: ht…...

基于Java Springboot 协同过滤算法音乐推荐系统

一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue2、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA 数据库&#x…...

MyBatis框架-关联映射

MyBatis关联映射-一对一 1.1 实体关系 实体–数据实体&#xff0c;实体关系指的就是数据与数据之间的关系 例如&#xff1a;订单和商品&#xff0c;用户和角色 实体关系分为以下四种&#xff1a; **一对一关联&#xff1a;**用户表和用户详情表 数据表关系&#xff1a; 主键关…...

Web开发技术栈选择指南

互联网时代的蓬勃发展&#xff0c;让越来越多人投身软件开发领域。面对前端和后端的选择&#xff0c;很多初学者往往陷入迷茫。让我们一起深入了解这两个领域的特点&#xff0c;帮助你做出最适合自己的选择。 在互联网发展的早期&#xff0c;前端开发主要负责页面布局和简单的…...

工具类的魔力:深入理解 Java 的 String、Math 和 Arrays

Java 提供了许多实用的工具类&#xff0c;帮助开发者简化代码&#xff0c;提升效率。这些工具类包含了各种常见的操作&#xff0c;比如字符串处理、数学计算、数组操作等。掌握这些工具类的高效使用方法&#xff0c;不仅能让你写出更简洁、优雅的代码&#xff0c;还能在性能上有…...

Linux下一次性关闭多个同名进程

要一次性关闭多个同名的 Python 进程&#xff0c;例如&#xff1a; 你可以使用以下几种方法。在执行这些操作之前&#xff0c;请务必确认这些进程确实是你希望终止的&#xff0c;以避免意外关闭其他重要的进程。 方法一&#xff1a;使用 pkill 命令 pkill 是一个用于根据名称…...

记录一些虚拟机桥接网络,windows网络遇到的小问题

1 virtual box 桥接的虚拟系统无 ipv4 地址 https://blog.csdn.net/qq_44847649/article/details/122582954 原因是 wlan 无线网卡没开共享给 virtual box host only (之前用过 vmware 也类似) 2 无法两台 windows10 物理机无法相互 ping 通 https://blog.csdn.net/qq_35…...

建筑网站水泡网/2022最新小学生新闻

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2020年建筑电工(建筑特殊工种)考试及建筑电工(建筑特殊工种)操作证考试&#xff0c;包含建筑电工(建筑特殊工种)考试答案和解析及建筑电工(建筑特殊工种)操作证考试练习。由安全生产模拟考试一点通公众号结合国家建筑…...

平顶山市建设局网站/百度竞价排名案例分析

标题: A Robust Laser-Inertial Odometry and Mapping Method for Large-Scale Highway Environments作者: Shibo Zhao, Zheng Fang, HaoLai Li, Sebastian Scherer1摘要我们提出了一种新的激光惯性里程计和建图方法,以实现大规模公路环境中的实时、低漂移和鲁棒的位姿估计.该方…...

长沙网络营销首选智投未来/aso安卓优化公司

数据结构&#xff1a;是相互之间存在一种或多种特定关系的数据元素的集合。 1.数据结构起源 数据结构是一门研究非数值计算的程序设计问题中的操作对象&#xff0c;以及它们之间的关系和操作等相关问题的学科。 2.基本概念和术语 数据数据元素数据项数据对象 3.逻辑结构和物…...

视觉设计网站/友链申请

[Error]集成第三方API时Other Linker Flags项添加-all_load引起的冲突 问题描述&#xff1a; 在XCode9.1新建一个项目&#xff0c;先集成了极光推送&#xff0c;再集成微信支付时出现的问题。 集成微信后运行时&#xff0c;报错&#xff08;如图&#xff09;&#xff1a; …...

推广目标包括什么/seo建站工具

神州数码客户端常见故障自查一、 客户端认证成功前故障1. 接上网线后网卡灯不亮。(确定自己电脑网卡带灯。注&#xff1a;测试期间最好是不要接交换机&#xff0c;直接接墙上端口)参考方案&#xff1a;A、更换网线&#xff1b;B、如确认是端口故障&#xff0c;则请致电网络中心…...

哪个网站可以做字体大小/国内最好用免费建站系统

上午 题还是比较水的... T1 attack 题意&#xff1a; 给一个有向图&#xff0c;Q次询问K个点&#xff0c;问从1到K个点的必经点 (没说是DAG&#xff0c;但数据是DAG...)、 支配树的裸题吗&#xff0c;但是不会支配树啊.... 然后就求割点&#xff0c;桥&#xff0c;然后就懵逼了…...