《GVL》论文笔记

原文链接

[2303.06378] Learning Grounded Vision-Language Representation for Versatile Understanding in Untrimmed Videos (arxiv.org)

原文笔记

What

《Learning Grounded Vision-Language Representation for Versatile Understanding in Untrimmed Videos》

全文一言以蔽之:本文旨在通过双向预测任务语言描述中学习事件级视频表示。(再用于对应的描述的生成)

本文的贡献有三个方面:

1)通过解决一个双向集预测问题,提出了一个新的未修剪视频的视觉语言框架,其中利用了预测事件和视觉基础句子之间的细粒度跨模态对齐。

2)提出了一种新的语义感知匹配代价来减轻边界标注中的噪声,使事件与地面真实之间的标签分配比传统的定位代价更可靠。(对比学习)

3)在四个视频基准上进行的大量实验表明,我们的模型在密集视频字幕上可以达到最先进的性能,在其他三个视觉语言理解和生成任务上可以达到竞争性能。

一些个人观点

1、创新点不是特新,两方面:SBS;PDVC

      1、从文本标注中获得学习信息的方法不是本文独有,SBS中也有涉及

      2、本文大部分内容还是从PDVC继承而来,其实仅仅是多了一个TEG模块,(用了对比学习来丰富语义信息)相对应的想要继续用DETR的想法自然要改用于匈牙利算法的总损失,这也就是他所说的语义感知的标签分配

2、讲故事讲得好,但该说明白的没说明白

       正如一所说,它创新点有限,所以全文基本就是对这个创新点猛轰:不写Dence Video Caption方法了,主要研究方向改成视觉语言联合学习了;并且各种高大上名词堆积,实则都是一个意思;各种车轱辘话来回说,实际都是一个意思

        该说的没说明白,整体训练流程也没交代,是分布还是端到端(貌似还是端到端,因为他想继续DETR),还有那个句子query(Qctx and Qsent for sentence embedding with and without context modeling. The final loss of Lteg is the summation of two TEG losses with Qctx and Qsent, respectively.)这句话在那里很突兀,也没细说,我是没看明白,还有其他的交代背景部分有的地方看的也很生硬,虽然GVL和PDVC的一作相同,但感觉这篇不如那篇,不是到是不是硬带一下二作的原因。

Why

1、现有的工作主要集中在单个或多个修剪的视频剪辑(事件),这使得人工注释的事件边界在推理的过程中变得很重要。

2、模糊的边界注释往往会导致次优的匹配结果

3、字幕和定位任务在本质上是密切相关的。虽然大多数方法都是分开解决密集的字幕和定位任务,但很少有人致力于字幕和定位任务之间的联合学习。

4、现有方法无法区分相同时间段内发生的不同事件(这需要更细粒度的语义级别的特征来解决)

(由于未修剪的视频通常在同一个动作类中有多个事件,因此粗略级别的分类成本对于区分具有细粒度差异的预测是无效的)

Challenge

1、如何将视频特征(事件边界)与文本描述进行对齐

(1)由于语义信息在未修剪的视频中不均匀分布,学习能够区分背景片段和前景片段的事件级表示是困难的。定位任务的主流范例是从动作标签中学习事件特征。然而,粗糙的监督信号缺乏对同一视频中发生的不同事件的辨别能力,因为这些事件通常属于相同的动作类(这句话说的有点不清楚)

2、如何解决模糊的边界注释导致的次优的匹配结果

(2)目前未修剪的视频语言数据集(如ActivityNet Captions[26])包含对事件边界的模糊注释,这主要是由注释者的主观偏见造成的[13,21,45]。如何将带有噪声边界注释的真值注释分配给预测事件的相关研究较少。视觉定位中标签对齐的流行解决方案[24,65]利用定位相似度(例如交集/联合)作为匹配损失。如图1(下)所示,对于边界标注不准确的句子,定位损失可能会产生次优匹配结果,特别是当几个预测事件具有相同的基础真值句子的相似IoU时。

Idea

1、提出的针对未修剪视频的Video Caption模型框架包括两重先验任务:TEG(文本到事件的定位任务),ETG(时间到文本的生成任务)来促进细粒度的 事件特征-文本 对齐(用对比学习来处理)

