清华联合北航提出全新多模态融合方法SkipcrossNets,更快更强!!

news2024/9/22 13:35:55

多模态融合越来越多地用于自动驾驶任务,因为来自不同模态的图像为特征提取提供了独特的信息。然而,现有的双流网络只在特定的网络层次进行融合,这需要大量手动尝试来设置。随着卷积神经网络的深入,两种模态的特征变得越来越高级和抽象,融合发生在特征级别,并存在很大的差距,这很容易损害性能。

在本研究中提出了一种称为" skip-cross networks"(SkipcrossNets)的新型融合架构,它能够自适应地结合LiDAR点云和摄像机图像,而不受特定融合时期的限制。

具体而言, skip-cross networks以前馈方式将每一层连接到每一层,对于每一层,所有先前层的特征图都用作其输入,它自己的特征图则用作其他模态的所有后续层的输入,增强了特征传播和多模态特征融合。这种策略有助于从两个数据流中选择最相似的特征层,为融合过程中的稀疏点云特征提供了互补效应。网络还分为多个块,以减少特征融合的复杂性和模型参数的数量。

通过应用 skip-cross 融合技术,在KITTI和A2D2数据集上取得了显著的优势,达到了KITTI数据集上的96.85%的最大F-Score和A2D2数据集上的84.84%的F1-Score。该模型参数仅需要2.33 MB的内存,速度为68.24 FPS,可在移动终端和嵌入式设备上使用。

1、简介
道路检测不仅是车辆轨迹规划和决策制定的重要前提条件,还是自动驾驶的关键技术。最近的研究通常使用像素级别的语义分割进行道路检测,这可以在像素级别提供有效的道路信息。

摄像机获取环境中的光以获取图像信息,提供高分辨率的图像,可以识别目标的外观、形状、颜色和纹理等特征。许多基于摄像机的方法取得了显著的进展并取得了良好的结果。然而,在低光环境下,摄像机的性能较差,并且难以用于距离和深度感知。

相比之下,激光雷达基于周围障碍物的反射,并提供了不受环境光影响的补充的3D点云信息。尽管激光雷达点云数据通常是稀疏的,但它们可以用于准确测量距离,并且不受照明的影响较小。然而,激光雷达的成本较高,而且在下雨和下雪等恶劣天气下,激光雷达的性能会降低,从而减小了其应用范围。总之,激光雷达和摄像机都具有各自独特的优势和局限性,考虑将这两种数据类型进行融合可以提供更多互补信息,并提高道路检测的整体可靠性。

不幸的是,由于不同模态的数据空间和特征空间存在差异,融合LiDAR和摄像机图像是多模态融合的挑战。对于数据空间,整合这两种数据类型的难度在于激光雷达在3D空间中操作,而摄像机在2D空间中操作,这使得定义一个合适的空间来整合这两种数据类型具有挑战性。不一致的数据空间可能导致模型性能较差。对于特征空间,大多数现有的多模态方法关注于“如何融合”,并关注于融合方式,但没有更好地解释“何时融合”的融合时期。融合时期是指在两流网络实施融合步骤并转换为单流网络的时间段,这对算法性能有重要影响。

现有的策略已用于在不同融合时期融合源数据、特征图或输出,分别对应于早期、中期和晚期融合。早期融合要求在原始数据中具有高度的时空对齐。在中期融合中,难以确定在Backbone的哪个特征层中选择执行融合步骤。晚期融合侧重于决策层两流网络融合的结果,可能忽略了中间语义特征。随着神经网络变得更深,特征变得更抽象和高级,整合这些数据的可行性在很大程度上取决于两个来源的特征是否存在于相同的层次上。由于不同融合周期的独特性,有必要手动确定在哪个阶段融合多模态信息是最佳的,这需要进行大量实验证明。

