第十四章:通过迭代挖掘共同物体特征的弱监督语义分割

news2024/9/22 1:27:37

0.摘要

        在图像标签监督下进行弱监督语义分割是一项具有挑战性的任务,因为它直接将高层语义与低层外观相关联。为了弥合这一差距,本文提出了一种迭代的自底向上和自顶向下的框架,交替扩展对象区域和优化分割网络。我们从分类网络产生的初始定位开始。虽然分类网络只对较小和粗糙的有区别的对象区域敏感,但我们认为这些区域包含了关于对象的重要共同特征。因此,在自底向上的步骤中,我们从初始定位中挖掘共同的物体特征,并利用这些特征扩展对象区域。为了补充非有区别的区域,我们在贝叶斯框架下考虑显著性图来细化对象区域。然后,在自顶向下的步骤中,使用细化后的对象区域作为监督来训练分割网络并预测对象掩膜。这些对象掩膜提供了更准确的定位并包含更多的对象区域。进一步地,我们将这些对象掩膜作为初始定位并从中挖掘共同的物体特征。这些过程迭代地进行,逐渐产生精细的对象掩膜并优化分割网络。在Pascal VOC 2012数据集上的实验结果表明,所提出的方法在性能上显著优于以前的最先进方法。

1.引言

        在图像标签监督下的弱监督语义分割是对图像进行逐像素的分割,仅提供图像中已存在的语义对象的标签。由于它依赖于非常轻微的人工标注,它对于许多计算机视觉任务都有好处,例如目标检测[8]和自动驾驶[3]。

        然而,弱监督语义分割非常具有挑战性,因为它直接将高层语义与低层外观相关联。由于只有图像标签可用,大多数先前的工作依赖于分类网络来定位对象。然而,在没有像素级注释的情况下,分类网络只能产生不准确和粗糙的有区别的对象区域,这无法满足像素级语义分割的要求,从而影响了性能。

        为了解决这个问题,本文提出了一个迭代的自底向上和自顶向下的框架,通过从初始定位中挖掘共同的物体特征(MCOF)来逐步扩展对象区域,从而容忍不准确的初始定位。我们的动机是,虽然分类网络产生的初始定位是粗糙的,但它给出了一定的有区别的对象区域,这些区域包含了关于对象的重要知识,即共同的物体特征。例如,如图1(a)所示,一些图像可能定位到人的手,而其他图像可能定位到头部。给定一组训练图像,我们可以从中学习共同的物体特征来预测整个对象的区域。因此,在自底向上的步骤中,我们将初始的对象定位作为对象种子,并从中挖掘共同的物体特征来扩展对象区域。然后,在自顶向下的步骤中,我们使用挖掘出的对象区域作为监督来训练分割网络,以预测精细的对象掩膜。预测的对象掩膜包含了更多的对象区域,这些区域更准确,并提供了更多的对象训练样本,因此我们可以进一步从中挖掘共同的物体特征。上述过程以迭代方式进行,逐步生成精细的对象区域并优化分割网络。通过迭代,初始定位中的不准确区域逐渐被纠正,因此我们的方法具有鲁棒性,可以容忍不准确的初始定位。图1(b)显示了一些初始定位非常粗糙和不准确的示例,而我们的方法仍然可以产生令人满意的结果。

        具体而言,我们首先训练一个图像分类网络,并使用分类激活图(CAM)[34]定位对象的有区别的区域。然后,将图像分割为超像素区域,并使用CAM为其分配类别标签,这些区域被称为初始对象种子。初始对象种子包含一定的对象关键部位,因此在自底向上的步骤中,我们从中挖掘共同的物体特征,然后扩展对象区域。我们通过训练一个区域分类网络并使用该网络来预测对象区域来实现这一点。虽然这些区域可能仍然只关注对象的关键部位,但为了补充非有区别的区域,我们提出了基于贝叶斯框架的显著性引导细化方法,该方法考虑了扩展的对象区域和显著性图。然后,在自顶向下的步骤中,我们使用细化后的对象区域作为监督来训练分割网络,以预测分割掩膜。通过上述过程,我们可以获得包含更完整的对象区域的分割掩膜,比初始对象种子更准确。然后,我们将分割掩膜作为对象种子,并进行迭代过程。通过迭代,提出的MCOF框架逐步生成更准确的对象区域,并提高分割网络的性能。最终训练好的分割网络用于推断。