2、提出了一种新颖的语义感知损失来减轻由模糊边界注释引起的次优匹配结果(用改进cost计算方法的匈牙利算法来解决)

Model

传统的动作识别或动作定位方法通常从粗级动作类中学习视觉特征,缺乏细粒度的可辨别性来区分类内视觉差异,尤其是在长视频中的复杂场景。相反,我们引入语义密集的自然语言作为监督,因为未修剪视频的段落描述携带更多的视觉概念和复杂的时间关系,形成更紧凑的标签空间以获得更好的表示学习

解释下这个图吧,这个图重点是中间Matcher那点线是啥意思理解了就行了

事件特征:C3D空间特征+Transformer时序建模得到,(预设多少个可能事件就传进多少个事件query,Tranformer Decoder交叉注意力一下得到最终可能事件提案,思想同PDVC,源头同DETR)

句子特征:原文翻译里写了,一个层级式编码器啥的得到的

然后到了重点:用了俩矩阵,一个对比学习矩阵,一个算匈牙利算法矩阵,TEG里对比学习(只算语义损失)Matcher里进行匈牙利算法,匈牙利算法总cost用到对比学习损失和定位损失(这代表了指向Matcher的那两条线)(设计Matcher的目的就是使特征和文本在时间和内容层面同时对齐,ETG代表文本,TEG代表特征)

当然了最终的文本生成还是看ETG里的Text Generator,这里还要计算一个生成损失,所以我有点好奇最终的损失到底长什么样子,他原文中竟然没有给出总体损失长什么样子,而且DETR典型的训练测试流程不同,他也不分开说明,所以我说他该说的没说明白

原文翻译

Abstract

近年来,联合视频-语言学习受到越来越多的关注。然而,现有的工作主要集中在单个或多个修剪的视频剪辑(事件),这使得人工注释的事件边界在推理的过程中变得很重要。为了摆脱这种关系,我们提出了一个针对未修剪视频的基础视觉语言学习框架,该框架自动检测信息事件并有效地挖掘多句描述与相应事件段之间的对齐。我们没有粗略的视频语言对齐,而是提出了两个双重先验任务(pretext task)来促进细粒度的段级对齐,即文本到事件的定位 (TEG) 和事件到文本生成 (ETG)。TEG 学习通过估计联合语义空间中的跨模态距离自适应地定位给定一组句子的可能事件提议。同时,ETG 旨在重建(生成)给定事件建议的匹配文本,促进事件表示保留有意义的语义信息。为了鼓励事件集和文本集之间的准确标签分配,我们提出了一种新颖的语义感知成本(cost)来减轻由模糊边界注释引起的次优匹配结果。我们的框架很容易扩展到涵盖基于视觉的语言理解和生成的任务。我们在 ActivityNet Captions、YouCook2 和 YouMakeup 上实现了最先进的密集视频字幕性能,并在其他几个语言生成和理解任务上实现了具有竞争力的性能。我们的方法还在第 PIC 4 个挑战赛的 MTVG 和 MDVC 任务中实现了第一名。我们的代码在 https://github.com/zjr2000/GVL 上公开可用。

Introduce

在过去的几年里,深度学习的进步导致了视频理解的重大进展 [3, 17, 25, 57, 61]。通常,视频识别模型针对离散动作类别集合上的高分类精度进行了优化,这种范式可以在预定义的类别上实现令人惊讶的性能,但阻碍了识别新语义概念的可转移性。最近,CLIP [48] 及其变体 [40, 48] 表明,联合视觉语言 (VL) 建模可以学习语义丰富的视觉表示,并且可以跨越视觉任务 [33, 47] 和 VL 任务 [52]转移到不同的下游任务中。已经有丰富的研究[29,56,69]专注于视频和句子之间的联合学习。然而,这些方法中使用的视频数据集由人工注释者很好地修剪,确保每个视频只包含一个事件。为了对长视频进行建模,一些作品[18,75]处理多个事件段和文本之间的跨模态交互。然而,它们的输入是多个修剪过的片段,这意味着它们在推理过程中还需要事件边界注释,这极大地限制了它们在现实场景中的应用。

