第五章:通过对抗擦除的目标区域挖掘:一种简单的语义分割方法

news2024/11/26 5:23:36

0.摘要

        我们研究了一种逐步挖掘具有鉴别性的物体区域的原则方法使用分类网络来解决弱监督语义分割问题。分类网络只对感兴趣对象中的小而稀疏的鉴别性区域有响应,这与分割任务的要求相背离,分割任务需要定位密集、内部和完整的区域以进行像素级推理。为了缓解这种差距,我们提出了一种新的对抗擦除方法,逐步定位和扩展物体区域。从一个小的物体区域开始,我们的方法通过以对抗性的方式擦除当前挖掘的区域,驱动分类网络依次发现新的和补充的物体区域。这些定位的区域最终构成了用于学习语义分割的密集而完整的物体区域。为了进一步提升通过对抗擦除发现的区域的质量,我们开发了一种在线禁止分割学习方法,通过提供由更可靠的分类分数调节的辅助分割监督,与对抗擦除相协作。尽管看起来很简单,但是提出的方法在PASCAL VOC 2012验证集和测试集上分别达到了55.0%和55.7%的平均交并比(mIoU)得分,成为了新的最先进方法。

1.引言

        深度神经网络(DNNs)在语义分割任务上取得了显著的成功[2,13,15,33],可以说这要归功于可用的像素级注释掩码资源。然而,为了在新的图像集上训练语义分割网络,收集大量精确的像素级注释是一项劳动密集型工作,不可避免地需要大量的财务投入。为了减轻对昂贵的像素级图像注释的需求,弱监督方法[10,12,14,16–20,22–24,28,29]提供了一些有希望的解决方案。

        在各种程度的弱监督信息中,可以用于训练语义分割模型的最简单和最有效的是图像级注释[30,32]。然而,仅凭这样的图像级注释训练一个性能良好的语义分割模型是相当具有挑战性的——一个障碍是如何准确地将图像级标签分配给相应的训练图像像素,以使基于DNN的方法能够学习端到端地进行图像分割。为了建立所需的标签-像素对应关系,一些方法被开发出来,可以分为基于提议和基于分类的方法。基于提议的方法[20,28]经常详尽地检查每个提议以生成像素级的掩码,这非常耗时。相比之下,基于分类的方法[10,16–19,24]提供了更高效的替代方案。这些方法利用分类模型选择最具鉴别性的区域作为像素级语义分割学习的监督。然而,对象分类模型通常只能识别和依赖于对象中一个小而稀疏的鉴别性区域(如图1(a)中分类网络生成的热图所示)。这与分割任务需要定位密集、内部和完整的区域以进行像素级推理的要求背离。这种偏离是适应分类模型解决分割问题的主要障碍,并且会影响到分割结果。为了解决这个问题,我们提出了一种新的对抗擦除(AE)方法,能够逐步驱动分类网络学习完整的对象区域。AE方法可以看作是建立了一系列竞争者,试图挑战分类网络,直到没有可支持的证据为止,发现某个特定类别的证据。

        具体而言,我们首先使用图像级的弱监督信息,即对象类别注释,训练一个图像分类网络。该分类网络用于定位图像中最具区分性的区域,以推断对象的类别。然后,我们从图像中擦除发现的区域,以破坏分类网络的性能。为了弥补性能下降,分类网络需要定位另一个区分性区域,以正确分类图像。通过这种重复的对抗擦除操作,分类网络能够挖掘出属于感兴趣对象的其他区分性区域。这个过程在图1(a)的示例中进行了说明,其中头部是分类"dog"图像最具区分性的部分。擦除头部并重新训练分类网络后,另一个具有区分性的部位身体会出现。重复这样的对抗擦除可以定位出越来越具有诊断图像类别的区域,直到没有更多的信息区域为止。最后,擦除的区域被合并形成像素级的语义分割掩码,可用于训练分割模型。图1(b)中展示了更多的可视化示例。

        然而,AE方法可能会错过一些与对象相关的区域,并且由于对边界的注意力较少,可能会引入一些噪声。为了利用这些被忽视的与对象相关的区域,并减轻噪声,我们进一步提出了一种补充的在线禁止分割学习(PSL)方法,与AE一起工作,以发现更完整的对象区域并学习更好的语义分割模型。 具体而言,PSL利用预测的图像级分类置信度来调节相应的类别特定响应图,并将其形成辅助分割掩码,该掩码可以以在线方式更新。那些具有低分类置信度的类别特定分割图被禁止对形成的监督掩码做出贡献,因此可以有效减少噪声。 总之,我们的主要贡献有三个:

        • 我们提出了一种新的AE方法,可以有效地使图像分类网络不断挖掘和扩展目标对象区域,并最终生成可用于训练分割模型的连续对象分割掩码。

        • 我们提出了一种在线PSL方法,利用图像级分类置信度来减少监督掩码内的噪声,并实现分割网络的更好训练,与AE协作。

        • 我们的工作在PASCAL VOC分割基准的验证集和测试集上分别达到了55.0%和55.7%的mIoU值,这是新的最先进水平。

 图1.(a)所示为提出的AE方法的示意图。使用AE方法,一个分类网络首先挖掘出对于图像类别标签"dog"最具区分性的区域。然后,AE擦除该挖掘到的区域(头部)并重新训练分类网络,以发现一个新的目标区域(身体)进行分类,而不会导致性能下降。我们重复这样的对抗擦除过程多次,并将擦除的区域合并成一个完整的前景分割掩码。