我们的工作主要有以下三个贡献:

  • 我们提出了一个迭代的自底向上和自顶向下的框架,通过迭代挖掘共同的物体特征,逐步生成准确的对象掩膜并优化分割网络,从而容忍不准确的初始定位。
  • 我们提出了基于显著性引导的细化方法,以补充在初始定位中被忽略的非有区别的区域。
  • 在PASCAL VOC 2012分割数据集上的实验证明,我们的方法优于先前的方法,并实现了最先进的性能。

 

图1.(a) 展示了提出的MCOF框架的示意图。我们的框架迭代地挖掘共同的物体特征并扩展对象区域。(b) 展示了初始对象种子和我们挖掘的对象区域的示例。我们的方法可以容忍不准确的初始定位并产生令人满意的结果。

2.相关工作

        在本节中,我们介绍与我们的工作相关的全监督和弱监督语义分割网络。

2.1.全监督语义分割

        全监督方法需要大量的像素级注释,根据处理模式,它们可以分为基于区域和基于像素的网络。基于区域的网络将图像视为一组区域,并提取它们的特征来预测它们的标签。Mostajabi等人[17]提出了Zoom-out特征,它将局部、相邻、远距离邻近的超像素和整个场景的特征结合起来对每个超像素进行分类。像素级网络将整个图像作为输入,并使用完全卷积层端到端地预测像素级标签。Long等人[16]提出了全卷积网络(FCN)和跳过连接结构,以产生准确和详细的语义分割。Chen等人[2]提出了DeepLab,引入了“空洞算法”,通过较低的步幅扩大感受野以产生更密集的分割。基于FCN和DeepLab的许多工作[1,18,32]已经被提出。像素级网络被证明在语义分割中比基于区域的网络更强大。然而,在本文中,我们充分利用了这两种网络的优势。我们证明基于区域的网络在学习对象的共同特征方面很强大,因此可以生成精细的对象区域作为监督来训练基于像素的网络。

2.2.弱监督语义分割

        虽然全监督方法需要大量的像素级注释,这非常昂贵,但最近的进展已经利用弱监督进行了语义分割,包括边界框[4,19,12]、涂鸦[15]和图像级标签[21,22,25,19,31,13,23,30]。在本文中,我们只关注最弱的监督,即图像级监督。

        在图像级别的弱监督语义分割中,由于只有图像标签可用,大多数方法都基于分类方法,这些方法可以粗略地分为两类:基于多实例学习(MIL)的方法,直接使用分类网络预测分割掩膜;基于定位的方法,利用分类网络生成初始定位,并将其用于监督分割网络。

        基于多实例学习(MIL)的方法[21,22,13,25,5]将弱监督学习构建为一个MIL框架,在该框架中,每个图像至少有一个像素属于某个类别,任务是找到这些像素。Pinheiro等人[22]提出了Log-Sum Exp(LSE)将输出特征图汇集到图像级别的标签中,使网络可以作为分类任务进行端到端训练。Kolesnikov等人[13]提出了全局加权排序池化(GWRP)方法,给予最后一个池化层中有希望的位置更大的权重。然而,虽然基于MIL的方法可以定位具有区分性的对象区域,但它们的对象边界粗糙,因此性能不令人满意。

        基于定位的方法[19,31,13,23,30]旨在从弱标签中生成初始的对象定位,并将其作为监督来训练分割网络。Kolesnikov等人[13]使用从分类网络生成的定位线索作为一种监督,他们还提出了分类损失和边界感知损失来考虑类别和边界约束。Wei等人[30]提出了对抗抹除方法,通过分类网络逐步挖掘对象区域。尽管Wei等人[30]也旨在从初始定位中扩展对象区域,但他们依赖分类网络在擦除图像中顺序产生最具区分性的区域。这将导致错误累积,挖掘出的对象区域将具有粗糙的对象边界。本文提出的MCOF方法从粗糙的对象种子中挖掘共同的对象特征,预测更精细的分割掩膜,并从预测的掩膜中迭代地挖掘特征。我们的方法逐步扩展对象区域并纠正不准确的区域,对噪声具有鲁棒性,因此可以容忍不准确的初始定位。通过利用超像素的优势,挖掘出的对象区域将具有清晰的边界。

