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

论文阅读:YOLOV: Making Still Image Object Detectors Great at Video Object Detection

发表时间:2023年3月5日
论文地址:https://arxiv.org/abs/2208.09686
项目地址:https://github.com/YuHengsss/YOLOV

视频物体检测(VID)具有挑战性,因为物体外观的高度变化以及一些帧的不同恶化。有利的信息是,与静止图像相比在视频的某一帧中检测,可以从其他帧中获得支持。因此,如何在不同的框架之间聚合特性是VID问题的关键。大多数现有的聚合算法都是为两阶段检测器定制的。然而,由于这些探测器的两阶段性质,其计算成本通常很昂贵。本文提出了一个简单而有效的策略来解决上述问题,该问题会带来微量计算量,但使准确性有显著提高。具体地说,与传统的两阶段pipeline不同,我们在一期检测后选择重要的区域,以避免处理大量低质量的候选区域。此外,我们还评估了目标系和参考系之间的关系来指导聚合。我们进行了广泛的实验和消融研究来验证我们的设计的有效性,并揭示了它在有效性和效率方面都优于其他最先进的VID方法。我们基于YOLOX的模型可以实现良好的性能(例如,在一个2080TiGPU上的ImageNet视频数据集上超过30 FPS的87.5%AP50),使其在大规模或实时应用中具有吸引力。

1、Introduction

物体检测作为基于视觉的智能应用的关键组成部分,目的是同时定位和分类图像中的物体。由于卷积神经网络(CNN)的强大能力,最近提出了许多基于CNN的目标检测模型,这些模型可以大致分为两类,如一级和两级目标探测器。具体来说,两阶段检测器首先选择可能的对象区域(proposals),然后对这些区域进行分类。基于区域的CNN(R-CNN)的一系列模型是具有多种后续工作的两级目标探测器的先驱,显著提高了检测的准确性。给定区域级的特征,这些静止图像的检测器可以很容易地转移到更复杂的任务,如分割和视频目标检测。然而,由于两阶段的性质,效率是实际应用的瓶颈。而对于单级目标对象探测器,定位和分类是联合基地探测器,我们的直接由特征图的密集预测产生。YOLO家族和SSD 是该群体的代表。如果不像上述两阶段方法那样求助于区域proposals,一级探测器的速度更优越,适合具有实时需求的场景。虽然一级探测器的精度在开始时通常较差,但后续设计在很大程度上缩小了精度差距。
指出目标检测器有单阶段和二阶段的,二阶段检测器精度高单性能差,但随着技术发展阶段检测器基本上在性能上持平

视频目标检测可以看作是静止图像目标检测的高级版本。直观地说,人们可以通过将帧逐个输入静止图像对象检测器来处理视频序列。然而,跨帧的时间信息没有被利用,这可能是消除和减少单一图像的模糊性的关键。如图1所示,在视频帧中经常出现运动模糊、相机离焦和遮挡等退化,显著增加了检测的难度。例如,仅仅看图1中的最后一帧,人类很难甚至不可能知道物体在哪里和什么。另一方面,视频序列可以比单个静止图像能够提供更丰富的信息。换句话说,相同序列中的其他帧可能支持对某一帧的预测。因此,如何有效地聚合来自不同框架的时间线索是提高准确性的关键。
1、在视频检测中经常存在运动模糊,基于单帧信息某些时刻是无法确定目标特征,需要结合多帧上下文
2、在视频检测中,有一个分支为无人机视频检测,存在光照烟雾干扰、目标运动模糊、小尺度目标(基于运动信息才能确定是目标,单帧图像无法定义为目标)
3、本文解决的主要是视频检测中的运动模糊,对于无人机视角下小目标运动没有提出优化

在这里插入图片描述

在现有方案中,帧聚合主要有两种类型,即 box-levelfeature-level。这两种技术路线可以从不同的角度提高检测精度。对于box-level方法,他们通过连接边界盒将静止对象检测器的预测连接起来,形成序列,然后在同一序列中细化结果。盒级的方法可以看作是后处理方法,可以灵活地应用于一级和两级的检测器

而对于feature-level方法,关键帧的特征通过从其他帧(即参考帧)中寻找和聚合相似的特征而得到增强。两阶段的方式使proposals能够从区域提案网络(RPN)提取的主干特征图中得到显式的表示。得益于这一性质,两级探测器可以很容易地迁移到视频目标检测问题。因此,大多数视频对象探测器都是建立在两级探测器上的。

但是,由于聚合模块的原因,这种两级视频对象检测器的速度进一步减慢,难以满足实时使用的需要。与两阶段方法不同的是,proposals由单阶段检测器的特征图中每个位置的特征隐式表示。但是,如果没有对对象的显式表示,这些特性仍然可以从聚合VID任务的时间信息中获益。同样,如前所述,一阶段策略通常比这两阶段策略运行得更快。在这些考虑的驱动下,一个自然的问题出现了:我们能否使这样的区域级设计可用于单级探测器,同时保持构建一个实用的(准确的和快速的)视频物体探测器的快速速度?

Contribution
本文通过设计一种简单而有效的策略来聚合由单阶段检测器(如YOLOX(Gee人2021b)生成的特征)来回答上述问题。为了将参考系的特征与关键帧中的特征连接起来,我们提出了一个特征相似度量模块来构造亲和矩阵,然后利用亲和矩阵来指导聚合。为了进一步减轻余弦相似度的限制,我们定制了参考特征上的平均池算子。这两种操作消耗边际计算资源,在精度上显著提高。有了提出的策略,我们的模型,称为YOLOV,可以在一个2080Ti GPU上实现40+的视频数据集的AP50精度85.5%,详见图2),这对实际场景很有吸引力。通过进一步引入后处理,其精度在30 FPS以上达到87.5%。
在这里插入图片描述