本文提出了一种新颖的融合策略,称为"skip-cross 融合",用于点云和视觉图像。skip-cross 将每种模态的特征图连接到另一种模态的相应位置之后的所有特征图,实现了密集的跨模态连接。在这个过程中,使用 skip-cross 块来自适应地识别LiDAR点云和视觉图像的最佳时期组合。然后,skip-cross 融合网络(SkipcrossNets)充分利用了编码器阶段的多模态信息,从而实现了对稀疏点云的卓越性能。

同时,还在解码器中使用跨模态融合,以便在恢复分辨率的过程中,每个特征图都使用另一种模态的特征图。对于数据空间,通过将激光雷达投影为高度差异图像(ADI)来减小激光雷达和视觉数据空间之间的差距,因为在城市场景中,道路与高度信息相关。

图1提供了各种技术的比较,从性能和模型参数数量的角度进行评估。SkipcrossNets-R和SkipcrossNets-D分别表示使用ResNet34和DenseNet作为Backbone结构的模型。早期融合是最轻量级的模型,但其性能不如许多现有方法。PSPNet和DeepLabv3+包括MobileNet和Resnet101作为Backbone。

性能比较表明,对于KITTI数据集,SkipcrossNets-R和逐步激光雷达适应道路检测(PLARD)已足够具有竞争力,其中PLARD排名最高。然而,与PLARD相比,SkipcrossNets-R所需的参数数量和计算仅为其的59%和57%。因此,当考虑性能和复杂性同等重要时,SkipcrossNets优于其他模型。

此外,SkipcrossNets系列模型在A2D2数据集上实现了最佳性能。SkipcrossNets还采用了类似于DenseNets的两种模态之间的密集结构,这显著减少了参数数量(2.33 MB)。这进而改善了网络中的信息流和梯度,简化了训练。

在本研究中,SkipcrossNets与其他融合策略和应用于两个基准数据集(KITTI和A2D2)的最新技术(SOTA)方法进行了比较。如图2的列(b)、(c)和(d)所示,与相应的真实情况存在某些差异。SkipcrossNets和SkipcrossNets-R的结果表现出更好的性能,结果沿着物体边缘(例如汽车)更加平滑,这表明了 skip-cross 融合策略的优势。总的来说,SkipcrossNets在大多数基准任务中明显优于当前最先进的算法,并在自动驾驶应用中具有巨大潜力。

这项研究的贡献可以描述如下:

提出了一种新颖的 skip-cross 融合策略,用于在两流网络的每一层执行融合,并自适应地选择最佳融合时期,而不像以前只发生在特定的时期。

由于3D空间中的道路、车辆和建筑物的高度不同,将激光雷达投影到图像平面以生成高度差异图像,以更好地区分道路区域并减少由空间差异引起的融合问题。

提出的模型体积小(2.33 MB)且速度快(68.24 FPS)。高端激光雷达成本较高,这个模型实现了对稀疏点云数据的更好处理性能,更适合满足自动驾驶的实际需求。

2、相关工作
2.1 传统道路检测
现有的车道检测算法通常利用几何信息和图像处理(例如,HSI颜色模型和边缘提取)通过使用视觉线索增强道路的连通性,并结合来自先前条件的上下文,包括道路几何、高阶CRF公式、标记点过程和规划问题解决方案。Qi Wang等人提出了一种上下文感知的道路检测模型,将深度线索与时间MRF模型相结合,利用传统的RGB颜色和标签转移进行高效的最近邻搜索过程,可以区分道路和非道路区域。

此外,马尔可夫和条件随机场也用于后处理步骤。然而,这些方法需要手动设计特征和人工设置阈值,高度经验性,对复杂场景中的道路检测效果不佳。

2.2 基于视觉图像的道路检测
不断增强的计算能力使高精度的道路检测成为可能,从而将其部署在自动驾驶领域。以前的道路检测研究主要是基于深度学习的像素级语义分割。例如,Teichmann等人采用卷积神经网络(CNN)对单目摄像机图像进行道路检测。

