论文阅读:Deformable DETR: Deformable Transformers for End-to-End Object Detection

论文阅读:Deformable DETR: Deformable Transformers for End-to-End Object Detection

Deformable DETR: 基于稀疏空间采样的注意力机制,让DCN与Transformer一起玩! - 知乎 (zhihu.com)

【Deformable DETR 论文+源码解读】Deformable Transformers for End-to-End Object Detection_deformable detr: deformable transformers for end-t-CSDN博客

HuKai97/detr-annotations: detr官方源码中文注释版! (github.com)

Abstract

最近提出了DETR,以消除对象检测中对许多手工设计组件的需求,同时表现出良好的性能。然而,由于Transformer注意力模块在处理图像特征 map 方面的局限性,它存在收敛慢和特征空间分辨率有限的问题。为了缓解这些问题,我们提出了Deformable DETR,其注意力模块只关注参考周围的一小组关键采样点。Deformable DETR可以在训练时间减少10倍的情况下实现比DETR更好的性能(尤其是在小物体上)。对COCO基准的广泛实验证明了我们方法的有效性。代码发布于github.com/fundamentalvision/Deformable-DETR

image-20240728214512431

3 Revisiting Transformers and DETR

Multi-Head Attention in Transformers Transformers(瓦斯瓦尼等人,2017)是基于机器翻译注意力机制的网络架构。给定 query 元素(例如,输出句子中的目标词)和一组 key 元素(例如,输入句子中的源词),多头注意力模块根据衡量query-key对兼容性的注意力权重自适应地聚集关键内容。为了使模型专注于来自不同表示子空间和不同位置的内容,不同注意力头的输出与可学习的权重进行线性聚合。令 q ∈ Ω q q\in \Omega_q qΩq 索引具有表示特征 z q ∈ R C z_q\in \mathbb{R}^C zqRC 的 query 元素, k ∈ Ω k k\in \Omega_k kΩk 索引具有表示特征 x k ∈ R C x_k\in \mathbb{R}^C xkRC 的 key 元素,其中 C C C 是特征维度, Ω q \Omega_q Ωq Ω k \Omega_k Ωk 分别指定查询和关键元素的集合。然后计算多头注意力特征:
MultiHeadAttn ( z q , x ) = ∑ m = 1 M W m [ ∑ k ∈ Ω k A m q k ⋅ W m ′ x k ] \text{MultiHeadAttn}(\boldsymbol{z}_q,\boldsymbol{x})=\sum_{m=1}^M\boldsymbol{W}_m{\left[\sum_{k\in\Omega_k}A_{mqk}\cdot\boldsymbol{W}_m^{\prime}\boldsymbol{x}_k\right]} MultiHeadAttn(zq,x)=m=1MWm[kΩkAmqkWmxk]
其中 m m m 索引注意力头, W m ′ ∈ R C v × C W_m^{\prime}\in\mathbb{R}^{C_v\times C} WmRCv×C W m ∈ R C × C v W_m\in\mathbb{R}^{C\times C_v} WmRC×Cv 具有可学习的权重(默认情况下 C v = C / M C_v = C/M Cv=C/M)。注意力权重 A m q k ∝ exp ⁡ { z q T U m T V m x k C v } A_{mqk}\propto\exp\{\frac{\boldsymbol{z}_q^T\boldsymbol{U}_m^T\boldsymbol{V}_m\boldsymbol{x}_k}{\sqrt{C_v}}\} Amqkexp{Cv zqTUmTVmxk} 被标准化为 ∑ k ∈ Ω k A m q k = 1 \sum_{k\in\Omega_k}A_{mqk} = 1 kΩkAmqk=1,其中 U m , V m ∈ R C v × C U_m,V_m\in\mathbb{R}^{C_v\times C} Um,VmRCv×C也是可学习的权重。为了消除不同的空间位置的歧义,表示特 z q z_q zq x k x_k xk 通常是元素内容和位置嵌入的级联/总和。

Transformer 有两个已知问题。一是 transformer 在融合之前需要很长的训练时间表。假设 query 和 key 元素的数量分别为 N q N_q Nq N k N_k Nk。通常,通过适当的参数初始化, U m z q U_mz_q Umzq V m x k V_mx_k Vmxk 遵循均值为0、方差为1的分布,这使得当 N k N_k Nk 较大时,注意力权重 A m q k ≈ 1 N k A_{mqk}\approx\frac1{N_k} AmqkNk1。这将导致输入特征的渐变不明确。因此,需要较长的训练时间表,以便注意力权重可以专注于特定的key。在图像域中,key 元素通常是图像像素, N k N_k Nk 可能非常大,并且收敛是冗长的。

