【MMAN-M2】基于缺失模态编码器的多多头关注网络

abstract:

多模态融合是多模态学习领域的研究热点。以往的多模态融合任务大多是基于完整模态的。现有的缺失多模态融合研究没有考虑模态的随机缺失,缺乏鲁棒性。大多数方法都是基于缺失模态和非缺失模态之间的相关性,而忽略了缺失模态的语境信息。考虑到以上两个问题,我们设计了一个基于缺失模态编码器的多多头关注网络(mmman - m2)。首先,利用多头注意力网络对整个序列进行潜在特征提取,表示单个模态,然后进行融合;然后,通过优化缺失和非缺失特征数据的多模态融合结果提取缺失模态上下文特征,并通过编码模块对缺失模态进行编码;最后,利用Transformer编码器-解码器模块将获取的全局信息映射到多个空间,并对我们的不确定多模态编码进行整合,对网络模型进行训练,并实现多模态融合分类,对模型性能进行评价。在多模态公共数据集上的大量实验表明,该方法具有最佳效果,可以有效提高多模态融合的分类性能。

introduction:

数据呈现出越来越多样化的表现形式,包括图像、声音、文字等。这些数据被称为不同模态[1]。对于同一个物体,它通常有几个模态。例如,视频剪辑具有声音、文本和图像模式[2,3]。

挖掘多模态之间的关联信息可以帮助我们更全面地理解对象。但由于拍摄对象被遮挡等原因,采集到的数据存在缺失;文本中有乱码;在红外光谱采集过程中存在干扰等问题。这些缺失的数据会对多模态数据的特征提取产生负面影响,导致模型性能下降,结果不准确[4-6]。因此,有必要研究多模态缺失数据的多模态方法,以提高模型的方法性能。

以前已经研究过缺失的模式。通过叠加残差编码器估计缺失模态,并挖掘缺失模态的特征[7]。似然函数用于估计缺失模态和非缺失模态之间的关系[8]。循环一致性用于保留模态信息[9],并减少缺失模态的影响。GAN用于捕获可用模态和缺失模态之间的关系,并生成高质量的缺失模态特征[10,11]。图的结构和注意机制被用来学习和交互图节点之间的互补特征[12]。变压器编码器-解码器网络用于学习缺失模态特征[13]。

然而,这些方法只关注如何挖掘缺失模态与非缺失模态的关联特征,即利用缺失模态与非缺失模态之间的相关关系来充分生成/估计/保留缺失模态信息。

实际上,缺少模态的上下文特征没有被考虑,这将影响模态的融合特征。此外,在实践中,缺失模态是随机的,缺失模态的个数也是随机的。

因此,有两个问题需要解决:(a)如何捕捉缺失模态的上下文特征;(b)如何在随机缺失模态的情况下提高准确性。

多头注意网络可以建立不同类型数据上下文信息的特征表示,也可以捕获更大范围的相关特征。因此,本文设计了一个多重多头关注网络。首先提取单个模态中缺失数据的特征,然后利用多头关注网络提取融合模态之间的特征信息。此外,还设计了编码网络来学习随机缺失模态的特征

基于缺失模态编码器的多多头注意力网络的总体结构。该网络包括三个部分:

(a)多模态表示与融合模块,详细信息见3.2节。

利用多头注意网络对整个序列进行潜在特征提取,表示不同的模态。每个嵌入向量包含其他嵌入信息;然后利用多模态融合网络实现融合。输入为,输出为

(b)优化融合编码网络模块,详见3.3章节。

优化后的融合网络从融合的多模态表示中提取特征,包括缺失和非缺失特征数据;利用编码网络对缺失模态进行编码。设置一个缺失的码位来标记是否存在缺失的模态。输入为,输出为

(c)编码器和解码器网络模块,详情见第3.4节。

编-解码器网络获取全局信息,并将全局信息映射到多个空间,增强了模型的表达能力。它将不确定多模态编码集成到变压器中。该网络可以通过训练来关注编码的缺失模态。输入是,解码器输出是。编码器的结果用于分类任务。另外,是预训练模态网络的输出,用于计算编码器结果的损失。

