SimD:基于相似度距离的小目标检测标签分配

摘要

https://arxiv.org/pdf/2407.02394
由于物体尺寸有限且信息不足,小物体检测正成为计算机视觉领域最具挑战性的任务之一。标签分配策略是影响物体检测精度的关键因素。尽管已经存在一些针对小物体的有效标签分配策略,但大多数策略都集中在降低对边界框的敏感性以增加正样本数量上,并且需要设置一些固定的超参数。然而,更多的正样本并不一定会带来更好的检测结果,事实上,过多的正样本反而可能导致更多的误报。在本文中,我们介绍了一种简单而有效的策略,即相似度距离(SimD),用于评估边界框之间的相似度。该策略不仅同时考虑了位置和形状的相似度,还能够自适应地学习超参数,从而确保它能够适应不同数据集和数据集中各种尺寸的物体。我们的方法可以简单地应用于常见的基于锚的检测器中,替代交并比(IoU)进行标签分配和非极大值抑制(NMS)。在四个主流的小物体检测数据集上进行的大量实验表明,我们的方法具有优越的性能,特别是在AI-TOD数据集上,我们的方法比最先进的竞争对手高出1.8 AP点和4.1 AP点(针对极小的物体)。代码可访问:https://github.com/cszzshi/SimD。

一、引言

随着无人机技术和自动驾驶的普及,物体检测在日常生活中的应用越来越广泛。通用物体检测器在准确性和检测速度方面都取得了显著进展。例如,YOLO系列的最新版本YOLOv8在COCO检测数据集上达到了53.9%的平均精度均值(mAP),并且在NVIDIA A100 GPU上使用TensorRT时,检测图像中物体仅需3.53毫秒。然而,尽管通用物体检测器取得了显著进展,但当它们直接应用于小物体检测任务时,其准确性会急剧下降。

在最近的一项关于小物体检测的研究中,Cheng等人[1]提出根据平均面积将小物体分为三个类别(极小、相对小和一般小)。小物体检测面临的两大挑战是信息丢失和正样本不足。提高小物体检测准确性的方法有很多,如特征融合、数据增强和超分辨率等。

由于足够数量和高质量的正样本对于物体检测至关重要,因此标签分配策略是影响最终结果的核心因素。边界框越小,交并比(IoU)度量[2]的敏感性就越高,这是为什么无法像标记通用物体那样标记同样多的微小物体作为正样本的主要原因。图1展示了传统基于锚点的度量、无锚点度量与我们的SimD度量之间的简单比较。
在这里插入图片描述

当前关于小物体标签分配策略的研究主要集中在降低对边界框大小的敏感性上。从这一角度出发,Xu等人[2]提出使用点距离(DotD)作为分配度量来替代交并比(IoU)。随后,NWD[3]和RFLA[4]被提出,它们尝试将真实框和锚点建模为高斯分布,然后使用这两个高斯分布之间的距离来评估两个边界框。实际上,这些方法在标签分配方面取得了相当大的进展,但也可能存在一些问题,而这些问题可能是它们没有考虑到的。

首先,大多数这些方法都集中在降低对边界框大小的敏感性上,从而增加正样本的数量。然而,我们知道,过多的正样本可能会对物体检测器产生不利影响,导致许多误报。

其次,这些评估度量的本质是测量边界框之间的相似性。对于基于锚点的方法,考虑的是真实框和锚点之间的相似性。这种相似性包括两个方面:形状和位置。然而,有些方法只考虑边界框的位置,而其他方法虽然同时考虑了形状和位置,但它们还需要选择一个超参数。

最后,尽管在小物体检测数据集中物体的大小往往相当相似,但不同物体之间的尺度仍然存在差异。例如,AI-TOD数据集中的物体大小范围从2到64像素不等。而在VisDrone2019数据集中,这种差异更为显著,因为它同时包含了小物体和一般大小的物体。事实上,物体越小,获得正样本的难度就越大。不幸的是,大多数现有方法可能较少关注这个问题。
在这里插入图片描述

