Modality-Aware Contrastive Instance Learning with Self-Distillation ... 论文阅读

news2024/11/24 17:17:47

Modality-Aware Contrastive Instance Learning with Self-Distillation for Weakly-Supervised Audio-Visual Violence Detection 论文阅读

  • ABSTRACT
  • 1 INTRODUCTION
  • 2 RELATEDWORKS
    • 2.1 Weakly-Supervised Violence Detection
    • 2.2 Contrastive Learning
    • 2.3 Cross-Modality Knowledge Distillation
  • 3 PRELIMINARIES
  • 4 METHODOLOGY
    • 4.1 Two-Stream Network
    • 4.2 MA-CIL
    • 4.3 Self-Distillation
    • 4.4 Learning Objective
  • 5 EXPERIMENT
  • 6 CONCLUSION

文章信息:
在这里插入图片描述

原文链接:https://arxiv.org/abs/2207.05500#:~:text=Weakly-supervised%20audio-visual%20violence%20detection%20aims%20to%20distinguish%20snippets,overlooking%20the%20modality%20heterogeneousness%20over%20the%20weakly-supervised%20setting.
源码:https://github.com/JustinYuu/MACIL_SD
发表于:MM 2022

ABSTRACT

弱监督的音频-视觉暴力检测旨在利用视频级别标签区分包含多模态暴力事件的片段。许多先前的工作在早期或中间阶段执行音频-视觉整合和交互,但忽略了在弱监督设置下的模态异质性。在本文中,我们分析了多实例学习(MIL)过程中的模态异步性和未区分实例现象,并进一步研究了它对弱监督音频-视觉学习的负面影响。为了解决这些问题,我们提出了一种模态感知对比实例学习与自我蒸馏(MACIL-SD)策略。具体来说,我们利用轻量级的双流网络生成音频和视觉袋,其中单模态背景、暴力和正常实例以无监督方式聚类为半袋。然后,音频和视觉暴力半袋表示被组装为正对,暴力半袋与相反模态中的背景和正常实例结合为对比负对。此外,应用自我蒸馏模块将单模态视觉知识转移到音频-视觉模型中,从而减轻噪声并缩小单模态和多模态特征之间的语义差距。实验表明,我们的框架在大规模XD-Violence数据集上比先前的方法表现更好,并且结果还表明我们提出的方法可以用作增强其他网络的插件模块。

1 INTRODUCTION

近年来,暴力检测的范围已经从纯视觉任务 [4, 18, 20, 30, 33, 45, 47, 54, 61, 67, 68] 扩展到了一个音频-视觉多模态问题 [43, 44, 62],其中相应的听觉内容补充了细粒度的暴力线索。尽管许多模态融合和交互方法已经显示出了良好的结果,但在弱监督设置下,多实例学习(MIL)[38] 框架的模态差异仍有待探索。

为了减轻对精细标记数据的需求,多实例学习被广泛应用于弱监督的暴力检测中,其中每个视频序列的输出被形成为一个包含多个片段级实例的袋子。在音频-视觉场景中,所有先前的工作都采用了一个通用方案,将每个音频-视觉片段视为一个完整实例,并将前K个音频-视觉logit的平均值作为最终的视频级别分数。然而,我们分析发现这个公式存在两个缺陷:模态异步性未区分实例。模态异步性表示听觉和视觉暴力线索之间的时间不一致性。以图1(a)中典型的暴力事件滥用为例,当施暴者击打受害者时,尖叫声随后发生,整个过程被视为暴力事件。在这种情况下,视觉模态(第2-3个片段)和音频模态(第4-5个片段)中的部分场景包含暴力线索。我们认为,直接利用音频-视觉对作为一个实例可能会引入数据噪声到视频级别的优化中。我们发现的另一个缺陷是未区分实例,即为了优化选择前K个实例导致大量不相关的实例。如图1(b)所示,在一系列暴力视频中,一些音频/视觉实例反映了暴力事件。相反,其他实例包含了背景噪音等无关元素。与此相对应,在正常事件的视频中,少数片段包含正常事件的元素,而其他片段包含背景信息。在这种情况下,K-max激活放弃了包含背景元素的实例,并且暴力和正常实例之间的差异没有得到明确的展现。因此,我们认为在暴力、正常和背景实例之间添加对比约束可以有助于对暴力内容进行区分