2、Related Work

本节将简要回顾与本工作密切相关的目标检测的代表性方法。
在静止图像中的目标检测。 由于硬件、大规模数据集和复杂的网络结构,目标检测的性能不断提高。现有的目标探测器主要可分为两阶段和辅助监测方案。具有代表性的两级探测器,如RCNN、faster-RCNN、R-FCN和Mask RCNN。该组的方法首先通过RPN选择候选区域,然后通过一些特征提取模块提取候选特征,如RoIpoolin和RoIAlign。最后,他们通过一个额外的检测头进行边界盒回归和分类。还有许多成功的单级探测器,如YOLO系列、SSD系列、RetinaNet系列、FCOS系列等。与两阶段探测器不同的是,单级探测器对特征图进行密集预测,并直接预测位置和类概率。由于端到端的方式,一级探测器通常比两级探测器快。然而,它们缺乏被广泛用于视频对象检测中的特征聚合的显式区域级语义特征。我们的工作试图探索在单级探测器的特征图中聚合超过位置级特征的可行性。

视频中的对象检测。 与静止图像目标检测相比,在一些视频帧中可能经常出现退化。当关键帧被污染时,时间信息可能有助于更好地检测。现有的视频对象探测器集中于轨迹级后处理(Han等人2016年;贝尔哈森等人2019年;萨巴特、蒙特萨诺和穆里洛2020年)。这类方法试图通过形成box序列来细化连续帧中静止图像检测器的预测结果。每个盒子的最终分类分数根据整个序列进行调整。另一种方法在于增强关键帧的特性,期望通过利用(选定的)参考帧中的特性来减轻性能退化。这些方法可大致分为flow-based、attention-based和tracking-based。深度特征flow(Zhu et al. 2017b)首先引入光流进行图像级特征对齐,FGFA采用光流沿着运动路径聚集特征。考虑到图像级特征聚合的计算代价,提出了几种基于注意点的方法。SESLA作为代表,根据区域级特征之间的语义相似性,提出了一种长程特征聚合方案。受Relation Networks(Hu等人2018)用于静止图像检测的关系模块的启发,RDN(Deng等人2019)捕获了空间和时间背景下物体之间的关系。此外,MEGA(Chen et al. 2020)设计了一个内存增强的全局-局部聚合模块,以便更好地建模对象之间的关系。另外,TROIA(Gong等人2021)利用ROI-对齐操作进行细粒度特征聚合,而HVR-Net(Han等人2020)集成了视频内和视频间的proposals关系,以进一步改进。此外,MBMBA(Sun et al. 2021)通过引入内存库,扩大了参考特征集。QueryProp(He et al. 2022)注意到视频对象检测器的高计算成本,并试图通过一个轻量级的查询传播模块来加快这个过程。除了基于注意力的方法外,D&T(费希滕霍弗、Pinz和齐瑟曼2017)还尝试通过构建不同帧特征的相关图来以跟踪的方式求解视频目标检测问题。虽然这些方法提高了检测的精度,但它们大多是基于两阶段的检测器,因此其推理速度相对较慢。
在相关的工作中,一些两级检测器已经拥有比本文方法不弱的精度,但速度较慢。本论文尝试在一级检测器中实现视频目标检测。
相关二级检测器可以查阅 https://www.cnblogs.com/mcgl/p/13993171.html

3、Methodology

考虑到视频的特点(各种退化与丰富的时间信息),如何从其他帧中为目标帧(关键帧)寻找支持性信息,对提高视频目标检测的准确性起着关键作用。随着最近的尝试(Deng等2019年;Cen等2020年;Wu等2019年;He等2022年)准确性的显著提高,证实了时间聚合对问题的重要性。然而,现有的方法大多是基于双阶段的技术。如前所述,它们的主要缺点是相对于单级方法,速度相对较慢。为了减轻这一限制,我们将区域/特征选择放在单级探测器的预测头之后。在本节中,我们选择YOLOX作为基础来展示我们的主要主张。我们提出的框架如图3所示。
在这里插入图片描述

让我们回顾一下传统的两阶段管道: 1)首先将大量的候选区域“选择”作为提案;2)确定每个提案是否是一个对象,以及它属于哪个类。计算瓶颈主要来自于处理大量的低置信度候选区域。从图3中可以看出,我们的管道也包含两个阶段。不同的是,它的第一阶段是预测(丢弃大量低置信度的区域),而第二阶段可以看作是区域级的细化(利用聚合利用其他帧)。根据这一原理,我们的设计可以同时受益于一级探测器的效率和从时间聚合中获得的精度。值得强调的是,设计上的微小差异导致了性能上的巨大差异。该策略可以推广到许多基础检测器,如FCOS(Tian等人2019年)和ppyoloe(Xu等人2022年)。
所设计的方法基于一级检测器的分类和预测结果进行二次优化,形成了实质上的二阶段检测。但可以受益于一阶段检测器的精度提升,并推广到其它一阶段检测器中。

Our Design