为了解决这些问题,本文引入了一种新的评估度量来替代传统的交并比(IoU),我们方法的处理流程如图2所示。本文的主要贡献包括以下几点:

  • 我们提出了一种简单而有效的策略,即相似度距离(SimD),用于评估两个边界框之间的关系。它不仅考虑了位置和形状的相似性,而且能够有效地适应不同数据集以及数据集中不同物体的大小,而无需设置任何超参数。
  • 大量实验证明了我们方法的有效性。我们使用了几种通用物体检测器,并简单地用基于我们SimD度量的方法替换了基于IoU的分配模块,通过这种方式,我们在四个主流小物体检测数据集上实现了最先进的性能。

二、相关工作

近年来,目标检测技术在各行各业的应用日益广泛。这项技术提供了极大的便利。例如,通过识别遥感图像中的地面物体,可以迅速开展救援行动。随着深度学习技术的发展,特别是ResNet[5]的引入,检测的准确性和速度都有了显著提升。

通用目标检测器可分为两类:单阶段检测器和双阶段检测器。双阶段检测器首先生成一系列候选区域,然后确定物体的位置和类别。这类算法包括R-CNN[6]、Fast R-CNN[7]和Faster R-CNN[8]。单阶段检测器的结构更为简单,它们可以直接从输入图像中输出物体的坐标和类别。一些经典的单阶段检测器包括YOLO[9]和SSD[10]。

A. 小目标检测

尽管深度学习技术在目标检测方面取得了显著进展,但当待检测目标非常小时,检测精度会急剧下降。小目标通常被定义为尺寸小于某个阈值的物体。例如,在Microsoft COCO [11]中,如果一个物体的面积小于或等于1024像素,则被视为小目标。然而,在许多情况下,感兴趣的目标实际上远小于上述定义。例如,在AI-TOD数据集中,目标的平均边长仅为12.8像素,远小于其他数据集。

正如之前的一篇论文[1]所述,由于感兴趣目标的尺寸极小,小目标检测面临三大主要挑战。首先,大多数目标检测器在特征提取过程中使用下采样,这会导致小目标的大量信息丢失。其次,由于小目标包含的有效信息量有限,它们很容易受到噪声的干扰。最后,目标越小,对边界框变化的敏感度就越高[2]。因此,如果我们使用传统的标签分配指标(如IoU、GIoU [12]、DIoU [13]和CIoU [13])进行目标检测,那么小目标获得的正样本数量将非常少。

为了提高小目标检测的准确性和效率,已经提出了许多方法。例如,从数据增强的角度来看,Kisantal等人[14]提出通过复制小目标、随机变换这些副本,然后将结果粘贴到图像的新位置来增加训练样本的数量。

B. 标签分配策略

标签分配策略在目标检测中起着至关重要的作用。根据每个标签是严格负样本还是严格正样本,这些策略可以分为硬标签分配策略和软标签分配策略。在软标签分配策略中,根据计算结果为不同的样本设置不同的权重,例如GFL [15]、VFL [16]、TOOD [17]和DW [18]。硬标签分配策略可以根据指定正负样本的阈值是否固定,进一步分为静态策略和动态策略。静态标签分配策略包括基于IoU和DotD [2]度量以及RFLA [4]的策略。动态标签分配策略的例子包括ATSS [19]、PAA [20]、OTA [21]和DSLA [22]。从另一个角度来看,标签分配策略可以分为基于预测的策略和无预测的策略。基于预测的方法根据真实边界框和预测边界框之间的关系为样本分配正/负标签,而无预测的方法则仅根据锚点或其他现有信息分配标签。

C. 小目标的标签分配策略

尽管已经有很多关于目标检测中标签分配策略的研究,但大多数策略都是针对传统数据集设计的,很少有专门为小目标设计的策略。当这些传统的标签分配策略直接被用于小目标检测时,它们的准确性会显著下降。到目前为止,专门为小目标设计的标签分配策略和度量标准主要包括 S 3 F D S^{3} \mathrm{FD} S3FD [23]、DotD [2]、NWDRKA [24]和RFLA [4]。