在初步分析的驱动下,我们提出了一个简单但有效的框架,由模态感知对比实例学习(MA-CIL)和自我蒸馏(SD)模块构成。为了解决模态异步性,我们除了原始的音频-视觉袋之外,还形成了单模态袋,计算单模态logits,并将前K个和后K个单模态实例的嵌入聚类为半袋。为了区分实例,我们提出了一种基于模态感知对比的方法。具体而言,音频和视觉暴力半袋被构造为正对,而暴力半袋与背景和正常半袋中的实例嵌入组装为负对。此外,我们还应用了一个自我蒸馏模块,将单模态知识提炼到音频-视觉模型中,从而缩小模态之间的语义差距,并减轻丰富的跨模态交互引入的数据噪声。总而言之,我们的贡献如下:

  • 我们分析了在音频-视觉场景中广泛使用的多实例学习(MIL)框架中的模态异步性和未区分实例现象,并进一步阐述了它们对弱监督音频-视觉暴力检测的不利影响。
  • 我们提出了一个模态感知的对比实例学习与自我蒸馏框架,以引入特征区分性并减轻模态噪声。
  • 搭载了轻量级网络的我们的框架在XD-Violence数据集上表现优于最先进的方法,而且我们的模型还展现出了作为插件模块的通用性。

2 RELATEDWORKS

2.1 Weakly-Supervised Violence Detection

弱监督的暴力检测需要在视频级别标签下识别具有暴力特征的片段,其中多实例学习(MIL)[38] 框架被广泛用于去除不相关信息的噪声。一些先前的工作 [4, 18, 20, 30, 45, 47, 61, 67, 68] 将暴力检测视为纯粹的视觉任务,并利用基于CNN的网络来编码视觉特征。在这些方法中,提出了各种特征融合和改进方法以增强MIL的鲁棒性。Tian等人 [54] 提出了RTFM,一种强大的时间特征幅度学习方法,以改进对正例的识别能力。Li等人 [33] 设计了基于Transformer [57] 的多序列学习网络,以降低实例选择错误的概率。然而,这些模型忽略了相应的听觉信息以及跨模态交互,从而限制了暴力预测的性能。

最近,吴等人[62]策划了一个大规模的音频-视觉数据集XD-Violence并建立了一个音频-视觉基准。然而,他们以早期融合的方式整合音频和视觉特征,从而限制了进一步的跨模态交互。为了促进多模态融合,庞等人[43]提出了一种基于注意力的网络,以中间方式自适应地整合音频和视觉特征,并带有互学习模块。与先前的方法不同,我们通过一个轻量级的双流网络执行跨模态交互,并通过模态感知的对比和自我蒸馏进行具有辨别力的多模态学习。

2.2 Contrastive Learning

对比学习是通过对比正对和负对来制定的,无需数据监督。在单模态领域,一些视觉方法 [10, 23, 25, 35] 利用对视觉数据的增强作为对比来增加模型的区分性。此外,一些自然语言处理方法利用标记和句子级别的对比来增强预训练模型 [15, 50] 和监督任务 [17, 46] 的性能。对于多模态领域,一些工作引入了模态感知的对比来处理视觉-语言任务,如图像描述 [16, 58]、视觉问答 [9, 60] 和表示学习 [34, 49, 59, 66]。此外,最近的文献 [1, 2, 14, 32, 37, 39, 40, 42] 利用音频-视觉流的时间一致性作为对比的前提任务,以学习稳健的音频-视觉表示。基于现有的实例级对比框架 [12, 63],我们提出了半袋的概念,并利用跨模态对比来获得模型的区分性。

2.3 Cross-Modality Knowledge Distillation