(b)显示了AE在不同步骤中挖掘的具有区分性的对象区域的示例,以及最终得到的前景分割掩码。

2.相关工作

        为了减少像素级注释的负担,已经提出了各种弱监督方法来使用更粗糙的注释进行语义分割的学习。例如,Papandreou等人[16]和Dai等人[3]提出使用标注的边界框来估计分割。最近,Lin等人[12]使用涂鸦作为语义分割的监督。在[22]中,所需的监督信息进一步放宽为实例点。所有这些注释都可以被认为比像素级注释要简单得多。

        一些研究[16-19,27,31]提出了只使用图像级标签来训练分割模型的方法,这是训练语义分割模型最简单的监督方式。在这些方法中,Pinheiro等人[19]和Pathak等人[18]提出利用多实例学习(MIL)来训练分割模型。Pathak等人[17]引入了一种约束的卷积神经网络模型来解决这个问题。Papandreou等人[16]采用基于期望最大化算法的替代训练过程,动态预测语义前景和背景像素。然而,这些方法的性能并不令人满意。最近,一些新的方法[10,20,23,24,28,29]被提出来进一步改善这个具有挑战性的任务的性能。特别地,Wei等人[29]提出了一种从简单到复杂的学习方法,其中使用显著性图作为监督,在简单图像上训练初始分割模型,然后逐渐引入越来越复杂的样本,以进一步增强分割模型的能力。在[10]中,提出了三种损失函数,即种子、扩展和约束边界,将它们集成到统一的框架中来训练分割网络。[10]和我们的工作都提出了根据分类网络定位对象线索的方法。然而,Kolesnikov等人[10]只能获得小而稀疏的与对象相关的种子用于监督。相比之下,我们提出的AE方法能够挖掘密集的与对象相关的区域,为学习语义分割提供更丰富的监督信息。此外,Qi等人[20]提出了一种增强反馈方法,使用GrabCut [21]和对象提议来生成像素级注释,以进行监督。据我们所知,Qi等人[20]在PASCAL VOC基准测试中使用了Selective Search [26](52.7%)和MCG [1](55.5%)分割提议,取得了最先进的mIoU分数。然而需要注意的是,MCG是使用PASCAL训练图像的像素级注释进行训练的,因此[20]的结果本质上是使用更强的监督获得的。