从人类可能的角度来看,识别过程将首先将时间上的相关实例联系起来,并确定它们属于哪个类别,直到收集到足够自信的线索。然后,这些结果可以被广播到不太自信的案例中。多头注意机制作为Transformers的关键部分,似乎很好地适合这种情况,从而提高了远程建模的能力。给定一个序列Z,查询、键和值矩阵分别标记为Q、K和V。自我注意程度可以表示为以下公式,其中,d是Q(也是K)中每个特征的维数。
SA ⁡ ( Z ) = softmax ⁡ ( Q K T / d ) V , (1) \operatorname{SA}(Z)=\operatorname{softmax}\left(QK^T/\sqrt{d}\right)V ,\quad\text{(1)} SA(Z)=softmax(QKT/d )V,(1)

将m个自我注意力并行放置,通过简单地将它们连接在一起,可以实现多头注意力机制:
M S A ( Z ) = c o n c a t ( S A 1 ( Z ) , S A 2 ( Z ) , . . . , S A m ( Z ) ) \mathrm{MSA}(Z)=\mathrm{concat}\left(\mathrm{SA}_1(Z),\mathrm{SA}_2(Z),...,\mathrm{SA}_m(Z)\right) MSA(Z)=concat(SA1(Z),SA2(Z),...,SAm(Z))

现代基于两阶段的视频对象探测器通常通过RPN获得特征聚合的候选区域(Ren et al. 2015)。作为代表,RelationNet(Hu et al. 2018)首先通过将一系列proposals作为输入,引入了上述对静止目标检测任务的多头注意。roi池或roi对齐操作应用于这些proposals,以提取区域级特征。然而,单级探测器可以直接从特征图中进行密集的预测。简单地将区域级的特征聚合转移到一级探测器的整个特征图上,就会导致密集的计算成本。为了解决这个问题,我们提出了一种有效的策略来选择适合多头注意的特征。

FSM: Feature Selection Module

由于大多数预测结果的置信度较低,因此单级探测器的检测头是从特征图中选择(高质量)候选对象的一个自然和合理的选择。在RPN的过程之后,我们首先根据置信度得分挑选出前k(例如,750个)的预测然后,在非最大抑制(NMS)之后,选择一个固定数量的预测a(例如,一个a= 30),以减少冗余。这些预测的特征将被收集起来,以供进一步细化。在实践中,我们发现,直接将收集到的特征聚集在分类分支中,并反向传播聚集后的特征的分类损失,会导致训练不稳定。由于特征聚合模块的权值是随机初始化的,所以从一开始就对所有网络进行微调将会污染预先训练好的权值。为了解决上述问题,我们除了检测头的线性投影层外,还固定了基础检测器的权重。我们进一步将两个3×3卷积(Conv)层插入模型颈部作为一个新的分支,称为视频对象分类分支,它生成用于聚合的特征。然后,我们将从视频和回归分支中收集到的特征输入到我们的特征聚合模块中

1、根据置信度得分挑选出前k个结果,然后在nms操作后得到a个预测结果
2、指出基于新的网络模型直接进行训练会污染预训练的目标检测器参数,故要冻结
3、设计了一个conv3->conv3的视频对象分类分支,用于进行特征聚合

FAM: Feature Aggregation Module

现在我们进入到连接相关roi的步骤。设F = {C1、C2、…,Cf;R1,R2,…,Rf }表示FSM选择的特征集,其中Ci与Ri分别表示视频分类和回归分支的第i帧的特征,f为相关帧数。广义余弦相似度可以说是计算特征之间相似度或注意权重最广泛使用的度量。简单地引用余弦相似度就会发现与目标最相似的特征。然而,当目标出现一定退化时,使用余弦相似度的参考方案很可能出现同样的问题。我们把这种现象命名为同质性问题。

首先,让我们回顾一下我们的方法中原始的QK方式。与(Vaswani et al. 2017)类似,查询、键和值矩阵被构建并输入多头注意力。例如,Qc和Qr分别是通过将所有相关帧proposals的分类分支和回归分支的特征叠加而形成的,其中Qc为分类结果的聚合,Qr为回归结果的聚合。并对Qc与Qr分别执行attention操作,得到Ac和Ar.