图2.提出的MCOF框架的流程。首先(t=0),我们从初始对象种子中挖掘共同的对象特征。我们将(a)图像分割为(b)超像素区域,并使用(d)初始对象种子训练(c)区域分类网络RegionNet。然后,我们使用训练好的RegionNet重新预测训练图像的区域以获取对象区域。虽然对象区域可能仍然只集中在对象的有区别的区域,但我们通过(e)基于显著性的细化来解决这个问题,得到(f)细化的对象区域。然后,使用细化的对象区域来训练(g)PixelNet。使用训练好的PixelNet,我们重新预测训练图像的(d)分割掩膜,并将其作为监督来训练RegionNet,上述过程迭代进行。通过迭代,我们可以挖掘更细的对象区域,最后一个迭代中训练的PixelNet用于推理。

3.所提出的MCOF的架构

        分类网络只能产生粗糙和不准确的区分对象定位,这与像素级语义分割的要求相去甚远。为了解决这个问题,在本文中,我们认为,尽管初始对象定位是粗糙的,但它包含了关于对象的重要特征。因此,我们提出从初始对象种子中挖掘共同的对象特征,逐步纠正不准确的区域,并生成精细的对象区域来监督分割网络。

        如图2所示,我们的框架包括两个迭代步骤:自下而上的步骤和自上而下的步骤。自下而上的步骤从对象种子中挖掘共同的对象特征,生成精细的对象区域;自上而下的步骤使用生成的对象区域来训练弱监督的分割网络。预测的分割掩膜包含比初始对象种子更完整的对象区域。然后,我们将它们作为对象种子来挖掘共同的对象特征,并通过迭代的方式逐步纠正不准确的区域并生成精细的对象区域。

        需要注意的是,在第一次迭代中,初始对象种子只包含有区别的区域,经过挖掘共同的对象特征后,一些非区分性的区域仍然缺失。为了解决这个问题,我们提出将显著性图与挖掘的对象区域结合起来。经过第一次迭代后,分割掩膜中包含更多的对象区域,并且更准确,而显著性图的准确性也有限,因此在后续的迭代中,不使用显著性图以避免引入额外的噪声。整个过程总结如算法1所示。值得注意的是,迭代过程仅在训练阶段应用,在推理阶段只使用最后一次迭代的分割网络,因此推理效率高。

4.挖掘共同物体特征

4.1.初始对象种子

        为了获得初始的对象定位,我们训练了一个分类网络,并使用CAM方法[34]生成每个对象的热力图。如图3所示,热力图非常粗糙。为了定位对象的区分性区域,首先我们使用基于图的分割方法[7]将图像分割为超像素区域,并在每个区域内对热力图进行平均。我们观察到CAM图通常具有几个中心区域,周围是低置信度区域,而中心区域大多是对象的关键部分。因此,对于每个热力图,我们选择其局部最大区域作为初始种子。然而,这可能会漏掉许多区域,因此我们还选择热力图大于阈值的区域作为初始种子。图3中显示了一些示例。

 图3.从目标热图中生成初始目标种子的示例。(a)图像,(b)基于CAM [34]生成的目标热图,(c)每个超像素中平均的目标热图,(d)初始目标种子。