图2.提出的对抗擦除方法的概述。在第t步,我们首先使用当前处理的图像It训练分类网络,然后使用分类激活方法(例如CAM [34])生成类别特定的响应热图(Ht)。对热图Ht进行硬阈值处理可以得到具有区分性的区域Ft。然后,我们从It中擦除Ft并生成It+1。接着,将这个图像输入分类网络,学习定位一个新的具有区分性的区域。底部显示了学习到的热图和相应进行擦除的训练图像。多个步骤中挖掘到的区域共同构成了预测的对象区域作为输出,用于后续训练分割网络。

3.从分类到语义分割

        所提出的分类到语义分割的方法包括两个新颖的组成部分,即基于AE的对象区域挖掘和在线PSL用于语义分割。

3.1.使用AE的目标区域挖掘

        为了解决分类网络只对小而稀疏的区域具有响应的问题,我们提出了AE方法逐步定位和扩展对象区域。如图2所示,AE方法分为两个操作:学习分类网络以定位对象区域和对发现的区域进行对抗擦除。具体而言,分类网络是基于DeepLab-CRF-LargeFOV [2]模型进行初始化的。在conv7上应用全局平均池化,并通过全连接层生成表示用于预测分类。在第一个操作中,我们通过最小化平方标签预测损失来训练分类网络,这是根据[30]的建议。在第二个擦除操作中,我们使用分类激活映射(CAM)方法[34]为每个图像级标签生成热图。然后,通过对热图应用硬阈值,获得具有区分性的对象区域。我们通过用所有训练图像的均值像素值替换其内部像素来从训练图像中擦除挖掘到的区域。经过擦除的处理图像随后被送入下一个分类学习迭代中。

        由于区分性区域已被移除,不再对分类预测有贡献,分类网络自然地被驱使去发现新的对象区别性区域以维持其分类准确性水平。我们重复进行分类学习和AE过程多次,直到网络无法在生成的训练图像上很好地收敛,即没有更多的区分性区域可用于进行合理的分类。

        现在我们更正式地解释AE过程。假设训练集I = {(Ii, Oi)}Ni=1包含N个图像,F = {Fi}Ni=1表示AE挖掘出的对象区域。我们使用分类模型Mt在第t个学习步骤中对每个训练图像Ii,t生成对象区域Fi,t。记C为对象类别集合,CAM(·)表示热图生成操作。因此,对于Ii,t的第c个热图Hi,t c,其中c ∈ Oi且Oi ⊆ C是Ii,t的图像级标签集合,可以根据CAM(Ii,t, Mt, c)获得。为了使分类网络从Ii,t中扩展对象区域,我们擦除H c i H c i,t上值大于δ的像素。然后,通过Algorithm 1中总结的过程获得F。

        除了挖掘前景对象区域外,找到背景定位线索对于训练分割网络也至关重要。受[10,29]的启发,我们使用显著性检测技术[9]生成训练图像的显著性图。基于生成的显著性图,选择像素具有低显著性值的区域作为背景。假设Bi表示Ii的选定的背景区域。我们可以获得分割掩码S = {Si}Ni=1,其中Si = Fi ∪ Bi。在生成S时,我们忽略三种像素:

        1)不同类别之间冲突的被擦除的前景区域;

        2)位于AE识别的对象区域内部的低显著性像素;

        3)未被分配语义标签的像素。

图3(a)展示了一种分割掩码生成过程的示例。“黑色”和“紫色”区域分别指背景和对象。 