S 3 F D S^{3} \mathrm{FD} S3FD中,首先降低阈值(从0.5降至0.35),以便为真实标签获取更多正样本,然后进一步将阈值降至0.1,以便为那些在第一次降低阈值时未考虑到的真实标签获取正样本。然而, S 3 F D S^{3} \mathrm{FD} S3FD也使用传统的IoU度量来计算真实标签和锚点之间的相似度。为了克服IoU度量的缺点,引入了新颖的DotD公式来减少对边界框大小的敏感性。基于这个度量,可以为真实标签获取更多的正样本。在NWD-RKA中,引入了归一化Wasserstein距离来替代IoU,并使用基于排名的策略将前k个样本分配为正样本。RFLA从感受野的角度探讨了真实标签和锚点之间的关系,在此基础上,将真实标签和锚点建模为高斯分布。然后,基于Kullback-Leibler散度(KLD)计算这两个高斯分布之间的距离,该距离用于替代IoU度量。

三、方法

A. 边界框之间的相似度距离

标签分配中最重要的步骤之一是计算一个反映不同边界框之间相似性的值。具体来说,对于基于锚点的标签分配策略,在分配标签之前,必须量化锚点与真实标签之间的相似性。
在这里插入图片描述

常见的标签分配度量,如IoU、GIoU [12]、DIoU [13]和CIoU [13],通常基于锚点与真实标签之间的重叠度。这些度量存在一个严重问题,即如果重叠度为0(这在小目标中经常发生),则这些度量可能会失效。一些更合适的方法使用基于距离的评估度量,甚至使用高斯分布来模拟真实标签和锚点,如DotD [2]、NWD [3]和RFLA [4]。我们从三个角度对现有度量与我们的SimD度量进行了简单的比较,如表I所示。例如,DotD仅考虑位置相似性,可能无法适应数据集中不同对象的大小,因此它既不全面也不具有适应性。NWD和RFLA不具有适应性,因为它们分别需要设置超参数 C C C β \beta β。遵循现有方法,我们考虑提出一种没有任何超参数的自适应方法。

在本文中,我们引入了一种名为相似度距离(SimD)的新度量标准,以更好地反映不同边界框之间的相似性。相似度距离定义如下:

SimD ⁡ = e − ( sim  location  + sim  shape  ) sim ⁡ location  = ( x g − x a 1 m × ( w g + w a ) ) 2 + ( y g − y a 1 n × ( h g + h a ) ) 2 sim  shape  = ( w g − w a 1 m × ( w g + w a ) ) 2 + ( h g − h a 1 n × ( h g + h a ) ) 2 \begin{array}{l} \operatorname{SimD}=e^{-\left(\text {sim }_{\text {location }}+\text { sim }_{\text {shape }}\right)} \\ \operatorname{sim}_{\text {location }}=\sqrt{\left(\frac{x_{g}-x_{a}}{\frac{1}{m} \times\left(w_{g}+w_{a}\right)}\right)^{2}+\left(\frac{y_{g}-y_{a}}{\frac{1}{n} \times\left(h_{g}+h_{a}\right)}\right)^{2}} \\ \text { sim }_{\text {shape }}=\sqrt{\left(\frac{w_{g}-w_{a}}{\frac{1}{m} \times\left(w_{g}+w_{a}\right)}\right)^{2}+\left(\frac{h_{g}-h_{a}}{\frac{1}{n} \times\left(h_{g}+h_{a}\right)}\right)^{2}} \end{array} SimD=e(sim location + sim shape )simlocation =(m1×(wg+wa)xgxa)2+(n1×(hg+ha)ygya)2  sim shape =(m1×(wg+wa)wgwa)2+(n1×(hg+ha)hgha)2

其中, m m m n n n 的计算方式如下:

m = ∑ i = 1 M ∑ j = 1 N i ∑ k = 1 Q i ∣ x i j − x i k ∣ w i j + w i k ∑ i = 1 M N i × Q i n = ∑ i = 1 M ∑ j = 1 N i ∑ k = 1 Q i ∣ y i j − y i k ∣ h i j + h i k ∑ i = 1 M N i × Q i \begin{array}{l} m=\frac{\sum_{i=1}^{M} \sum_{j=1}^{N_{i}} \sum_{k=1}^{Q_{i}} \frac{\left|x_{i j}-x_{i k}\right|}{w_{i j}+w_{i k}}}{\sum_{i=1}^{M} N_{i} \times Q_{i}} \\ n=\frac{\sum_{i=1}^{M} \sum_{j=1}^{N_{i}} \sum_{k=1}^{Q_{i}} \frac{\left|y_{i j}-y_{i k}\right|}{h_{i j}+h_{i k}}}{\sum_{i=1}^{M} N_{i} \times Q_{i}} \end{array} m=i=1MNi×Qii=1Mj=1Nik=1Qiwij+wikxijxikn=i=1MNi×Qii=1Mj=1Nik=1Qihij+hikyijyik

SimD 包含两部分:位置相似度( sim location \text{sim}_{\text{location}} simlocation)和形状相似度( sim shape \text{sim}_{\text{shape}} simshape)。如(2)式所示, ( x g , y g ) \left(x_{g}, y_{g}\right) (xg,yg) ( x a , y a ) \left(x_{a}, y_{a}\right) (xa,ya) 分别代表真实标签和锚点的中心坐标, w g , w a , h g , h a w_{g}, w_{a}, h_{g}, h_{a} wg,wa,hg,ha 分别代表真实标签和锚点的宽度和高度。公式的主要部分是真实标签和锚点中心点之间的距离,这与DotD公式[2]类似。不同的是,我们使用两个边界框的宽度和高度乘以相应的参数来消除不同大小边界框之间的差异。这个过程类似于归一化的思想。这也是为什么我们的度量标准能够轻松适应数据集中不同对象大小的原因。(3)式中的形状相似度与(2)式类似。

两个归一化参数的定义如(4)和(5)所示。因为它们非常相似,我们以(4)中的参数 m m m为例进行进一步讨论。 m m m是在整个训练集中,所有真实框和锚框在 x x x方向上的距离与两者宽度之和的平均比率。 M M M代表训练集中图像的数量, N i N_{i} Ni Q i Q_{i} Qi分别代表第 i i i张图像中真实框和锚框的数量。 x i j x_{ij} xij x i k x_{ik} xik分别代表第 i i i张图像中第 j j j个真实框和第 k k k个锚框中心点的 x x x坐标。 w i j w_{ij} wij w i k w_{ik} wik分别代表第 i i i张图像中第 j j j个真实框和第 k k k个锚框的宽度。由于这两个归一化参数是根据训练集计算的,因此我们的度量标准也可以自动适应不同的数据集。

为了便于标签分配,我们使用指数函数将SimD的值缩放到零到一之间。如果两个边界框相同,则根号下的值将为零,因此SimD将等于一。如果两个边界框差异很大,则该值将非常大,因此SimD将接近零。

B. 基于相似度距离的检测器

在(1)中定义的新型SimD度量标准能够很好地反映两个边界框之间的关系,并且易于计算。因此,在需要计算两个边界框之间相似性的场景中,它可以替代IoU。

基于SimD的标签分配。在传统的目标检测器中,如Faster R-CNN[8]、Cascade R-CNN[25]和DetectoRS[26],RPN和R-CNN模型的标签分配策略是MaxIoUAssigner。MaxIoUAssigner考虑三个阈值:正阈值、负阈值和最小正阈值。对于与真实框的IoU高于正阈值的锚框,它们被视为正样本;对于IoU低于负阈值的锚框,它们被视为负样本;对于IoU位于正阈值和负阈值之间的锚框,它们被忽略。对于微小目标检测,Xu等人引入了RKA[24]和HLA[4]标签分配策略,它们不使用固定阈值来划分正负样本。在RKA中,简单地选择与真实框相关联的前k个锚框作为正样本,这种策略可以增加正样本的数量,因为正标签的分配不受正阈值的限制。然而,引入过多的低质量正样本可能会导致检测精度下降。