然而,这种方法容易受到动态光照条件的影响。Long等人提出了一个完全卷积和上采样层来解决像素级语义分割问题。Lee等人提出了一个VPGNet,研究了各种弱光照条件和有阴影的区域的检测,考虑了数据中的上下文信息。Zou等人提出了ConvLSTM来提高特定情况下的检测性能,例如,车辆遮挡和树枝阴影。Alvarez等人使用了道路检测的上下文线索,包括地平线、消失点、车道标线和道路几何信息,这些线索对不同的条件具有鲁棒性。Yang等人使用了横跨360度图像的跨远程依赖关系,并利用先验上下文知识(基于注意力机制)来改善模型训练。

道路检测还可以被视为全景语义分割的特殊情况。例如,Yang等人提出了一种全景环状语义分割模型,以感知整个环境,解决了边界不连续性和重叠语义问题。Yang等人提出了一种基于高效CNN的全方位监督学习框架,该框架在全景图像中实现了显著的通用性增益。

但是,单一模型方法容易受到外部条件的影响,稳定性差。尽管摄像头提供高分辨率图像,在光线不足、夜间和曝光等恶劣场景中无法正常工作。传感器本身带来的限制很难通过方法的设计来解决,因此需要考虑引入其他模态的数据来协助。

2.3 多模态融合
传统的道路分割算法使用LiDAR和摄像机融合来改善分割效果,并补偿单一数据源固有的缺陷。然后,主要的技术问题涉及在实时中实现有效的多传感器融合。大多数技术涉及数据预处理和将LiDAR投影到2D格式,使摄像机和LiDAR在数据空间(即BEV、高度图和轮廓图)中保持一致。Xiao等人提出了一种新颖的混合条件随机场(CRF)模型,该模型接受对齐像素和LiDAR点的标签(道路或背景)作为随机变量,通过最小化混合能量函数来推断标签。Caltagirone等人提出了一个用于道路检测的全卷积网络,输入是从LiDAR点云变换而来的2D俯视图图像。Wang等人提出了一种Siamese全卷积网络,用于处理RGB图像和语义轮廓,利用位置线的先验知识来改善最终的车道检测效果。Caltagirone等人提出了一个网络,在其中交叉融合发生在相同的层级,而不同层级的特征可能未完全用于道路检测,该网络胜过了可比较的融合策略。Chen等人使用传输函数将LiDAR特征空间调整为视觉特征空间,以更好地补充和改进特征。

然后,将视觉信息与调整后的LiDAR信息相结合。Zhang等人提出了一种通道注意机制,用于获得跨通道的局部交互信息。为LiDAR和摄像机的不同特征通道分配权重,以表示不同特征通道对两者的贡献。Samal等人提出了一种时空采样算法,通过分析视觉输入识别出感兴趣区域,并仅在这些区域激活LiDAR。该算法显著降低了LiDAR的使用率。Zhou等人开发了一个分层多模态融合模块,以增强特征融合,并构建了一个高级语义模块,用于提取语义信息,以与不同抽象层次的粗糙特征融合。RangeSeg使用一个共享的编码器Backbone和两个与范围相关的解码器。较重的解码器仅计算距离和小物体位于距离图的顶部,以提高小目标的检测精度,而较轻的解码器则仅计算整个距离图,以减少计算成本。

通过将案例分割与车道中心估计相结合,Sun等人提出了一种基于实例分割的智能车辆自适应多车道检测方法,该方法将余弦测量纳入损失函数,以便提取更具判别性的前景特征。

这些融合方法大多在特定时期进行融合,不同时期都是人为设置的,非常经验性。因此,作者提出了一种自适应的skip-cross融合策略,嵌入在Backbone的每一层之间,以避免上述融合时期的问题,这显著增加了融合信息的比例,提高了道路检测的准确性和稳健性。

3、本文方法
3.1 数据空间
LiDAR点云和视觉图像跨足不同的维度,常见的融合方法是将点云数据投影到2D平面上,以便与视觉图像像素更简单地结合。然而,这个投影过程通常会导致高度和深度信息的损失,尤其是在诸如车道检测等精细任务中。

