DQ-DETR: DETR WITH DYNAMIC QUERY FOR TINY OBJECTDETECTION 学习笔记

论文地址:https://arxiv.org/pdf/2404.03507.pdf

此DQ-DETR与IDEA提出的同名,该文主要集中于小目标的检测


尽管之前的类似DETR的方法在通用目标检测中取得了成功,但在小目标检测方面仍然具有挑战性,因为目标 Query 的位置信息并未针对检测小物体进行定制,这些小物体的尺寸比一般物体小得多。此外,类似DETR的方法使用固定数量的 Query ,这使得它们不适用于只包含小物体的航空数据集,且不同图像之间的实例数量不平衡。因此,作者提出了一个简单而有效的模型,名为DQ-DETR,它包括三个不同的组件:分类计数模块、计数引导的特征增强和动态 Query 选择,以解决上述问题。DQ-DETR使用分类计数模块的预测和密度图来动态调整目标 Query 的数量并改善 Query 的位置信息。DQ-DETR超过了之前的基于CNN和类似DETR的方法,在主要由小物体组成的AI-TOD-V2数据集上取得了最先进的mAP 30.2%。


1、Introduction

卷积神经网络(CNNs)在处理RGB语义和空间纹理特征方面具有优势。大多数目标检测方法主要基于CNNs。例如,Faster R-CNN 引入了一个区域 Proposal 网络来生成潜在的目标区域。FCOS 应用一个中心预测分支来提高边界框的质量。

然而,CNNs不适合获取图像中的长距离依赖,这限制了检测性能。最近,DETR将CNN和 Transformer 架构结合在一起,建立了一个新的目标检测框架。DETR利用 Transformer 编码器整合分割图像块,并通过可学习的目标 Query 将它们传递到 Transformer 解码器以获得最终检测结果。此外,一系列类似DETR的方法旨在提高DETR性能并加速DETR的收敛速度。例如,Deformable-DETR使用多尺度特征图来提高检测不同大小目标的能力。同时,使用可变形注意力模块不仅可以捕获更多信息和上下文相关的特征,还可以加速训练收敛。

尽管如此,在先前的类似DETR的方法中, Transformer 解码器中使用的目标 Query 没有考虑图像中实例的数量和位置。通常,它们应用固定数量的K个目标 Query ,其中K表示检测目标的最大数量,例如,在DETR和DINO-DETR中分别为K=100和K=900。此外,目标 Query 的位置是一组学习的嵌入,与当前图像无关,没有明确的物理意义来说明 Query 关注的位置。DETR和Deformable DETR使用固定数量的稀疏查询,召回率低。为了解决这个问题,DDQ选择密集的不同查询,K=900,具有基于手工设计的IoU阈值的类不可知NMS。尽管DDQ应用密集查询进行检测,但查询的数量仍然有限。

作者认为,在只包含微小目标且不同图像之间目标实例不平衡的航空图像中,先前的类似DETR方法是不合适的。例如,在AI-TOD-V2数据集中,有些图像包含超过1500个目标,而其他图像则少于10个目标。作者观察到,使用较小的K限制了密集图像中目标的召回率,导致许多实例未被检测到(FN),稀疏图像中使用较大的K不仅引入了许多潜在的假阳性样本(FP),还由于解码器自注意力模块的计算复杂度与 Query 数K成二次增长,从而造成了计算资源的浪费。

基于上述弱点,作者提出了一种名为DQ-DETR的新型类似DETR方法。在这项工作中,作者提出了一种动态 Query 选择模块,用于在DETR的解码器阶段自适应地选择不同数量的目标 Query ,从而在稀疏图像中减少FP,在密集图像中减少FN。此外,作者通过类别计数模块生成密度图并估计图像中的实例数量。目标 Query 的数量根据预测的计数数进行调整。此外,作者将密度图与来自 Transformer 编码器的视觉特征进行聚合,以强化前景特征,增强小目标的空间信息。增强的视觉特征将进一步用于改进对象查询的位置信息。因此,可以通过动态调整解码器中使用的对象查询的数量和位置,同时处理具有少量和拥挤的小目标的图像。