本文的重点是长并且未裁剪的视频的联合视频文本建模。给定一个包含背景帧和配对段落(即具有时间位置的多个句子)的未修剪视频,我们的目标是从基于视觉的语言中学习事件级、时间敏感和语义丰富的视觉表示。我们确定了两个概念上的挑战:(1)由于语义信息在未修剪的视频中不均匀分布,学习能够区分背景片段和前景片段的事件级表示是困难的。定位任务的主流范例是从动作标签中学习事件特征。然而,粗糙的监督信号缺乏对同一视频中发生的不同事件的辨别能力,因为这些事件通常属于相同的动作类。(2)目前未修剪的视频语言数据集(如ActivityNet Captions[26])包含对事件边界的模糊注释,这主要是由注释者的主观偏见造成的[13,21,45]。如何将带有噪声边界注释的真值注释分配给预测事件的相关研究较少。视觉定位中标签对齐的流行解决方案[24,65]利用定位相似度(例如交集/联合)作为匹配损失。如图1(下)所示,对于边界标注不准确的句子,定位损失可能会产生次优匹配结果,特别是当几个预测事件具有相同的基础真值句子的相似IoU时。

为了解决上述挑战,我们建议通过解决双向集预测问题从语言监督中学习单模态事件级表示。具体来说,两个双重先验任务作为事件定位器的监督,即文本到事件定位任务 (TEG) 和事件到文本生成任务 (ETG)。TEG 学习在给定句子的情况下定位相应的事件,这需要事件表示具有足够的辨别力,以便文本查询可以区分匹配的事件和负事件。同时,ETG 学习将事件集转换为句子集,确保事件特征尽可能地保留丰富的语义来重新生成自然语言描述。

此外,考虑到TEG和ETG目标都依赖于预测事件与基本事实之间的对应关系,我们提出了一种基于语义相似度的用于集合级匹配标签对齐的鲁棒的策略。不同于定位损失是低级线索,容易受到噪声注释的影响,语义相似度在预测事件和真实事件之间作为一个更稳健的判断,可以减轻模糊注释的负面影响,并对细粒度视频理解做出友好的匹配决策。

我们在四个未修剪的视频基准上对四个VL任务进行了广泛的实验,即ActivityNet Captions [26], TACoS [49], YouMakeup[64]和YouCook2[84]。定量和定性实验都验证了该模型学习了未修剪视频的事件级、时间判别性和语义丰富的视觉特征。本文的贡献有三个方面:1)通过解决一个双向集预测问题,提出了一个新的未修剪视频的视觉语言框架,其中利用了预测事件和视觉基础句子之间的细粒度跨模态对齐。2)提出了一种新的语义感知匹配代价来减轻边界标注中的噪声,使事件与地面真实之间的标签分配比传统的定位代价更可靠。3)在四个视频基准上进行的大量实验表明,我们的模型在密集视频字幕上可以达到最先进的性能,在其他三个视觉语言理解和生成任务上可以达到竞争性能。

2. Related Work

2.1. Video-Language Representation Learning

最近,已经提出了各种视频语言 (VidL) 表示学习方法。这些方法可以大致分为两类,具体取决于是否采用早期融合策略。单流方法[56,68,86]通常将视频和文本直接输入到单个跨模态编码器中,以模拟它们的交互。双流方法 [4, 16, 18, 29, 32, 41, 51, 69, 75] 分别对视频和文本进行建模,并通过对比对齐损失或跨模态编码器将它们连接起来。与前者相比,两种模态的独立建模更适合单模态输入的任务。(这句话说的我有点蒙)

主导双流方法通常将未修剪的视频截断为带有人工注释的事件边界[6]或ASR转录[42]的单个[4,16,41,51]或多个[18,69,75]短片段,不完整、不相交的视频片段阻碍了序列事件之间的长期时间依赖性的学习以及前景/背景片段之间的可辨别性。因此,他们更喜欢给出人工注释事件边界的下游任务,例如剪辑视频识别 [4]、剪辑级视频文本检索 [4, 69] 和视频段落描述 [18],但在需要长期推理的时间定位任务上不适用(或表现不佳),例如视频定位和密集事件视频描述。