在本文中,我们遵循传统的MaxIoUAssigner策略,并简单地使用SimD代替IoU。正阈值、负阈值和最小正阈值分别设置为 0.7 0.7 0.7 0.3 0.3 0.3 0.3 0.3 0.3。我们的标签分配策略被命名为MaxSimDAssigner。

基于SimD的非极大值抑制(NMS)。非极大值抑制(NMS)是后处理中最重要的组件之一。其目的是通过仅保留最佳的检测结果来消除重复检测的预测边界框。在传统的NMS过程中,首先计算得分最高的边界框与其他所有边界框之间的IoU。然后,消除IoU高于某个阈值的边界框。考虑到SimD的优势,我们可以简单地将其用作NMS的度量标准,以代替传统的IoU度量标准。

四、实验

为了验证我们提出的方法的可靠性,我们设计了一系列实验,涉及将传统目标检测器应用于几个开源的微小目标检测数据集。

A. 数据集

微小目标检测数据集主要有两种类型:一种仅包含小物体,如AI-TOD[27]、AITODv2[24]和SODA-D[1];另一种同时包含小物体和中等大小的物体,如VisDrone2019[28]和TinyPerson[29]。

AI-TOD。AI-TOD(Aerial Images中的微小目标检测)是一个用于解决航空图像目标检测任务可用数据集短缺问题的航空遥感小目标检测数据集。它包含28,036张图像和700,621个对象实例,这些实例被分为八个具有精确注释的类别。由于其对象实例的极小尺寸(平均大小仅为12.8像素),它可以有效地用于测试微小目标检测器的性能。

SODA-D。SODA(Small Object Detection datasets)系列包括两个数据集:SODA-A和SODA-D。SODA-D是从MVD[30]中收集的,由从街道、高速公路和其他类似场景中捕获的图像组成。SODA-D[1]中包含25,834个极小的物体(面积范围从0到144),使其成为微小目标检测任务的优秀基准。

VisDrone2019。VisDrone2019是来自VisDrone图像中的目标检测挑战的数据集。为了这次竞赛,在不同地点、不同高度和角度下,使用无人机捕获了10,209张静态图像。VisDrone2019也是一个评估微小目标检测器的优秀数据集,因为它不仅包含极小的物体,还包含正常大小的物体。

B. 实验设置

在以下一系列实验中,我们使用了一台配备NVIDIA RTX A6000 GPU的计算机,并基于目标检测框架MMDetection [31]和PyTorch [32]实现了各种模型。我们使用通用的目标检测器,如Faster R-CNN、Cascade R-CNN和DetectoRS作为基准模型,并简单地将MaxIoUAssigner模块替换为我们的SimD分配模块。我们的方法可以有效地适应任何骨干网络和基于锚的检测器。遵循主流设置,对于所有模型,均使用在ImageNet上预训练的ResNet-50-FPN作为骨干网络,并采用随机梯度下降(SGD)作为优化器,动量设置为0.9,权重衰减设置为0.0001。批量大小设置为2,初始学习率设置为0.005。在训练和测试阶段,区域候选网络(RPN)的提议数量均为3000。对于VisDrone2019数据集,训练轮次设置为12,学习率在第8轮和第11轮时衰减。对于AI-TOD、AI-TODv2和SODA-D,训练轮次设置为24,学习率在第20轮和第23轮时衰减。对于非极大值抑制(NMS),我们使用IoU度量,其中RPN的IoU阈值设置为0.7,R-CNN的IoU阈值设置为0.5。配置的其他方面,如数据预处理和流程,遵循MMDetection的默认设置。

为了便于与以往的研究结果进行比较,在测试阶段,我们使用AI-TOD基准评估指标,这些指标包括平均精度(AP)、 A P 0.5 AP_{0.5} AP0.5 A P 0.75 AP_{0.75} AP0.75 A P v t AP_{vt} APvt A P t AP_{t} APt A P s AP_{s} APs A P m AP_{m} APm,用于AI-TOD、AI-TODv2和VisDrone2019。对于SODA-D数据集,我们使用COCO评估指标。