为了克服同质性问题,我们进一步考虑了来自原始检测器的预测置信度,记为P={P1,P2,…,Pf},每个Pi包含两个分数,即来自原始分类和回归头的分类得分和IoU得分。为了将这些分数拟合到注意力权重中,我们建立了两个矩阵,Sr(iou得分),Sc(类别的分),重新n次构成二维矩阵,使其与Ac|Ar具有相同的维度。因此,对分类和回归分支的自我注意的最终结果如下:
S A c ( C ) = s o f t m a x ( S c ∘ A c ) V c , S A r ( R ) = s o f t m a x ( S r ∘ A r ) V c , ( 3 ) \begin{array}{l}\mathrm{SA}_{\mathrm{c}}(\mathcal{C})=\mathrm{softmax}\left(S_{c}\circ A_{c}\right)V_{c},\\\mathrm{SA}_{\mathrm{r}}(\mathcal{R})=\mathrm{softmax}\left(S_{r}\circ A_{r}\right)V_{c},\end{array}\quad(3) SAc(C)=softmax(ScAc)Vc,SAr(R)=softmax(SrAr)Vc,(3)
其中,◦代表矩阵的点乘。通过这个操作,自我注意不仅考虑了查询和关键项之间的相似性,而且还意识到键的质量。请注意,由于主要目的是细化分类,所以 S A c ( C ) SA_c (C) SAc(C) S A r ( R ) SA_r (R) SAr(R)共享相同的值矩阵Vc。我们的实验证明,用等式取代原来的QK方式(称为亲和方式)在多头注意中可以显著提高视频目标检测器的性能。此外,我们将Vc与等式(3)的输出连接起来为了更好地保存初始表示法,可以通过以下公式表示。位置信息没有嵌入,因为在长时间范围内的位置信息是没有用的。
S A ( F ) = c o n c a t ( ( S A c ( C ) + S A r ( R ) , V c ) . ( 4 ) \mathrm{SA}(\mathcal{F})=\mathrm{concat}((\mathrm{SA}_c(\mathcal{C})+\mathrm{SA}_\mathrm{r}(\mathcal{R}),V_c).\quad(4) SA(F)=concat((SAc(C)+SAr(R),Vc).(4)

此外,考虑到softmax的特性,一小部分参考可能持有很大部分的权重。换句话说,它经常忽略了低权重的引用,这限制了可能的后续使用的参考特性的多样性。为了避免这种风险,我们引入了参考特征上的平均池化(A.P.)。具体地说,我们选择所有相似性得分高于阈值τ的目标,并将平均池应用于这些目标。请注意,这项工作中的相似性是通过N(Vc)N(Vc)T来计算的。算符N(·)是指层的归一化,它保证了层的值在一定的范围内,从而消除了尺度差异的影响。然后将平均合并特征和关键特征输入一个线性投影层进行最终分类。该过程如图4所示。
在这里插入图片描述

4、Experimental Validation

4.1 Implementation Details

与之前的工作类似,我们也从YOLOX提供的COCO预训练过的权重中初始化了我们的基本检测器。我们将Imagenet VID和ImageNet DET中的视频与我们的训练数据相同的类相结合。具体来说,ImageNet VID包含3,862个用于训练的视频和555个用于验证的视频。ImageNet VID数据集中有30个类别,即ImageNet DET 200个基本类别的子集(Russakovsky等,2015)。考虑到视频帧的冗余性,我们在VID训练集中随机采样1/10帧,而不是使用所有的帧。基础探测器在2个Gpu上训练7个epoch,批大小为16

在学习速率方面,我们采用YOLOX中使用的余弦学习速率计划,以一个时期进行预热,并禁用最近两个epoch的强数据增强。当将特征聚合模块集成到基本检测器中时,我们在一个2080Ti GPU上对它们进行了150K迭代的微调,批处理大小为16。此外,我们对前15K次迭代使用热身,对其余的迭代使用余弦学习率计划只对YOLOX预测头部的线性投影层、新添加的视频对象分类分支和多头注意力进行了微调对于特征聚合模块的训练,帧数f设置为16,粗略特征选择的NMS阈值设置为0.75。在生成最终的检测盒时,我们可以将NMS的阈值设置为0.5,以保持更多的优质结果。

在训练阶段,图像被随机地从352×352调整到672×672,step为32。在测试阶段,图像的大小被均匀地调整到576×576。AP50和推理速度分别是反映其在准确性和效率方面的性能的两个指标。关于推理速度,除非另有说明,我们在2080Ti GPU上测试了所有模型的fp16精度。

4.2 Ablation Study

On the reference frame sampling strategy. 研究帧采样策略来平衡精度和帧效率是视频目标检测器的关键。在之前的基于两阶段的方法中,已经讨论了几种全局和局部抽样方案(Wu等,2019;Gong等,2021;Chen等,2020)。对于全局采样方案,从整个视频中随机选择fg帧。对于局部采样,采用了在关键帧周围的fl连续帧。为了说明不同抽样策略的影响,我们改变了全局和局部抽样中参考系的数量。数值结果见表1。仅使用3个全局参考系的性能已经优于使用39个局部参考系的性能,这证实了(Wu et al. 2019;Gong等人,2021年)中给出的证据。作为一种权衡,我们根据表1默认采用fg = 31的全局抽样策略。
在这里插入图片描述

1、对于训练视频的序列采样,全局随机抽帧策略性能较好。但该策略不能用于过长的视频。

2、采样的训练序列长度需要综合性能和效果,序列在进行attention时计算复杂度是 O ( N 2 ) O(N^2) O(N2)

On the number of proposals in a single frame. 在这个实验中,我们将FSM中每一帧a的最自信的提案的数量从10调整到100,以了解其对性能的影响。如表2所示,随着a的增加,精度不断提高并达到饱和,直到达到75。由于自我注意的复杂性是关于输入提案量的O(n2),每帧涉及太多的提案将大大增加时间成本。作为一种权衡,我们采用了一个a = 30,它远小于基于两阶段的RDN方法中使用了75个proposals(Deng等人,2019年)
在这里插入图片描述

随着一阶段预测器自信结果数的增强,性能逐渐饱和。这是可能是proposal数增加到一定程度后已经完全覆盖了GT

On the threshold in average pooing of reference features. 在这里,我们测试了不同的阈值对平均池化对参考特征的影响。表3列出了数值结果。当所有的特性都涉及到平均池化时,即τ=0,AP50仅为73.1%。提高到更高的阈值会导致更好的性能。当τ下降在[0.75,0.85]时,精度保持稳定在高至77.3%。但是,当τ = 1时,平均池化相当于仅复制SA (F),其准确率下降到76.9%。动态确定不同情况下的阈值是需要的,并作为我们未来的工作。对于其余的实验,我们采用τ = 0.75作为默认阈值。

在AP模块中,softmax对其它特征抑制过多,基于阈值的动态选择可以提升ap

在这里插入图片描述

On the effectiveness of FAM. 来验证亲和性方式(A.M.)的有效性和参考特征上的平均池化(A.P.),我们评估有和没有这些模块的性能。表4中的结果显示,这些设计都可以帮助特征聚合从单阶段检测器中捕获更好的语义表示。与YOLOX-S(69.5% AP50)相比,仅配备AM的YOLOV-S的准确率提高了7.4%。同时为YOLOV-S配备了这两种设备在A.M,和A.P.(完整的YOLOVS),性能达到77.3%,与YOLOX-S比较仅约2 ms时间成本.

在AM模块中主要实现proposal在时序中的相互增强,故该模块对于性能提升极为中,达到了7%的涨点

在这里插入图片描述

此外,我们还将我们的设计插入到YOLOX-L和YOLOX-X中。表5显示了详细的比较。在微调我们的版本时,指示使用强增强(如MixUp(Zhang et al. 2018a)和mosaic(博奇科夫斯基、王和廖2020))。在AP50中,我们的YOLOV始终优于相应的基线,超过7%。
在这里插入图片描述

此外,我们还提供了两种案例来直观地展示我们的FAM的优越性。它们是罕见姿态的狮子案例和运动模糊的狐狸案例,如图5所示。在不丧失一般性的情况下,列出了不同特征选择模式的前4个参考方案,包括余弦相似度、多头注意的QK方式和我们的亲和方式。如前所分析的,余弦方式选择与关键proposals最相似,但与关键方案相同的退化问题。虽然QK方式缓解了这一问题,但它明显不如亲和方式。通过引入置信度评分作为指导,我们的方法选择了更好的proposals,并进一步提高了检测精度。
在这里插入图片描述

4.3 Comparison with State-of-the-art Methods

表6总结了相关方法的详细性能,包括FGFA(Zhu等2017a)、SELSA(吴等2019)、RDN(邓等2019)、MEGA(陈等2020)、TROIA(Gong等2021)、MAMBA(Sun等人,2021)、HVR(Han等人2020年)、TransVOD(He等人2021年)和QueryProp(He等人2022年)。我们的方法可以达到85.5%的AP50,每帧21.1 ms。在最近的后处理方法REPP(Sabater、蒙特萨诺和穆里洛2020)的帮助下,它达到了87.5%的AP50,花费了额外的6个ms。在推理效率方面,我们的方法比其他方法要快得多。为了表明改进不是纯粹是从更强的骨干网络,我们还报告了使用ResNet50的速度和准确性。

这里对比的模型并非sota效果,某些二阶段检测器已经在ImageNet VID数据中达到了85.5%的相比指标。

在这里插入图片描述

具体来说,在表6的上半部分中,我们报告了没有任何后处理方法的性能。YOLOV在检测精度和推理效率方面都具有显著的领先优势。为了公平比较,表6中列出的模型除了MAMBA和QueryProp2外,列出的所有模型都在相同的硬件环境下进行了测试。表6的下面的部分报告了我们的YOLOV和其他经过后处理的SOTA模型的结果。在一个i7-8700K的CPU上测试了后处理的时间成本。

4.4 Application to Other Base Detectors

为了验证该策略的泛化能力,我们还在其他广泛使用的单级检测器上进行了尝试,包括ppyoloe(Xu等,2022年)和FCOS(Tian等,2019年)。特别是对于ppyoloe,它在不同的FPN水平上有不同的通道数。为了实现多尺度特征聚合,我们将不同尺度的检测头的信道数减少为所有级别中最小的。而对于FCOS,主干是ResNet-50(He等人,2016年)。FPN由原始架构中的五个级别组成,用于处理具有大图像大小的图像(例如,1333×800)。为了匹配ImageNet VID的情况,我们保持了三个FPN水平,最大的降采样率为32。对于训练过程和其他超参数设置,我们只需保持它们与YOLOX中的那些相同。表7显示,我们的策略可以在AP50方面持续提高5%以上。值得注意的是,为不同的基底探测器寻找更合适的超参数可以获得更好的性能。
针对于ppyoloe与fcos的涨点只有5%~6%,而对yolox有7&-8%,这是由于FSM是针对yolox输出的特征层数量设计的,所有适配性修改后涨点能力变弱/font>
在这里插入图片描述

5、Conclusion

在本文中,我们开发了一种实用的视频对象检测器。为了提高检测精度,设计了一个特征聚合模块来聚合时间信息。为了节省计算资源,不同于现有的两阶段检测器,我们提出将区域选择放在单阶段预测之后。这种细微的变化使我们的探测器的效率显著提高。实验和消融研究已经进行来验证我们的策略的有效性,它超过了以前的方案。其核心思想简单而通用,有可能激发进一步的研究工作,并拓宽与视频目标检测相关的适用场景

相关文章:

论文阅读:YOLOV: Making Still Image Object Detectors Great at Video Object Detection

发表时间:2023年3月5日 论文地址:https://arxiv.org/abs/2208.09686 项目地址:https://github.com/YuHengsss/YOLOV 视频物体检测(VID)具有挑战性,因为物体外观的高度变化以及一些帧的不同恶化。有利的信息…...

如何将图片转为excel或word?(客户端)

演示软件:金鸣表格文字识别大师3.6.1(新版本界面可能会略有不同) 第一部分 将图片转为excel或文表混合的word 一般的软件要将图片转为可编辑的excel,都需要待识别的图片要有明显清晰的表格线,但我们程序现已克服了这…...

Linux网络——HTTP

一.应用层 我们程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层. 我们上一次写的网络版本计算器就是一个应用层的网络程序。 我们约定了数据的读取,一端发送时构造的数据, 在另一端能够正确的进行解析, 就是ok的. 这种约定, 就是应…...

ElasticSearch综合练习题,ES为8版本,使用Kibana运行语句

文章目录 前言一、ES查询集群情况二、ES索引习题查询所有索引查询单个索引 三、ES增删改查数据单条处理批量处理 四、雇员查询练习题五、学生查询练习题六、商品信息联系题其他:一问一答参考文档 前言 ES8版本没有type概念,所以语法可能会与其他版本有差…...

Java方法中不使用的对象应该手动赋值为NULL吗?

在java方法中,不使用的对象是否应该手动赋值为null?我们先来通过一个示例看一下。 垃圾回收示例一 public class GuoGuoTest {public static void main(String[] args) {byte[] placeholder new byte[64 * 1024 * 1024];System.gc();} } 上面代码向内…...

Mysql主从搭建

Mysql主从搭建 1.Mysql下载1.1 查看操作系统2.2 下载mysql安装包 2.Mysql安装2.1 解压2.2 目录重命名2.3 创建data,存储文件2.4 创建用户组2.5 授权用户2.6 配置环境变量2.7 编辑my.cnf2.8 创建相关目录和文件2.9 初始化数据库2.10 复制mysql.server到/etc/init.d/下…...

WPF程序给按钮增加不同状态的图片

首先我们在资源里添加几个图片,Up,Over和Down状态。 然后我们创建一个Style。默认我们的背景设置成Up 然后在Triggers里添加代码,当Property:IsMouseOver为True的时候更换成Over;当Property:IsPressed为Tr…...

Java编程陷阱(三)

陷阱11:不要使用StringBuffer类来拼接字符串 StringBuffer是Java中的一个类,它可以表示一个可变的字符串,也就是可以对字符串进行修改和追加的操作,比如使用append或insert方法来拼接字符串。有时候,我们需要使用StringBuffer类来拼接字符串,比如在循环中动态地构建一个字…...

数据仓库相关

​在阿里巴巴的数据体系中,我们建议将数据仓库分为三层,自下而上为:数据引入层(ODS,Operation Data Store)、数据公共层(CDM,Common Data Model)和数据应用层&#xff08…...

SpringBoot学习笔记-创建个人中心页面(下)

笔记内容转载自 AcWing 的 SpringBoot 框架课讲义,课程链接:AcWing SpringBoot 框架课。 CONTENTS 1. 实现个人中心页面2. POJO时区修改3. 集成代码编辑器 本节实现个人中心的前端页面,用户能够查看自己的 Bot 信息,并能创建、修改…...

电子秤方案:做一个宠物勺方案设计

养宠物是一件费心劳力的事情,但同时也是能够给你带来快乐和幸福感的事情。就是有时候会怕宠物毫无征兆地生病令人措手不及,所以电子秤方案设计鼎盛合科技分享一个小方案,能够及时了解到宠物的身体状况问题。 蓝牙宠物勺是一种具有记录和称重…...

Debezium-Embedded 实时监控MySQL数据变更

1.Debezium-Embedded 简介 Debezium连接器的操作通常是将它们部署到Kafka Connect服务,并配置一个或多个连接器来监控上游数据库,并为它们在上游数据库中看到的所有更改生成数据更改事件。这些数据更改事件被写入Kafka,在那里它们可以被许多不…...

计算机是如何工作的(简单介绍)

目录 一、冯诺依曼体系 二、CPU基本流程工作 逻辑⻔ 电⼦开关——机械继电器(Mechanical Relay) ⻔电路(Gate Circuit) 算术逻辑单元 ALU(Arithmetic & Logic Unit) 算术单元(ArithmeticUnit) 逻辑单元(Logic Unit) ALU 符号 寄存器(Regis…...

JSP基本表单和Request对象使用例子

表单的jsp&#xff1b; <%page contentType"text/html;charsetgbk" pageEncoding"UTF-8"%> <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><titl…...

【Redux】Redux 基本使用

1. Redux 快速上手 Redux 是 React 最常用的集中状态管理工具&#xff0c;类似于Vue中的Pinia&#xff08;Vuex&#xff09;&#xff0c;可以独立于框架运行。 <button id"decrement">-</button> <span id"count">0</span> <…...

多线程Thread(初阶一:认识线程)

目录 一、引用线程的原因 二、线程的概念 三、进程和线程的区别 四、多线程编程 一、引用线程的原因 多任务操作系统&#xff0c;希望系统能同时运行多个任务。所以会涉及到进程&#xff0c;需要对进程进行管理、调度等。 而单任务操作系统&#xff0c;就完全不涉及到进程…...

系列五、GC垃圾回收【四大垃圾算法-复制算法】

一、堆的内存组成 二、复制算法 2.1、发生位置 复制算法主要发生在新生代&#xff0c;发生在新生代的垃圾回收也被叫做Minor GC。 2.2、 Minor GC的过程 复制>清空》交换 1、eden、from区中的对象复制到to区&#xff0c;年龄1 首先&#xff0c;当eden区满的时候会触发第一…...

LeetCode(24)文本左右对齐【数组/字符串】【困难】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 文本左右对齐 1.题目 给定一个单词数组 words 和一个长度 maxWidth &#xff0c;重新排版单词&#xff0c;使其成为每行恰好有 maxWidth 个字符&#xff0c;且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单…...

Spring-Spring之事务底层源码解析

EnableTransactionManagement工作原理 开启Spring事务本质上就是增加了一个Advisor&#xff0c;但我们使用EnableTransactionManagement注解来开启Spring事务是&#xff0c;该注解代理的功能就是向Spring容器中添加了两个Bean&#xff1a; AutoProxyRegistrarProxyTransactio…...

后端面经学习自测(三)

文章目录 1、ArrayList和Linkedlist区别&#xff1f;2、ArrayList扩容机制&#xff1f;3、ArrayList和Linkedlist分别能做什么场景&#xff1f;4、事务特性&#xff1f;MySQL事务Redis事务Spring事务5、在Spring中事务失效的场景&#xff1f;6、Java泛型&#xff1f;7、泛型擦除…...

力扣labuladong——一刷day40

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣341. 扁平化嵌套列表迭代器 前言 N叉树的结构&#xff0c;构造迭代器 一、力扣341. 扁平化嵌套列表迭代器 /*** // This is the interface that allo…...

在VS Code中使用VIM

文章目录 安装和基本使用设置 安装和基本使用 VIM是VS Code的强大对手&#xff0c;其简化版本VI是Linux内置的文本编辑器&#xff0c;堪称VS Code问世之前最流行的编辑器&#xff0c;也是VS Code问世之后&#xff0c;我仍在使用的编辑器。 对VIM无法割舍的原因有二&#xff0…...

注解【元数据,自定义注解等概念详解】(超简单的好吧)

注解的理解与使用 注解的释义元数据的含义基础阶段常见的注解注解的作用&#xff08;包括但不限于&#xff09;教你读懂注解内部代码内容五种元注解尝试解读简单注解我当时的疑惑点 自定义注解自定义注解举例 注解的原理总结 注解的释义 我们都知道注释是拿来给程序员看的&…...

vue-pdf在vue框架中的使用

在components目录下新建PdfViewer/index.vue vue-pdf版本为4.3.0 <template><div :id"containerId" v-if"hasProps" class"container"><div class"right-btn"><div class"pageNum"><input v-m…...

Wordpress页面生成器:Elementor 插件制作网站页面教程(图文完整)

本文来教大家怎么使用Wordpress Elementor页面编辑器插件来自由创建我们的网页内容。很多同学在面对建站的时候,一开始都是热血沸腾信心满满的,等到实际上手的时候就会发现有很多问题都是无法解决的,希望本篇Elementor插件使用指南能够帮助到你。 Wordpress Elementor页面编…...

完全随机设计的方差分析

一、说明 实验设计在科学研究中发挥着至关重要的作用&#xff0c;使研究人员能够从数据中得出有意义的结论。一种常见的实验设计是完全随机设计&#xff08;CRD&#xff09;&#xff0c;其特征是将实验单元随机分配到治疗组。CRD 的方差分析 (ANOVA) 是一种统计技术&#xff0c…...

035、目标检测-物体和数据集

之——物体检测和数据集 目录 之——物体检测和数据集 杂谈 正文 1.目标检测 2.目标检测数据集 3.目标检测和边界框 4.目标检测数据集示例 杂谈 目标检测是计算机视觉中应用最为广泛的&#xff0c;之前所研究的图片分类等都需要基于目标检测完成。 在图像分类任务中&am…...

【开源】基于Vue.js的社区买菜系统的设计和实现

项目编号&#xff1a; S 011 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S011&#xff0c;文末获取源码。} 项目编号&#xff1a;S011&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 数据中心模块2.1…...

【双指针】复写0

复写0 1089. 复写零 - 力扣&#xff08;LeetCode&#xff09; 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上…...

记录一些涉及到界的题

文章目录 coppersmith的一些相关知识题1 [N1CTF 2023] e2Wrmup题2 [ACTF 2023] midRSA题3 [qsnctf 2023]浅记一下 coppersmith的一些相关知识 上界 X c e i l ( 1 2 ∗ N β 2 d − ϵ ) X ceil(\frac{1}{2} * N^{\frac{\beta^2}{d} - \epsilon}) Xceil(21​∗Ndβ2​−ϵ) …...

Linux秋招面试题

自己在秋招过程中遇到的Linux相关的面试题 linux查找含有“xxxx”的文件名 将/path/to/search替换为要搜索的目录路径&#xff0c;xxxx表示要匹配的文件名模式&#xff0c;其中xxxx是你要查找的字符串。这个命令将会在指定路径下递归地查找所有文件名中包含给定字符串的文件 …...

OPPO发布AndesGPT大模型;Emu Video和Emu Edit的新突破

&#x1f989; AI新闻 &#x1f680; OPPO发布全新ColorOS 14及自主训练的AndesGPT大模型 摘要&#xff1a;OPPO在2023 OPPO开发者大会上发布了全新的ColorOS 14&#xff0c;并正式推出了自主训练的安第斯大模型&#xff08;AndesGPT&#xff09;。AndesGPT拥有对话增强、个人…...

2311rust,到46版本更新

1.43.0稳定版 项(item)片段 在宏中,可用项片段把项插值到特征,实现和extern块的块体中.如: macro_rules! mac_trait {($i:item) > {trait T { $i }} } mac_trait! {fn foo() {} }这生成: trait T {fn foo() {} }围绕原语的推导类型 改进了围绕原语,引用和二进制操作的推…...

Rust根据条件删除相邻元素:dedup

文章目录 示例dedup_bydedup_by_key Rust系列&#xff1a;初步⚙所有权⚙结构体和枚举类⚙函数进阶⚙泛型和特征⚙并发和线程通信 示例 Rust中的动态数组Vec提供了dedup函数&#xff0c;用于删除相邻重复元素。此外&#xff0c;还提供了dedup_by和dedup_by_key&#xff0c;可…...

2023年(第六届)电力机器人应用与创新发展论坛-核心PPT资料下载

一、峰会简介 大会以“聚焦电力机器人创新、助力行业数字化转型、促进产业链协同发展”为主题&#xff0c;展示电力机器人产业全景创新技术&#xff0c;探讨数字化战略下电力机器人应用前景和发展趋势。为加快推进电力机器人应用拓新&#xff0c;助力电网数字化转型升级&#…...

Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap,Kotlin

Android BitmapFactory.decodeResource读取原始图片装载成原始宽高Bitmap&#xff0c;Kotlin fun getOriginalBitmap(resId: Int): Bitmap {val options BitmapFactory.Options()options.inJustDecodeBounds true //只解析原始图片的宽高&#xff0c;不decode原始文件装载到内…...

阿里云服务器 手动搭建WordPress(CentOS 8)

前提条件 已创建Linux操作系统的ECS实例&#xff0c;并且手动部署LNMP环境&#xff0c;具体操作&#xff0c;请参见手动部署LNMP环境&#xff08;CentOS 8&#xff09;。本教程使用的相关资源版本如下。 实例规格&#xff1a;ecs.c6.large 操作系统&#xff1a;公共镜像CentO…...

竞赛 题目:基于深度学习的中文对话问答机器人

文章目录 0 简介1 项目架构2 项目的主要过程2.1 数据清洗、预处理2.2 分桶2.3 训练 3 项目的整体结构4 重要的API4.1 LSTM cells部分&#xff1a;4.2 损失函数&#xff1a;4.3 搭建seq2seq框架&#xff1a;4.4 测试部分&#xff1a;4.5 评价NLP测试效果&#xff1a;4.6 梯度截断…...

CCF ChinaSoft 2023 论坛巡礼|软件测试产教研融合论坛

2023年CCF中国软件大会&#xff08;CCF ChinaSoft 2023&#xff09;由CCF主办&#xff0c;CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办&#xff0c;将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…...

浅谈WPF之控件模板和数据模板

WPF不仅支持传统的Windows Forms编程的用户界面和用户体验设计&#xff0c;同时还推出了以模板为核心的新一代设计理念。在WPF中&#xff0c;通过引入模板&#xff0c;将数据和算法的“内容”和“形式”进行解耦。模板主要分为两大类&#xff1a;数据模板【Data Template】和控…...

微信小程序会议OA首页-开发说明创建项目关于flex布局关于尺寸单位(rpx)关于WXS轮播图会议信息

目录 1. 创建项目 2. 关于flex布局 3. 关于尺寸单位&#xff08;rpx&#xff09; 4. 关于WXS 4. 轮播图 5. 会议信息 1. 创建项目 基于微信原生开发工具&#xff0c;稳定版 Stable Build (1.06.22010310) 创建项目前&#xff0c;请确定有小程序测试账号 使用向导创建一个…...

Linux上编译和安装SOFA23.06

前言 你可以直接使用编译安装好的SOFA版本Installing from all-included binaries (v23.06.00)&#xff1a; 如果你想自己编译&#xff0c;可以看我下面写的内容&#xff0c;不过绝大多数是从官网来的&#xff0c;如果和官网有出入&#xff0c;建议还是以官网为准。 在Linux下…...

定时任务 Spring Task

一、介绍 Spring Task 是Spring框架提供的任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑。 定位&#xff1a; 定时任务框架 作用&#xff1a; 定时自动执行某段Java代码 二、cron 表达式 cron表达式在线生成器&#xff1a;https://cron.qqe2.com/ 1、说明…...

golang 上传图片 --chatGPT

问&#xff1a;makeImgUpload(path string) 实现发送发送图片&#xff0c; 发送类型为 multipart/form-data gpt: 下面是一个简单的 makeImgUpload 函数的实现&#xff0c;用于发送图片并以 multipart/form-data 格式进行上传。请注意&#xff0c;此代码假设图片文件路径是正确…...

Android Studio 写一个Java调用c++ 的demo

前提条件&#xff1a; 本地已经配置好了ndk环境,如果没有配置好&#xff0c;建议参考macos 配置ndk环境-CSDN博客 这篇链接。 新建一个Empty Project 比如我这里的Project的名字是HelloJNI&#xff0c;包名是com.example.hellojni 然后在src目录下&#xff0c;右键选择Add C …...

Pandas数据操作_Python数据分析与可视化

Pandas数据操作 排序操作对索引进行排序按行排序按值排序 删除操作算数运算去重duplicated()drop_duplicates() 数据重塑层次化索引索引方式内层选取数据重塑 排序操作 对索引进行排序 Series 用 sort_index() 按索引排序&#xff0c;sort_values() 按值排序&#xff1b; Dat…...

【Debug】查询的数据量比数据库中的数据量还要多

今天前端反馈了一个bug&#xff0c;某个接口返回的数据很多&#xff0c;我到mysql数据库看了一下&#xff0c;查询的表名为trs_risk&#xff0c;其中只有1000多条数据&#xff0c;而页面返回有5000多条数据&#xff01;&#xff01; 匪夷所思啊&#xff0c;我定位到Mapper层的…...

nodejs微信小程序-慢性胃炎健康管理系统的设计与实现-安卓-python-PHP-计算机毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…...

二十一、数组(1)

本章概要 数组特性 用于显示数组的实用程序 一等对象返回数组 简单来看&#xff0c;数组需要你去创建和初始化&#xff0c;你可以通过下标对数组元素进行访问&#xff0c;数组的大小不会改变。大多数时候你只需要知道这些&#xff0c;但有时候你必须在数组上进行更复杂的操作…...

react hook 获取setState的新值

利用useRef 存储最新值 let [count,setCount] useState(0)let countRef useRef(count)let handleClick function (){setCount((prev)>{countRef.current prev1return countRef.current})console.info(countRef.current)}利用useRef let [count,setCount] useState(0)le…...