另一方面,多头注意力的计算和存储复杂性可能非常高,并且有大量的 query 和 key 元素。式子1的计算复杂性是 O ( N q C 2 + N k C 2 + N q N k C ) O(N_qC^2+N_kC^2+N_qN_kC) O(NqC2+NkC2+NqNkC)。在图像域中,query 和 key 元素都是像素, N q = N k ≫ C N_{q}={N}_{k}\gg C Nq=NkC,复杂性由第三项主导,即 O ( N q N k C ) O(N_qN_kC) O(NqNkC)。因此,多头注意力模块随着特征地图大小而遭受二次复杂性增长的影响。

DETR DETR(Carion等人,2020)构建在Transformer编码器-解码器架构之上,结合了基于集合的匈牙利损失,通过双方匹配强制对每个 GT 边界框进行独特的预测。我们简要回顾网络架构如下。

给定CNN主干提取的输入特征地图 x ∈ R C × H × W x\in\mathbb{R}^{C\times H\times W} xRC×H×W(例如,ResNet(He等人,2016)),DETR利用标准的Transformer编码器-解码器架构将输入特征映射转换为一组对象查询的特征。在对象查询特征(由解码器产生)顶部添加3层前向神经网络(FFN)和线性投影作为检测头。FFN充当回归分支来预测边界框坐标 b ∈ [ 0 , 1 ] 4 b\in[0,1]^4 b[0,1]4,其中 b = { b x , b y , b w , b h } \boldsymbol{b}=\{b_x,b_y,b_w,b_h\} b={bx,by,bw,bh} 编码标准化框中心坐标、框高度和宽度(相对于图像大小)。线性投影作为分类分支来产生分类结果。

对于DETR中的Transformer编码器,query 和 key 元素都是特征地图中的像素。输入是ResNet特征地图(具有编码的位置嵌入)。令 $ H$ 和 W W W 分别表示特征地图的高度和宽度。自我注意力的计算复杂度为 O ( H 2 W 2 C ) O(H^2W^2C) O(H2W2C),随着空间大小的二次增长。

对于DETR中的Transformer解码器,输入包括来自编码器的特征图,以及由可学习的位置嵌入表示的 N N N 个对象查询(例如, N = 100 N = 100 N=100 )。解码器中有两种类型的注意力模块,即交叉注意力模块和自我注意力模块。在交叉注意模块中,对象查询从特征地图中提取特征。查询元素是对象查询,key 元素是编码器的输出特征图。其中, N q = N N_q = N Nq=N N k = H × W N_k = H \times W Nk=H×W,交叉注意的复杂度为 O ( H W C 2 + N H W C ) O(HW C^2 + N HW C) O(HWC2+NHWC)。复杂性随着特征地图的空间大小而线性增长。在自我注意模块中,对象查询相互交互,以捕捉它们的关系。query和 key 元素都是对象查询。其中 N q = N k = N N_q = N_k = N Nq=Nk=N,自我注意模块的复杂度为 O ( 2 N C 2 + N 2 C ) O(2NC^2 + N^2C) O(2NC2+N2C)。对于中等数量的对象查询,复杂性是可以接受的。

DETR是一种有吸引力的目标检测设计,它消除了对许多手动设计组件的需要。然而,它也有自己的问题。这些问题主要可归因于Transformer在将图像特征图作为关键元素处理时的注意力不足:

(1)DETR在检测小目标方面的性能相对较低。现代物体探测器使用高分辨率特征图来更好地检测小物体。然而,高分辨率的特征映射会给DETR的Transformer编码器中的自我注意模块带来不可接受的复杂性,其复杂度是输入特征映射空间大小的平方。

(2)与现代目标检测器相比,DETR需要更多的训练周期才能收敛。这主要是因为处理图像特征的注意模块很难训练。例如,在初始化时,交叉注意模块对整个特征图的注意力几乎是平均的。然而,在训练结束时,注意图被学习到非常稀疏,只专注于物体的末端。看来,DETR需要很长的训练计划才能学习到注意图中的如此重大变化。

4 Method

4.1 Deformable Transformers for End-to-End Object Detection