3.2.用于语义分割的在线PSL

        所提出的AE方法为每个训练图像提供了初始的分割掩码,可以用于训练分割网络。然而,一些与对象相关或背景相关的像素可能会被遗漏(如图3(a)中AE输出中的“蓝色”像素)。此外,由于AE在捕捉边界细节方面的限制,一些标记像素的语义标签可能存在噪声。为了利用AE未标记的像素进行训练,并对错误标记的像素具有鲁棒性,我们提出了一种在线禁止分割学习(PSL)方法,以进一步学习在AE提供的掩码上执行语义分割。在线PSL利用图像分类结果来识别可靠的类别特定分割图,并将它们形成一个噪声较小的辅助监督图,为AE输出提供辅助信息。PSL以在线方式更新生成的辅助分割图,同时训练分割网络,并产生越来越可靠的辅助监督。如图3(b)所示,提出的PSL构建了一个框架,包括一个用于分类的分支和一个用于语义分割的分支。特别地,PSL使用平方损失作为分类分支的优化目标,其生成的分类置信度被PSL用于加权对应的类别特定分割得分图。借助分类结果,在线PSL能够将多类别分割图集成到辅助分割掩码中,并提供额外的监督信息。通过PSL,与低分类置信度的类别相对应的分割图被禁止对辅助分割图做出贡献。因此,可以有效减轻来自不相关类别的噪声。

        形式上,将分割任务的语义标签集合表示为Cseg,给定图像I的图像特定标签集合表示为Oseg,其中包括背景类别。在每个训练时期,将分类分支的图像级预测表示为v。假设S是AE生成的分割掩码。在线PSL利用Cseg上的图像预测来训练由θ参数化的分割网络f(I;θ),该网络在图像平面的每个位置u预测每个标签c ∈ Cseg的像素级概率fu,c(I,θ)。为了生成用于训练分割网络的附加分割掩码Sˆ,PSL使用v来加权前景类别的分割得分图,如图3(b)所示。通过这种禁止操作,可以通过乘以一个小的分类类别得分来抑制负分数图中的大响应值。同时,主导类别(即占据图像大面积的相应对象)的得分图也可以增强。将加权操作符表示为⊗,然后通过以下方式生成Sˆ:

通过在线训练,网络的分割能力逐渐提高,可以产生越来越准确的Sˆ,用于监督后续的训练过程。在测试过程中,对于那些具有低分类置信度的类别,我们采用更严格的禁止策略。具体来说,我们将那些小于p的分类置信度设为零,保持其他不变,并将它们应用于加权预测的分割得分图,从而产生最终的分割结果。

图3.(a)分割掩码生成的过程。

(b)提出的用于语义分割的在线PSL方法。

分类得分用于在线加权“分割得分图”,产生“加权图”。那些具有低分类置信度的类别被禁止产生分割掩码。然后,挖掘得到的掩码和在线生成的掩码都用于优化网络。

4.实验

4.1.数据集和实验设置

数据集和评估指标 我们在PASCAL VOC 2012分割基准数据集[5]上评估我们提出的方法,该数据集有20个目标类别和一个背景类别。该数据集被分为三个子集:训练集(train,1,464张图像)、验证集(val,1,449张图像)和测试集(test,1,456张图像)。按照常见的做法[2,6,19],我们通过图像增强将训练图像数量增加到10,582张。在我们的实验中,只使用图像级别标签进行训练。性能以在21个类别上平均的像素IoU进行评估。我们在val集上将我们的方法与其他最先进的方法进行比较。在val和test集上的结果是通过将预测结果提交到官方的PASCAL VOC评估服务器获得的。