提出了一种基于缺失模态编码器的多头注意力网络。在图1中,包括三部分:

(a)多模态表示和融合模块,通过提取潜在特征来表示不同的模态;

(b)优化融合编码网络模块,提取融合特征,对缺失模态进行编码;

(c)编码器和解码器网络模块获取全局信息,并映射到多个空间。本文的主要贡献如下:

1. 提出了一个统一的模型。多多头关注网络通过整合嵌入信息生成特征来提取基于整个序列的潜在特征。对随机缺失模态进行编码,提高了对随机缺失模态的鲁棒性;

2. 设计了一种基于多个多头关注网络的编码器网络。上下文特征信息还从融合的多模态表示中提取,包括缺失和非缺失特征模态;

3. 变压器通过集成不确定多模态编码来学习缺失模态的编码特征码。增强了多模态融合的鲁棒性。在公共数据集上,性能得到了提高。证明了该模型具有收敛性。

related work

在本节中,我们介绍了缺失模态的多模态学习研究。

基于GAN:生成网络捕获了模态之间的关系,并且可以估计缺失的模态[10,11]。生成对抗网络(GAN)[14]被提出用于Shang等[15]提出了一种基于GAN (VIGAN)的缺失视图插值方法。利用随机抽取的每个视图的数据,通过GAN识别域到域的映射,作为缺失数据的补全;Zhang等[11]提出了一种用于任意模态缺失的多模态多标签学习的部分模态条件gan (PMC-GAN)。它结合了所有可用的模式,以产生高质量的缺失模式

基于相关性:根据缺失模态与非缺失模态之间的相关性对缺失模态进行处理。Mittal等[16]提出了乘法多模态情感识别,通过CCA判断输入模态是否为缺失模态,并为缺失模态生成代理特征向量进行预测;Ma等[17]提出了一种基于Hirschfeld-Gebelein-R´enyi (HGR)最大相关的相关损失方法,该方法捕获了共同信息来处理缺失模态;Matsuura等[8]提出了缺失模态的广义贝叶斯典型相关分析(GBCCA-M2);Mo等[18]设计了图内和图间的去相关损失,并通过对偶相关约简捕获共同信息。在似然函数中包含不完整模态集,以学习缺失模态和非缺失模态之间的关系。

基于周期一致性:关键是通过共同学习不同模态之间的关系来学习联合表征。Pham等[9]通过从源模态到目标模态的循环变换学习鲁棒表示,因为循环一致性损失可以保留模态的最大信息;Zhao等[19]将周期一致性学习应用于缺失模态的imputation;Wang等[10]提出了一种具有自适应融合和周期一致性的生成式部分多视图聚类模型(GP-MVC),该模型基于共享表示生成缺失视图的数据。

基于编码器:缺失模态可以基于编码器进行重构。Baldi等人[20]提出了自动编码器来学习潜在表征。Tran等[7]提出了一种级联残差自编码器(CRA)来估计缺失模态数据,并将残差ae组合成级联架构;Cai等[21]设计了三维编码器-解码器网络来捕捉模态关系;Yuan等[22]使用Transformer提取模态关系,重现缺失的语义

此外,Du等[23]利用半监督学习(SSL)从多模态不完全数据中学习潜在变量;Chen等[24]利用异构超节点图将异构不完整数据投影到统一嵌入空间;Parthasarathy等[6]通过消融视觉输入来训练缺失模式的神经网络。Marín-Jim´enez等人[25]提出使用gate机制来禁止缺失模态的输入,以提高模型的鲁棒性[26]。图网络用于表示学习[27,28]。一些研究甚至提供了多模态可解释性[29,30]。

提出方法

在本节中,我们首先定义了研究问题,然后详细描述了我们提出的模型的模块。

问题的定义和符号