4.2.从初始对象种子中挖掘共同物体特征

        初始目标种子过于粗糙,无法满足语义分割的要求,但它们包含了物体的区分性区域。例如,如图4所示,一张图像可能定位到一个人的手,而另一张图像可能给出了人脸的位置。我们认为,同一类别的区域具有一些共享的属性,即共同的物体特征。因此,给定一组带有种子区域的训练图像,我们可以从中学习共同的物体特征,并预测整个物体的区域,从而扩展物体的区域并抑制噪声区域。我们通过使用目标种子作为训练数据,训练一个区域分类网络,称为RegionNet,来实现这一点。

        形式化地说,给定N个训练图像I={Ii}Ni=1,我们首先使用基于图的分割方法[7]将它们分割成超像素区域R={Ri,j}Ni=1,ji=1,其中ni是图像Ii的超像素区域数。在第4.1节中,我们已经得到了初始的目标种子,有了它们,我们可以为超像素区域R给出标签,并将其表示为S={Si,j}Ni=1,ji=1,其中Si,j是一个独热编码,如果Ri,j属于类别c,则Si,j(c)=1,其他类别为0。基于训练数据D={(Ri,j,Si,j)}Ni=1,ji=1,我们的目标是训练一个由参数θr参数化的区域分类网络fr(R;θr),来建模区域Ri,j属于类别c的概率,即fcr(Ri,j|θr)=p(y=c|Ri,j)。

        我们使用高效的基于掩码的Fast R-CNN框架[9,28,29]来实现这一目标。在这个框架中,我们将每个区域的外接矩形作为原始Fast R-CNN框架中的RoI(感兴趣区域)。在RoI池化层中,我们对超像素区域内的特征进行池化,而对于位于超像素区域外但在外接矩形内的特征,我们将其池化为零。为了训练这个网络,我们最小化交叉熵损失函数:

        通过训练RegionNet,可以从初始目标种子中提取共同的物体特征。然后,我们使用训练好的网络来预测训练图像的每个区域的标签。在预测过程中,一些错误的区域和最初被标记为背景的区域可以被正确分类,从而扩展物体区域。如图4(a)和(b)所示的示例中,我们可以看到由RegionNet预测的物体区域包含更多的物体区域,初始目标种子中的一些噪声区域得到了修正。在本文中,我们将这些区域称为物体区域,并表示为O={Oi}Ni=1。需要注意的是,由于我们拥有训练图像的类别标签,我们可以去除错误的预测并将它们标记为背景。这将确保产生的物体区域不包含任何不存在的类别,这对于训练后续的分割网络非常重要。

图4.左侧:目标种子的示例。它们提供了不同位置物体的特征。然而,它们主要关注对识别有帮助的关键部分。右侧:(a)初始的目标种子,(b)由RegionNet预测的物体掩码,(c)显著性图,(d)通过贝叶斯框架得到的修正的物体区域,(e)PixelNet的分割结果。

图5.对于只有单个物体类别的图像,显著物体区域可能与语义分割不一致。此外,它们可能不准确,并可能定位到语义分割数据集中未包含的其他物体。(a)图像,(b)DRFI [11]的显著性图,(c)语义分割。

4.3.基于显著性引导的对象区域补充

        需要注意的是,RegionNet是从主要包含物体关键区域的初始种子区域中学习得到的。通过使用RegionNet,可以扩展物体区域,但仍然存在一些被忽视的区域。例如,初始种子区域主要关注人物的头部和手部,而其他区域,如身体,经常被忽视。在通过RegionNet进行扩展后,身体的一些区域仍然缺失(图4(b))。

        为了解决这个问题,我们提出在只有单一物体类别的图像中,通过结合显著性图来补充物体区域。需要注意的是,我们不像以前的方法[31]那样直接使用显著性图作为初始定位,因为在某些情况下,显著物体可能不是我们在语义分割中需要的物体类别,而且显著性图本身也包含噪声区域,这会影响定位的准确性。图5中展示了一些示例。

        为了解决这个问题,我们提出了基于显著性指导的物体区域补充方法,该方法在贝叶斯框架下考虑了挖掘得到的物体区域和显著性图。在第4.2节中,我们挖掘了包含物体关键部分的物体区域。基于这些关键部分,我们的目标是通过显著性图来补充物体区域。我们的想法是,对于一个具有高显著性值的区域,如果它与挖掘得到的物体相似,那么它更有可能是该物体的一部分。我们可以将上述假设用贝叶斯优化[33,27]进行建模。

        其中,p(obj)是显著性图,p(bg) = 1 - p(obj),p(v|obj)和p(v|bg)是物体区域和背景区域的特征分布,v是特征向量,p(obj|v)是经过改进的物体映射,表示具有特征v的区域是物体的概率。通过使用CRF [14]对改进的物体映射p(obj|v)进行二值化,我们可以得到通过显著性图来补充原始物体区域的改进的物体区域。在我们的工作中,我们使用DRFI方法[11]的显著性图,与[31]中相同。

        图4中展示了一些示例,通过结合显著性图,包含了更多的物体区域。在本文中,我们将这些区域称为改进的物体区域,并用OR={OiR}Ni=1表示。

 图6.所提出框架的中间结果。(a)图像,(b)初始物体种子,(c)由RegionNet预测的扩展物体区域,(d)显著性引导的改进物体区域。需要注意的是,显著性引导的改进仅适用于单一类别的图像,对于多类别的图像(第3行和第4行),物体区域保持不变。PixelNet在第(e)1、(f)2、(g)3、(h)4、(i)5次迭代中的分割结果,(j)地面真实值。