知识蒸馏最初是为了将大规模架构的知识转移到轻量级模型中 [5, 28]。然而,跨模态蒸馏旨在将单模态知识转移到多模态模型中,以减轻模态之间的语义差距。一些方法 [21, 29] 通过幻觉网络将深度特征蒸馏到RGB表示中,以解决模态缺失和噪声现象。陈等人 [13] 提出了一种音频-视觉蒸馏策略,该策略学习组合嵌入,并在语义不相关的模态之间转移知识。最近,多模态知识扩展 [65] 被提出作为一种两阶段蒸馏策略,通过生成伪标签将知识从单模态教师网络转移到多模态学生网络。受到自我蒸馏方法 [6, 8, 11, 19, 52, 64] 的启发,我们提出了参数整合范式,通过两个相似的轻量级网络将视觉知识转移到我们的音频-视觉模型中,从而减少模态噪声,获得稳健的音频-视觉表示。

3 PRELIMINARIES

给定一个音频-视觉视频序列 S = ( S A , S V ) , S= ( S^A, S^V) , S=(SA,SV), 其中 S A S^A SA 是音频通道, S V S^V SV 表示视觉通道,整个序列被划分为 T T T 个不重叠的片段 { s t A , s t V } t = 1 N \{s_t^A,s_t^V\}_{t=1}^N {stA,stV}t=1N。对于一个音频-视觉对 ( s t A , s t V ) (s_t^A,s_t^V) (stA,stV),弱监督暴力检测任务要求通过一个事件相关性标签 y t ∈ { 0 , 1 } y_t\in \{ 0, 1\} yt{0,1} 区分该对是否包含暴力事件,其中 y t = 1 y_t= 1 yt=1 表示当前片段中至少一个模态包含暴力线索。在训练阶段,只有视频级别的标签 y y y 可用于优化。因此,一个常规的方案是利用多实例学习(MIL)过程来满足弱监督。

在MIL框架中,每个视频序列S被视为一个袋子,视频片段 { s t A , s t V } t = 1 N \{s_t^A,s_t^V\}_{t=1}^N {stA,stV}t=1N 被视为实例。然后,通过特定的特征级别/得分级别汇聚方法将实例聚合起来生成视频级别的预测 p p p。在本文中,我们利用 K K K-max激活与平均池化,而不是基于注意力的方法 [41, 53] 和全局池化 [51, 67] 作为聚合函数。具体来说,给定由CNN网络提取的音频和视觉特征 f a , f v f_a, f_v fa,fv,我们使用一个多模态网络生成单模态logits l a , l v l_a, l_v la,lv 和音频-视觉logits l a v l_{av} lav。音频和视觉实例的嵌入被表示为 h a h_a ha h v h_v hv。然后,我们平均 K K K 个最大的logits,并使用sigmoid激活生成视频级别的预测 p p p。由于我们提出的对比学习方法的额外约束,我们定义了单模态袋 B a , B v \mathcal{B}_a, \mathcal{B}_v Ba,Bv。在每个单模态袋中,实例根据其固有特性被聚类到几个半袋 B m , m ∈ { a , v } B_m, m\in\{a,v\} Bm,m{a,v} 中,相应的半袋表示记为 B m , m ∈ { a , v } \mathcal{B}_m, m\in\{a,v\} Bm,m{a,v}

4 METHODOLOGY

我们提出的框架由三个部分组成:一个轻量级的双流网络,模态感知的对比实例学习(MA-CIL)和自我蒸馏(SD)模块。我们框架的示意图如图2所示,具体如下所述。

在这里插入图片描述

图2:我们提出的模态感知对比实例学习与自我蒸馏框架的示意图。我们的方法包括三个部分:轻量级的双流网络、模态感知的对比学习(MA-CIL)和自我蒸馏(SD)模块。将预训练网络提取的音频和视觉特征作为输入,我们设计了一个简单而有效的基于注意力的网络来执行音频-视觉交互。然后,我们使用基于模态感知对比的方法将不同类型的实例聚类到几个半袋中,并进一步获得模型的区分性。最后,我们部署了一个自我蒸馏模块,将视觉知识转移到我们的音频-视觉网络中,旨在减轻模态噪声并缩小单模态和多模态特征之间的语义差距。整个框架以弱监督的方式联合训练,并采用多实例学习(MIL)策略进行优化。