本研究研究的问题可以定义为基于缺失模态不确定的多模态数据对用户情绪的准确识别。符号定义如表1所示。

多模态表示与融合模块

多模态表示网络

基于多头注意机制的多模态表示从多个维度提取模态的信息特征。注意层的核心是特征提取器。它根据整个序列捕获潜在的上下文特征。每个嵌入包含其他嵌入信息,可以生向量成有意义的特征并去除无关的噪声。因此,我们使用多头注意进行多模态表征。通过多模态表示网络从输入中提取特征来表示每个模态。

具体而言,输入模式利用多头注意在多个不同的投影空间中构建不同的投影信息。将得到的输出矩阵拼接在一起,从不同的语义空间中获得更多的信息。注意函数定义为Eq.(1)。

Q为查询向量,K为键向量,V为值向量。D是输入数据的维数。

多头注意定义为Eq.(2)。

h为头的个数和层数。Wo∈Rd×d为权重矩阵。给定输入X,第i个头计算公式为Eq.(3)。

分别为Query、Key、Value的第i权重矩阵。

假设随机丢失的模式是视觉和语言,输入x为

然后,不同输入模态的表示如式(4)所示。

结果,其中表示三种模式的多头注意机制表征结果。

多模态融合网络

Q:多模态融合网络的目的是什么?因为Xm已经将三个模态的特征信息concat过了

A:这里是为了实现更深层次的数据整合和信息提取。虽然简单的拼接能将不同模态的信息物理地结合在一起,但它并不足以充分捕捉和利用模态间的潜在关联和互补信息。

前馈神经网络[31,32]在融合模态进行公共空间映射时被广泛使用。然而,参与融合的模态数量是固定的,缺乏很大的可扩展性。

因此,受[13]的启发,本文采用交叉映射进行投影。如图2所示,对输入进行加权和成对求和,然后垂直连接,实现最终融合。结构支持提取不同模态的特征。每种模态都包含有助于分类的潜在特征。

如图2所示,对三种模态的不同表示进行加权。计算公式为式(5)。

其中,Fm是不同模态的加权表示,

都是权矩阵。是对矩阵垂直连接的操作。该操作定义为Eq.(6)。

模态表示连接为Eq.(7)。

其中是融合特征。通过这种方法,可以将不同模态的特征投影到公共空间中,达到融合的目的。由于连接矩阵的数量在垂直连接中不受限制,我们可以扩展到更多的模态来实现模型的可扩展性

优化融合编码网络模块

优化融合网络

该模块有助于在随后的编码和分类任务中准确分类。许多研究都使用多头注意来提取模态信息。

在优化的融合网络模块中,我们将融合特征EAll作为输入。将式(3)重新定义为式(8)。

Q:这个headi有什么用?

A:headi在多头注意力机制中代表单独的一个头,多头注意力机制是一种在模型中并行处理数据的方式,它允许模型从不同的表示子空间中学习信息。在多头注意力中,Eall会被用来生成多组Q,K和V,每一组对应于一个头。

具体过程如图1(b)左侧所示。首先,将输入K、V和Q线性变换为Eq.(9)。

是线性变换的结果,的元素。AT是线性变换的转置矩阵。bias偏置是偏移量。

那么这一步就是通过K和Q的组合来匹配V,这是一个矩阵乘法运算,如式(10)所示。

对矩阵乘法的结果进行降维,如式(11)所示。

其中,d是维数。对降维结果执行softmax函数,如式(12)所示。

将输出结果与V再次进行乘法运算,计算如式(13)所示。

最后对结果进行线性变换,输出结果记为

Q:看不懂这一节......

A:

步骤一:线性变换生成Q,K和V。具体而言,Q,K和V都是通过对输入特征Eall应用不同的线性变换(权重矩阵)生成的。这里的公式描述了如何从中提取并通过变换生成Q,K或V。是用于生成Q,K或V的变换矩阵的转置形式,用于匹配输入特征维度。