Deformable Attention Module 将Transformer注意力应用于图像特征地图的核心问题是它将查看所有可能的空间位置。为了解决这个问题,我们提出了一个可变形的注意力模块。受可变形卷积的启发(Dai等人,2017年;朱等人,2019 b),可变形注意力模块仅关注参考点周围的一小组关键采样点,而无论特征地图的空间大小如何,如图2所示。通过为每个 query 仅分配少量固定数量的 key,可以缓解收敛和特征空间分辨率的问题。

给定输入特征地图 x ∈ R C × H × W x\in\mathbb{R}^{C\times H\times W} xRC×H×W,让 q q q 索引具有内容特征 z q z_q zq和2-D参考点 p q p_q pq 的查询元素,可变形注意力特征计算如下:
DeformAttn ⁡ ( z q , p q , x ) = ∑ m = 1 M W m [ ∑ k = 1 K A m q k ⋅ W m ′ x ( p q + Δ p m q k ) ] \operatorname{DeformAttn}(\boldsymbol{z}_q,\boldsymbol{p}_q,\boldsymbol{x})=\sum_{m=1}^M\boldsymbol{W}_m[\sum_{k=1}^KA_{mqk}\cdot\boldsymbol{W}_m^{\prime}\boldsymbol{x}(\boldsymbol{p}_q+\Delta\boldsymbol{p}_{mqk})] DeformAttn(zq,pq,x)=m=1MWm[k=1KAmqkWmx(pq+Δpmqk)]
其中 m m m 对注意力头进行索引, k k k 对采样的key进行索引, K K K 是总采样的 key 数( K ≪ H W K\ll HW KHW)。 Δ p m q k \Delta p_{mqk} Δpmqk 和 $ A_{mqk}$ 分别表示第 m m m 个注意力头中第 k k k 个采样点的采样偏差和关注权重。纯量注意力权重 A m q k A_{mqk} Amqk 位于 [ 0 , 1 ] [0,1] [0,1] 范围内,通过 ∑ k = 1 K A m q k = 1 \sum_{k=1}^KA_{mqk} = 1 k=1KAmqk=1 进行标准化。 Δ p m q k ∈ R 2 \Delta\boldsymbol{p}_{mqk}\in\mathbb{R}^2 ΔpmqkR2 是范围无约束的2-d实数。由于 p q + Δ p m q k p_q+\Delta p_{mqk} pq+Δpmqk 是小数,因此在计算 x ( p q + Δ p m q k ) {\boldsymbol{x}(\boldsymbol{p}_q+\Delta\boldsymbol{p}_{mqk})} x(pq+Δpmqk) 时应用双线性插值,如Dai等人(2017)所述。 Δ p m q k \Delta p_{mqk} Δpmqk A m q k A_{mqk} Amqk 都是通过 query 特征 z q z_q zq 上的线性投影获得的。在实现中,查询特征 z q z_q zq 被提供给 3 M K 3 M K 3MK个通道的线性投影运算符,其中前 2 M K 2 MK 2MK 个通道对采样偏差 Δ p m q k \Delta p_{mqk} Δpmqk进行编码,其余 M K MK MK 个通道被提供给softmax运算符以获得关注权重 A m q k A_{mqk} Amqk

可变形注意力模块旨在将卷积特征图作为关键元素进行处理。设 N q N_q Nq 为查询元素的数量,当 M K MK MK 相对小时,可变形注意力模块的复杂度为 O ( 2 N q C 2 + min ⁡ ( H W C 2 , N q K C 2 ) ) O(2N_{q}C^{2}+\operatorname*{min}(HWC^{2},N_{q}KC^{2})) O(2NqC2+min(HWC2,NqKC2))(详情见附录A.1)。当将其应用于DETR编码器时,其中 N q = H W N_q = HW Nq=HW ,复杂度变为 O ( H W C 2 ) O(HWC^{2}) O(HWC2),其与空间大小呈线性复杂度。当它作为DETR解码器中的交叉注意模块应用时,其中 N q = N N_q = N Nq=N N N N 是对象查询的数量),复杂性变为 O ( N K C 2 ) O(N KC^2) O(NKC2),这与空间大小 H W HW HW 无关。

Multi-scale Deformable Attention Module 大多数现代物体检测框架都受益于多尺度特征地图(Liu等人,2020年)。我们提出的可变形注意力模块可以自然扩展用于多尺度特征地图。