本文贡献总结如下:
1.指出了以前类似DETR的方法的关键局限性,这些方法不适合航空图像数据集。
2.实验结果表明,在AI-TOD-V2数据集上,我们提出的DQ-DETR在AP、APvt方面分别显著优于现有方法16.6%、20.5%。
3.设计了一个简单而准确的分类计数模块来有效地引导object queries的数量。此外,还使用密度图增强了transformer的视觉特征,以改进object queries的位置信息。


2、Related work

2.1 DETR-like Methods.

提出了一种基于 Transformer (transformer)的端到端目标检测框架,名为DETR(DEtection TRANSFMomer),其中 Transformer 编码器从图像中提取实例级特征, Transformer 解码器使用一组可学习的 Query (queries)来检测和汇聚图像中的特征。尽管DETR与之前的经典基于CNN的检测器取得了相当的结果,但它严重受到训练收敛慢的问题困扰,需要500个周期的训练才能表现良好。许多后续工作试图从不同的角度解决DETR训练收敛慢的问题。

一些观点指出,DETR收敛慢的原因是由于 Transformer 解码器中的不稳定匈牙利匹配和交叉注意力机制。[18]提出了一种仅编码器的DETR,摒弃了 Transformer 解码器。Dynamic DETR在解码器中设计了一种基于ROI的动态注意力机制,能够从粗到精地关注感兴趣的区域。Deformable-DETR[28]提出了一种仅关注参考点周围几个采样点的注意力模块。DN-DETR[7]引入了去噪训练以降低二分图匹配的难度。

另一系列工作在解码器目标 Query 上进行了改进。由于DETR中的目标 Query 仅是一组可学习的嵌入(embedding),[10, 12, 22]将DETR的缓慢收敛归因于目标 Query 的隐含物理解释。Conditional DETR解耦了解码器的交叉注意力公式,并基于参考坐标生成条件 Query 。DAB-DETR将目标 Query 的位置信息公式化为4-D Anchor 框(x, y, w, h),用于提供ROI(感兴趣区域)信息以检测和汇聚特征。

2.2 Tiny Object Detection.

由于小目标缺乏像素,检测小目标具有挑战性。早期的工作应用数据增强以过采样小目标实例。例如,将小目标 Copy-Paste 到同一图像中。[29]提出了K个子策略,自动转换实例级的特征。此外,几种方法,如[20, 23, 24, 25]指出,传统的交并比(IoU)指标不适合小目标。当目标大小差异显著时,IoU变得高度敏感。为了设计适合小目标的指标,DotD[23]考虑目标的绝对和相对大小以制定新的损失函数。[20, 23, 25]设计了一种基于高斯分布的新标签分配,减轻了目标大小的敏感性。

然而,这些方法高度依赖于预定义的阈值,对于不同的数据集来说不稳定。相反,DQ-DETR使用一种计数引导的特征增强模块来改善小目标的大小和位置的空间信息。同时,尽管上述类似DETR的方法改进了 Query 的公式,但它们并非专门为检测小目标而设计。例如,[2, 7, 10, 12]中的目标 Query 是从训练数据中学习的,对于不同的输入图像保持不变。作者认为,对于航拍数据集来说,目标 Query 的静态位置是不合适的,在这些数据集中,不同图像中的实例分布变化极大,即有些图像在特定区域内密集地集中了目标,而有些图像仅在整个图像中散布了几个目标。作者提出的DQ-DETR是第一个关注小目标检测的类似DETR模型。DQ-DETR动态调整目标 Query 的数量并增强 Query 的位置信息,以精确检测小目标。


3、Method

3.1 Overview

DQ-DETR的整体结构如图1所示。作为一种类似DETR的方法,DQ-DETR是一个端到端的检测器,包含一个CNN Backbone 网络、一个可变形 Transformer 编码器、一个可变形 Transformer 解码器以及几个预测头。作者进一步在DETR的架构上实现了一个新的分类计数模块、一个计数引导的特征增强模块以及基于动态 Query 选择。给定一个输入图像,作者首先使用CNN Backbone 网络提取多尺度特征,并将它们输入到 Transformer 编码器以获得编码器的视觉特征。之后,作者的分类计数模块确定在 Transformer 解码器中使用多少个目标 Query ,如图1(a)所示。此外,作者提出了一个新颖的计数引导特征增强模块,如图1(b)所示,用小目标的空间信息加强编码器的视觉特征。最后,通过动态 Query 选择,如图1(c)所示,目标 Query 的位置信息将被细化。下一节将描述所提出的分类计数模块、计数引导特征增强和动态 Query 选择。 

