【论文阅读】MINOTAUR: Multi-task Video Grounding From Multimodal Queries

背景动机

细粒度的视频理解已经成为增强现实(AR)和机器人应用开发的关键能力。为了达到这种级别的视频理解,智能体(例如虚拟助手)必须具备识别和推理视频中捕获的事件和对象的能力,处理一系列视觉任务,如活动检测、对象检索和(空间)时间基础。然而,目前关于视频理解的研究主要集中在使用特定任务的注释数据集训练个体的、高度专业化的模型,而没有考虑多个任务之间的协同作用和模型对新任务的泛化。

作者寻求一种替代方法——为多个细粒度视频理解任务构建一个统一的框架。具体来说,目标是调查两个关键的研究问题

(i)设计一个能够以端到端方式无缝处理具有多模态输入的多个任务的单一架构是否可行?(注:端到端的学习,就是把特征提取的任务也交给模型去做,直接输入原始数据或者经过些微预处理的数据,让模型自己进行特征提取。)

(ii)这个统一的框架在多大程度上可以利用不同任务之间存在的互补信息来实现卓越的性能和泛化?

直观地说,可以通过捕获不同任务之间的潜在关系来促进模型的学习过程。例如,一个训练用于回答自然语言查询(例如,“我把扳手放在哪里了?”)的模型可以从回答视觉查询(例如,搜索最近出现的“扳手”)和瞬间查询(例如,“修理小型设备(割草机、修剪机等)”)的学习中受益。此外,跨多个任务训练的模型被观察到表现出卓越的泛化能力,这是因为模型可以访问为不同目的注释的不同数据,并且不会过度拟合到单一目标。本文中的目标是与视频基础模型协同,但也有不同之处,重点不是学习一个可以轻松适应各种目标任务的模型(使用pretex任务),而是一个适用的联合模型,可以直接解决各种目标视频理解任务。

挑战:虽然为多个任务构建统一框架的想法在概念上很简单,但它确实带来了许多核心技术挑战。第一个挑战是不一致的输入(视觉、语言)/输出(空间、时间)格式和跨不同任务的输出分布。以三个情景记忆任务为例,自然语言查询(natural language query, NLQ)的输入为自由形式语言,输出时间跨度< 2秒;视觉查询(visual query, VQ)的输入为图像裁剪,而时刻查询(moment query, MQ)的输出时间跨度一般大于1分钟。当以端到端方式在长视频(8分钟)中本地化简短答案时,问题变得更加严重。此外,在不影响每个任务性能的情况下,有效地训练捕获跨任务的多模态信息的模型仍然是一个开放的挑战。

鉴于此,作者提出了MINOTAUR,这是一个统一的多任务模型,旨在接受长视频和多模态查询作为输入,并生成多样化的结构化输出。关键思想是将不同的任务作为查询的(空间)时间基础的特殊情况,这使得它们能够简化为预测视频中查询的空间时间响应位置。MINOTAUR建立在Transformer编码器-解码器架构之上,任务特异性被嵌入到输入/输出处理模块中,例如特定于模态的查询嵌入和预测头。为了解决长视频中不一致的输出分布所带来的挑战,我们设计了一个基于滑动窗口的训练和推理机制,并结合了一个能够跨不同任务进行推广的前景帧预测模块。与之前依赖于预提取视觉特征的长视频理解工作不同,我们的模型是完全端到端可学习的,可以使用部分注释的数据进行训练,即不需要对每个视频的所有任务进行注释。我们的经验表明,我们的联合模型能够跨任务传递和利用信息(见表1),与单任务相比,NLQ任务的性能提高了18%。我们还表明,我们的模型可以推广并产生有意义的零射击时空接地结果,而无需对任务进行训练。

这项工作的贡献和新颖性是方法论和技术上的。首先,我们提出了MINOTAUR,这是一个统一的、基于transformer的模型,用于长视频中的多模态查询。据我们所知,这是第一个训练和评估单一模型的工作,用于从时空基础到活动检测的任务。我们说明了这种架构能够学习和利用不同任务之间的信息,并在推理中启用新的零射击任务。针对该模型,我们提出了高效的多任务训练和推理策略,实现了固定时长、部分注释视频片段的训练,以及对变长、长格式视频的测试。我们在单任务和多任务设置下训练我们的模型,并在Ego4D情景记忆基准的三个任务上对其进行评估。我们的结果表明,我们的统一模型与为每个单独任务设计和优化的架构具有竞争力,并且允许零射击时空接地(未在其他地方显示)。