{ x l } l = 1 L \{x^l\}_{l=1}^L {xl}l=1L 是输入的多尺度特征地图,其中 x l ∈ R C × H l × W l x^l\in\mathbb{R}^{C\times H_l\times W_l} xlRC×Hl×Wl。令 p ^ q ∈ [ 0 , 1 ] 2 \hat{p}_q\in[0,1]^2 p^q[0,1]2 是每个查询元素 q q q 的参考点的规范化坐标,那么多尺度可变形注意力模块应用为
M S D e f o r m A t t n ( z q , p ^ q , { x l } l = 1 L ) = ∑ m = 1 M W m [ ∑ l = 1 L ∑ k = 1 K A m l q k ⋅ W m ′ x l ( ϕ l ( p ^ q ) + Δ p m l q k ) ] \mathrm{MSDeformAttn}(\boldsymbol{z}_q,\hat{\boldsymbol{p}}_q,\{x^l\}_{l=1}^L)=\sum_{m=1}^M\boldsymbol{W}_m[\sum_{l=1}^L\sum_{k=1}^KA_{mlqk}\cdot\boldsymbol{W}_m^{\prime}\boldsymbol{x}^l(\phi_l(\hat{\boldsymbol{p}}_q)+\Delta\boldsymbol{p}_{mlqk})] MSDeformAttn(zq,p^q,{xl}l=1L)=m=1MWm[l=1Lk=1KAmlqkWmxl(ϕl(p^q)+Δpmlqk)]
其中 m m m 对注意力头进行索引, l l l 对输入特征级别进行索引, k k k 对采样点进行索引。 Δ p m l q k \Delta p_{mlqk} Δpmlqk A m l q k A_{mlqk} Amlqk 分别表示第 l l l 个特征级别中第 k k k 个采样点和第 m m m 个注意力头的采样偏差和注意力权重。纯量注意力权重 A m l q k A_{mlqk} Amlqk 通过 ∑ l = 1 L ∑ k = 1 K A m l q k \sum_{l=1}^L\sum_{k=1}^KA_{mlqk} l=1Lk=1KAmlqk 进行标准化。这里,为了清晰度公式,我们使用规格化坐标 p ^ q ∈ [ 0 , 1 ] 2 \hat{\boldsymbol{p}}_q\in[0,1]^2 p^q[0,1]2,其中规格化坐标 ( 0 , 0 ) (0,0) (0,0) ( 1 , 1 ) (1,1) (1,1) 分别指示左上角和右下角图像角。等式3中的函数 ϕ l ( p ^ q ) \phi_l(\hat{\boldsymbol{p}}_q) ϕl(p^q) 将规格化坐标 p ^ q \hat{\boldsymbol{p}}_q p^q 重新缩放到第 l l l 层的输入特征地图。多尺度可变形注意力与之前的单尺度版本非常相似,只是它从多尺度特征地图中采样 L K LK LK 点,而不是从单尺度特征地图中采样 K K K 点。

提出的注意力模块将退化为可变形卷积(Dai等人,2017),当 L = 1 L = 1 L=1 K = 1 K = 1 K=1,并且 W m ′ ∈ R C v × C \boldsymbol{W}_m^{\prime} \in \mathbb{R}^{C_v\times C} WmRCv×C 被固定为单位矩阵时。可变形卷积专为单尺度输入而设计,仅关注每个注意头的一个采样点。然而,我们的多尺度可变形注意力会从多尺度输入中查看多个采样点。提出的(多尺度)可变形注意力模块也可以被视为 Transformer注意力的有效变体,其中可变形采样位置引入预过滤机制。当采样点穿过所有可能的位置时,建议的注意力模块相当于Transformer注意力。

Deformable Transformer Encoder 我们将DETR中处理特征映射的 Transformer 注意模块替换为所提出的多尺度可变形注意模块。编码器的输入和输出都是具有相同分辨率的多尺度特征地图。在编码器中,我们从ResNet(He 等人,2016年) C 3 C_3 C3 C 5 C_5 C5 阶段的输出特征图(经 1 × 1 1\times 1 1×1 卷积变换)提取多尺度特征图 { x l } l = 1 L − 1 ( L = 4 ) \{\boldsymbol{x}^{l}\}_{l=1}^{L-1} (L=4) {xl}l=1L1(L=4),其中 C l C_l Cl 的分辨率比输入图像低 2 l 2^l 2l 。最低分辨率特征图 $ x^L$ 是在最后的 C 5 C_5 C5 级上通过 3 × 3 3×3 3×3 步长 2 2 2 卷积获得的,记为 C 6 C_6 C6。所有的多比例特征地图都是 C = 256 C=256 C=256 通道。注意,FPN(Lin等人,2017a)中的自上而下结构没有使用,因为我们提出的多尺度可变形注意本身可以在多尺度特征地图之间交换信息。多比例尺要素地图的构建也在附录A.2中进行了说明。第5.2节中的实验表明,添加FPN不会提高性能。