为了使道路特征更加明显,我们生成了单通道的高度差图像(ADIs),这些图像是从LiDAR点云转换而来的。如图3所示,LiDAR数据以3D坐标向量的形式可以使用提供的校准参数投影到2D图像平面上。然后,2D图像像素的强度表示了规范化的X、Y和Z坐标。然后,从LiDAR数据中计算了两个位置之间的空间偏移的高度差异(和),以获得用于道路特征的ADIs。这个过程可以表示为:

其中是投影到上的LiDAR点的高度,是在邻域内的位置,是处的像素值,M是考虑的邻域位置的总数。在ADIs中,背景最暗,障碍物最亮,而车道区域通常位于图像下半部分较暗的区域。像素值表示相对于道路平面的物体高度,可以用于区分道路区域和非道路区域。

3.2 网络架构
在这里插入图片描述

本研究中使用的基本网络由一个全卷积编码器-解码器组成,kernel为3×3,如图4所示。该网络包括23层,包括编码器和解码器。编码器包括一个带有Stride=2的卷积层和3个融合阶段,每个融合阶段包括几个ResNet的BasicBlock,并以2×2最大池化层结束。编码模块下采样4次,解码模块包括4个转置卷积层,用于上采样并将特征图恢复到其原始输入大小。包含的转置卷积层设置为3×3的内核大小和Stride=2。

然后,每个卷积层后面都跟着一个修正线性单元(ReLU)层。激活函数执行梯度下降和反向传播,避免了梯度爆炸和梯度消失的问题。此外,在编码器和解码器步骤中使用了跳跃连接,以恢复详细特征并恢复分辨率。

3.3 Skip-cross融合
多模态融合时间不确定性引起的特征抽象程度不同,使用特定的LiDAR点云和视觉图像融合类型仅实现稳健的道路检测变得困难,如图5所示。为了克服这个问题并改善道路检测,本文提出了一种自适应的skip-cross融合,有效地整合了LiDAR数据和视觉信息。

SkipcrossNets的整体设计遵循常见的编码器-解码器结构。编码器阶段对于多模态信息融合过程更为重要。在编码器阶段,必须确保充分的融合,以生成更好的中间特征图,并恢复图像的分辨率和详细特征。编码器包括3个融合阶段,每个阶段包含指定数量的残差块。采用了基本的ResNet结构,即2个3×3卷积层和1个identity。第一个融合阶段由两个残差块和一个最大池化层组成,而其他两个融合阶段由3个残差块和一个最大池化层组成。图4中的SkipcrossNets的基本结构包括3个阶段,每个阶段包括多个密集连接的块。

为了避免由不同融合周期引起的问题,在两流网络中执行跨模态密集连接,并通过可学习因子将每个模态的特征映射传递给另一模态的所有特征映射。不同于以前只在某个网络层进行融合,skip-cross融合策略增加了不同模态的特征交互。多模态融合发生的具体层取决于跨模态可学习因子的学习,而不是人为设置,这样的融合网络具有更好的性能。

因此,传统的两流卷积网络具有2L层,有2L个连接,每个层与其后续层之间都有一个连接,而网络有(L + 1)L个直接连接,出现在其所有后续层中。由于考虑了一个更复杂的学习模型,在每个阶段都采用了更密集的连接,每个层都与其他层进行前向连接。在解码器结构中,使用跨融合来对融合的特征映射执行加权交叉连接,以提高上采样并恢复原始分辨率。所提出的融合模型还可以提供更有效和更深入的训练,从而增强特征传递并提高特征重用率。

第一个融合阶段,详细的架构如图4所示,包括LiDAR和RGB分支。2个LiDAR和RGB块分别表示为和。在以下表示中,表示从第个LiDAR块到第个RGB块的权重,表示从第个RGB块到第个LiDAR块的权重。其他阶段与第一个融合阶段类似,第一个融合阶段的详细内容如下:

早期融合、中期融合和晚期融合(参见图5)是skip-cross融合的特殊情况。这种策略背后的基本原理是允许全卷积网络(FCN)处理任何深度信息,而不是像之前提到的那样将其限制在某个特定级别。

在训练过程中,使用损失函数来学习这些融合参数,以更好地整合LiDAR和视觉图像。高级特征包括丰富的语义信息,可以提高分类准确性。低级特征包括详细信息,可以提高定位准确性。

Skip-cross融合充分考虑了不同级别之间的特征融合,从而增加了信息流量并充分重用了这些特征。它还将融合方法的选择转化为网络参数的学习,使网络能够灵活自主地学习融合方法。通过引入密集结构,SkipcrossNets与更复杂的融合模型兼容,从而减少了参数数量,使网络更容易训练。

4、实验
4.1、KITTI中其他融合策略的比较
使用KITTI验证集以MaxF为主要度量标准,对比了几种融合算法的性能。其中,PLARD使用数据空间和特征适应,并且目前在KITTI中排名第一。而在SkipcrossNets中引入的网络结构,比PLARD要小得多(298 MB),网络大小仅为2.32 MB。

考虑到特征提取网络的层数相对较低(浅层),在SkipcrossNets-R和SkipcrossNets-D变体的跨层结构中选择了ResNet34和DenseNet作为Backbone。

表1显示了在3个独立的KITTI场景中各种融合策略的测试结果。如图所示,大多数多模态模型的MaxF都在95%以上,而视觉方法表现不佳。这可能是因为稠密的KITTI点云包含了不受不良光照条件影响的额外信息,为融合提供了有用的指导。

在未标记的城市道路场景和标记的城市道路场景中,skip-cross融合的MaxF值最高。skip-cross融合在标记的城市道路场景和多个标记的城市道路场景中表现良好,优于其他方法。

此外,观察到skip-cross融合的FNR相对较低,这主要是由于本文的网络结构采用了密集的块连接模式,在多个阶段等效于来自较早帧的信息融合。因此,在多个场景中,SkipcrossNets通过实现较低的FNR(即将车道错误标记为背景)超过其他方法,这对于自动驾驶至关重要。

表2显示了综合城市场景的结果,这是上面讨论的3个场景的组合。PLARD和SkipcrossNets都取得了良好的性能,通过AP和FPR(PLARD)以及MaxF、REC和FNR(SkipcrossNets)来衡量。然而,SkipcrossNets-D的参数数量和计算量仅为PLARD的11.4%和14.9%。

SkipcrossNets还比PLARD快33倍,并提供了更高的对比度。正如假设的那样,将SkipcrossNets结构添加到ResNet34和DenseNet中进一步改善了结果。与其他单模态方法或多模态融合方法相比,SkipcrossNets及其变体具有更好的性能。

此外,SkipcrossNets还具有高度的适应性,可以插入其他Backbone结构中。

4.2、A2D2中其他融合策略的比较
使用上面讨论的技术,对A2D2数据集进行了多次实验。在下面的描述中,LiDAR设备的价格对应于记录点云的密度。128和64线的LiDAR价格相对较高,而且并不广泛使用(即大多数汽车制造商使用16或32线的LiDAR作为主要传感器)。因此,对于稀疏点云,算法性能成为一个关键问题。

表3将多个算法的结果进行了比较,以F1为主要指标,表明SkipcrossNets在A2D2数据集中取得了最佳性能。当A2D2点云数据稀疏时,基于PLARD的特征提取性能较差。这是因为PLARD是使用TransNet进行修改的,而质量差的点云图像在调整后不会提供良好的辅助特征效果。

相反,SkipcrossNets通过使用密集块叠加相邻帧特征来增强稀疏点云,更适合这种情景。对于稀疏点云数据,SkipcrossNets-R也表现出色,这对于低成本自动驾驶应用至关重要。与其他单模态方法或多模态融合方法相比,SkipcrossNets及其变体具有更好的性能。