方法

我们的目标是设计一个统一的框架来处理各种细粒度的视频理解任务,并利用它们提供的补充信息。具体来说,我们在本文中专注于解决具有挑战性的情景记忆任务,其中涉及询问用户过去体验的各种类型的查询。

问题公式化

情景记忆任务[20]包括三种不同类型的查询:(1)视觉查询(VQ2D),它要求查询对象在视频中的最近时空位置;(2)时刻查询(MQ),需要对查询时刻的所有时间段进行定位;(3)自然语言查询(Natural Language Query, NLQ),它需要检索视频中与输入语言问题对应的时间矩。由于其不同的输入/输出格式和分布,先前的工作通常使用专门的模型分别处理这些任务(例如,VQ2D的基于对象的连体网络[20,87],MQ的动作检测模型[94,99]和NLQ的时间接地网络[95,32])。相比之下,我们的关键思想是将所有三个情景记忆任务统一为一个多任务、多模式的视频接地问题。

形式上,给定一个参考视频V和一个查询qν,其中ν∈{VQ2D, NLQ, MQ},我们的目标是识别一个响应轨迹Rν,表示为一个时空管或一个时间段。具体地说,

VQ2D。使用Qν作为查询框架中对象的可视化裁剪,Rν = {rs, rs+1,…, re}是跟踪感兴趣对象的时空管,其中s和e分别是开始帧和结束帧索引,ri是第i帧中的一个边界框(x, y, w, h)∈R4。如果对象多次出现,则检索查询框架之前最近出现的对象。

MQ。Qν是预定义分类法(用语言描述)中的一个活动,响应轨迹由视频中查询活动的所有实例组成,Rν = {(sn, en)}N N =1,其中N是实例的总数,sn和en是第N个实例的开始帧和结束帧索引。

NLQ。将Qν作为文本问题,Rν = (s, e)是一个时间段,s和e分别作为帧的开始和结束索引。

MINOTAUR

为了用一个统一的模型共同解决这三个情景记忆任务,我们引入了MINOTAUR,一个基于transformer的架构,如图2所示。我们的模型接收以自我为中心的视频和查询(视觉、文本或分类)作为输入,并分别使用视觉主干和模态特定查询编码器对它们进行编码。在获得视频和查询特征后,将它们与视频查询编码器融合,该编码器捕获多模态交互。然后,使用时空解码器对上下文感知的视频查询特征进行解码,该解码器模拟了远程时间交互。解码后的特征被馈送到预测头以生成边界框预测,以及每个帧索引的开始、结束和前景概率的预测。最后,这些预测由特定于任务的输出处理模块处理,这些模块将它们转换为每个任务的响应跟踪Rν。

我们的架构基于TubeDETR[89],这是一种用于自然语言查询的时空基础的最先进的架构。我们的模型将TubeDETR一般化,以处理多个输入查询模式,以及长格式视频中的特定任务输出,其中输出可以采用时空或时间管的单个或多个实例的形式。我们将在下面描述TubeDETR[89],并在第3.2.1节中描述特定于任务的组件。

视觉中枢。我们从使用2D-CNN主干和前馈层编码视频V的T帧开始。我们对特征进行二维位置编码,并对其进行平面化,得到v∈RT ×HW ×d,其中T为帧数,H和W为特征映射的高度和宽度,d为模型的隐藏尺寸。 

Video-Query编码器。给定输入查询特征q∈RL×d来自我们的模态特定查询编码器(稍后在3.2.1节中描述),其中d是模型的隐藏大小,L是查询特征的大小,我们在T帧中复制q,与视频特征v连接,并通过ne层变压器编码器转发它,得到Enc(v, q)∈RT ×(HW +L)×d。该编码器对每一帧查询特征分别应用变换层,有效地融合了查询信息和每一帧特征。请注意,出于计算原因,视频查询编码器可以应用于下采样视频查询特征(以步长k为规则间隔采样),输出可以暂时复制或上采样k,以匹配原始的T帧数。

