首页 > 其他分享 >3D Object Detection Essay Reading 2024.04.01

3D Object Detection Essay Reading 2024.04.01

时间:2024-04-03 15:33:48浏览次数:23  
标签:Essay 2024.04 01 torch 46 Attention https offset 174

Swin Transformer

  1. paper: https://arxiv.org/abs/2103.14030 (ICCV 2021)
  2. code:https://github.com/microsoft/Swin-Transformer/blob/2622619f70760b60a42b996f5fcbe7c9d2e7ca57/models/swin_transformer.py#L458
  3. 学习链接:

image

  • Patch Partition

​ 对图片进行分块,相邻的4x4的像素为一个Patch,然后在每个Patch中,把每个像素在通道方向展平,堆叠到一起。特征图形状从[H, W, 3]变成了[H/4, W/4, 48]。

  • Linear Embedding

​ 对每个像素的通道数据进行线性变换。特征图形状从[H/4, W/4, 48]变成了 [H/4, W/4, C]。

  • Swin Transformer Block

    • Windows Multi-head Self-Attention(W-MSA)

      为了减少计算量,对特征图按照MXM大小划分成一个个window,单独对每个windo内部进行self-attention。

    • Shifted Windows Multi-Head Self-Attention(SW-MSA)

      W-MSA无法在window与window之间进行信息传递,为了解决这个问题,SW-MSA对偏移的windows内部在进行self-attention。这里用到了masked MSA来防止不同windows中的信息乱窜。

  • Patch Merging

​ 对特征图进行下采样,H和W都缩小2倍,C增加2倍。Patch Merging会将每个2x2的相邻像素划分为一个patch,然后将每个patch中相同位置的像素给拼在一起就得到了4个feature map。接着将这四个feature map在深度方向进行concat拼接,然后在通过一个LayerNorm层。最后通过一个全连接层在feature map的深度方向做线性变化,将feature map的深度由C变成C/2。

  • Relative Position Bias

\[\text{Self-Attention}(X) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}} + B \right) V \]

​ 公式中的B就是就是Relative Position Bias,论文中的消融实验验证了其能带来明显的提升。

MSwin

  1. paper:https://arxiv.org/abs/2203.10638 (ECCV 2022)
  2. code:https://github.com/DerrickXuNu/v2x-vit/blob/main/v2xvit/models/sub_modules/mswin.py

image

  • MSwin把Swin的串行结构改成了并行,最后用了一个Split-Attention融合了所有分支的特征
  • MSwin论文中指出不需要用SW-MSA,可达到更大的空间交互(猜测是因为并行的设计?)

Deformable Attention

  1. paper:https://openaccess.thecvf.com/content/CVPR2022/html/Xia_Vision_Transformer_With_Deformable_Attention_CVPR_2022_paper.html (CVPR 2022)

  2. code:https://github.com/LeapLabTHU/DAT

image

image

​ DAT和普通的attention的区别就是,DAT可以汇聚一个自适应的可变感受野信息,一方面可以提高效率,防止无关信息的干扰(相比ViT),另一方面可以使得注意模块更加灵活,有效应对多尺度物体的情况(相比Swin)。

image

  1. 输入特征图(假设shape = 1, 256, 48, 176)经过一个卷积层生成查询矩阵q。

  2. q通过一个offset network生成偏移量offset(shape = 1, 2, 46, 174),重新排列维度(shape = 1, 46, 174, 2)。

  3. 生成reference points(shape = 1, 46, 174, 2)。

  4. 将reference points和offset相加,得到最终的偏移量pos。

  5. 通过bilinear interpolation,输入pos,输出x_sampled(shape = 1, 256, 46, 174)。

  6. 由x_sampled生成矩阵k和v。

    input = torch.rand(1, 256, 48, 176)
    dtype, device = input.dtype, input.device

    q = self.proj_q(x)  # b c h w

    # 生成偏移量
    offset = conv_offset(q)  # torch.Size([1, 2, 46, 174])
    offset_range = torch.tensor([1.0 / (46 - 1.0), 1.0 / (174 - 1.0)]).reshape(1, 2, 1, 1)
    # 用 tanh 预定义缩放因子防止偏移量变得太大
    offset = offset.tanh().mul(offset_range).mul(2)  # torch.Size([1, 2, 46, 174])
    offset = einops.rearrange(offset, 'b p h w -> b h w p')  # torch.Size([1, 46, 174, 2])

    # 生成参考点,最后归一化到[-1,+1]的范围
    reference = _get_ref_points(46, 174, 1, dtype, device)  # torch.Size([1, 46, 174, 2])

    pos = offset + reference

    # torch.Size([1, 256, 46, 174])
    x_sampled = F.grid_sample(
        input=input,
        grid=pos[..., (1, 0)],  # y, x -> x, y
        mode='bilinear', align_corners=True)  # B, C, Hg, Wg