训练/测试设置 我们采用来自[2]的DeepLab-CRF LargeFOV作为AE和PSL中的分类网络和分割网络的基本网络,其参数由在ImageNet[4]上预训练的VGG-16[25]进行初始化。我们使用一个小批量大小为30张图像,从图像中随机裁剪出大小为321×321像素的补丁来训练网络。在这个阶段,我们遵循[2]中的训练过程。初始学习率为0.001(最后一层为0.01),经过6个时期后降低10倍。训练在15个时期后终止。两个网络都在具有12GB内存的NVIDIA GeForce TITAN X GPU上进行训练。在我们的实验中,我们使用了基于公开可用的Caffe框架[8]实现的DeepLab代码[2]。

        在AE的每个步骤中,根据热图中最大值的前20%的像素(这是根据[10,34]建议的比例),将其擦除,并将其视为前景对象区域。我们使用[9]中的显著图来产生背景定位线索。对于属于室内场景(例如沙发或桌子)的图像,我们采用归一化的显著值0.06作为阈值来获取背景定位线索(即显著值小于0.06的像素被视为背景),以防一些对象被错误地归类为背景。对于其他类别的图像,阈值设置为0.12。在语义分割的测试阶段,禁止阈值p经验性地设置为0.1,并使用CRF [11]进行后处理。

4.2.与当下主流方法的对比

        我们与使用不同级别注释的最先进的弱监督语义分割解决方案进行了广泛的比较,包括涂鸦、边界框、斑点和图像级别标签。这些方法以及我们在PASCAL VOC验证集上的结果总结在表1中。在基线方法中,MIL-*[19]、STC [29]和TransferNet [7]使用了更多的图像(分别为700K、50K和70K)进行训练。所有其他方法都基于10K个训练图像,并建立在VGG16 [25]模型的基础上。

        从结果可以看出,我们提出的方法在使用图像级别标签和点注释进行弱监督时优于所有其他方法。特别是,在仅使用图像级别标签的基线方法中,AF-MCG [20]取得了第二好的性能。然而,MCG生成器是在PASCAL VOC上以全监督的方式训练的,因此相应的结果,即AF MCG [20],隐含地利用了更强的监督。

        因此,使用选择性搜索段,AF-SS [20]的性能下降了1.7%。此外,AF-*[20]还使用GrabCut [21]来对分割掩码进行细化,这通常在训练过程中耗时较长。相比之下,所提出的AE方法非常简单方便,用于目标区域挖掘。此外,在线PSL对于训练语义分割网络也是有效且高效的。与使用图像级别标签进行监督的方法相比,所提出的AE-PSL在最佳性能上提升了2.4%以上。此外,我们的方法在超过0.7%的像素级监督下也优于那些隐式使用的方法。在PASCAL VOC测试中,这些方法的额外比较结果如表2所示。可以看出,我们的方法在竞争性基准测试中实现了这一具有挑战性任务的最新技术水平。

        图4显示了一些成功的分割结果,表明我们的方法即使对于一些复杂的图像也能产生准确的结果。图4底部一行给出了一个典型的失败案例。这种情况可能可以通过使用低级视觉特征(例如颜色和纹理)来改进和扩展擦除区域来解决。

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

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

图4.在VOC 2012验证集上的定性分割结果。最后一行显示了一个失败案例。

4.3.消融分析