我们通过学习一个将前景事件与背景帧区分开来的多事件定位器,专注于未修剪视频中的时间定位任务。事件级表示由来自双向信息流的语言监督,以增强表示能力。我们在图 2 中说明了具有代表性的双流视频语言学习范式之间的差异。

2.2. Temporal Localization Tasks

我们的框架侧重于基于事件级别的表示学习,它可以应用于几个时间定位任务:时间动作定位(TAL)、密集视频字幕(DVC)和单/多句子视频定位(SSVG/MSVG)。TAL和DVC的目标是定位未修剪视频中的所有事件,然后分别用类标签和句子描述事件。两阶段方法[9,20,43,59,71,81,85]首先将视频解析为事件提案,然后对置信度高的提案进行分类(时间动作定位)/说明(密集视频描述),而一阶段方法[1,35,62]同时进行提案生成和描述。

SSVG/MSVG旨在在给定单个/多个文本查询的情况下定位事件。基于回归的方法[11,60,72,73]对视频和文本采用早期融合(fusion)策略,然后根据融合的特征(fusion feature)回归边界。基于检测的方法[10,15,74,79]首先通过单模态定位器对所有候选事件进行定位,然后进行多模态融合以评估最终置信度。基于度量学习的方法[2,65]通过两个独立的编码器将候选事件和文本投影到视觉语言联合空间中,其中在度量学习约束下为每个模态学习单独的表示。

字幕和定位任务在本质上是密切相关的。虽然大多数方法都是分开解决密集的字幕和定位任务,但很少有人致力于字幕和定位任务之间的联合学习。[12,44]解决弱监督Dence Video Caption的问题,并提出了两个核心模块,分别是句子定位模块和描述生成模块依次运行以提取事件位置和目标句子之间的对应关系。然而,从他们的句子定位器中学习到的事件表示以跨模态输入为条件,限制了它们对更广泛的仅视觉定位任务的可用性。我们的方法与以前的方法不同:1)我们专注于仅使用视觉输入学习事件级表示,将事件定位器从跨模态交互中分离出来,并允许灵活地适应其他视觉定位任务; 2)与面向位置的标签分配不同,我们提出了一种语义感知成本,将信息事件与具有相似语义的句子进行匹配,以减轻不可靠边界注释的影响

3 Method

本文旨在通过双向预测任务从语言描述中学习事件级视频表示。整个框架如图3所示。事件级表示由基于Transformer的事件编码器编码。为了确保学习到的事件表示携带信息和判别特征,我们引入了双向先验任务来利用自然语言的跨模态监督(在第 3.2 节中描述)。为了为每个预测事件找到相应的基本事实并作为一个整体监督训练提议序列,我们执行对嘈杂注释具有鲁棒性的语义感知标签对齐(在第 3.3 节中描述)。

3.1. Visual Learning from Grounded Language

传统的动作识别或动作定位方法通常从粗级动作类中学习视觉特征,缺乏细粒度的可辨别性来区分类内视觉差异,尤其是在长视频中的复杂场景。相反,我们引入语义密集的自然语言作为监督,因为未修剪视频的段落描述携带更多的视觉概念和复杂的时间关系,形成更紧凑的标签空间以获得更好的表示学习

我们将未修剪的视频表示为 V,其句子注释表示为 Y = {yk = (sk, tk)}k=1-K,其中 sk 和 tk 是视频中的自然句子及其时间位置。我们在双向信息流的监督下学习事件编码器(localizer)来检测显着事件特征 E。(双向信息流:用于保留丰富语义信息的事件到文本生成(ETG);文本到事件定位(TEG)以提高可辨别性。)双向学习问题公式如下:

注意E = {ei}i=1-N,其中ei是预测事件的特征。考虑到gθ1和hθ2都执行集合到集合的映射,学习过程需要一种标签分配策略,将Y /E中的一个元素分配为所有ei/yk的gθ1 (ei) / hθ2 (yk)的学习目标。对两个集合中的每个元素进行合理的标签分配对于保证双向预测的一致性是至关重要的。在标签分配之后,总体目标是最小化两个预测损失的总和