MSwin + Deformable Attention

???

标签:Essay,2024.04,01,torch,46,Attention,https,offset,174
From: https://www.cnblogs.com/ggyt/p/18112800

相关文章

  • 【洛谷 P8695】[蓝桥杯 2019 国 AC] 轨道炮 题解(映射+模拟+暴力枚举+桶排序)
    [蓝桥杯2019国AC]轨道炮题目描述小明在玩一款战争游戏。地图上一共有NNN个敌方单位,可以看作2D平面上的点。其中第i......
  • 【洛谷 P8672】[蓝桥杯 2018 国 C] 交换次数 题解(字符串+映射+全排列)
    [蓝桥杯2018国C]交换次数题目描述IT产业人才需求节节攀升。业内巨头百度、阿里巴巴、腾讯(简称BAT)在某海滩进行招聘活动。招聘部门一字排开。由于是自由抢占席位,三大公司的席位随机交错在一起,形如:ABABTATT,这使得应聘者十分别扭。于是,管理部门要求招聘方进行必要的......
  • 【洛谷 P8700】[蓝桥杯 2019 国 B] 解谜游戏 题解(字符串+映射+周期性)
    [蓝桥杯2019国B]解谜游戏题目背景题目描述小明正在玩一款解谜游戏。谜题由242424根塑料棒组成,其中黄色塑料棒4......
  • P2831 [NOIP2016 提高组] 愤怒的小鸟
    思路状压+优化代码#include<iostream>#include<stdio.h>#include<algorithm>#include<string>#include<cmath>#include<string.h>#defineR(x)x=read()#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespac......
  • 01 数据库和SQL语言概述
    概述数据库是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库;就是存储数据的仓库是一个以某种组织方式存储在磁盘上的数据的集合数据库的分类网络数据库网络数据库是指把数据库技术引入到计算机网络系统中,借助于网络技术将存储于数据库中的大量信息及时发......
  • Linux C++ 016-友元
    LinuxC++016-友元本节关键字:Linux、C++、友元及三种实现方式相关库函数:友元的概念及关键字friend在程序里,有些私有属性也可以让类外特殊的函数或者类进行访问,这就需要用到友元技术。友元的目的就是让一个函数或者类访问另一个类中私有成员。友元的三中实现方式(1......
  • Linux C++ 015-对象模型和this指针
    LinuxC++015-对象模型和this指针本节关键字:Linux、C++、对象模型、this指针相关库函数:成员变量和成员函数分开存储1、在C++中,类内的成员变量和成员函数分开存储,只有非静态成员变量才属于类的对象上;2、C++编译器会给每个空对象也分配一个字节的空间,是为了区分空对象占......
  • 宁波ISO45001认证费用
    宁波ISO45001认证费用......
  • 【2024-04-01】连岳摘抄
    23:59记住,只有一个时间是重要的,那就是现在。它之所以很重要,是因为它是我们有所作为的时间。                                                 ——列夫·托尔斯泰半......
  • B82793S0513N201 共模扼流圈滤波器电感 51uH 800mA
    B82793S0513N201是一款由TDK(东电化)公司生产的数据线扼流圈,用于电信领域的xDSL变压器。制造商:TDK产品品种:共模扼流圈/滤波器RoHS:详细信息系列:B82793S安装风格:PCBMount端接类型:SMD/SMT通道数量:1Channel电感:51uH容差:30%最大直流电流:800mA最......