C. 结果

我们在AI-TOD、AI-TODv2、VisDrone2019和SODA-D数据集上设计了四组实验。在每一组中,我们都将RPN模块中的IoU度量替换为我们的SimD度量,然后将该模块与传统目标检测模型(包括Faster RCNN、Cascade R-CNN和DetectoRS)相结合进行应用。
在这里插入图片描述

AI-TOD的结果如表II所示,我们在其中将我们的方法与几种典型的目标检测方法进行了比较。前七行的检测器是基于锚点的两阶段检测器,接下来的三行和四行分别是基于锚点的一阶段检测器和无锚点检测器,最后三行展示了我们方法的结果。与Faster R-CNN、Cascade R-CNN和DetectoRS相比,我们在RPN中用SimD替代IoU后,分别实现了12.8、11.2和11.8个点的AP提升。我们还将我们的方法与一些针对微小物体的专用检测器(即DotD、NWD和RFLA)进行了比较,与这些检测器相比,我们的方法分别将AP提高了10.5、5.8和1.8个点。
在这里插入图片描述

我们的方法在微小物体上的性能尤其值得关注。由于这些物体极小(非常小的尺寸范围从2到8个像素),一般目标检测器的 A P v t AP_{vt} APvt为0,而使用SimD后,Faster R-CNN、Cascade R-CNN和DetectoRS的 A P v t AP_{vt} APvt值分别从0提升到11.9、13.2和13.4个点。
在这里插入图片描述
在这里插入图片描述

除了AI-TOD外,我们的方法在AI-TODv2、VisDrone2019和SODA-D上也取得了最佳性能,如表III、表IV和表V所示。在AI-TODv2和SODA-D上,我们的方法的AP分别比其最佳竞争对手高出1.8和1.6个点。在包含微小物体和一般尺寸物体的VisDrone2019上,我们的方法也表现良好,特别是在与RFLA相比时,实现了1.3个点的提升。在表V中,虽然 A P 0.5 AP_{0.5} AP0.5与RFLA相近,但 A P 0.75 AP_{0.75} AP0.75要高得多,这可能表明我们的方法在微小物体检测方面更有优势。IoU度量和SimD之间的一些典型视觉比较如图3所示。我们可以发现,在使用我们的方法后,检测性能有了明显的提升。
在这里插入图片描述

D. 消融研究

在我们提出的方法中,一个重要的操作是基于真实框和锚点的宽度和高度的归一化。为了验证归一化操作的有效性,我们进行了一组消融研究。如表VI所示,我们分别比较了不进行归一化、仅对宽度进行归一化、仅对高度进行归一化以及对宽度和高度都进行归一化的情况。实验结果表明,归一化操作实现了3.5个点的提升,这主要得益于它能够适应数据集中不同大小的对象,并且归一化参数 m , n m, n m,n可以根据不同的数据集进行自适应调整。

E. 分析

从表II到表V的实验结果中,我们发现我们的方法在所有四个数据集上都达到了最高的平均精度(AP)。此外,在AI-TOD、AI-TODv2和VisDrone2019数据集上,我们的方法对于极小、小和中等大小的目标都取得了最佳结果。我们的方法可以总结为三个主要成就。

首先,我们的方法有效地解决了微小目标检测精度低的问题。最根本的原因是,我们的方法充分考虑了两个边界框之间的相似性,包括位置和形状的相似性,因此,在使用SimD度量时,只有最高质量的锚点会被选为正样本。与VisDrone2019相比,在AITOD和AI-TODv2数据集上的性能提升更为显著,因为这两个数据集中的目标要小得多,这一现象可能也反映了我们的方法在微小目标检测方面的有效性。

其次,我们的方法能够很好地适应数据集中不同大小的目标。在表IV中,我们的方法在平均精度(AP)和微小目标平均精度( A P v t \mathrm{AP}_{vt} APvt)上的值都是最好的,并且远高于其他方法。主要原因是,在计算边界框之间的相似性时,SimD度量中采用了归一化处理,因此可以消除不同大小边界框之间的差异。一些典型的检测结果如图4所示。
在这里插入图片描述