在编码器中应用多尺度可变形注意力模块时,输出是与输入具有相同分辨率的多尺度特征地图。关键元素和查询元素都是来自多比例特征地图的像素。对于每个查询像素,参考点就是其本身。为了识别每个查询像素位于哪个特征级别,除了位置嵌入之外,我们还向特征表示添加了标度级别嵌入(表示为 e l \boldsymbol{e}_l el )。与固定编码的位置嵌入不同,尺度级嵌入 { e l } l = 1 L \{\boldsymbol{e}_l\}_{l=1}^L {el}l=1L 是随机初始化并与网络联合训练的。

Deformable Transformer Decoder 解码器中有交叉注意和自我注意模块。两种类型的注意模块的查询元素都是对象查询。在交叉注意模块中,对象查询从特征地图中提取特征,其中关键元素是编码器输出的特征地图。在自我注意模块中,客体查询相互作用,其中关键要素是客体查询。由于我们提出的可变形注意模块是为处理卷积特征映射而设计的,所以我们只将每个交叉注意模块替换为多尺度可变形注意模块,而保持自我注意模块不变。对于每个对象查询,从其对象查询嵌入的参考点 p ^ q \hat{p}_q p^q 的2-D归一化坐标经由后面跟随Sigmoid函数的可学习线性投影来预测。

由于多尺度可变形注意模块提取参考点周围的图像特征,因此我们让检测头预测边界框为相对偏移量w.r.t。该参考点进一步降低了优化的难度。参考点被用作长方体中心的初始猜测。检测头预测相对偏移量W.r.t。参照点。有关详细信息,请查看附录A.3。这样,学习到的解码者注意力将与预测的包围盒具有很强的相关性,这也加速了训练收敛。通过用DETR中的可变形注意模块替换变压器注意模块,我们建立了一种高效、快速的收敛检测系统,称为可变形DETR(见图1)。

image-20240728211945617

4.2 Additional Improvements and Variants for Deformable DETR

由于其快速收敛以及计算和存储效率,可变形DETR为我们利用端到端物体检测器的各种变体开辟了可能性。由于篇幅有限,我们在这里仅介绍这些改进和变体的核心思想。实施详情见附录A.4。

迭代边界框优化。这是受到光流估计(Teed&Den,2020)中发展的迭代精化的启发。为了提高检测性能,我们建立了一种简单有效的迭代包围盒求精机制。这里,每个解码层基于来自前一层的预测来细化边界框。

两级可变形DETR。在原始的DETR中,解码器中的对象查询与当前图像无关。受两阶段目标检测器的启发,我们探索了一种变形DETR的变体,作为第一阶段,用于生成区域建议。生成的区域建议将作为对象查询送入解码器进行进一步细化,形成一个两级可变形的DETR。

在第一阶段,为了实现高召回率,多尺度特征地图中的每个像素都将作为对象查询。然而,直接将对象查询设置为像素会给解码器中的自我注意模块带来不可接受的计算和存储开销,其复杂度随着查询次数的增加而呈二次曲线增长。为了避免这个问题,我们去掉了解码器,形成了一个只有编码器的可变形DETR来生成区域方案。在该方法中,每个像素被指定为一个对象查询,该查询直接预测一个边界框。得分最高的边界框被选为区域提案。在将区域建议提交到第二阶段之前,不应用NMS。

5 Experiment

数据集。我们对COCO 2017数据集进行实验(林等人,2014年)。我们的模型在训练集上训练,并在val集和test-dev集上进行评估。