4.3.1.使用AE的目标区域挖掘

        使用AE方法,辨别性的物体区域被逐步对抗性地擦除。因此,预计在训练的收敛点处,通过不同AE步骤进行的分类网络的损失值将随着更多辨别性区域的缺失而逐渐增加。图5(a)显示了不同AE步骤下分类训练损失曲线的比较。可以观察到,原始图像训练收敛时的损失值约为0.05。通过进行多个AE步骤,收敛的损失值略微增加(AE-step2:∼0.08,AE-step3:∼0.1),与AE-step1相比。这表明AE移除了具有下降辨别能力的区域。继续进行更多步骤的AE以移除更多区域时,分类网络收敛到一个训练损失值约为0.15的网络。这表明没有更多有用的区域可用于获得良好的分类网络,因为过度擦除引入了许多真负区域到挖掘的前景对象区域中,阻碍了分割的学习。图5(b)展示了过度擦除导致的一些失败案例。在大多数物体区域从训练图像中被移除的情况下,分类网络必须依赖于一些上下文区域来识别类别。这些区域是真负区域,对分割网络的训练有害。为了防止负面区域的污染,我们只将从前三个步骤中挖掘出的具有辨别性的区域集成到最终的分割掩码中。

        为了定量理解每个AE步骤的贡献,表3显示了基于DeepLab-CRF-LargeFOV的分割网络训练中合并自不同k(k = 1,2,3,4)AE步骤的前景区域的mIoU分数的比较。我们可以观察到,随着添加更多前景对象区域,性能确实会提高,因为分割网络获得了更密集的监督。然而,在进行了四个AE步骤之后,由于如上所述的过度擦除,性能下降了2.1%。图6展示了一些可视化示例,包括训练图像(顶部一行),不同AE步骤生成的热图和最终擦除的区域(底部一行)。我们可以观察到,AE方法有效地驱使分类网络定位不同的辨别性物体区域。例如,最后一列中显示的“cow”的最右侧实例的身体覆盖区域首先被定位。通过擦除这个实例,左侧的另外两个实例被发现。我们还在VOC 2012测试集上使用从前三个AE步骤合并的物体区域进行了实验。mIoU得分为52.8%,优于仅使用图像级标签进行监督的所有方法(如表2所示)。 

表3.在VOC 2012验证集上使用来自不同AE步骤的物体区域的分割mIoU得分的比较。

图5.(a)不同AE步骤下分类网络对不同训练时期数的损失曲线。(b)使用四个AE步骤过度擦除样本的失败案例。

4.3.2.用于语义分割的在线PSL

        我们现在进行在线PSL的评估,并研究它如何通过发现辅助信息来改进AE方法。我们在表4中报告了在线PSL的性能,其中“w/o PSL”和“w/PSL”分别表示原始的DeepLab-CRF-LargeFOV和提出的用于训练的PSL方法的结果。我们可以观察到,与“w/o PSL”相比,“w/PSL”提高了3.2%的性能,证明了PSL提供了额外有用的分割监督的显著有效性。

        另外,我们对PSL进行了一次迭代训练步骤,以改善分割结果。具体而言,我们首先使用来自AE和PSL的训练分割模型对训练图像进行分割。然后,预测的分割掩码用作训练分割网络的监督,进行另一轮训练。如表4所示,通过这一额外的训练(表示为w/PSL++),性能进一步从54.1%提高到55.0%。这一改进得益于对训练图像的预测分割掩码进行CRF操作。在CRF结果上进行一轮训练后,分割网络已经得到了很好的训练。我们没有观察到进一步的性能提升,因为没有提供新的监督信息。

        此外,我们还检验了我们的测试策略的有效性,其中禁止阈值被经验地设为0.1。我们利用地面真实的图像级标签作为分类置信度,对预测的分割得分图进行加权(请注意,这与训练阶段的禁止信息不同)。结果为56.1%(“w/PSL +GT”),比“w/PSL ++”仅好1.1%。需要注意的是,“w/PSL +GT”实际上提供了可实现性能的上限,因为分数图是通过地面真实的类别注释进行过滤的,“w/PSL ++”非常接近这个上限。

        PSL采用分类网络的即时输出来重新加权分割得分图。另一种选择是使用地面真实注释作为分类信息。我们还考虑在训练阶段使用地面真实图像级标签进行禁止,并评估性能。然而,与我们提出的PSL设计相比,使用地面真实信息会导致性能下降0.6%。这是因为PSL有效地利用了有关物体尺度的信息,有助于生成更准确的分割掩码(即,相比小物体的分类分数,大物体的类别更受偏爱)。简单地使用0-1的地面真实注释忽略了尺度,并且表现更差。我们还研究了在不使用图像级分类置信度的情况下PSL的性能表现,并发现性能下降了1%。这清楚地证明了所提出的使用图像级分类信息的在线PSL方法的有效性。

表4.在VOC 2012验证集上,根据不同的训练策略进行的分割mIoU得分比较。