5.迭代学习框架

        改进后的物体区域为我们提供了可靠的物体定位信息,我们可以将它们用作训练弱监督语义分割网络的监督信息。而以前的工作[13,30,5]依赖于定位线索和类别标签来设计和训练分割网络,但在我们的工作中,我们已经在之前的RegionNet中去除了错误的类别区域,因此改进后的物体区域不包含任何错误的类别。因此,我们只能使用定位线索作为监督信息,这与全监督框架完全兼容,因此我们可以受益于现有的全监督架构。在本文中,我们使用了流行的DeepLab-LargeFOV模型[2]作为我们分割网络的基础网络,命名为PixelNet。

        形式化地说,给定训练图像I={Ii}Ni=1和相应的改进的物体区域OR={OiR}Ni=1,我们的目标是通过参数化的分割网络fs(I;θs)(参数为θs)来建模位置u属于类别标签c的概率,即fu,c s(I|θs)=p(yu=c|I)。损失函数是交叉熵损失,它鼓励预测与我们的改进物体区域相匹配:

        其中,C是类别数,Sc是在监督中标记为类别c的位置集合。监督线索,即物体区域,是由区域分类网络产生的,它只考虑每个区域内的特征。而在PixelNet中,考虑整个图像,因此利用了上下文信息。使用训练好的PixelNet来预测训练图像的分割掩码,分割掩码将进一步包含更多的物体区域。图4中展示了一些示例,我们可以看到预测的分割掩码定位了更多的物体区域,并抑制了之前步骤中的噪声区域。

        进一步地,我们将预测的分割掩码作为物体种子,并迭代地进行上述过程。随着迭代的进行,可以挖掘更加鲁棒的共有物体特征,从而产生更精细的物体区域,并且分割网络在更好的监督下逐渐优化。图6展示了迭代过程中的结果。随着迭代的进行,物体区域被扩展,并且不准确的区域被修正,因此分割结果变得越来越准确。最后,我们使用最后一次迭代的训练好的PixelNet进行推断,并在实验部分进行评估。

6.实验

6.1.实验设置

        我们在PASCAL VOC 2012图像分割基准测试[6]上评估了提出的MCOF框架。该数据集包含20个物体类别和1个背景类别。对于分割任务,它包含1464个训练图像,1449个验证图像和1456个测试图像。我们使用了增强数据[10]作为训练集,其中包含10582张图像,这是根据以前的工作[13,23,30]进行的。我们在验证集和测试集上评估我们的方法,并将其与其他方法进行比较,以交并比(IoU)在所有21个类别上进行平均。