图6的左3列和右3列显示了应用于KITTI和A2D2的各种融合技术的实验结果。第1行显示原始图像,第2行显示地面真值,其他行显示各种融合策略的结果。

在第1列中,只有SkipcrossNets-R与GT一致,因为它避免将右车道误判为道路。
在第2列中,只有交叉融合和PLARD表现不佳,错过了一小部分道路。
在第3列中,大多数技术表现出色,但SkipcrossNets和SkipcrossNets-R的结果边缘略显平滑。
在第4列中,只有SkipcrossNet-R的结果没有噪音。
在第5列中,底部5行表现最佳。
在第6列中,SkipcrossNets-R的结果更加平滑,没有噪音。
总体而言,SkipcrossNets-R产生的噪音较低,性能更好,更适合适应复杂模型和将点云与视觉图像融合。

4.3、Cross-dataset knowledge

通过使用KITTI和A2D2数据进行实验,评估了知识传递的好处。如表4所示,基于KITTI训练的模型直接在A2D2上进行测试,产生了仅有1.95%的极低的F1-Score。

相反,当在A2D2上训练的模型在KITTI上进行测试时,该模型学到了更困难的场景(稀疏点云),在密集点云下取得了良好的性能,产生了78.09%的MAXF和63.3%的AP值。这个结果是由两个数据集的不同特征所促成的,主要是因为KITTI使用64线LiDAR,而A2D2只使用了一根8线和两根16线的LiDAR,导致两个数据集之间的点云密度存在显著差异。

此外,作者对相应的测试数据进行了微调,并观察到最终效果略逊于单一数据集。这证实了在低点云密度下学到的信息对于密集点云具有更高的鲁棒性。

4.4、消融实验

4.6.1 不同模态性能比较
通过使用KITTI和A2D2数据对模型进行训练和测试,验证了不同模态的性能。在表5中,每个子表中的前3行显示了使用仅LiDAR、仅摄像头和两种融合信息源的模型性能,分别对应于LiDAR和摄像头的性能,这两者在KITTI上表现大致相同。然而,在A2D2上,LiDAR数据的性能不如摄像头数据,因为A2D2中的点云数据更稀疏,包含的信息更少。

在某些情况下,融合模型的性能甚至不如单模型。正如在表5的KITTI结果中所示,融合模型不如仅使用图像(例如,-1.24%)。稀疏点云和视觉图像输入的融合进一步降低了性能,主要受到两个因素的影响。首先,由于将点云数据从3D投影到2D空间,输入数据会受到信息丢失的影响。

因此,正如第4.1.3节所讨论的那样,使用ADI来增强车道特征。其次,特征空间的差异使得在融合过程中难以确保两种模态的特征位于相同的级别。因此,我们专注于改善融合模型的性能,并提出了skip-cross融合策略。

4.6.2 不同因素的比较
为了进一步探索最佳融合模型的性能,使用了4种不同的策略,包括:

skip-cross融合
解码器融合(与skip-cross融合一起使用)
ResNet34
跳跃连接
如表5所示,skip-cross在KITTI和A2D2的情况下分别将MaxF提高了1.11%和F1提高了1.18%。skip-cross融合能够自适应调整两种数据源的权重,产生比其他策略更好的融合结果。当解码器被用于频繁调整数据源以恢复图像细节和分辨率时,skip-cross融合也会对KITTI和A2D2产生改进。由于更深的模型意味着更好的非线性表达能力,可以学习更复杂的变换,适应更复杂的特征输入,因此采用ResNet34作为Backbone来加深网络并实现skip-cross融合,从而将MaxF提高了1.32%和F1提高了1.27%。

此外,添加了跳跃连接以直接传递来自编码器的特征图,获得了更好的性能。这种skip-cross融合策略也具有很强的通用性,经过插入ResNet34进行验证,可以类似地应用到其他网络结构(例如DenseNet)中。