实施细节。ImageNet(邓等人,2009年)预先训练的ResNet-50(何 等人,2016年)被用作消融的主干。多比例特征地图的提取没有FPN(Lin等人,2007a)。默认情况下,为可变形关注设置 M = 8 M=8 M=8 K = 4 K=4 K=4 。可变形变压器编码器的参数在不同的特征级别之间共享。其他超参数设置和训练策略主要遵循DETR(Carion等人,2020),除了将损失权重为2的焦点损失(Lin等人,2007b)用于边界框分类,以及对象查询数量从100增加到300。我们还报告了具有这些修改的DETR-DC5的性能,以进行公平的比较,表示为DETR-DC5+。默认情况下,模型训练50个时期,学习速率在40个时期衰减0.1倍。在DETR(Carion等人,2020年)之后,我们使用Adam优化器(Kingma&BA,2015年)训练我们的模型,基本学习率为2×10−4,β1=0.9,β2=0.999,权重衰减为10−4。用于预测对象查询参考点和采样偏移量的线性投影的学习率乘以0.1倍。运行时间在NVIDIA Tesla V100图形处理器上进行了评估。

5.1 Comparison with DETR

如表1所示,与更快的R-CNN + FPN相比,DETR需要更多的训练时期才能收敛,并且在检测小对象时的性能较低。与DETR相比,可变形DETR以减少10倍的训练周期实现了更好的性能(尤其是在小对象上)。详细的收敛曲线如图3所示。借助迭代边界盒细化和两阶段范式,我们的方法可以进一步提高检测准确性。我们提出的可变形DETR具有与更快的R-CNN + FPN和DETR-DC 5同等的FLOP。但运行时速度比DETR-DC 5快得多(1.6倍),仅比Faster R-CNN + FPN慢25%。DETR-DC 5的速度问题主要是由于Transformer注意力中的大量内存访问造成的。我们提出的可变形注意力可以缓解这个问题,但代价是无序存储器访问。因此,它仍然比传统卷积稍微慢一些。

image-20240728213250685

image-20240728213302048

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/51625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

The Llama 3 Herd of Models.Llama 3 模型第1,2,3部分全文

现代人工智能(AI)系统是由基础模型驱动的。本文提出了一套新的基础模型,称为Llama 3。它是一组语言模型,支持多语言、编码、推理和工具使用。我们最大的模型是一个密集的Transformer,具有405B个参数和多达128K个tokens的上下文窗口。本文对Llama 3进行了广泛的实证评价。我们…

【error】AttributeError: module ‘cv2.dnn‘ has no attribute ‘DictValue‘(库冲突)

conda list conda remove opencv pip uninstall opencv-python conda list pip 同时卸载两个库 pip uninstall opencv-contrib-python opencv-python 没有and 直接写库名 module ‘cv2.dnn‘ has no attribute ‘DictValue‘解决办法_module cv2.dnn has no attribute d…

Linux - 环境变量、程序地址空间、进程地址空间及Linux2.6内核进程调度队列

目录 环境变量 基本概念 常见环境变量 查看环境变量的方法 测试PATH 测试HOME 测试SHELL 和环境变量相关的命令 环境变量的组织方式 通过代码获取环境变量 通过系统调用获取环境变量 程序地址空间 进程地址空间 Linux2.6内核进程调度队列 一个CPU拥有一个runqueue 优先级 活…

谈一谈爬虫开发工程师

爬虫就只是抓数据的吗?并不是,爬虫工程师的工作不再仅仅是抓取数据,还需要处理其他各种复杂问题,今天我们就来聊聊爬虫开发工程师。 一、 爬虫开发工程师工作内容 爬虫开发工程师是负责编写和维护网络爬虫程序的专业人员。他们的…

【多模态大模型】 ALBEF in NeurIPS 2021

一、引言 论文: Align before Fuse: Vision and Language Representation Learning with Momentum Distillation 作者: Salesforce Research 代码: ALBEF 特点: 该方法使用ViT进行图像特征提取,提出将BERT分两部分&am…

Cocos Creator2D游戏开发(3)-飞机大战(1)-背景动起来

资源见: https://pan.baidu.com/s/1cryYNdBOry5A4YEEcLwhDQ?pwdzual 步骤 1, 让背景动起来 2, 玩家飞机显现,能操控,能发射子弹 3.敌机出现 4. 碰撞效果(子弹和敌机,敌机和玩家) 5. 积分和游戏结束 6. 游戏存档,对接微信小游戏,保存历史最高分 7. cocos发布到微信小游戏 资源…

探索Python的进度条神器:tqdm

文章目录 探索Python的进度条神器:tqdm一、背二、tqdm简介三、安装tqdm四、tqdm的五个简单使用示例五、tqdm在不同场景下的应用六、常见问题及解决方案七、总结 探索Python的进度条神器:tqdm 一、背 景:为什么选择tqdm? 在Python…