3.2 Reconstruction of Encoder's Feature Map

遵循DETR的流程,作者使用从 Backbone 网络不同阶段提取的多尺度特征图P_{i}\in \left \{ {1,2,...l} \right \}作为 Transformer 编码器的输入。为了形成 Transformer 编码器的输入序列,作者将每个多尺度特征图层P_{i}\mathbb{R}^{d\times h_{i}\times w_{i}}展平到\mathbb{R}^{d\times h_{i} w_{i}},然后将它们拼接在一起。高分辨率特征包含更多的空间细节,这对于目标计数和检测小物体是有益的。

在作者提出的分类计数模块中,作者将对 Transformer 编码器特征执行卷积操作。因此,作者通过 Reshape 其空间维度来重建展平的编码器的多尺度视觉特征,得到2-D特征图S_{i}\in \mathbb{R}^{d\times h_{i} w_{i}}。为了简洁起见,作者将重建的编码器的多尺度视觉特征称为EMSV特征。

3.3 Categorical Counting Module

分类计数模块旨在估计图像中目标的数量。它包括一个密度提取器和分类 Head 。

3.3.1 Density Extractor

作者采用EMSV特征中最大的特征图S_{1},并通过密度提取器生成密度图F_{c}。输入特征图S_{1}首先送入一个1*1卷积层进行通道缩减(\mathbb{R}^{b\times 256\times h\times w}\rightarrow \mathbb{R}^{b\times 512\times h\times w})。然后,它被送入一系列膨胀卷积层以获得包含计数相关信息的密度图F_{c}。特别是,膨胀卷积层扩大了感受野,捕捉了小目标丰富的长距离依赖。

3.3.2 Counting Number Classification

最后,作者通过一个分类 Head 估计计数数字N,即每张图像的实例数量,并将它们分为四个 Level ,分别是,N \leq 1010< N \leq 100100< N \leq 500以及N > 500。分类Head由两个线性层组成。此外,数字10,100和500是根据数据集的特征选择的,即每幅图像实例数量N的平均值和标准偏差。值得注意的是,作者没有使用传统人群计数方法中的回归 Head ,后者将计数数字回归到一个具体的数值。作者将原因归因于每张图像中实例数量的巨大差异,在AI-TOD-V2的不同图像中,N的范围从1到2267。很难回归一个准确的数字,这会损害检测性能。

3.4 Counting-Guided Feature Enhancement Module (CGFE)

作者通过提出的计数引导特征增强模块(CGFE)用来自分类计数模块的密度图细化EMSV特征,以提高小目标的空间信息。此外,这些细化特征将进一步用于增强 Query 的位置信息。该模块包括一个2-D空间注意力模块和一个1-D通道注意力模块。

Spatial cross-attention map.作者采用1*1卷积层对密度图F_{c}进行下采样,创建多尺度计数特征图F_{c,i}\in \left \{ {1,2,...l} \right \},以匹配编码器每层的多尺度特征图S_{i}\in \left \{ {1,2,...l} \right \}的形状。随后,作者首先在每个多尺度计数特征F_{c,i}\in\mathbb{R}^{b\times 256\times h\times w}的通道轴上应用平均池化(AvgP。)和最大池化(MaxP.)。然后,这两个池化特征\mathbb{R}^{b\times 1\times h\times w}被连接并送入一个7x7卷积层,之后是一个Sigmoid函数,以产生空间注意力图W_{s}\in\mathbb{R}^{b\times 1\times h\times w}。作者在方程1中描述这个过程。

由于密度图F_{c}包含有关目标的位置和密度信息,因此它们生成的空间注意力图可以聚焦于重要区域,即前景目标,并用丰富的空间信息增强EMSV特征。

生成的空间注意力图W_{s,i}与EMSV特征S_{i}逐元素相乘,进一步获得空间增强特征E_{i},如方程2所示。