:minimizetθ,θ1,θ2[Letg (gθ1 (E), Y)+α lteg (hθ2 (Y), E)],(1),其中α是一个权衡因子。

3.2. Bidirectional Prediction Task

提出了两个互补的预测任务来探索视频中事件集和句子集之间的双向映射。提出的TEG旨在给定句子查询的情况下从事件集中定位相应的事件,重点关注使语义相似的负面事件更可分离的判别特征。它适用于粗略的理解任务,如动作检测或视频定位。然而,对于细粒度的生成任务,如视频字幕,判别特征可能不足以生成有意义的句子,因为生成任务需要详细的视觉语义来进行词级细粒度预测。因此,进一步引入TEG来丰富模型对详细语义的编码能力。与之前专注于未修剪视频中特定任务特征的工作不同[62,65,74,79],我们以双向的视角利用视觉事件和文本句子之间的集合级关系,使学习的特征表示在 VL理解 和 生成任务上 同时适用。

Unimodal Event Encoding.(单模态事件编码)

事件编码模块旨在将视频 V 编码为事件特征 E。受 Transformer [58, 87] 出色的长期依赖建模能力的启发,我们采用基于Transformer的事件检测器来捕获帧间关系并提出事件级特征。具体来说,我们首先使用预训练的帧编码器(例如 C3D [57])来提取帧级特征并通过Tranformer Encoder对其进行细化。之后,变压器解码器使用 N 个可学习的事件查询来查询帧特征,其中每个查询收集相关的前景帧以形成事件级别的实例。我们将时间查询的输出特征视为事件级特征表示E,它代表着N个事件提议。

Text-to-Event Grounding (TEG).

给定一组句子查询,TEG的目的是并行定位匹配的事件(从E中),通过将句子查询及其配对事件拉在一起并将其他事件分离开,实现了跨模态对齐(对比学习)增强了视觉特征的可区分性。给定事件集 E = {e1 的特征,.., eN } 和句子查询 Q = {q1,..., qK },我们将它们投影到联合 VL 空间中并计算投影嵌入之间的跨模态余弦相似度矩阵。我们将余弦相似度矩阵表示为 ω ∈ RK×N ,其中 ω(k, i) 表示第 k 个句子和第 i 个事件之间的语义相似性。在标签分配(在第 3.3 节中描述)之后,我们计算文本-事件对比损失:

其中 T +k 是第 k 个句子的分配标签(正样本),τ 是温度比(就是个超参)。

对于文本编码,我们使用分层文本编码器对输入的句子集(段落)进行不同粒度的编码。每个句子首先由RoBERTa编码器编码,然后是一个自注意力层来聚合所有单词的输出标记,以形成嵌入Qsent的句子。最后,Qsent与句子级位置嵌入相连接,作为跨句子上下文建模的额外自注意层的输入。请注意,我们构建了两种类型的Q,即Qctx和Qsent,用于有和没有上下文建模的句子嵌入。Lteg的最终损失是两个TEG损失的总和,分别是Qctx和Qsent。

这块对应图中的

Event-to-Text Generation (ETG).

为了捕获丰富的语义特征,我们利用 ETG 来预测真实句子注释 Y,即句子及其时间位置。为此,在 E 上附加两个模块,即基于 LSTM 的轻量级文本生成器生成句子,以及基于 MLP 的定位器来预测时间边界和置信度。ETG 的损失由 Letg = Lce + Lloc 计算,其中 Lce 表示预测词和ground-truth 之间的交叉熵损失,Lloc 表示边界 IoU 损失和交叉熵损失的总和置信度。

3.3. Semantic-Aware Label Assignment

标签分配解决了为每个预测事件分配一个真实实例作为学习目标的问题。以前的基于 DETR 的方法 [7,24,28,62] 将标签分配视为具有定位成本的最优匹配问题。具体来说,他们使用 IoU 成本和分类成本(即在真值类别上的分类置信度)作为匹配成本,然后计算成本最低的最优二部匹配。我们认为 IoU 成本和分类成本都有其局限性。IoU成本容易受到不可靠、模糊的边界注释的影响,这主要是由于注释器的主观偏差造成的,如[13,21,45]所示。由于未修剪的视频通常在同一个动作类中有多个事件,因此粗略级别的分类成本对于区分具有细粒度差异的预测是无效的