6.2.与当下方法的对比

        我们将我们的方法与先前的最先进的基于图像级弱监督的语义分割方法进行比较:CCNN [20]、EM-Adapt [19]、MIL-sppxl [22]、STC [31]、DCSM [26]、BFBP [25]、AF-SS [23]、SEC [13]、CBTS [24]和AE-PSL [30]。正如我们上面提到的,我们的PixelNet与完全监督的框架完全兼容,因此我们可以从现有的完全监督架构中受益。在这篇论文中,我们利用了基于VGG16和ResNet101的DeepLab LargeFOV [2]作为PixelNet。表1和表2分别显示了在PASCAL VOC 2012验证集和测试集上的mIoU比较结果。我们可以看到,我们的方法在性能上大大优于之前的方法,并达到了新的最先进水平。当使用VGG16作为基本网络(MCOF-VGG16)时,我们的方法在验证集和测试集上分别比第二好的方法AE-PSL [30]提高了1.2%和1.9%。而当使用更强大的ResNet101(MCOF-ResNet101)时,改进幅度分别达到了5.3%和5.5%。对于训练样本,MIL-sppxl [22]使用了70万张图像,STC [31]使用了5万张图像,而我们的方法和其他方法使用了1万张图像。我们还在图7中展示了所提出框架的一些定性分割结果,我们可以看到,即使在复杂的图像中,我们的弱监督方法也能产生相当令人满意的分割结果。

表1. PASCAL VOC 2012验证集上弱监督语义分割方法的比较。

 

表2. PASCAL VOC 2012测试集上弱监督语义分割方法的比较。

6.3.消融研究

6.3.1.渐进式共同物体挖掘和网络训练框架

        为了评估所提出的渐进式共享对象特征挖掘和网络训练框架的有效性,我们在训练集和验证集上评估了每个迭代中的RegionNet和PixelNet。在消融研究中,我们使用VGG16作为PixelNet的基础网络。结果如表3所示。我们可以看到,初始的对象种子非常粗糙(在训练集上的mIoU为14.27%),通过应用RegionNet学习对象的共享特征,性能达到了29.1%,通过引入基于显著性引导的细化,性能达到了34.8%,在学习了PixelNet之后,性能达到了48.4%。在后续的迭代中,性能逐渐提高,这证明我们的方法是有效的。

图7. 在PASCAL VOC 2012验证集上,所提出的框架的定性分割结果。

表3. 迭代过程的结果。我们在PASCAL 2012数据集的训练集和验证集上评估了每个迭代中的RegionNet和PixelNet。

6.3.2.与直接迭代训练的比较

        我们进行了广泛的实验,通过与直接迭代训练方法进行比较,验证了所提出的渐进式共享对象特征挖掘和网络训练框架的有效性。对于直接迭代训练方法,我们从我们的第一次迭代的分割结果开始,然后在后续的迭代中,使用前一次迭代的分割掩码来训练分割网络。

        图8显示了比较结果。随着迭代的进行,直接迭代方法的性能增长缓慢,只能达到较低的准确度,而在我们提出的MCOF方法中,性能增长迅速,并且达到了更高的准确度。这个结果表明我们的MCOF框架是有效的。MCOF逐步从先前的对象掩码中挖掘共享的对象特征,并扩展更可靠的对象区域来优化语义分割网络,从而准确度可以迅速增加到非常满意的结果。

6.3.3.显著性引导细化的有效性

        初始的对象种子只能定位对象的具有区分性的区域,例如人的头部和手部,而其他区域,例如身体,经常被忽略。为了补充其他对象区域,我们将显著性图与初始的对象种子结合起来。这对于挖掘对象的整个区域非常重要。为了评估有效性,我们在没有显著性引导的细化的框架上进行了实验,并比较了每次迭代中PixelNet的性能。结果如表4所示。没有结合显著性图,一些对象区域将会缺失,因此性能受限,无法达到满意的准确度。

图8. 与直接迭代训练方法的比较。我们的性能迅速提升,而直接迭代训练方法的性能增长缓慢,只能达到较低的准确度。

表4. 评估显著性引导细化的有效性。我们在Pascal VOC 2012验证集上展示了每次迭代中PixelNet的mIoU。没有显著性引导细化,性能将受到限制,无法达到令人满意的准确度。