Channel attention map.在空间注意力之后,作者进一步对空间增强特征E_{i}应用通道注意力,利用特征间的通道关系。具体来说,作者首先在E_{i}\in\mathbb{R}^{b\times 256\times h\times w}的每个层面沿空间维度应用平均池化和最大池化。接下来,这两个池化特征\mathbb{R}^{b\times 256\times 1\times 1}被送入共享的MLP,并通过逐元素加法合并以创建通道注意力图W_{c,i}。最后,通道注意力图W_{c,i}\in\mathbb{R}^{b\times 256\times 1\times 1}与原始E_{i}\in\mathbb{R}^{b\times 256\times h\times w}相乘,进一步得到计数引导增强特征图F_{t}。公式定义在方程3和方程4中: 

3.5 Dynamic Query Selection

Number of queries.在动态 Query 选择中,作者首先使用类别计数模块的分类结果来确定 Transformer 解码器中使用的 Query 数量K。类别计数模块中的四个分类类别对应于四个不同的 Query 数量,分别是 K= 300、500、900和1500,即如果图像被分类为N \leq 10,作者在后续检测任务中将使用K=300个 Query ,依此类推。

Enhancement of queries.对于 Query 公式,作者遵循DAB-DETR中的想法,其中 Query 由内容和位置信息组成。 Query 的内容是一个高维向量,而 Query 的位置被表述为一个4-D Anchor 框(x, y, w, h)以加速训练收敛。

进一步地,作者使用之前CGFE模块增强的多尺度特征图F_{t}来改善 Query 的内容Q_{content}和位置Q_{position}。首先将F_{t}的每一层展平到像素 Level 并将它们连接起来,形成F_{flat}\in\mathbb{R}^{b\times 256\times h w}。将选择top-K特征作为增强解码器 Query 的先验,其中K是 Transformer 解码器阶段中使用的 Query 数量。选择基于分类得分。作者将F_{flat}输入到FFN中进行目标分类任务并生成分类score \in \mathbb{R}^{b \times m \times hw},其中m是数据集中的目标类别数。之后,作者将使用选定的top-K特征F_{selecet}生成 Query 的内容和位置。

Query 的内容是通过选择特征F_{selecet}的线性变换生成的。至于 Query 的位置,作者使用FFN预测偏差\widehat{b_{i}}=(\Delta b_{ix},\Delta b_{iy},\Delta b_{iw},\Delta b_{ih})来细化原始 Anchor 框。让(x,y)_{i}索引来自多级特征F_{t}\in \left \{ {1,2,...l} \right \}在位置(x, y)的一个选定特征。选定特征有它的原始 Anchor 框(x_{i},y_{i},w_{i},h_{i})作为 Query 的位置先验,其中(x_{i},y_{i})是归一化坐标[0,1]^{2},而(w_{i},h_{i})与特征F_{t}的尺度相关。将预测偏差\widehat{b_{i}}=(\Delta b_{ix},\Delta b_{iy},\Delta b_{iw},\Delta b_{ih})添加到原始 Anchor 框以细化目标 Query 的位置。

由于特征F_{selecet}是从之前CGFE模块生成的F_{t}中选择的,它们包含了微小目标的丰富尺度和位置信息。因此,增强的目标 Query 的内容和位置是根据每个图像的拥挤或稀疏情况定制的,使得 Query 在 Transformer 解码器阶段更容易定位小目标。

3.6 Overall Objective

Hungarian Loss.基于 DETR,作者使用匈牙利算法在 GT 值和预测之间找到最优的二分匹配并优化损失。匈牙利损失包括用于边界框回归的L1损失和GIoU损失,以及用于分类任务的Focal Loss,其中\alpha =0.25\gamma =2,可以表示为方程7。遵循 DAB-DETR 的设置,在作者的实现中使用\lambda _{1}=5 ,\lambda _{2}=2\lambda _{3}=1

此外,作者在类别计数模块中使用交叉熵损失来监督分类任务。进一步地,匈牙利损失也作为每个解码器阶段的辅助损失应用。总体损失可以表示为方程8。


Experiments

Dataset

为了证明DQ-DETR的有效性,作者在主要由微小目标组成的航空数据集AI-TOD-V2 上进行了实验。

AI-TOD-V2 这个数据集包含28,036张航空图像,带有752,745个标注的目标实例。其中,训练集有11,214张图像,验证集有2,804张,测试集有14,018张。AI-TOD-V2中的平均目标大小仅为12.7像素,数据集中有86%的目标小于16像素,即使最大的目标也不超过64像素。此外,图像中的目标数量可以从1变化到2667,平均每图像的目标数量为24.64,标准差为63.94。