最后,我们的方法在四个不同的数据集上达到了最先进的结果。尽管不同数据集中对象的特点各不相同,但我们在计算归一化参数时使用了训练集中真实值和锚点之间的关系,这使得我们的度量标准能够自动适应不同的数据集。此外,我们的公式中不需要设置超参数。

五、结论

在本文中,我们指出大多数现有方法可能无法自动适应不同大小的对象,并且包含一些需要选择的超参数。为此,我们提出了一种新的评估指标,称为相似度距离(SimD),它不仅考虑了位置和形状的相似性,还能够自动适应数据集中不同数据集和不同对象的大小。此外,我们的公式中没有超参数。最后,我们在四个经典的微小目标检测数据集上进行了广泛的实验,我们的方法在这些数据集上取得了最先进的结果。尽管我们提出的SimD度量标准是自适应的,但它也基于具有固定阈值的现有标签分配策略。在未来,我们旨在进一步提高微小目标检测的标签分配效率。


http://www.ppmy.cn/news/1521971.html

相关文章

Faker在pytest中的应用

Faker在pytest中的应用主要体现在测试数据的准备上,通过生成逼真的伪数据来模拟真实场景,从而提高测试的覆盖率和可靠性。以下是一些具体的应用例子: 用户信息测试 在测试用户注册、登录等功能时,Faker可以生成大量的用户信息&a…

逻辑代数的基本定律,常用公式

目录 逻辑代数的基本定律 0-1律 同一律 互补律 还原律 交换律 结合律 分配律 摩根定理(反演律) 逻辑代数的常用公式 吸收律 冗余律 思考 异或运算的一些公式 逻辑代数的基本定律 最基本的与或非的运算。 0-1律 同一律 互补律 还原律 交…

统一NLP和目标检测的DETR(一)——self attention、encoder、decoder

主流目标检测算法劣势 YOLO系列,它基于anchor来做,少不了要用MNS,导致速度相对较慢。 但今天介绍一款DETR,基于VIT的目标检测算法。 那么我们需要先深入过一遍VIT。 Vision transform 1、传统RNN网络的问题 单向:只…

Java8 Stream流的基本使用

Java 8 中引入的 Stream API 是为了简化对集合类库(例如 List 和 Set)的操作,同时支持声明式编程风格和并行操作。Stream 不存储数据,而是对数据源进行流水线式操作,其设计核心是“将数据处理的每一步链接起来&#xf…

kubernetes集群下部署kafka+zookeeper单机部署方案

背景: 注:在kubernetes集群上部署单机版的zookeeperkafka服务,是采用了kubernetes中的deploment组件service组件pvc存储组件 1、部署zookeeper服务: 注:这里时候的镜像是:dockerhub.jiang.com/jiang-public…

【佳学基因检测】如何使用Letsencrypt对一个网站进行加密?

【佳学基因检测】如何使用Letsencrypt对一个网站进行加密? 更换为Let’s Encrypt证书涉及以下几个步骤: 1. 安装Certbot Certbot是Let’s Encrypt的客户端工具,它可以帮助你申请和管理证书。首先,你需要在服务器上安装Certbot。…