时空解码器。解码器将学习到的T序列作为输入,模态特定的时间嵌入{et}T =1∈Rd(稍后在3.2.1节中描述)。然后,解码器通过交叉关注视频查询编码器特征Enc(v, q)来细化每一帧t的时间嵌入,以预测查询的答案在每一帧t是否可见。根据TubeDETR[89],解码随着时间和空间进行分解,通过具有时间自注意和帧交叉注意层的nd块,与前馈层和归一化层交织在一起,提高效率。时间自关注层允许时间嵌入相互关注,从而促进跨视频的时间交互。逐帧交叉注意层分别对每一帧进行交叉注意,其中对于第n帧,相应的时间嵌入et交叉关注其视频查询编码器特征enc (v, q)i∈R(HW +L)×d。实际上,解码器考虑了时间和空间维度的信息,以产生精细的时间嵌入。参见[89]了解更多细节。最后,使用改进的时间嵌入{{et}T T =1对视频中的每一帧进行预测

特定于模态的编码器和推理

在本节中,我们描述了我们架构的新组件、推理过程和损失,这些组件使我们能够为所有任务训练和使用一个单一的、统一的模型。

特定于模式的查询编码器。根据任务的不同,查询Qν在MQ和NLQ的情况下可以是文本问题,或者在VQ2D的情况下可以是图像形式的视觉裁剪。为了处理不同的查询模式,我们引入了特定于模式的查询编码器。语言查询使用RoBERTa语言模型嵌入,并使用前馈层qtext∈RL ' ×d映射到模型的隐藏大小d,其中L '是令牌的数量。另一方面,视觉查询使用视觉主干和前馈层进行编码。将得到的特征沿着空间维度进行平面化,得到qvisual∈RH ' W ' ×d,其中H ', W '是特征映射的空间维度。形式上,查询特征可以写成q∈RL×d,其中L∈{L ', H ' w '}。

模态特定的时间嵌入。如前所述,时空解码器将时间嵌入序列{et}T T =1作为输入,并使用编码的视频查询特征对其进行细化。我们通过在时间T上复制一个学习的、模态特定的编码向量(文本或视觉),并将其与正弦时间编码相加,从而获得上述模态特定的时间嵌入。

预测。与TubeDETR[89]类似,我们使用mlp来预测每个帧t:(a)与查询相关的边界框{t∈[0,1]4的相对坐标,(b)分数{τs,t表示帧t是查询答案的开始,以及(c)分数{τe,t表示帧t是答案的结束。为了更好地处理长视频,其中多个片段可能与查询相关,我们还为与查询相关的每个帧输出置信度分数。综上所述,我们的模型输出7维向量[φ b, φ τ s, φ τ e, φ f]∈RT ×7,作为视频中每一帧的预测(如图3 (a)所示)。

 特定于任务的推理。由于GPU内存的限制,我们的模型不能一次处理长格式视频的所有帧。为了解决这个问题,我们采用滑动窗口方法,其中我们使用固定持续时间为w帧的视频片段进行训练,并通过以滑动窗口方式聚合模型输出来执行推理。然后需要对这些输出进行后处理,以生成适合任务的响应轨迹。为了预测时空管,我们分别用softmax对logits δ τ s和δ τ e进行计算,形成了开始时间和结束时间的概率δ ps和δ pe。我们通过在分布上选择argmax_来推断开始和结束帧索引,_ s和_ e,使得_ e > _ s。在预测的开始/结束范围内选择边界框形成空间预测,得到空时管{{t}} {e t=} s。

特定于任务的推理。由于GPU内存的限制,我们的模型不能一次处理长格式视频的所有帧。为了解决这个问题,我们采用滑动窗口方法,其中我们使用固定持续时间为w帧的视频片段进行训练,并通过以滑动窗口方式聚合模型输出来执行推理。然后需要对这些输出进行后处理,以生成适合任务的响应轨迹。为了预测时空管,我们分别用softmax对logits δ τ s和δ τ e进行计算,形成了开始时间和结束时间的概率δ ps和δ pe。我们通过在分布上选择argmax_来推断开始和结束帧索引,_ s和_ e,使得_ e > _ s。在预测的开始/结束范围内选择边界框形成空间预测,得到空时管{{t}} {e t=} s。

培训。在训练期间,我们随机抽取w帧的窗口(从总T帧中),围绕回答查询的基本真值时间段(如果有多个基本真值段,我们随机选择一个)。在基础真值段长于w的情况下,我们随机放置覆盖部分基础真值的窗口。

损失。我们的模型使用空间损失和时间损失进行训练,空间损失可以改进边界框预测,时间损失可以改进开始/结束/前景帧预测)。特别地,给定地真边界框b∈[0,1]4x (e−s+1),对于地真起始帧s和结束帧e之间的每一帧,空间损失计算为l 1和广义IoU (LgIoU)[7]损失为:

对于时间损失,我们使用标准正态(N()定义目标开始和结束时间分布(ps, pe∈[0,1]w)。, 1)),分别以真值起始帧和结束帧为中心。对于预测的开始和结束时间logits (τ s, τ e∈Rw),我们使用softmax在w帧上对它们进行归一化以获得相应的概率(ps, pe∈[0,1]w),并计算目标分布ps(或pe)与预测分布ps(或pe)之间的kl -散度(LKL)。此外,我们还对前景分数(f∈[0,1]w)进行了回归,这表明了一帧作为基础真值的一部分的可能性。我们将目标设为f∈{0,1}w,使得p在开始和结束帧索引(s和e)内为1,在其他地方为0。我们使用f和f之间的正加权二元交叉熵损失(LBCE)来计算前景损失。最后,我们已经引导了注意力损失拉特(A),它促进时空解码器中的交叉注意权重呈对角线状,并且在相应的时间边界上具有更大的值(见[89])。

 根据每个任务可用的基真注释的类型,使用不同的损失分量训练模型。由于NLQ和MQ只有时间注释,我们只使用时间损失项:LN LQ = LM Q = Ltemporal。然而,对于VQ2D,我们有地基真时空管可用,我们应用所有损失项:LV Q2D = Lspatial + Ltemporal。

多任务学习。将三个情景记忆任务整合到一个单一的、统一的架构中,有可能在任务之间实现互利的知识交叉转移。对于联合训练,我们使用循环抽样[48],以循环的方式从任务中逐个采样,即使任务的数据集大小可能不同,也可以有效地用相同比例的单个任务训练模型。多任务学习的总损失是单个任务损失的总和



实验数据集:Ego4D是一个大规模的以自我为中心的视频数据集,具有评估第一人称视觉理解的基准。用三个情景记忆任务做实验。

结果

三个任务上分别训练我们的模型,以建立多任务学习的基线,如第一行。

此外,我们在所有三个任务上训练一个单一模型,all - tasks (AT),如第2行所示

与单任务模型相比,全任务模型在NLQ任务上的改进最大,因为它与VQ2D具有显著的协同作用。特别是,由于VQ2D侧重于对象和地点的推理,因此在这些类别的问题上,NLQ的改进也是最大的

还尝试将所有任务(AT)模型微调到单个任务,认为AT模型可以允许下游任务从多任务联合预训练中获益

 跨不同任务的协同。在多个任务上训练统一模型的另一个好处是能够在任务之间转移学习到的概念。具体而言,对于NLQ,尽管模型是在(语言查询,时间目标)对上训练的,但我们可以打开模型的空间预测分支,对语言查询进行空间预测,而VQ2D中空间分支仅在(视觉查询,时空目标)对上训练。我们称这种设置为零射击时空基础,其中一个统一的模型可以跨模态转移学习到的概念。

消融实验

在表5中使用MQ上的All-Tasks (AT)模型排除了不同的设计选择。关于VQ和NLQ的更多研究结果可在附录中找到。1)w/o文本编码器:而不是为查询“When did I do <activity c>”训练语言编码器。2) w/o特定于模态的时间嵌入:而不是对视觉和文本查询(visual, ettext)进行单独的时间嵌入,我们报告使用单个时间嵌入的结果;3)w/o循环采样:而不是在训练期间对三个任务进行统一采样,我们显示简单连接数据集的结果;4)w/o精细文本编码器;5) w/o多尺度推理:我们不是在不同尺度(fps: 0.2, 0.5, 1,1.66, 5)上累积推理结果,而是在单个尺度(fps: 5)上展示结果,6)w/o重叠窗口:增加相邻滑动窗口之间的间距以消除推理过程中的重叠。我们观察到所有测试的消融性能都有显著下降,表明我们的技术设计在实现统一的多任务模型方面是有效的。