Evaluation Metric.作者使用AP(平均精度)指标,以1500为最大检测数量来评估作者提出方法的性能。具体来说,AP是从AP_{0.5}AP_{0.95}的平均值,IoU间隔为0.05。此外,AP_{vt}AP_{t}AP_{s}AP_{m}分别用于AI-TOD中非常微小、微小、小型和中型规模的评估。

Implementation Details

基于类似DETR的结构,作者使用了一个6层的 Transformer 编码器、一个6层的 Transformer 解码器,其中隐藏维度为256,并以ResNet50作为CNN Backbone 网络。此外,作者在2块NVIDIA 3090 GPU上使用Adam优化器和权重衰减0.0001来训练DQ-DETR,共训练24个周期。

由于内存限制,批量大小设置为1。对于学习率调度器,初始学习率(lr)为0.0001,在第13和第21个周期时,通过乘以0.1来降低lr。作者采用了与DETR相同的随机裁剪和缩放增强策略。同时,作者采用两阶段训练方案。首先,作者训练分类计数模块,以使 Transformer 解码器中的 Query 数量结果更加稳定。当计数结果稳定后,作者将计数引导的特征增强模块加入到训练中,以通过密度图改善编码器的视觉特征。

Main Results on AI-TOD-V2

表2展示了作者在AI-TOD-V2测试集上的主要结果。作者将DQ-DETR与强 Baseline 进行了比较,包括基于CNN和类似DETR的方法。除了YOLOv3之外,所有基于CNN的方法都使用带有特征金字塔网络(FPN)的ResNet50作为主干网络。此外,由于在微小目标检测方面没有先前的类似DETR模型研究,DQ-DETR是首个专注于检测微小目标的DETR-like模型。作者在AI-TOD-V2上重新实现了系列DETR-like模型,除了DETR之外的所有类似DETR方法都使用了5个尺度的特征图与可变形注意力。对于5尺度特征图,特征是从主干网络的第1、2、3和4阶段提取的,并通过下采样第4阶段的输出来添加额外的特征。

结果总结如下,作者提出的DQ-DETR在与其他最先进的方法(包括基于CNN和类似DETR的方法)相比,实现了最佳的30.2 AP。同时,DQ-DETR在AP_{vt}AP_{t}AP_{s}AP_{m}上分别超过了 Baseline 20.5%、20.6%、14.1%和12.3%。在AP_{vt}AP_{t}上的性能提升更为显著,DQ-DETR在AI-TOD-V2上超越了先进的一系列类似DETR模型。

作者将性能提升归功于以下原因:

  1. DQ-DETR将 Transformer 视觉特征与来自分类计数模块的密度图融合,以提高目标 Query 的位置信息,这使得 Query 更适合于定位微小目标。

  2. 动态 Query 选择自适应地选择用于检测任务的目标 Query 数量,并且能够处理目标稀少或拥挤的图像。

Results on VisDrone

除了AI-TOD-V2,作者还在VisDrone数据集上进行了实验,以证明DQ-DETR的有效性。VisDrone该数据集包括14018张无人机拍摄的图像,其中6471张为训练集,548张为验证集,3190张为测试集。共有10个类别,图像分辨率为2000×1500像素。此外,图像在各个方面都是多样化的,包括物体(行人、车辆、自行车等)和密度(稀疏和拥挤的场景),其中每张图像的平均物体数量为40.7,标准差为46.41。表3显示了对VisDrone val分割的结果。将DQ-DETR的性能与其他方法进行了比较。与其他最先进的方法(包括基于CNN的方法和类似DETR的方法)相比,提出的DQ-DETR获得了37.0 AP的最佳结果。此外,DQ-DETR在AP、AP50、AP75方面超过基线DINO-DETR 1.2、2.6和1.1。

Ablation Study

分类计数模块、计数引导的特征增强以及动态 Query 选择是本文新提出的主要贡献。作者在AI-TODv2 trainval集上使用ResNet50 Backbone 网络进行24个epoch的训练,并在AI-TODv2测试集上进行测试,以验证本文提出的每个组件的有效性。选择DINO-DETR作为比较的DETR-like Baseline 。