图6.所提出的对抗擦除方法产生的挖掘对象区域示例。第二至第四行显示了生成的热图,其中突出显示了有辨识力的区域。擦除区域的图像以灰色显示在最后一行。

5.总结

        我们提出了一种对抗性擦除方法,可以有效地使分类网络逐步发现和扩展物体辨识区域。发现的区域被用作像素级监督来训练分割网络。这种方法为弱监督分割问题提供了一种简单而有效的解决方案。此外,我们提出了一种在线禁止分割学习方法,该方法对于挖掘辅助信息对自动编码器(AE)非常有效。实际上,PSL方法可以帮助任何其他弱监督方法。本研究为实现弱监督语义分割的对抗性擦除开辟了新的方向。在未来,我们计划开发更有效的策略来改进对抗性擦除,例如使用自适应步骤对每个训练图像进行擦除,或者将对抗性擦除和PSL集成到更统一的框架中。

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

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

相关文章

C#——多线程之Task

C#——多线程之Task 前言一、Task是什么?二、各应用场景以及实例分析1.异步执行代码2.等待异步操作完成3.并行执行多个任务4.处理异常5.取消异步操作 三、一些其他问题1.WhenAll与WhenAny的区别 总结 前言 在代码编写过程中,经常会用到多线程的知识&…

Vue如何配置eslint

eslint官网: eslint.bootcss.com eslicate如何配置 1、选择新的配置: 2、选择三个必选项 3、再选择Css预处理器 4、之后选择处理器 5、选择是提交的时候就进行保存模式 6、放到独立的配置文件上去 7、最后一句是将自己的数据存为预设 8、配合console不要出现的规则…

每天一道C语言编程(2^k进制数)