步骤二:注意力得分计算,使用K × Q来计算得分矩阵Mat(K,Q),其中K是键矩阵,Q是查询矩阵。这一步是查询和键的相似度。

步骤三:归一化处理,首先进行降维,使用公式,对得分矩阵进行维度规范化处理,以防止在进行softmax归一化时因维度过高导致梯度问题。接下来进行softmax归一化,对得分Sca进行归一化,转化为概率分布形式,表示各个值的相对重要性。

步骤四:使用归一化后的得分Sof和值矩阵V计算加权和Mat(Sof,V) = Sof×V。这一步通过注意力得分加权V中的特征,生成加权特征输出。

步骤五:最终的输出通过另一个线性变换得到,记录为,这个输出用于后续的任务。

 encoding network

每种情态都有两种状态:“available”和“missing”,“available”表示该情态可用,“missing”表示该情态缺失。模态以M元组的形式表示,其中M是模态的数量。例如,我们以三连音的形式表示三种模态:,这意味着声学模态缺失。此外,如图1(b)右侧所示,我们使用二进制来确定两种状态,“0″”表示“可用”,“1″”表示“缺失”。一个标志位被设计用来指示数据中是否有缺失的模态。如果有遗漏情态,则定义为“0″”,如果没有遗漏情态,则定义为“1″”。此外,根据模态的个数,确定了二进制位数的个数。如果有三个模态,我们定义4位二进制,如果有M个模态,则编码M + 1位二进制。编码网络有助于注意机制将注意力转移到随机缺失的比特上,从而提高网络的学习性能。

在我们的研究中,使用的数据集有三种模式,因此,编码位的具体情况如表2所示。编码后的二进制被编码,称为。通过损失训练,使网络中的注意力集中在缺失模态上,从而使网络模型的分类任务处理性能更好。

编码器和解码器网络模块

这是网络的第三部分,如图1(c)所示。变压器中的注意力获取全局信息并映射全局信息通过多个头部传递到多个空间,学习特征,增强表达能力。将编码后的信息放入网络中,充分集成了不确定多模态编码。

通过训练可以将网络集中在编码缺失的模态上。编码器的结果用于分类。

Q:总结一下

A:每种模态(如视觉、声音、语言)具有两种状态:"available" 和 "missing"。这些状态通过 M-tuples 的形式进行编码,其中 M 是模态的数量。对于每个模态的可用性,使用一位二进制编码(0 或 1)来表示。例如,如果有三种模态,就使用四位二进制编码(M+1位)来标示哪些模态是可用的,哪些是丢失的。这种编码帮助模型识别并集中处理那些具有缺失模态的情况。

编码网络利用多头注意力机制(Multi-Head Attention)来处理编码后的模态信息,通过这种机制,模型可以更好地集中注意力于缺失的信息,并尝试从可用的数据中推断或补全缺失的内容。

encoder

编码器包括六个编码器块。编码器块g(x)显示在图1(c)的左侧,包括多头注意力、前馈网络、和标准化层。

我们已经在第3.2节和这里的等式中详细解释了多头注意。将(2)、(3)重新定义为式。(14),(15)。

在多层训练中,Add用于避免梯度爆炸或···················消失。层归一化[33]加速了收敛。

Add & Norm结果如Eq.(16)所示。

然后我们设计了一个两层的全连接层。将数据映射到高纬度空间,再映射到低纬度空间,提取更深层次的特征。结果如式(17)所示。

最大函数为Relu, W1、W2为权矩阵,b1、b2为偏置参数。的尺寸一致。最后,第二个Add&Norm结果如Eq.(18)所示。

f(x)为前馈神经网络。

编码器包括6个编码器块,如式(19)所示。

其中g(x)是一个编码器块。是编码器的输出。

Decoder

该解码器还包括6个解码器块,如图1(c)右侧所示,包括两个多头注意。第一个多头注意是添加遮罩。为避免未来信息对解码器的影响,掩蔽多头注意采用上三角矩阵,计算如式(20)。

其中,是一个上三角形为-inf的矩阵。