Main ablation experiment.

表4展示了作者在AI-TODv2上分别对各个贡献的性能评估。结果表明,DQ-DETR中的每个组件都对性能提升有所贡献。通过计数模块和动态 Query 选择,作者在 Baseline 上获得了+2.2 AP的改进。此外,作者的计数引导特征增强模块将编码器的特征与来自计数特征的空间信息融合。相对于 Baseline ,它在APAP_{vt}AP_{t}上分别获得了额外的+4.3、+2.6和+5.2改进。因此,作者在AI-TOD-V2上证明了DQ-DETR中每个组件的强大功效。

 Ablation of DQ-DETR with different number of instances in images.

作者探讨了在不同图像实例数量下,DQ-DETR的性能。根据图像中的实例数量N,作者将AI-TOD-V2数据集划分为4个 Level ,如同类别计数模块中的那样,即,N \leq 1010< N \leq 100100< N \leq 500以及N > 500.在这四种情况下分析了DQ-DETR的性能。结果显示在表5中,与DINO-DETR作为基线进行了比较。DQ-DETR会根据图像中的实例数动态调整object queries的数量。而DINO-DETR 在所有情况下始终使用 900 个queries。

可以观察到,在 N ≤ 10 和 10 < N ≤ 100 的情况下,DQ-DETR 使用的queries数量更少,比基线高出 16%,在 AP 方面比基线高出 16.4%。 AP_{vt}AP_{t}的表现也比基线高出19.8%,20.8%。 此外,值得注意的是,当 N > 500 时,DINO-DETR 表现不佳。在这种情况下,某些图像中可能有 900 多个实例,这超出了 DINO-DETR 的检测能力。在密集图像中,仅 900 个queries的 DINO-DETR 检测限制将导致许多对象未检测到 (FN),从而导致 AP 降低。DQ-DETR 动态选择密集图像的更多查询,在AP_{vt}方面显着超过基线 42.1%。

Ablation of Categorical Counting Module.

表 6 演示了分类计数模块中分类任务的准确性。在四种情况下分析性能,其中 N 是每个图像的实例数。总分类准确率约为 94.6%,这意味着我们的分类计数模块可以准确估计图像中物体 N 的数量。此外,我们可以发现,在N > 500的情况下,我们的分类计数模块的分类性能很差,只有56.6%的准确率,因为在这种情况下训练图像的数量要少得多。此外,观察到 AI-TOD-V2 数据集中每个图像最多有2267个实例。然而,训练样本的长尾分布限制了对每张图像的实例数 N 进行更详细的分类。只能将具有 500 < N ≤ 2267 的图像归入同一类。

在检测精度方面,DQ-DETR在所有情况下都优于基线。性能比基线高出 16%,在 N ≤ 10、10 < N ≤ 100 的 AP 方面高出16.4%。 尽管如此,DQ-DETR 性能略好于 N > 500 情景的基线。这种现象是由于N > 500的分类精度差造成的。分类计数模块的错误预测将直接影响用于检测的object queries数,其中不适当的queries数可能会损害检测性能。

表 7 比较了 DQ-DETR 在分类计数模块中使用分类或回归的性能。传统的人群计数方法通常将预测的计数数量回归到特定值。然而,在作者的研究中,作者改用分类头。本实验演示了在这两种方法下的 DQ-DETR 性能。对于分类任务,将图像分类为 4 类,并在 transformer 解码器中应用不同数量的查询,正如上一节中提到的。对于回归任务,直接回归一个整数来预测图像中的object queries,并选择与预测结果对应的object queries。

结果表明,使用回归作为计数方法的性能极差。作者认为以下原因是性能急剧下降的原因:

  1. 由于AI-TOD-V2数据集中每幅图像的实例数量可能从1变化到2267,因此很难回归一个准确的数字。

  2. 不稳定的回归结果将极大地影响变换解码器中使用的 Query 数量,并导致DETR模型难以收敛。

由于上述原因,作者认为将图像中存在的目标数量分类到不同 Level 比回归要简单。因此,在提出的类别计数模块中,作者选择分类而不是回归作为更合适的方法。

Visualization