题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数。 (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位。 (3)…

NoSQL之 Redis 部署,配置与优化

文章目录 NoSQL之 Redis配置与优化一.关系数据库与非关系型数据库1.关系型数据库2.非关系型数据库3.关系型数据库和非关系型数据库区别4.非关系型数据库产生背景 二.Redis简介1.了解Redis2.Redis 具有以下几个优点3.Redis为何这么快 三.Redis 安装及应用1.Redis 安装部署2.Redi…

linux网卡命名规则与修改方法

一.前言: 在早期的的操作系统中例如fedora13或者ubuntu15之前网卡命名的方式为eth0,eth1,eth2,属于biosdevname 命名规范。当然这是针对intel网卡的命名规则,对于realtek类型的网卡会命名为ens33。但是这个编号往往不一…

数据库运维——MySQL主从复制

1.理解MySQL主从复制原理。 2.完成MySQL主从复制。 一、MySQL主从复制原理 MySQL主从复制是指将一个MySQL数据库服务器(称为主服务器)上的数据复制到其他MySQL数据库服务器(称为从服务器)的过程。它的原理如下: 主服…

如何利用OpenAI的函数调用特性

如何利用OpenAI的函数调用特性 函数调用能实现哪些功能? 简单来说,函数调用功能可以助你在请求方法时构建结构化的数据。因为生成模型的特性,它产生的数据往往是无结构的,即使在提示(prompt)中指定了输出格式,但实际…

3-Linux实操

Linux实践操作 开关机、重启、用户登陆注销关机&重启用户登陆和注销 用户管理添加用户修改用户密码删除用户查询用户信息切换用户查看当前用户用户组的添加和删除用户和组相关文件 实用指令指定运行级别init 命令帮助指令文件目录类时间日期类搜索查找类🔍压缩和…

新能源汽车直流充电桩和交流充电桩的区别

直流充电桩和交流充电桩的区别 你是否曾经想过,为什么有的电动汽车可以在半小时内充满电,而有的却需要几个小时?其实,这都取决于它们所使用的充电桩的不同。那么,直流充电桩和交流充电桩到底有哪些区别呢? 首先,工作…

网络变压器配套使用的网口连接器的选型注意事项及选购关注要点

Hqst盈盛(华强盛)电子导读:采购人员在网口连接器选型中如何选用到合适的产品,选用时要注意到哪些事项,这节将结合网口连接器实物和大家一起探讨,希望对大家有些帮助。 我们可以通过对下面五个方面的详细了解…

网工内推 | 售前、售后工程师,IE认证优先

01 广州佳杰科技有限公司 招聘岗位:IT售前工程师 职责描述: 1、负责所在区域 IT 产品的售前技术支持工作,包括客户交流、方案编写、配置报价、投标应标、测试、赋能等; 2、与厂商相关人员建立和保持良好的关系,相互配合,提高项目成功率和厂商满意度; 3、…

每日一题——链表中倒数最后k个结点

题目 输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。 如果该链表长度小于k,请返回一个长度为 0 的链表。 数据范围:0≤n≤$105,0≤ai≤109,0≤k≤109 要求:…

MongoDB索引结构,到底是B-Tree还是B+Tree,请看这里!!

起因 网上关于MongoDB的索引结构到底是b树,还是b树的争论有很多,无法统一结论。 由来 MongoDB从3.2版本开始默认采用了WiredTiger存储引擎,网上很多说法是此引擎是BTree的索引结构,甚至有图有真相。但是认为MongoDB一直是B-Tre…

Docker compose(容器编排)

Docker compose(容器编排) 一、安装Docker compose 1.安装Docker compose Docker Compose 环境安装 Docker Compose 是 Docker 的独立产品,因此需要安装 Docker 之后在单独安装 Docker Compose#下载 curl -L https://github.com/docker/co…

htmlCSS-----定位

目录 前言 定位 分类和取值 定位的取值 1.相对定位 2.绝对位置 元素居中操作 3.固定定位 前言 今天我们来学习html&CSS中的元素的定位,通过元素的定位我们可以去更好的将盒子放到我们想要的位置,下面就一起来看看吧! 定位 定位posi…

HR SaaS厂商,进入决赛圈

在愈发需要降本增效的节点,数字化的价值也更在被越来越多的企业重新审视,这种重视不再是之前或有或无的可选项,而是基于真正人效比维度的必选项 作者|斗斗 编辑|皮爷 出品|产业家 SaaS行业,正在发生一些微妙的变化。 以HR …

如何提高小程序UV?实用策略助你增加用户规模和活跃度

摘要:小程序的UV(Unique Visitors)是衡量用户规模和活跃度的重要指标,对于开发者和运营者来说具有重要意义。本文将分享一些实用策略,帮助你提高小程序的UV,增加用户规模和活跃度。从优化推广渠道、提升用户…

css实现鼠标滑动左下角弹框带动画效果

代码 <div classNamekuang></div> css代码 .kuang {height: 500px;width: 400px;// background-color: #fff;position: absolute;z-index: 10;bottom: 0;transform: translateX(-390px)}.kuang:hover {animation: myanimation 3s linear 1;animation-fill-mode:f…

LT9211C 是一款MIPI/RGB/2PORT LVDS互转的芯片

LT9211C 1.描述&#xff1a; Lontium LT9211C是一个高性能转换器&#xff0c;可以在MIPI DSI/CSI-2/双端口LVDS和TTL之间相互转换&#xff0c;除了24位TTL到24位TTL&#xff0c;并且不推荐同步和DE的2端口10位LVDS和24位TTL之间的转换。LT9211C反序列化输入的MIPI/LVDS/TTL视…

认识雪花id

首先,个人理解,雪花id不是全球的,它只能保证一个分布式服务的范围内的ID是不重复的. 一.SnowFlake 雪花算法 SnowFlake 中文意思为雪花&#xff0c;故称为雪花算法。最早是 Twitter 公司在其内部用于分布式环境下生成唯一 ID。在2014年开源 scala 语言版本。 雪花算法的原理…