4.1 Two-Stream Network

考虑到先前的方法受到大规模网络参数冗余的影响,我们设计了一个编码器不可知的轻量级架构来实现特征聚合和模态交互。以预训练网络提取的视觉和听觉特征 f v , f a f_v,f_a fv,fa 为输入,我们提出的网络包括三个部分:线性层以保持输入特征的维度相同,跨模态注意力层以执行模态间的交互,以及多实例学习(MIL)模块用于弱监督训练。在这些模块中,跨模态注意力层是从Transformer [57] 的编码器部分改进而来,包括多头自注意力、前馈层、残差连接 [26] 和层归一化 [3]。在原始的自注意力块中,特征分别由三个不同的参数矩阵投影为查询、键和值向量。然后,通过 a t t ( q , k , v ) = s o f t m a x ( q k T d m ) v att(q,k,v)=softmax(\frac{qk^T}{\sqrt{d_m}})v att(q,k,v)=softmax(dm qkT)v 计算缩放点积注意力得分,其中 q , k , v q,k,v q,k,v 表示查询、键和值向量, d m d_m dm 是查询向量的维度, T T T 表示矩阵转置操作。为了加强跨模态交互,我们将自注意力块的键和值向量改为其他模态的特征:
在这里插入图片描述
其中, h a , h v h_a,h_v ha,hv 是更新的音频和视觉特征, W Q , W K , W_Q, W_K, WQ,WK, W V W_V WV 是可学习的参数。我们采用共享参数策略进行特征投影,以减少计算量。

我们在弱监督设置下采用多实例学习(MIL)过程来获得视频级别的分数。与先前的工作不同,我们单独处理单模态特征以减轻模态异步性。具体而言,我们在每个模态中使用全连接层来生成单模态logits。然后,我们将单模态logits的总和作为融合的音频-视觉logits,同时保留单模态logits以用于后续的对比学习。最后,我们对前K个音频-视觉logits进行平均池化,并经过sigmoid激活生成用于优化的视频级别分数。整个过程可以表示为:
在这里插入图片描述

其中, W a , W v , b a , b v W_a,W_v,b_a,b_v Wa,Wv,ba,bv 是可学习的参数, Ω \Omega Ω 表示 K K K-max 激活, σ \sigma σ 表示sigmoid函数, ⊕ \oplus 表示求和操作, Θ \Theta Θ 表示平均池化, p p p 是视频级别的预测。

4.2 MA-CIL

为了利用更多的非相关实例,我们提出了MA-CIL模块,如图2右侧所示。给定嵌入 h a , h v h_a,h_v ha,hv,我们执行无监督聚类将它们分为暴力、正常和背景半袋表示,基于视觉和音频logits。我们认为,语义无关实例之间的差异可以被利用来丰富模型的区分能力。

具体而言,我们首先利用视频级别的概率 p p p 来区分给定视频是否包含暴力事件。在每个小批量中,对于满足 p i > 0.5 p_i>0.5 pi>0.5 的视频序列 S i S_{i} Si,将具有最高logits的前 K K K 个实例聚类为暴力半袋 B m υ i o ( i ) = { h m ( n ) } n = 1 K υ i o , m ∈ { a , v } B_m^{\upsilon io}(i)=\{h_m(n)\}_{n=1}^{K_{\upsilon io}}, m\in\{a,v\} Bmυio(i)={hm(n)}n=1Kυio,m{a,v}。对于满足 p j ≤ 0.5 p_j\leq0.5 pj0.5 的序列 S j S_j Sj,选择前 K K K 个实例作为正常半袋 B m n o r ( j ) = { h m ( n ) } n = 1 K n o r , m ∈ { a , v } B_m^{nor}(j)=\{h_m(n)\}_{n=1}^{K_{nor}}, m\in\{a,v\} Bmnor(j)={hm(n)}n=1Knor,m{a,v}。我们希望对正常事件和暴力事件添加对比,以帮助模型区分所感知信号的暴力程度。