第二个多头注意与编码器相同。它们的输入是不同的。经过六层块后,输出记录为

最优化

将损失函数分为四个部分并进行正则化。首先是分类损失,选择标准的交叉熵损失函数。计算如式(21)所示。

yi是真实标签,I是一组样本

第二部分是编码器损耗计算编码器和预训练结果之间的损失可以增强网络对缺失模态的学习。受[19]的启发,我们使用KL散度计算其损失函数,如Eq.(22)。

式中,表示预训练结果表示编码器

第三部分是重建损失。它是缺失的编码结果和编码器结果之间的重构损失。重构损失如式(23)所示。

其中,h(x)是保留位的函数。表示表示​​​​​​​

总体而言,目标函数定义为Eq.(25)。

三个W是损失权重。

experiments

在本节中,将提出的方法与以前最先进的基线进行比较

数据集和基线

数据集:

我们的实验是在多模态数据集,CMU-MOSI和IEMOCAP。CMU-MOSI包括Youtube上93位演讲者的视频。

每个视频由多个观点片段组成,每个片段都用[3,3]范围内的情绪进行注释,其中¶3表示高度消极,3表示高度积极,0表示中立。我们遵循[34]中的情绪标签处理,形成两种类型的情绪识别设置,包括负值,其值从¶3到0,正值的值从0到3[3]。IEMOCAP包含5个二进制对话环节录制的视频。它总共有302个视频,每个视频至少包含24个话语。每个部分都标有9种情绪。经过[13]中的情绪标签加工,形成了两种类型的情绪识别设置:消极的:沮丧、愤怒、悲伤、恐惧、失望,积极的:快乐、兴奋[35]。

baseline:

Autoencoder[20]:通过训练对数据进行编码,完成从输入到输出的传递,并尽可能保留特征;

CRA(级联残差自编码器)[7]:通过叠加残差自编码器对当前预测与原始数据之间的残差进行建模,估计缺失模态;

MCTN (Multimodal Cyclic Translation Network,多模态循环翻译网络)[9]:从源模态S到目标模态T的转换捕获了模态S和模态T之间联合信息的中间表示;

TransModality[36]:一种利用正向和反向翻译将多模态特征与端到端翻译模型Transformer融合的方法;

缺失模态想象网络(Missing modal Imagination Network, MMIN)[19]:基于配对多模态数据,采用CRA和循环一致性学习学习鲁棒联合多模态表示来处理缺失模态;

TATE (tag - assisted Transformer Encoder)[13]:设计标签编码覆盖缺失的单模和多模,采用新的公共空间投影学习联合表示;

MMAN-M2(我们的)。

模态预处理

声学表示:使用音频分析工具包Librosa提取声学特征[37]。选取过零率、低频倒谱系数(MFCC)和恒Q图(CQT)三个特征来表示音频片段,并将其连接起来,最终生成33维声学特征。

视觉表示:受[2,38]的启发,OpenFace2.0工具包[39]被用于提取面部特征。最终获得709维的视觉表征,包括面部、头部和眼睛的运动。

语言表示:使用预训练的Bert[40]为每个文本话语提取文本特征。最后得到一个768维的单词文本向量。

评价指标

在我们的实验中,使用F1分数和准确率进行评价。它用于将分类结果与实际测量值进行比较,分类结果的准确性可以在混淆矩阵中显示。

结果与讨论

ACC和F1

在实验中,缺失率(MRs)设为0% = 0.0,10% =0.1,20% =0.2,30% =0.3,40% =0.4,50% =0.5。从F1评分和ACC(准确率)两个指标可以看出,我们的方法有了明显的改进。表3和表4是随机缺失单模态MOSI数据集上的结果。表3为F1评分比较结果。在所有缺失率下,我们的方法都达到了最佳性能。表4是ACC的比较结果,除了缺失率为0.2时的次优结果外,我们的模型总体表现优异。