我们提出了一种语义感知的匹配成本来规避上述困境。具体来说,提出了一种语义成本,它利用跨模态相似度矩阵 ω 来衡量语义级别的预测事件和真实句子之间的匹配度。请注意,相似度矩阵用于对比学习,使得相似度得分具有良好的可辨别性。我们的最终成本将语义成本与本地化成本结合在一起。具体来说,第 k 个真实元素和第 i 个预测元素之间的语义成本由 -ω(k, i) 测量。我们将 Lloc 视为定位成本,它测量时间维度的匹配度。最终的匹配成本表示为:

其中 λ 是语义成本的比率。通过执行匈牙利匹配算法[27],实现了一对一匹配。最终损失由 Eqn 计算。1 相应地分配标签。与以前的方法相比,我们将自然语言合并到匹配成本中,从而增加其对预测之间细微区别的敏感性。因此,我们的方法对模棱两可的注释表现出更好的鲁棒性。

4、Experiments

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

编曲知识19:自动化处理 发送原理 混响 延迟

自动化处理 发送原理 混响 延迟小鹅通-专注内容付费的技术服务商https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_661a68eae4b023c0a96a8b36?course_id=course_2XLKtQnQx9GrQHac7OPmHD9tqbv 自动化处理 自动化 鼠标挪动到轨道左下角打开自动化轨道 或右键轨道-左键单击…

Node.js 中的 RSA 加密、解密、签名与验证详解

引言 在现代的网络通信中,数据安全显得尤为重要。RSA加密算法因其非对称的特性,广泛应用于数据的加密、解密、签名和验证等安全领域。本文将详细介绍RSA算法的基本原理,并结合Node.js环境,展示如何使用内置的crypto模块和第三方库…

RT-Thread 多级目录 scons 构建

前言 RT-Thread 默认使用 scons 进行工程的构建,虽然 RT-Thread BSP 中的 hello world 例程比较简单,实际项目开发,可能源码的工程会由多级目录,如何让多级的目录参与构建? scons 构建时,除了依赖工程的根…

libbpf-bootstrap库的代码结构介绍(用户层接口介绍),编译链接语句详细介绍,.skel.h文件介绍+示例,bpf程序的后续处理+文件关系总结

目录 libbpf-bootstrap 代码结构介绍 用户层函数 编译 查看 生成内核层的.o文件 第一模块 第二模块 第三模块 第四模块 第五模块 生成辅助文件(.skel.h) 介绍 示例 生成代码层的.o文件 第一模块 第二模块 第三模块 链接出可执行文件 后续总结 libbpf-bootst…

云服务器web环境之mariadb

1.安装mariadb服务 yum install mariadb-server 启动mariadb服务 systemctl start mariadb.service 输入mysql就能使用数据库了。 2.服务相关操作 systemctl stop mariadb.service systemctl restart mariadb.service 2.配置开机自启动 systemctl enable mariadb.serv…

AI克隆语音(基于GPT-SoVITS)