[C++11#45](二) 右值引用 | 移动语义 | 万能引用 | 完美转发forward | 初识lambda

目录 一. 右值引用 1.左值 vs 右值 2.左值引用 vs 右值引用 右值引用实现的两种底层优化 Q1: 容器上 Q2: 字符串上 解决:右值引用 3.完美转发 完美转发 4.补充 1.移动赋值 2.右值引用引用左值的场景 二.lambda 1.引入 2.lambd…

无人机之载重篇

无人机的载重能力是一个复杂且多样化的参数,它受到多种因素的影响,包括无人机的类型、设计、技术规格以及用途等。以下是对无人机载重能力的详细解析: 一、无人机载重能力的差异 无人机的载重能力差异很大,从几百克到几十千克不等…

Java后端分布式系统的服务容错机制:Faul-tolerant Systems

Java后端分布式系统的服务容错机制:Faul-tolerant Systems 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在构建分布式系统时,服务的容错性是确保系统稳定性和可用性的…

安宝特科技 | AR眼镜在安保与安防领域的创新应用及前景

随着科技的不断进步,增强现实(AR)技术逐渐在多个领域展现出其独特的优势,尤其是在安保和安防方面。AR眼镜凭借其先进的功能,在机场、车站、海关、港口、工厂、园区、消防局和警察局等行业中为安保人员提供了更为高效、…

TCP 和 UDP 区别

UDP UDP(用户数据报协议,User Datagram Protocol)是一种无连接的网络传输协议,提供了简单的消息传送服务。UDP位于传输层,允许应用程序向其他主机发送封装在IP数据报中的消息,而无需先建立连接。由于UDP不…

【论文笔记】Multi-Task Learning as a Bargaining Game

Abstract 本文将多任务学习中的梯度组合步骤视为一种讨价还价式博弈(bargaining game),通过游戏,各个任务协商出共识梯度更新方向。 在一定条件下,这种问题具有唯一解(Nash Bargaining Solution),可以作为多任务学习中的一种原则…

I2VGen-XL模型构建指南

一、介绍 VGen可以根据输入的文本、图像、指定的运动、指定的主体,甚至人类提供的反馈信号生成高质量的视频。它还提供了各类常用的视频生成模型工具,例如可视化、采样、训练、推理、使用图像和视频的联合训练,加速等各类工具和技术。 &quo…

微信小程序显示后台文章副文本,图片和视频正常显示

解决方案: 使用 wxParse 或 rich-text 组件: 这两种方式可以解析 HTML 字符串并渲染富文本内容,包括图片和视频。 数据处理: 将后台返回的富文本数据进行处理,提取出图片和视频的链接,并将其转换成小程序支持的格式。 方案一:使…

数据库学习01——mysql怎么创建数据库和表

第一步:创建数据库 使用 create database 语句,后跟要创建的数据库名称: CREATE DATABASE dbname;例如,要创建名为 my_db 的数据库,请输入: CREATE DATABASE my_db ;使用 show databases; 语句检查数据库是…

第十六篇:走入计算机网络的传输层--传输层概述

1. 传输层的功能 ① 分割与重组数据 一次数据传输有大小限制,传输层需要做数据分割,所以在数据送达后必然也需要做数据重组。 ② 按端口号寻址 IP只能定位数据哪台主机,无法判断数据报文应该交给哪个应用,传输层给每个应用都设…

Java基础 ——线程

多线程 并行和并发 需求:边打英雄联盟和边听音乐 问题:只能先后关系,并不能同时发生 多进程或者多线程来解决 并行和并发: 并行:多件事情在同一时刻发生 并发:多件事情在同一时间段发生,同一…

无线信道中ph和ph^2的场景

使用 p h ph ph的情况: Rayleigh 分布的随机变量可以通过两个独立且相同分布的零均值、高斯分布的随机变量表示。设两个高斯随机变量为 X ∼ N ( 0 , σ 2 ) X \sim \mathcal{N}(0, \sigma^2) X∼N(0,σ2)和 Y ∼ N ( 0 , σ 2 ) Y \sim \mathcal{N}(0, \sigma^2)…

回归预测 | Matlab基于贝叶斯算法优化XGBoost(BO-XGBoost/Bayes-XGBoost)的数据回归预测+交叉验证

回归预测 | Matlab基于贝叶斯算法优化XGBoost(BO-XGBoost/Bayes-XGBoost)的数据回归预测交叉验证 目录 回归预测 | Matlab基于贝叶斯算法优化XGBoost(BO-XGBoost/Bayes-XGBoost)的数据回归预测交叉验证效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现基于贝叶…

端口安全老化细节

我们都知道port-security aging-time命令用来配置端口安全动态MAC地址的老化时间,但是后面还可以加上类型: [SW1-GigabitEthernet0/0/1]port-security aging-time 5 type absolute Absolute time 绝对老化 inactivity Inactivity time相对老化 …