图2显示了Deformable-DETR与DQ-DETR在稀疏和密集情况下的检测结果对比。Deformable- DETR应用固定数量的queries(K=300),在不平衡情况下的召回率较低。固定的queries数量将导致航空数据集的检测精度较低,因为不同图像中的对象数量可能会有很大差异。使用小K限制了密集图像中物体的召回,使许多实例未被检测到(FN),如图 2(a) 所示。相反,图2(c)显示,在稀疏图像中使用较大的K会引入许多潜在的假阳性样本(FP)。

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

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

相关文章

LWIP开启ARP之后进入硬件错误中断

遇到个很奇怪的问题&#xff0c;如下图只要开启ARP之后&#xff0c;就会进入硬件错误中断&#xff0c;关掉就好了。 而无法开启ARP&#xff0c;就不能ping 通&#xff0c;所以必须要解决这个问题。 最终debug发现死在memcpy函数位置 这样原因就很好分析了&#xff0c; 共4个拷…

通过linux工具iftop命令查看视频监控平台是否收到监控摄像头的视频流(视频监控平台接收和转发的视频流)

目录 一、需求描述 二、解决思路 &#xff08;一&#xff09;问题分析 &#xff08;二&#xff09;解决思路 1、通过抓包的方式 2、通过一些linux的网络监视工具 三、需求实现 &#xff08;一&#xff09;抓包工具 1、tcpdump 2、Wireshark 3、tcptrace &#xff0…

【刷题】 二分查找进阶

送给大家一句话&#xff1a; 你向神求助是因为相信神&#xff0c;神没有回应你是因为神相信你 ε≡٩(๑>₃<)۶ &#xfeff;ε≡٩(๑>₃<)۶ &#xfeff;ε≡٩(๑>₃<)۶ 一心向学 二分查找进阶 1 前言Leetcode 852. 山脉数组的峰顶索引题目描述算法思…

【EtherCAT】FMMU和SM简介

目录 一、简介 1、 FMMU 2、SM (1) 缓冲模式 (2)邮箱模式 3、FMMU将物理存储器映射到逻辑过程数据映射的配置原理 二、FMMU和SM在EtherCAT从站控制器的存储空间分配 三、FMMU和SM部分寄存器描述(LAN9253) 1、FMMU 2、SM 四、FMMU和SM的数据结构&#xff08;soem主站&…

什么是AIoT?

什么是AIoT? AIoT&#xff0c;即人工智能物联网&#xff0c;是一种将人工智能&#xff08;AI&#xff09;技术与物联网&#xff08;IoT&#xff09;相结合的新型应用形态。它不仅实现了设备之间的互联互通&#xff0c;还赋予了它们更智能化的特性。AIoT的核心在于通过AI的数据…

什么是知乎知+广告推广?

知乎作为中国领先的知识分享社区和高质量用户群体汇聚地&#xff0c;其广告价值日益凸显&#xff0c;其中&#xff0c;“知”作为知乎官方推出的创新广告形式&#xff0c;正逐渐成为品牌与消费者深度连接的重要桥梁。知广告推广不仅局限于传统意义上的硬性推广&#xff0c;更强…

解锁棋盘之谜:探索N皇后问题的全方位解决策略【python 力扣51题】

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 python数据分析…

前后端跨域请求代码实战(vue3.4+springboot2.7.18)

前端代码 v3.4.21&#xff08;前端不是主业&#xff0c;所以就贴一贴代码&#xff0c;有疑问评论区见&#xff09;后端代码&#xff0c;springboot 2.7.18&#xff08;后端&#xff09; 文章内容&#xff1a; 一&#xff0c;后端代码 二&#xff0c;前端代码 三&#xff0c;后…

【ARM 裸机】I.MX 启动方式之启动头文件 1

接上一节&#xff1a;【ARM 裸机】I.MX 启动方式之启动设备的选择&#xff1b; 2、启动头文件 当 BOOT_MODE1 为 1&#xff0c;BOOT_MODE0 为 0 的时候此内部 BOOT 模式&#xff0c;在此模式下&#xff0c;芯片会执 行内部的 BOOT ROM 代码&#xff0c;这段 BOOT ROM 代码会进…

tensor是pytorch的核心,那torch.tensor和torch.Tensor区别是?