我们将我们的方法与表4中的先前工作进行比较。请注意,由于空间限制,我们只报告了在任务特定数据上训练的方法(没有在3.85M视频文本Ego4D corpus上进行额外的大规模预训练),而将其他方法留给了补充材料。我们首先观察到,与Ego4D论文[20]中报告的基线(第1 - 3行)相比,我们的All-Tasks模型(第9行)在三个任务的9个指标中有8个优于。其次,与最先进的VQ2D任务相比:Xu等人[87](第4行),我们的AllTasks模型(第9行)在VQ2D的4个指标中的3个上表现出色。第三,与使用骨干网架构和预训练数据的不同组合的其他方法相比,EgoVLP[39]使用Frozen[4]骨干网与CC3M[68]和WebVid2M[4]预训练,InternVideo[8]使用VideoMAE[79]骨干网与Kinetics700[30]预训练,ActionFormer[94]使用SlowFast 17]骨干网与kinetics400[30]预训练;我们的AllTasks (AT)模型在NLQ(第5行v/s 9)上表现出色,并且在MQ(第6 - 8行v/s 9)上表现优于3个相关工作中的2个,尽管这些方法使用专门为每个单独任务设计的专用架构。 

总结

 提出了一种统一的方法,用于在具有不同程度时空输出的长视频中进行多模态查询。为了实现这一目标,我们提出了一种多任务训练和推理策略,可以对具有不同程度时空注释的数据进行学习。最后,我们观察到我们的方法在学习能力的泛化和迁移方面优于特定任务的单一架构,例如零射击时空基础。

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

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