表5和表6是随机缺失多模态MOSI数据集上的结果。表5为F1评分比较结果。从表中可以看出,当缺失率为0.1和0.4时,并没有达到最优结果,但在其他缺失率下,性能明显提高,达到最佳性能。表6为ACC的比较结果。在表中的每个缺失率下,我们的模型表现出最佳性能。

表7和表8是在IEMOCAP数据集上随机缺失单模态的结果。表7为F1评分比较结果。总的来说,除了缺失率为0.3时的次优结果外,我们提出的方法在每个缺失率下都达到了性能峰值。表8为ACC的比较结果。在所有缺失率下,所提出的模型都达到了最佳性能。

表9和表10是IEMOCAP数据集随机缺失多模态的结果。表9为F1评分比较结果,表10为ACC评分比较结果。在0.3时,这两个指标是次优的,但在其他缺失率时,我们的模型达到了最佳。

鲁棒性

我们的实验是基于随机缺失模态。当一个情态随机丢失时,我们无法确定哪个情态丢失了。因此,当缺失模态的数量是随机的时,需要提高鲁棒性。

对于每次实验,不同的缺失模态有不同的分类结果。因此,我们需要确保我们的方法在任何缺失模态的情况下都能表现出良好的鲁棒性。我们在MOSI数据集上进行了20多个不同缺失率的实验。选择10次的训练结果并按比例进行显示。具体实验结果如图3所示。

同样,当两个模态随机缺失时,如图4所示。其中,蓝色条代表F1 Score,红色条代表准确率。

图3显示了我们的模型在随机缺失的一种模式下,不同缺失率下的F1得分和准确率。如图3所示,当缺失率为0时,F1得分最好,准确率最高。当缺失率为0.1时,F1分数和准确率波动不大,模型非常稳定,分类效果也很好。当缺失率为0.2时,F1分数和准确率波动较大。在进行不同的随机训练时,由于缺失率突然下降的影响,模型也处于次优状态。当缺失率为0.3时,模型再次表现出良好的性能,但在一定范围内,性能波动较大。缺失率为0.4时,模型稳定,波动范围较好。当缺失率为0.5时,F1得分和准确率都有所下降。随着脱靶率的增加,模型开始呈现下降趋势。因此,当缺失率超过一半时,就会影响模型的性能。

图4显示了两种随机缺失模式下,我们的模型在不同缺失率下的F1得分和准确率。当缺失率为0时,F1得分和准确率也是最好的。缺失率为0.1时,F1分数和准确率变化不大。这意味着我们的模型非常稳定。当缺失率为0.2和0.3时,我们的模型略有波动。F1得分和准确率趋势一致,均较好。当缺失率为0.4时,每次训练变化的波动较小,模型稳定。当缺失率为0.5时,会出现一些异常和不一致的结果。这是由于数据缺失率的增加而导致的。综上所述,当随机缺失一模态和两模态的缺失率在0.5以内时,模型达到最佳。当缺失率达到0.5时,我们模型的结果开始下降。

因此,对于缺失率超过一半的数据,该模型的性能不是最好的。当缺失率小于0.5时,该模型具有较好的鲁棒性,在分类任务中表现出最佳的性能

图5为不同缺失率下模型的ErrorBar。图5中左侧为F1得分,图5中右侧为准确率。当一个模态随机缺失时,当缺失率为0.2和0.5时,F1 Score和准确率较小。在两种模式的随机缺失中,缺失率为0.4时,指标达到最低。多次训练的结果误差不大,结果非常稳定。此外,当缺失率为0.3时,F1分数和准确率的误差都很小,说明训练结果相对稳定。总的来说,F1分数的误差一般低于准确率,并且在训练过程中更加稳定。

收敛性

图6显示了MOSI数据集上迭代与损失的关系。每个子图表示一个缺失率。当迭代次数达到600次时,损失趋于稳定,模型稳定且收敛。

图7显示了IEMOCAP数据集上迭代与损失的关系。每个子图表示一个缺失率。当迭代次数达到200次时,我们的模型达到稳定收敛。