7.概括

        在本文中,我们提出了一种名为MCOF的迭代自底向上和自顶向下的框架,它通过从对象种子中逐步挖掘共享的对象特征来容忍不准确的初始定位。我们的方法逐步扩展对象区域并优化分割网络。在自底向上的步骤中,从粗糙但有区分度的对象种子开始,我们从中挖掘共享的对象特征来扩展对象区域。为了补充非有区分度的对象区域,我们提出了显著性引导细化方法。然后在自顶向下的步骤中,这些区域被用作监督来训练分割网络并预测分割掩码。预测的分割掩码包含比初始掩码更完整的对象区域,因此我们可以从中进一步挖掘共享的对象特征。这些过程被迭代地进行,以逐步纠正不准确的初始定位并为语义分割生成更准确的对象区域。我们的自底向上和自顶向下的框架弥合了弱监督语义分割中高层语义和低层外观之间的差距,并实现了新的最先进性能。

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

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

相关文章

新版mmpose训练新版RTMDet/Pose及自定义数据集制作

自定义数据集制作:要求满足目标检测网络和关键点检测网络都可以用其来训练 1. 打开Labelme并导入我们的图像文件夹;2. 用矩形框框出目标检测网络要检测的目标,我们起名叫person;3. 用Creat Point 标记关键点,这里我们只检测人的头和裆两个点。这里教一个小技巧:每一个数据…

Mindar.JS——实现AR图像追踪插入图片或视频

Mindar.JS使用方式 注意&#xff1a;此篇文章需要启动https才可调用相机权限 图像追踪示例 需要用到两个js库 <script src"./js/aframe.min.js"></script><script src"./js/mindar-image-aframe.prod.js"></script>下面看一下标签…

一款性价比高的知识管理系统应具备的功能

编者按&#xff1a;市面上的知识管理系统有不同的类型&#xff0c;有针对文件管理的&#xff0c;也有针对内容管理的&#xff0c;各有长处&#xff0c;那么一款好用的KMS大概都具备哪些优点呢&#xff1f; 关键词&#xff1a;知识管理系统、免运维/安装、 随着企业对企业隐形知…

PyCharm解决Git冲突

什么时候会出现冲突 当我们从远程的仓库pull下来的时候&#xff0c;如果远程仓库跟本地仓库修改了同一个文件&#xff0c;在pull的过程中就会提示合并冲突&#xff1a; $ git pull remote developremote: Enumerating objects: 27, done.remote: Counting objects: 100% (27/2…

Postgres日期格式化

1、替换dual的方法 oracle: select ‘111’ phone from dual; Postgres: select ‘111’ phone ; 2、char类型格式化成日期 to_date(‘20230728’,‘yyyyMMdd’) 3、两个日期取相差的天数&#xff08;非绝对值&#xff0c;带正负号&#xff09; extract(day from now()-to_date…

git的clone,上传,mirror与upstream同步

文章目录 clone日志信息的同步子树合并同步 clone clone他人项目&#xff0c;git到自己的项目 rm -rf .git .git存放原始项目的日志信息&#xff0c;这里需要添加自己的日志信息&#xff0c;需要删除重写。也可手动删除 git init 初始化文件&#xff0c;依据本地日志信息生产.…

在CentOS 7上挂载硬盘到系统的步骤及操作

目录 1&#xff1a;查询未挂载硬盘2&#xff1a;创建挂载目录3&#xff1a;检查磁盘是否被分区4&#xff1a;格式化硬盘5&#xff1a;挂载目录6&#xff1a;检查挂载状态7&#xff1a;设置开机自动挂载总结&#xff1a; 本文介绍了在CentOS 7上挂载硬盘到系统的详细步骤。通过确…

信息安全:物理与环境安全技术.

信息安全&#xff1a;物理与环境安全技术. 传统上的物理安全也称为 实体安全 &#xff0c;是指包括 环境、设备和记录介质在内的所有支持网络信息系统运行的硬件的总体安全&#xff0c;是网络信息系统安全、可靠、不间断运行的基本保证&#xff0c;并且确保在信息进行加工处理、…

企业电子招投标采购系统源码之-java spring cloud+spring boot

​ 信息数智化招采系统 服务框架&#xff1a;Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构&#xff1a;VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术&#xff1a;Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、…