5、总结
提出了一种新的skip-cross融合网络结构,将LiDAR点云的高度差异图像与摄像头图像相结合,以提高道路检测性能。所提出的skip-cross融合在训练过程中持续调整融合率,以识别最佳的整合时间和级别,充分考虑不同级别之间的特征融合,使这些特征能够得到充分重用。

在一定程度上,SkipcrossNets有助于在先前帧中预测车道,从而为稀疏点云数据提供了更好的性能。在所展示的实验中,与现有的融合策略相比,SkipcrossNets在KITTI道路数据集和A2D2数据集上取得了卓越的性能优势,达到了最先进的性能水平。

此外,SkipcrossNets体积小(仅2.32MB)且具有接近实时的计算速度,达到了68.24 FPS。还提出了SkipcrossNets-R和SkipcrossNets-D变种,以提高检测精度,具有更深的模型层次和更好的性能。

6、参考
[1].SkipcrossNets: Adaptive Skip-cross Fusion for Road Detection.

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

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

相关文章

【LeetCode】5 . 最长回文子串

5 . 最长回文子串(中等) 方法:中心扩散法 思想 「中心扩散法」的基本思想是:遍历每一个下标,以这个下标为中心,利用「回文串」中心对称的特点,往两边扩散,看最多能扩散多远。 枚举…

简单记录牛客top101算法题初级题(C语言实现)BM12 单链表的排序

1. BM12 单链表的排序 要求:给定一个节点数为n的无序单链表,对其按升序排序。          输入:[1,3,2,4,5] 返回值:{1,2,3,4,5}1.1 自己的整体思路 开始的时候使用冒泡排序,但是冒泡排序的时间复杂度是O(n^2)&…

Day52|leetcode 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

leetcode 300.最长递增子序列 题目链接:300. 最长递增子序列 - 力扣(LeetCode) 视频链接:动态规划之子序列问题,元素不连续!| LeetCode:300.最长递增子序列_哔哩哔哩_bilibili 题目概述 给你一…

政企局域网办公首选:WorkPlus专为政企打造的IM即时通讯平台

政府机构与企业在信息交流与协作中的安全高效需求,使得私有化部署的IM即时通讯平台成为必要选择。WorkPlus提供符合客户应用场景的数字化平台解决方案,满足政企局域网办公需求。WorkPlus如何为政企提供定制化的IM即时通讯解决方案,助力政企机…

【论文绘图】seaborn分类数据绘图

参考:https://seaborn.pydata.org/tutorial/categorical.html 分类变量关系图中的catplot类似于连续变量中的relplot,默认是stripplot。 分类变量图种类 分类散点图 stripplotswarmplot (kind‘swarm’) 类别分布图 boxplotviolinplotboxenplot …

Chrome实现自动化测试:录制回放网页动作

Chrome 浏览器是真的恐怖,它会把相关的小工具都卷死。从它诞生至今,创造了一个又一个的传奇,现在可以看到基于它的操作系统 chrome os ,还能买到用它做系统的笔记本电脑。 最近,新版本支持录制和回放功能了。有了这个…

算法通关村14关 | 堆结构

1. 堆的概念与特征 堆是将一组数据按照完全二叉树的存储顺序,将数据存储在一维数组中的结构,对的结构有两种,一种称为大顶堆,一种称为小顶堆。 小顶堆:任意节点的值均小于等于它的左右孩子,并且最小的值位于…

Matlab(GUI程式设计)

目录 1.MatlabGUI 1.1 坐标区普通按钮 1.1.1 对齐组件 1.1.2 按钮属性 1.1.3 脚本说明 1.1.4 选择呈现 1.3 编译GUI程序 在以前的时候,我们的电脑还是这样的 随着科技的不断进步,我们的电脑也发生着翻天覆地的改变1990s: 在未来&#xff0c…

(三)行为模式:7、观察者模式(Observer Pattern)(C++示例)

目录 1、观察者模式(Observer Pattern)含义 2、观察者模式的UML图学习 3、观察者模式的应用场景 4、观察者模式的优缺点 (1)优点: (2)缺点 5、C实现观察者模式的实例 1、观察者模式&…