综上所述,我们的模型是收敛的,并且收敛效果良好。

可解释性

通过实验观察不同缺失率下分类结果的变化,验证模型的重要性。如表3-10所示,所有指标都随着缺失率的增长而下降。数据的丢失导致模态特征的耗尽,从而导致特征稀疏。从不完全模态序列中提取稀疏特征会影响多模态融合的性能。当模态数据缺失时,非缺失模态数据的特征只会受到轻微的破坏。这是对网络的期望,即根据不同缺失率的输入来调整每种模式的特征,以提高性能。

结论

模态缺失是随机的,现有的研究没有充分考虑模态缺失的语境信息。为此,提出了一种基于缺失模态编码器的多头关注网络(MMAN-M2)。用多头注意表示模态,用投影的交叉映射得到模态之间的关系。对随机缺失模态进行编码并与优化模块结合,增强缺失模态与非缺失模态之间的关联。

编码器和解码器模块用于捕获模态中的动态信息。在公共数据集上进行了广泛的实验。与最先进的方法相比,我们的方法总体上达到了最好的性能。在不同缺失率下进行了实验,结果表明,当缺失率小于0.5时,所提模型具有较好的鲁棒性。同时证明了模型具有收敛性。

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

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

相关文章

【AI绘画】Stable Diffusion 基础教程! 如何写出好的prompt,一些技巧和原则

前言 Stable Diffusion 教程-中文 Ask AI for ART Original txt2img and img2img modes 基础模式之 文生图/图生图 基础入门部分 所有的AI设计工具,安装包、模型和插件,都已经整理好了,👇获取~ 输入一段话,生成一…

C++ —— 网络通信

之前在Linux系统下介绍了多种实现网络通信的方式,从本文开始后面的文章将在Windows系统下用C为大家介绍技术,敬请期待~。 话不多说,直接进入正文,我们知道,要完成网络通信要用到非常多的函数,并且函数的参数…

FPGA视频GTH 8b/10b编解码转PCIE3.0传输,基于XDMA中断架构,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的PCIE方案我已有的 GT 高速接口解决方案 3、PCIE基础知识扫描4、工程详细设计方案工程设计原理框图输入Sensor之-->芯片解码的HDMI视频数据组包基于GTH高速接口的视频传输架构GTH IP 简介GTH 基本结构GTH 发送和接收处理…

java基础之 String\StringBuffer\ StringBuilder

文章目录 String字符串的创建为什么说String是不可变的?创建后的字符串存储在哪里?字符串的拼接String类的常用方法 StringBuilder & StringBuffer使用方法验证StringBuffer和StringBuilder的线程安全问题 总结三者区别什么情况下用运算符进行字符串…

深度解析阿里的Sentinel

1、前言 这是《Spring Cloud 进阶》专栏的第五篇文章,这篇文章介绍一下阿里开源的流量防卫兵Sentinel,一款非常优秀的开源项目,经过近10年的双十一的考验,非常成熟的一款产品。 文章目录如下: 2、什么是sentinel&…

移远通信推出全星系多频段高精度定位定向GNSS模组LG580P,引领高精度导航新时代

近日,全球领先的物联网整体解决方案供应商移远通信宣布,正式发布其全星系多频段高精度GNSS模组LG580P。该模组具备高精度、高稳定性、低功耗等特点,并支持20Hz RTK Heading 更新频率,为智能机器人、精准农业、测量测绘、自动驾驶…

Python设计模式探究:单例模式实现及应用解析

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

企业微信会话存档引用com.tencent.wework.Finance出错?

报错: 会话存档引用com.tencent.wework.Finance出错,找不到该类,报错如下:java.lang.NoClassDefFoundError: Could not initialize class com.tencent.wework.Finance 这个问题怎么解决? 解决方案:需要下载…

【前端基础】盒子模型

目标&#xff1a;掌握盒子模型组成部分&#xff0c;使用盒子模型布局网页区域 01-选择器 结构伪类选择器 基本使用 作用&#xff1a;根据元素的结构关系查找元素。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8">…