相关文章

ChatGPT教程(终极版)

纯小白关于ChatGPT入门&#xff0c;你看我这篇文章就够了。 如果你已经用上了ChatGPT&#xff0c;更要恭喜你挖到宝藏&#xff0c;后面的高级技巧一定能让你有收获。 文章包含以下内容&#xff1a; 一、ChatGPT是啥&#xff1f;有什么用&#xff1b; 二、ChatGPT如何注册&…

jetson nx 用windows远程连接

VNC Viewer远程连接 一、jetson nx配置vnc 1、安装客户端 sudo apt-get install xrdp vnc4server xbase-clients2、进入nano/nx桌面&#xff0c;打开“Setting–>Desktop sharing”&#xff0c;没反应&#xff0c;据说是bug&#xff0c;我试过nano和nx都一样。首先输入下…

【c语言】组件化打包—静态库

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c语言系列专栏&#xff1a;c语言之路重点知识整合 &#x…

IoT -- 解读物联网四层架构

本文以物联网四层架构为基础&#xff0c;从物联网产品设计的角度来解读每层架构的功能以及主要内容&#xff0c;旨在为物联网产品设计以及实现思路感兴趣的物联网产品或研发人员有些帮助。 通过互联网&#xff0c;人和人之间可以传递和交流信息。物联网&#xff0c;IoT&#x…

网络安全:Hydra 端口爆破工具.(九头蛇)

网络安全&#xff1a;Hydra 端口爆破工具.&#xff08;九头蛇&#xff09; Hydra 也叫九头蛇&#xff0c;是一款开源的暴力PJ工具&#xff0c;集成在kali当中。可以对多种服务的账号和密码进行爆破&#xff0c;包括 Web 登录、数据库、SSH、FTP 等服务. 目录&#xff1a; 网络…

调用api实现ChatGPT接口余额查询

在ChatGPT官网可以查询接口使用额度&#xff0c;但是官方并没有提供相应的API给开发者调用。我们可以通过破解的方式找到它的API。方法如下&#xff1a; 1. 使用Chrome浏览器打开https://platform.openai.com/account/usage 2. 打开开发者工具&#xff0c;然后刷新网页&#xf…

我让gpt写了一段正则表达式代码,可是运行报错,可以帮忙看看哪里出了问题?...

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 忽闻海上有仙山&#xff0c;山在虚无缥缈间。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python最强王者群【HZL】问了一个Python正则表达式的问…

ES6知识点

目录 1、let、cons、var的区别 2、const对象的属性可以修改吗 3、如果new一个箭头函数会怎么样 4、箭头函数和普通函数的区别&#xff1a; 5、扩展运算符的作用及使用场景 1、let、cons、var的区别 1️⃣&#xff1a;块级作用域&#xff1a;块作用域由{}包括&#xff0c;le…

ERM LABS 与 The Sandbox 战略合作,将真人密室逃脱游戏引进元宇宙

将现实生活中的体验带入一个全新的维度&#xff01;ERM LABS 专注于将现实生活中的娱乐及冒险体验以游戏独特架构设计扩展到元宇宙裡。与 The Sandbox 合作&#xff0c;该项目旨在为全球合作的真人密室逃脱场所提供无限开放形的线上虚拟世界&#xff0c;让玩家尽情享受考验智商…