DP读书:鲲鹏处理器 架构与编程(十一)鲲鹏生态软件架构 AND 硬件特定软件

鲲鹏生态软硬件构成 鲲鹏软件构成硬件特定软件1. Boot Loader2. SBSA 与 SBBR3. UEFI4. ACPI 鲲鹏软件构成 鲲鹏处理器的软件生态是一个不断发展的软件生态,服务器本身也具有复杂度多样性,经过很长时间的发展服务器硬件有不同的操作系统方案&#xff0c…

创造商业新机遇,短视频商城APP崭露头角

随着移动互联网和社交媒体的飞速发展,短视频平台逐渐成为人们获取信息和娱乐的重要渠道。基于此,打造短视频商城APP成为引爆颠覆式购物新潮的利器。短视频商城APP结合了短视频分享和电子商务的优势,为用户提供了一种全新的购物体验。 颠覆传统…

AI 模型:数据收集和清洗

为了训练AI模型,需要收集和准备足够的数据。数据应该涵盖各种情况和场景,以确保系统在各种情况下都能准确地运行。数据原始来源应该是真实的,并且应该涵盖系统预计的使用情况。数据应该根据特定的需求进行采样和处理,可以来自各种来源,例如公共数据集、第三方数据提供商、…

在项目管理中,如何做好进度规划?这两点很重要!

生活中,做事前做好计划,结果总不会太差。如果是走哪算哪,到最后可能什么也做不好。日常生活中尚且如此,在项目管理中涉及人员、任务多,所以,项目经理必须具备规划能力,统筹项目的各种组织和要素…

网络安全(黑客)自学笔记学习路线

谈起黑客,可能各位都会想到:盗号,其实不尽然;黑客是一群喜爱研究技术的群体,在黑客圈中,一般分为三大圈:娱乐圈 技术圈 职业圈。 娱乐圈:主要是初中生和高中生较多,玩网恋…

Spring Boot业务代码中使用声明式事务@Transactional失效踩坑点总结

👨‍💻本文专栏:业务代码踩坑总结 👨‍💻本文简述:Spring Boot业务代码中使用声明式事务Transactional失效踩坑点总结 👨‍💻上一篇文章: 👨‍💻有…

Leetcode394 字符串解码

思路:类似于入栈出栈的操作,分层保存数字和字符串,然后逐层相乘合并,通过判断当前字符和上一个字符类型来确定数字是否结束 class Solution:def decodeString(self, s: str) -> str:current_str [""]current_num[]…

第二章 局部图像描述子

文章目录 第二章 局部图像描述子2.1Harris角点检测器2.2SIFT(尺度不变特征变换)2.2.1兴趣点2.2.2描述子2.2.3检测兴趣点 第二章 局部图像描述子 本章旨在寻找图像间的对应点和对应区域。本章将介绍用于图像匹配的两种局部描述子算法。本书的很多内容中都…

RocketMQ 安装与入门

文章目录 简介下载下载目录地址 安装部署环境要求下载二进制包解压即可启动 NameServer 启动BrokerProxy单组节点单副本模式启动 使用Java客户端发布订阅消息1. 创建主题 topic2. 创建Java工程使用Maven引入Java SDK包生产者代码 ProducerDemo消费者代码 ConsumerDemo RocketMQ…

SPSS教程:如何绘制带误差的折线图

SPSS教程:如何绘制带误差的折线图 1、问题与数据 研究者想研究45-65岁健康男性中,静坐时长和血胆固醇水平的关系,故招募100名研究对象询问其每天静坐时长(time),并检测其血液中胆固醇水平(cho…

VSCode下载、安装及配置、调试的一些过程理解

第一步先下载了vscode,官方地址为:https://code.visualstudio.com/Download 第二步安装vscode,安装环境是win10,安装基本上就是一步步默认即可。 第三步汉化vscode,这一步就是去扩展插件里面下载一个中文插件即可&am…