鸿蒙开发:ArkUI Toggle 组件

ArkUI提供了一套完整的UI开发工具集&#xff0c;帮助开发者高效完成页面的开发。它融合了语言、编译器、图形构建等关键的应用UI开发底座&#xff0c;为应用的UI开发提供了完整的基础设施&#xff0c;包括简洁的UI语法、丰富的UI功能以及实时界面预览工具等&#xff0c;可以支持…

【LeetCode每日一题】——802.找到最终的安全状态

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 图 二【题目难度】 中等 三【题目编号】 802.找到最终的安全状态 四【题目描述】 有一个有…

安利一款开源企业级的报表系统SpringReport

SpringReport是一款企业级的报表系统&#xff0c;支持在线设计报表&#xff0c;并绑定动态数据源&#xff0c;无需写代码即可快速生成想要的报表&#xff0c;可以支持excel报表和word报表两种格式&#xff0c;同时还可以支持excel多人协同编辑&#xff0c;后续考虑实现大屏设计…

考公人数攀升?地信、测绘、地质、遥感等专业,能报考哪些单位

近年来&#xff0c;考公人数持续飙升&#xff0c;国考报名人数更逐年攀升。2025年国家公务员考试共有341.6万人通过资格审查&#xff0c;报录比达86:1。国考报名人数再创新高。 国家公务员考试时间安排 地理学相关岗位分析 地信属于地理科学类&#xff0c;测绘类中不包括地信&…

LabVIEW 离心泵机组故障诊断系统

开发了一套基于LabVIEW图形化编程语言设计的离心泵机组故障诊断系统。系统利用先进的数据采集技术和故障诊断方法&#xff0c;通过远程在线监测与分析&#xff0c;有效提升了离心泵的预测性维护能力&#xff0c;保证了石油化工生产的连续性和安全性。 项目背景及意义 离心泵作…

YOLOv10改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习

一、本文介绍 本文记录的是利用ScConv优化YOLOv10的目标检测网络模型。深度神经网络中存在大量冗余&#xff0c;不仅在密集模型参数中&#xff0c;而且在特征图的空间和通道维度中。ScConv模块通过联合减少卷积层中空间和通道的冗余&#xff0c;有效地限制了特征冗余&#xff…

Linux 文件系统权限

文件的一般权限 文件详细信息 使用命令 ll 或 ls -l 查看 文件权限构成 权限针对三类对象定义 owner &#xff1a;所有者&#xff0c;缩写 u group &#xff1a;所属组&#xff0c;缩写 g other &#xff1a;其他人&#xff0c;缩写 o 访问者三种权限 组成模式分析 …

C++上机实验|多态性编程练习

1.实验目的 (1)理解多态性的概念。 (2)掌握如何用虚函数实现动态联编 (3)掌握如何利用虚基类。 2.实验内容 设计一个飞机类 plane,由它派生出歼击机类fighter和轰炸机类 bomber,歼击机类fighter 和轰炸机类bomber 又共同派生出歼轰机(多用途战斗机)。利用虚函数和虚基类描述…

学习threejs,使用对象组合

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.Object3D 三维物体 二…

遇到的问题

刚遇到的问题&#xff1a; 一直以为这个图片数据结构是以下这种&#xff1a; {"descrlong1": [{"CL04": "人力违纪"},{"CL05": "其他"}], }其实数据结构是&#xff1a; {"descrlong1": [{"key": &quo…

发现8个高风险漏洞 NVIDIA GeForce用户必须更新GPU驱动程序

所有NVIDIA GeForce图形处理器都面临着高风险&#xff0c;因为该公司在其图形处理器驱动程序中发现了几个漏洞&#xff0c;这些漏洞可能会让黑客利用你的系统。公司敦促用户更新到最新的GeForce显示屏和VGPU驱动程序&#xff0c;以确保他们的系统不受任何漏洞的影响。 NVIDIA在…