概述 使用GPT-SoVITS训练声音模型,实现文本转语音功能。可以模拟出语气,语速。如果数据质量足够高,可以达到非常相似的结果。相比于So-VITS-SVC需要的显卡配置更低,数据集更小(我的笔记本NVIDIA GeForce RTX 4050 Lap…

深入剖析MongoDB集群架构设计

目录 一、MongoDB集群架构介绍 1.1 主从复制 1.2 副本集 1.3 分片集群 二、副本集 3.1 主节点选举 3.2 oplog 3.2 主从同步 三、分片集群 3.1 分片策略 3.2 分片键的选择 3.3 何时选择分片集群 四、总结 一、MongoDB集群架构介绍 MongoDB 有三种集群架构模式,分…

(七)PostgreSQL的用户管理

PostgreSQL的用户管理 1 创建用户(角色) CREATE USER现在是CREATE ROLE的别名。唯一的区别是,当命令的拼写为CREATE USER时,默认情况下会使用LOGIN,而当命令拼写为CREATE ROLE时会使用NOLOGIN。 官方文档&#xff1a…

系统架构最佳实践 -- 统一身份认证系统

目录 1.系统架构设计: 2.用户认证与授权: 3.用户身份管理: 4.安全性保障: 5.日志记录与审计: 6.高可用性与容错性: 7.用户体验优化: 随着互联网的快速发展和应用的普及,人们在…

边缘计算【智能+安全检测】系列教程--使用OpenCV+GStreamer实现真正的硬解码,完全消除马赛克

通过现有博客的GST_URL = "rtspsrc location=rtsp://admin:abcd1234@192.168.1.64:554/h264/ch01/main/av_stream latency=150 ! rtph264depay ! avdec_h264 ! videorate ! videoconvert ! appsink sync=false" GStreamer的解码方式解码,大多情况应该存在上图马赛克…

基于机器学习的人脸发型推荐算法研究与应用实现

1.摘要 本文主要研究内容是开发一种发型推荐系统,旨在识别用户的面部形状,并根据此形状推荐最适合的发型。首先,收集具有各种面部形状的用户照片,并标记它们的脸型,如长形、圆形、椭圆形、心形或方形。接着构建一个面部…

STM32之DHT11温湿度传感器

目录 一 DHT11温湿度传感器简介 1.1 传感器特点 1.2 传感器特性 1.3 传感器引脚说明 二 测量原理及方法 2.1 典型应用电路 2.2 单线制串行简介 2.2.1 串行接口 (单线双向) 2.2.2 数据示例 2.3 通信时序 三 单片机简介 3.1 STM32F103C8T6最小系统板 四 接线说明 …

LLM-大模型演化分支树、GPT派发展阶段及训练流程图、Infini-Transformer说明

大模型是怎么演进的? Encoder Only: 对应粉色分支,即BERT派,典型模型: BERT 自编码模型(Autoencoder Model):通过重建句子来进行预训练,通常用于理解任务,如文本分类和阅…

架构师系列-搜索引擎ElasticSearch(五)- 索引设计

索引创建后,要非常谨慎,创建不好后面会出现各种问题。 索引设计的重要性 索引创建后,索引分片只能通过_split和_shrink 接口对其进行成倍的增加和缩减。 ES的数据是通过_routing分配到各个分片上的,所以本质上不推荐区改变索引的…

记录一下MySQL8版本更改密码规则

#查看当前密码策略 show variables like validate_password%;#修改密码等级为low set global validate_password.policy LOW; #注意MySQL8版本这是点,不是_#修改密码长度为6 set global validate_password.length 6;#查询我的数据库中user表host和user select host,…

【前端面试3+1】16 TCP与UDP的区别、如何清除浮动、哪些原因造成阻塞页面渲染、【相同的树】

一、TCP与UDP的区别 TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的网络传输协议,它们有以下几点区别: 1、连接性: TCP是面向连接的协议,通信双方在…

以太网数据量大小字符串生成方法(可变单位)

0 前言 当我们想显示以太网数据量大小时,往往有个头疼的单位需要处理,单位取小了不一目了然,单位取大了精度太低。本例设计一个函数,将根据以太网数据量大小自动生成单位可变的字符串(KB、MB、GB、TB、PB)…

【大语言模型】基础:TF-IDF

TF-IDF (Term Frequency-Inverse Document Frequency) 是一种用于信息检索与文本挖掘的统计方法,用来评估一个词对于一个文件集或一个语料库中的其中一份文件的重要性。它是一种常用于文本处理和自然语言处理的权重计算技术。 原理 TF-IDF 由两部分组成&#xff1…

Qt:发出一个信号,有多少相关槽函数执行?

返回连接signal的接收者的个数。 因为信号和槽都能作为信号的接收者,同时相同的连接能被建立很多次,接收者的数量和与该信号建立连接的数量相同。 当调用该函数时,你能使用SIGNAL()宏来传递一个特定的信号: if (receivers(SIGNA…