此外,我们认为正常和暴力视频都包含背景片段,学习事件相关片段与背景噪声之间的差异可以有助于定位。因此,我们选择整个小批量中的最低的 K K K 个实例作为背景半袋 B m b g d = { h m ( n ) } n = 1 K b g d , m ∈ { a , v } B_m^{bgd}=\{h_m(n)\}_{n=1}^{K_{bgd}}, m\in\{a,v\} Bmbgd={hm(n)}n=1Kbgd,m{a,v}。在每个小批量中,模型应该将暴力音频-视觉实例与由暴力实例和其他实例(背景和正常实例)构建的负对进行对比。

一种直观的方法是在相反的模态中随机选择半袋内和半袋间的实例作为正对和负对。

然而,我们认为具有不同位置的音频和视觉暴力实例可能在语义上不匹配,例如分别表示暴力事件的开始和结束。因此,假设它们具有相同的含义是不自然的。相反,我们对每个半袋中所有暴力实例的嵌入进行平均池化,并形成一个半袋级别的表示 B m v i o , m ∈ { a , v } B_m^{vio},m\in\{a,v\} Bmvio,m{a,v}。通过这样做,音频和视觉表示都表达了事件级别的语义,从而减轻了噪音问题。为此,我们构建了半袋级别的正对,由音频和视觉暴力半袋表示 B a v i o , B v v i o \mathcal{B}_a^{vio},\mathcal{B}_v^{vio} Bavio,Bvvio 组成。我们还构建了半袋到实例的负对,以保持大量的对比样本,其中暴力半袋表示与相反模态中的背景和正常实例嵌入 h m n o r , h m b g d , m ∈ { a , v } h_m^{nor},h_m^{bgd},m\in\{a,v\} hmnor,hmbgd,m{a,v} 组合成负对。

我们将InfoNCE [55]作为此部分的训练目标,该目标缩小了正对之间的距离,并增大了负对之间的距离。对于音频暴力半袋表示 B a v i o ( i ) B_{a}^{vio}(i) Bavio(i) 与视觉正常实例嵌入 { h U n o r ( n ) } n = 1 K n o r \{ h_{\mathcal{U} }^{nor}( n) \} _{n= 1}^{K_{nor}} {hUnor(n)}n=1Knor 之间的目标可以表示为:
在这里插入图片描述
其中, ϕ \phi ϕ 表示余弦相似度函数, τ \tau τ 是温度超参数, K n o r K_{nor} Knor 表示整个小批量中正常实例的数量。类似地,音频暴力半袋表示 B a v i o ( i ) B_a^{vio}(i) Bavio(i) 与视觉背景实例嵌入 { h v b g d ( n ) } n = 1 K b g d \{h_v^{bgd}(n)\}_{n=1}^{K_{bgd}} {hvbgd(n)}n=1Kbgd 之间的目标可以表示为:
在这里插入图片描述

其中, K b g d K_{bgd} Kbgd 表示整个小批量中背景实例的数量。视觉对音频的对应部分非常相似,因此我们在简洁的写作中省略了这些内容。

4.3 Self-Distillation

前面部分提供的音频-视觉交互可能会引入大量的模态噪声,而模态异步性也会导致在相同时间位置的多模态和单模态特征之间的语义不匹配。为了解决这些问题,我们认为同时训练一个类似的视觉网络可以使模型集成单模态和多模态知识。通过可控的共同蒸馏策略,我们提出的模块确保模态噪声的减少和稳健的模态无关知识。

具体而言,我们提出了一个类似的单模态网络,其架构与我们的双流网络相当。跨模态注意力块被标准的Transformer编码器块替换,包括自注意力机制。在训练过程中,单模态网络以相对较小的学习率进行训练,并且相同层的参数通过指数移动平均策略被注入到音频-视觉网络中:
在这里插入图片描述
其中, θ a v \theta_{av} θav θ v \theta_v θv 分别表示音频-视觉模型和视觉模型的参数, m m m 是控制超参数,遵循余弦调度器,在训练过程中从初始值 m ^ \hat{m} m^ 增加到 1。