本文重点 从本节课程开始我们将正式开启pytorch的学习了&#xff0c;在深度学习框架中有一个重要的概念叫做张量&#xff0c;它是pytorch的基本操作单位&#xff0c;要想创建tensor有很多的方式&#xff0c;但是有两个torch.tensor和torch.Tensor容易混淆&#xff0c;本节课程…

javase__进阶 day13stream流和方法引用

1.不可变集合 1.1 什么是不可变集合 ​ 是一个长度不可变&#xff0c;内容也无法修改的集合 1.2 使用场景 ​ 如果某个数据不能被修改&#xff0c;把它防御性地拷贝到不可变集合中是个很好的实践。 ​ 当集合对象被不可信的库调用时&#xff0c;不可变形式是安全的。 简单…

大厂面试精华面试刷题

1.自定义unshift实现相同效果 2.数组去重 用vs2019来写这种练习题可以更直观的查看代码执行的效果&#xff0c;最后的代码是控制控制台执行完毕后不自动关闭 use strict;let arr [1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10] //1.//查重最简单的方法for循环结合splice从数组中…

【C++】飞机大战项目记录

源代码与图片参考自《你好编程》的飞机大战项目&#xff0c;这里不进行展示。 本项目是仅供学习使用的项目 飞机大战项目记录 飞机大战设计报告1 项目框架分析1.1 敌机设计&#xff1a;1.2 玩家飞机控制&#xff1a;1.3 子弹发射&#xff1a;1.4 游戏界面与互动&#xff1a;1.5…

解决Linux根分区空间不足的方法:利用Home分区进行扩容

前言 在进行系统安装时&#xff0c;一个常见的困扰是默认分区设置可能导致home分区拥有过多的空间&#xff0c;而root分区却显得十分紧缺。这种情况下&#xff0c;用户往往会陷入无法继续安装软件或存储文件的困境。本文将向您展示如何通过合理的调整&#xff0c;将home分区中多…

【6】mysql查询性能优化-关联子查询

【README】 0. 先说结论&#xff1a;一般用inner join来改写in和exist&#xff0c;用left join来改写not in&#xff0c;not exist&#xff1b;&#xff08;本文会比较内连接&#xff0c;包含in子句的子查询&#xff0c;exist的性能 &#xff09; 1. 本文总结自高性能mysql 6…

Python 面向对象——1.基本概念

本章学习链接如下&#xff1a; 基本概念与语法 类&#xff08;Class&#xff09;&#xff1a;定义了一组对象共有的属性和方法的蓝图。类是创建对象的模板。 对象&#xff08;Object&#xff09;&#xff1a;类的实例。对象包含实际的数据和操作数据的方法。 属性&#xff0…

NLP_知识图谱_三元组实战

文章目录 三元组含义如何构建知识图谱模型的整体结构基于transformers框架的三元组抽取baselinehow to use预训练模型下载地址训练数据下载地址 结构图代码及数据bertconfig.jsonvocab.txt datadev.jsonschemas.jsontrain.jsonvocab.json 与bert跟data同个目录model.pytrain.py…

原型和原型链--图解

https://juejin.cn/post/7255605810453217335 prototype是函数的属性&#xff08;一个对象&#xff09;&#xff0c;不是对象的属性&#xff0c;普通函数和构造函数的prototype属性是空对象&#xff5b;&#xff5d;&#xff08;其实有2个属性&#xff0c;一个是constructor&a…

Vue3: toRefs与toRef的基本使用

一、前言 本文主要介绍toRefs与toRef的基本使用。 二、内容 1、基本概念 作用: toRefs与toRef可以将一个响应式对象中的每一 个属性&#xff0c;转换为ref对象&#xff1b;不同 toRefs与toRef功能一致&#xff0c;但toRefs可以批量转换。 2、toRefs 如果把reactive定义的…

记录交叉编译环境配置--海思开发板的 嵌入式nginx和 php的移植

嵌入式 lnmp搭建的记录 一些交叉编译的配置环境思路分享&#xff1a;P&#xff1a;php编译PHP可能遇到的问题configure阶段&#xff1a;Makefile-make阶段&#xff1a;Makefile-make install阶段&#xff1a; N&#xff1a;Nginx 文章比较水&#xff0c;并没有没解决什么实际问…