苦学Opencv的第十四天:人脸检测和人脸识别

Python OpenCV入门到精通学习日记:人脸检测和人脸识别 前言 经过了十三天的不懈努力,我们终于也是来到了人脸检测和人脸识别啦!相信大家也很激动吧。接下来我们开始吧! 人脸识别是基于人的脸部特征信息进行身份识别的一种生物识…

Spring 常用的三种拦截器详解

前言 在开发过程中,我们常常使用到拦截器来处理一些逻辑。最常用的三种拦截器分别是 AOP、 Interceptor 、 Filter,但其实很多人并不知道什么时候用AOP,什么时候用Interceptor,什么时候用Filter,也不知道其拦截顺序&am…

spring —— 事务管理器

事务管理主要针对数据源进行操作:在数据库方面,通过 TransactionManager 事务管理器进行管理,表明一旦出现错误,该数据源的所有数据全部复原。那么数据库如何判断是否发生了错误呢?这就需要在代码方面,通过…

抖音直播弹幕数据逆向:websocket和JS注入

🔍 思路与步骤详解 🕵️‍♂️ 思路介绍 首先,我们通过抓包工具进入的直播间,捕获其网络通信数据,重点关注WebSocket连接。发现直播弹幕数据通过WebSocket传输,这种方式比传统的HTTP更适合实时数据的传输。…

前端基于 axios 实现批量任务调度管理器 demo

一、背景介绍 这是一个基于 axios 实现的批量任务调度管理器的 demo。它使用了axios、promise 等多种技术和原理来实现批量处理多个异步请求,并确保所有请求都能正确处理并报告其状态。 假设有一个场景:有一个任务列表,有单个任务的处理功能…

【Qt】QLCDNumberQProgressBarQCalendarWidget

目录 QLCDNumber 倒计时小程序 相关属性 QProgressBar 进度条小程序 相关设置 QLCDNumber QLCDNumber是Qt框架中用于显示数字或计数值的小部件。通常用于显示整数值,例如时钟、计时器、计数器等 常用属性 属性说明intValueQLCDNumber显示的初始值(int类型)va…

企业版邮箱适用哪些企业

企业邮箱适合哪些企业呢?企业版邮箱为企业提供安全、稳定、集成的邮件服务,支持初创、中小、大型企业及特定行业需求。ZohoMail作为优质提供商,提供多层安全措施、移动访问、集成能力及定制化服务,满足不同规模企业需求。 一、企…

2023年系统架构设计师考试总结

原文链接:https://www.cnblogs.com/zhaotianff/p/17812187.html 上周六参加了2023年系统架构设计师考试,这次考试与以前有点区别,是第一次采用电子化考试,也是教材改版后的第一次考试。 说说考前准备:为了准备这次考试…

基于微信小程序的校园警务系统/校园安全管理系统/校园出入管理系统

摘要 伴随着社会以及科学技术的发展,小程序已经渗透在人们的身边,小程序慢慢的变成了人们的生活必不可少的一部分,紧接着网络飞速的发展,小程序这一名词已不陌生,越来越多的学校机构等都会定制一款属于自己个性化的小程…

《通讯世界》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《通讯世界》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《通讯世界》级别? 答:国家级。主管单位:科学技术部 主办单位:中国科学技…

关于虚拟机在桥接模式下连接网络问题的记录

2024年7月28日03:49:19 环境:ubuntu22.04 desktop 虚拟机 问题:使用wget下载nginx安装包时出现问题,443端口持续无连接成功回复。 随后在确定配置ip无问题,检查了其正常访问互联网,随后试图ping niginx网站&#xff…

基于OSS前端直传的分片上传以及断点续传

一、大文件分片上传 原型 大文件如果直接上传的话由于nginx的限制会导致响应500报错,或者响应时间过长导致响应超时 并且大文件上传有如下缺点 上传时间长: 对于大文件,直接上传可能需要较长时间,特别是在网络速度较慢或不稳定的情况下。这…

ChatGPT秘籍:如何用AI阅读文献,提升你的学术效率

在当今信息泛滥的时代,迅速高效地搜集与处理信息显得尤为关键。本文将聚焦于如何利用ChatGPT高效阅读文献与文档,并提供详尽的技巧、心得以及实用的指令和插件解析,助你充分发挥ChatGPT的潜能。无论你是学生、科研人员还是行业从业者&#xf…