4.4 Learning Objective

整个框架采用联合训练的方式进行优化。对于视频级别的预测 p p p,我们利用二元交叉熵 L B \mathcal{L}_{\mathcal{B}} LB 作为训练目标,并使用线性增长策略来控制对比损失的权重。总的目标函数为:
在这里插入图片描述
其中, K v i o K_{vio} Kvio 表示整个小批量中暴力半袋的数量, λ ( t ) \lambda(t) λ(t) 是一个控制器,用于在几个时期内线性增加权重, r r r 表示增长比率, t t t 是当前时期, Λ \Lambda Λ 表示最大权重。

视觉网络通过二元交叉熵损失与视频级别标签进行优化,以提取单模态知识。这两个目标在训练期间同时进行优化,而在推断阶段,仅使用音频-视觉网络进行预测。

5 EXPERIMENT

在这里插入图片描述

消融实验(对每个模块):
在这里插入图片描述

6 CONCLUSION

在这篇论文中,我们调查了在音频-视觉场景下多示例学习(MIL)中的模型不同步和未区分实例现象,并进一步展示了对弱监督音频-视觉学习的影响。然后,我们提出了一种模态感知对比实例学习和自我蒸馏框架来解决这些问题。具体而言,我们设计了一个轻量级的双流网络来生成音频和视觉嵌入和logits。此外,我们对具有不同语义的音频和视觉实例应用了跨模态对比,这涉及更多未使用的实例,以实现更好的区分并减轻模态不一致性。为了减少训练噪声,我们利用自我蒸馏模块将视觉知识转移给音频-视觉网络,从而缩小了单模态和多模态特征之间的语义差距。我们的框架在XD-Violence数据集上的表现优于先前的方法,成本较低。此外,结合我们的对比学习和自我蒸馏模块,几种先前的方法实现了更高的检测精度,表明了作为插件模块改善其他网络的能力。

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

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

相关文章

基于Java SpringBoot+Vue的校园周边美食探索及分享平台的研究与实现,附源码

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

vue+node使用RSA非对称加密,实现登录接口加密密码

背景 登录接口,密码这种重要信息不可以用明文传输,必须加密处理。 这里就可以使用RSA非对称加密,后端生成公钥和私钥。 公钥:给前端,公钥可以暴露出来,没有影响,因为公钥加密的数据只有私钥才…

类和对象(中)(构造函数、析构函数和拷贝构造函数)

1.类的六个默认成员函数 任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 //空类 class Date{}; 默认成员函数:用户没有显示实现,编译器会自动生成的成员函数称为默认成员函数 2.构造函数 构造函数 是一个 特殊的成员函数&a…

网络分析工具

为了实现业务目标,每天都要在网络上执行大量操作,网络管理员很难了解网络中实际发生的情况、谁消耗的带宽最多,并分析是否正在发生任何可能导致带宽拥塞的活动。对于大型企业和分布式网络来说,这些挑战是多方面的,为了…

[Leetcode]用栈实现队列

用栈实现队列: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元…