LC-2050. 并行课程 III(小根堆 + 拓扑排序)

2050. 并行课程 III 难度困难42 给你一个整数 n &#xff0c;表示有 n 节课&#xff0c;课程编号从 1 到 n 。同时给你一个二维整数数组 relations &#xff0c;其中 relations[j] [prevCoursej, nextCoursej] &#xff0c;表示课程 prevCoursej 必须在课程 nextCoursej 之前…

TBOX相关芯片学习

芯片学习 ESIM–嵌入式SIM卡 ESIM将SIM卡直接嵌入到目标设备芯片&#xff0c;而不是作为独立的可移除文件 功能架构&#xff1a; SM-SR:签约管理安全路由服务器&#xff0c;主要功能是实现eUICC远程配置数据的安全路由和传输 SM-DP:签约管理数据准备服务器&#xff0c;主要功…

【产品经理】高阶产品如何处理需求?(3方法论+2案例+1清单)

不管你是萌新小白&#xff0c;还是工作了几年的“老油条”&#xff0c;需求一直是产品经理工作的重点。只不过&#xff0c;不同年限的产品经理需要面对的需求大有不同&#xff0c;对能力的要求更高。 不知你是否遇过以下问题&#xff1f; 你接手一个项目后&#xff0c;不知从何…

SDN系统方法 | 8. 网络虚拟化

随着互联网和数据中心流量的爆炸式增长&#xff0c;SDN已经逐步取代静态路由交换设备成为构建网络的主流方式&#xff0c;本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版&#xff0c;完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…

【软件测试】如何设计测试用例?

文章目录 1.设计测试用例的万能公式2.测试用例的具体设计方法2.1 等价类2.2 边界值2.3 判定表(因果图)2.4 场景设计法2.5 正交法2.6 错误猜测法 3.总结 1.设计测试用例的万能公式 设计测试用例的万能公式: 功能测试性能测试界面测试兼容性测试易用性测试安全测试 功能测试:验证…

ORB-SLAM3 数据集配置与评价

ORB-SLAM3运行EuRoC和TUM-VI数据集。EuRoC利用微型飞行器(MAV ) 收集的视觉惯性数据集&#xff0c;TUM-VI 是由实验人员手持视觉-惯性传感器收集的数据集。这两个是在视觉SLAM中比较常用的数据集&#xff0c;所以测试并加以记录。 文章目录 一、EuRoC数据集测试1、官网下载2、…

AtcoderABC230场

A - AtCoder Quiz 3A - AtCoder Quiz 3 题目大意 给定一个整数N&#xff0c;以AGCXXX的格式打印第N次AGC的名称&#xff0c;其中XXX是以零填充的3位数字。 思路分析 根据题目要求&#xff0c;当N≥42时&#xff0c;输出AGC加上N1&#xff0c;并补齐为3位数字的格式&#xff…

作为一名程序员,IVX你值得拥有

目录 一、IVX是什么 二、IVX编程盒子——低代码平台的首个硬件产品 iVX做硬件的原因 iVX自身特点——安全、方便、高效、低耗 三、IVX编程盒子自带的Demo系统 1. 问题反馈、在线沟通和工单处理系统 2. 大屏幕监管平台 四、IVX和其他代码平台的区别 五、低代码未来的发展…

企业知识文档管理+群晖nas安全云存储

企业知识管理系统&#xff0c;利用软件系统或其他工具的企业管理方法&#xff0c;利用软件系统或其他工具&#xff0c;对组织中大量的有价值的方案、策划、成果、经验等知识进行分类存储和管理&#xff0c;积累知识资产避免流失&#xff0c;促进知识的学习、共享、培训、再利用…

配对卡方分析

一、案例介绍 某医院用两种不同方法对53例肺癌患者进行诊断&#xff0c;收集到结果如下表&#xff0c;现在想知道两种方法的检测结果有无差别。 二、问题分析 本案例分析的目的是比较两种方法对同一批样本的检测结果有无差别&#xff0c;且检测结果为二分类变量&#xff08;阳…