09——svg中path的使用

一、path 是 svg 中最强大的图形 用于定义一个 路径所有命令均允许小写字母。大写 表示绝对定位&#xff0c;小写 表示 相对定位 &#xff08;相对于上一个结束的坐标&#xff09;d 属性中包含所有路径的点&#xff0c;可根据命令缩写 自由组合 命令 名称 …

最全的分布式事务详情,它来啰~

我们首先得理解什么是分布式事务呢&#xff1f;分布式事务是指在分布式系统中&#xff0c;涉及多个计算机或服务器的操作序列&#xff0c;这些操作需要满足一致性和可靠性的要求。每个操作要么全部成功执行&#xff0c;要么全部回滚&#xff0c;以保持数据的一致性和完整性。 …

假期出行小程序+chatgpt旅游攻略

马上五一了,如果想出去旅游,需要提取规划好路线图,我们可以借助chatgpt的路线规划功能帮我们生成一份攻略,按照攻略我们就可以愉快的出去玩耍了。 本文结合chatgpt,利用低代码工具帮我们制作一份旅行导览小程序,可以按照行程方便的出行。 1 制定攻略 我们在聊天窗口输…

从小白到黑客高手:一份全面详细的学习路线指南

前言 黑客从入门到精通需要经过深入的学习和实践&#xff0c;这是一个需要长时间投入和大量精力的过程。在这份学习路线中&#xff0c;我将为你介绍黑客学习的基本知识和技能&#xff0c;帮助你逐步掌握黑客技能。 黑客 一、入门阶段 1.了解计算机基础知识 学习计算机基础知…

thinkPhP6.0安装教程图解--PHP框架安装

ThinkPhP 6.0 安装 1.环境检查 首先&#xff0c;thinkphp6.0&#xff0c;要求php的环境是7.2.5及以上的&#xff0c;所以先检查自己的php环境是否符合要求。 在cmd命令窗口中输入php -v 或者没有配置环境变量的话&#xff0c;可以在php编辑器中输出php_info()或则PHP_VERSIO…

【鲁棒优化、无功优化】两阶段鲁棒优化的主动配电网动态无功优化【IEEE33节点】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

A股市场上股票行情数据接口有那几种?

L2行情数据接口相比Level-1接口相比&#xff0c;L2行情市场具有数据更完整、推送速度更及时的优势&#xff0c;帮助投资者及时把握盘中主要资金流&#xff0c;做出更准确的投资决策。简而言之&#xff0c;Level-2最大的作用就是提前看到主力的大单&#xff0c;对于追逐日线跌停…

Linux高并发服务器开发01:Linux系统编程入门

GCC 什么是GCC GCC工作流程 GCC常用的参数选项 GCC和G的区别 静态库 什么是库 静态库的制作 先编译生成对应的.o文件 gcc -c add.c sub.c mult.c div.c -I …/include/ 再将.o文件打包成静态库 ar rcs libcalc.a add.o sub.o mult.o div.o 使用的时候-l指定库名称 gcc main.c…

【论文简述】Multi-View Stereo Representation Revisit: Region-Aware MVSNet(CVPR 2023)

一、论文简述 1. 第一作者&#xff1a;Yisu Zhang 2. 发表年份&#xff1a;2023 3. 发表期刊&#xff1a;CVPR 4. 关键词&#xff1a;MVS、3D重建、符号距离场 5. 探索动机&#xff1a;像素深度估计仍存在两个棘手的缺陷。一是无纹理区域的估计置信度较低。二是物体边界附…

RTSP/RTP on TCP 协议抓包记录

仅做记录&#xff0c;无他。 RTSP OPTIONS 客户端发送&#xff1a; 服务端响应 RTSP DESCRIBE 客户端发送 服务端响应 RTSP SETTUP 客户端发送请求 服务端响应 RTSP PLAY 客户端发送请求 服务端响应 RTP包 这个比较复杂&#xff0c;得好好解析&#xff0…

消息队列中间件 - RabbitMQ消息的持久化、确认机制、死信队列

持久化和应答机制Ack 消息队列中间件系列的最后一篇了&#xff0c;RabbitMQ消息的持久化、确认机制、死信队列、负载均衡等一系列进行说明。 消息持久化 当RabbitMq重启以后&#xff0c;未消费的消息&#xff0c;可以在服务重启后继续消费&#xff0c;不会丢失。 应答机制A…