【智能算法】鸡群优化算法(CSO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2014年,X Meng等人受到鸡群社会行为启发,提出了鸡群优化算法(Chicken Swarm Optimization, CSO)。 2.算法原理 2.1算法思想 CSO算法的思想是基于对…

(六)PostgreSQL的组织结构(3)-默认角色和schema

PostgreSQL的组织结构(3)-默认角色和schema 基础信息 OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本:16.2 pg软件目录:/home/pg16/soft pg数据目录:/home/pg16/data 端口:57771 默认角色 Post…

软考135-上午题-【软件工程】-软件配置管理

备注: 该部分考题内容在教材中找不到。直接背题目 一、配置数据库 配置数据库可以分为以下三类: (1) 开发库 专供开发人员使用,其中的信息可能做频繁修改,对其控制相当宽松 (2) 受控库 在生存期某一阶段工作结束时发布的阶段产…

手机拍摄视频怎么做二维码?现场录制视频一键生成二维码

随着手机摄像头的像素不断提升,现在经常会通过手机的拍摄视频,然后发送给其他人查看。当我们想要将一个视频分享给多人去查看时,如果一个个去发送会比较的浪费时间,而且对方还需要下载接受视频后才可以查看,时间成本高…

简化PLC图纸绘制流程:利用SOLIDWORKS Electrical提升效率与准确性

效率一向是工程师比较注重的问题,为了提高工作效率,工程师绞尽脑汁。而在SOLIDWORKS Electrical绘制plc原理图时能有效提高PLC图纸的出图效率,并且可以减少数据误差。 在SOLIDWORKS Electrical绘制PLC图纸时,可以先创建PLC输入/输…

域名被污染了只能换域名吗?

域名污染是指域名的解析结果受到恶意干扰或篡改,使得用户在访问相关网站时出现异常。很多域名遭遇过污染的情况,但是并不知道是域名污染,具体来说,域名污染可能表现为以下情况:用户无法通过输入正确的域名访问到目标网…

24华中杯数学建模C题详解速通

本文针对光纤传感领域的曲线重构问题,提出了一套完整的数学建模与求解方法。通过对三个具体问题的分析和求解,揭示了曲率测量、曲线重构、误差分析等环节的内在联系和数学原理。本文综合运用了光纤传感、数值分析、微分几何等学科的知识,构建了波长-曲率转换模型、曲率连续化模…

Oracle——领先的企业级数据库解决方案

一、WHAT IS ORACLWE: ORACLE 数据库系统是美国 ORACLE 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S 体系结构的数据库之一,ORACLE 通常应用于大型系统的数…

护眼台灯哪个牌子好?五大护眼效果好的护眼台灯强力推荐

护眼台灯哪个牌子好?护眼台灯比较好的牌子有书客、雷士、爱德华医生等,这些护眼台灯由于研发实力比较强,除了基本的照明功能,在护眼效果方面的表现也是比较不错的,这样的护眼台灯能够真正地起到对眼睛的保护作用&#…

读《AI营销画布》步骤五 保收获(十)

前言 正如书中所说,做到前四步就已经很了不起了,但是,现如今有很多公司的IT部门正从原来的公司分离,成立了不同的科技公司,以确保从费用成本中心变为利润中心,当然,分离出来不一定是AI促进的&am…

【问题处理】银河麒麟操作系统实例分享,adb读写缓慢问题分析

1.问题环境 处理器: HUAWEI Kunpeng 920 5251K 内存: 512 GiB 整机类型/架构: TaiShan 200K (Model 2280K) BIOS版本: Byosoft Corp. 1.81.K 内核版本 4.19.90-23.15.v2101.ky10.aarch64 第三方应用 数据库 2.问题…

OCP Java17 SE Developers 复习题14

答案 C. Since the question asks about putting data into a structured object, the best class would be one that deserializes the data. Therefore, ObjectInputStream is the best choice, which is option C. ObjectWriter, BufferedStream, and ObjectReader are no…

karpathy build make more --- 2

1 Introduction 用多层神经网络实现更复杂一点名字预测器。 2 方案 采用两层全连接层,中间采用tanh作为激活函数,最后一层用softmax,loss用cross-entropy. 2.1 实施 step1: 生成输入的字符,输入三个字符,输出一个字符. 采用了…

java的spring循环依赖、Bean作用域等深入理解

前言 通过之前的几篇文章将Spring基于XML配置的IOC原理分析完成,但其中还有一些比较重要的细节没有分析总结,比如循环依赖的解决、作用域的实现原理、BeanPostProcessor的执行时机以及SpringBoot零配置实现原理(ComponentScan、Import、Impo…

推荐一款websocket接口测试工具

网址:Websocket在线测试-Websocket接口测试-Websocket模拟请求工具 http://www.jsons.cn/websocket/ 很简单输入以ws开后的网址就可以了 这个网址是你后台设置的 如果连接成功会砸提示框内显示相关字样,反之则不行