Mora: Enabling Generalist Video Generation via A Multi-Agent Framework

目录

论文地址:Mora: Enabling Generalist Video Generation viaA Multi-Agent Framework

 github地址:https://github.com/lichao-sun/Mora

一、摘要

(1)Mora 的主要特点:

(2)Mora的应用场景:

  (3)  Mora的主要贡献

二、Mora: A Multi-Agent Framework for Video Generation

1、Text-to-video generation:

2、Text-guided image-to-video generation:

3、Extend generated videos:

4、Video-to-video editing:

5、Connect videos:

6、Simulate digital world:

三、实验

1、评估指标

2、实施细节

3、结果

3.1、Text-to-Video Generation

3.2、Text-conditional Image-to-Video Generation

3.3、Extend Generated Videos

3.4、Video-to-Video Editing

3.5、Connect Videos

3.6、Simulate Digital Worlds

四、结论


一、摘要

Mora是一个基于多智能体框架的通用视频生成系统。它旨在解决现有视频生成模型通常专注于特定任务或场景的问题,如人脸生成、自然景观生成等。通过使用多智能体框架,Mora 能够在不同任务和场景之间进行灵活切换,实现更加通用的视频生成。

在 Mora 中,每个智能体负责处理特定的任务或场景,例如人脸生成、自然景观生成等。这些智能体可以独立地进行训练和优化,以在其各自的领域内实现最佳性能。然后,通过一个协调器来整合这些智能体的输出,生成最终的视频。

Mora生成的视频

(1)Mora 的主要特点:

  1. 多智能体框架:Mora 利用多个智能体来处理不同的任务和场景,从而实现了更加通用的视频生成能力。

  2. 可扩展性:由于每个智能体负责处理特定任务或场景,因此可以根据需要轻松添加新的智能体,以支持更多的任务和场景。

  3. 灵活性:Mora 允许在不同的任务和场景之间灵活切换,使得系统能够适应各种应用场景。

  4. 高性能:通过将任务分解为多个智能体,可以对每个智能体进行独立的训练和优化,从而提高整体性能。

(2)Mora的应用场景:

扩展已生成的视频:Mora能够根据用户的需求对现有视频进行扩展和修改,这适用于需要对视频内容进行调整或延续的场景。
视频到视频的编辑:Mora支持将多个视频片段结合起来,进行剪辑和编辑,以创作出全新的视频内容。
多智能体协作增强:Mora的框架设计有助于提升智能体之间的协作,这对于需要多步骤或多元素合成的复杂视频生成任务尤为重要。
高质量视频内容生成:微软研究院推出Mora的目的是为了通过智能体之间的协作实现高质量的视频内容生成,这表明Mora可以用于制作高分辨率、高质量的视频,满足专业级别的需求。

此外,在Mora框架中,有五种基本角色负责不同的生成任务,包括Prompt选择和生成、文本到图像生成、图像到图像生成、图像到视频生成以及视频到视频的转换。这种分工使得系统能够灵活应对各种视频生成的需求。

  (3)  Mora的主要贡献

1.提出一个开创性的元编程框架,旨在增强多智能体协作。这个框架以其结构化但适应性强的代理系统而闻名,并具有配置组件和任务管道的直观界面。

2.通过利用多个代理的自动合作,包括文本到图像、图像到图像、图像到视频和视频到视频代理,可以显著提高视频生成的质量。这个协作过程从从文本中生成图像开始,然后同时使用生成的图像和输入文本来生成视频。这个过程以视频的进一步细化、扩展、连接和编辑而结束。

3.Mora以其在6个视频相关任务上的出色表现而出,超过了现有的开源模型。

然而,在整体评估时,Mora和Sora之间存在着明显的差距。

二、Mora: A Multi-Agent Framework for Video Generation

先看下Mora和Sora、其他现有模型的比较:

Mora的多代理框架:它利用各种高级大型模型来实现类似于Sora的文本到视频功能。具体地说,就是将视频生成分解为几个子任务,每个子任务分配给一个专门的代理:

(1)enhancing prompts provided by the user (增强用户提供的提示)

(2)generating an image from an input text prompt (从输入文本提示生成图像)

(3)editing or refining images based on the enhanced conditioning provided by the text (基于文本提供的增强条件编辑或细化图像)

(4)generating a video from the generated image (从生成的图像生成视频)

(5)connecting two video (连接两个视频)

通过自动组织代理通过这些子任务进行循环和排列,Mora可以通过一个灵活的管道完成广泛的视频生成任务,从而满足用户的不同需求。

通过有效协调文本到图像、图像到图像、图像到视频、视频到视频,Mora可以熟练地执行广泛的视频生成任务,同时提供优越的编辑灵活性和视觉保真度,可与Sora等模型相媲美。

文本到视频生成

过程通常涉及将自然语言描述转换为视觉内容的视频序列。这一过程可以分为以下几个关键步骤:

1. 预训练模型:需要有一个预训练的文本到视频生成模型。这些模型通常是基于大规模的数据集进行训练,以便学习如何将文本描述与相应的视频内容关联起来。例如,CogVideo是一个包含94亿参数的大规模预训练文本到视频生成模型。
2. 调整策略:为了生成时间连贯的视频,需要采用有效的调整策略。这可能包括结构反演和一种称为“Tune-A-Video”的方法,它通过一次调整(One-Shot Tuning)来生成连续的视频。
3. 微调(Tuning):在视频数据上进行微调是文生视频工作中最常见的方法之一。这涉及到在视频数据上进一步训练模型,以提高其生成视频的质量。
4. Zero-Shot:这种方法直接使用文生图模型迁移到视频生成,无需额外的视频特定训练数据。
5. 长视频生成:探究长视频的生成是文本到视频生成领域的一个研究方向。这是因为长视频的生成比短视频更为复杂,需要模型能够长时间保持内容的一致性和相关性。
6. 可控生成:可控的生成是指能够根据特定的指导或条件来生成视频,这样可以更好地控制生成视频的内容和风格。
7. 后处理:生成的视频可能需要后处理,以确保视频质量符合要求,包括分辨率、帧率和视觉效果的优化。
8. 评估与反馈:最后,生成的视频需要经过评估,以确定是否满足预期的标准和用户需求。这可能涉及到人工审核或自动化的质量检查流程。

综上所述,文本到视频的生成是一个复杂的过程,涉及到多个步骤和技术,从预训练模型的选择和调整,到视频的具体生成和后处理,每一步都需要精心设计和执行,以确保最终生成的视频能够满足用户的需求和标准。随着技术的进步,这一领域仍在不断发展,旨在提高生成视频的质量和逼真度。

【AI Agents】

AI Agents是一种高级形式的人工智能系统,能够执行复杂的任务并模拟人类的决策过程**。

一、AI Agents的核心功能包括:

1. 感知:接收和理解来自环境的数据,如文本、图像或声音等信息。
2. 推理:基于所接收的信息进行分析,以了解环境和识别需求。
3. 决策与行动:根据推理结果制定决策,并采取相应的行动。

二、AI Agents的主要应用领域包括但不限于:

1. 自动驾驶汽车:通过集成传感器信息处理和决策算法,实现车辆的自主驾驶。
2. 智能机器人:使机器人能够执行复杂任务,如家务助理或生产线自动化。
3. 语音助手:如Siri、Alexa等,能够理解和响应用户的口头命令,执行各种服务。

当前,AI Agents的发展正处在一个关键转折点,随着大型语言模型(LLM)和其他相关技术的进步,AI Agents的能力在不断提升。它们被看作是通向通用人工智能(AGI)时代的重要一步,具有极其广阔的应用前景和潜力。然而,AI Agents的发展还面临着许多挑战,如智商问题、环境适应性、多模态交互等,需要持续的研究和技术突破来解决这些问题。 

三、AI Agents在视频生成领域中的应用主要涉及以下几个方面:

文本到视频生成:根据给定的文本描述自动生成符合内容要求的视频。这一功能对于内容创作者来说非常有用,因为它可以快速将创意转化为视觉作品。
图像到视频生成:在文本条件下,可以将单一图像转换为视频,这为静态图像提供了动态化的可能,增强了视觉表现力。
扩展生成视频:对已有的视频片段进行扩展,生成更长的视频内容,这对于电影制作和游戏开发等领域具有潜在的应用价值。
视频编辑:具备视频到视频编辑的能力,这意味着它们可以对现有视频进行修改和调整,以满足特定的需求或创意表达。
连接视频和模拟数字世界:可以将视频与虚拟环境相结合,创造出更加丰富和互动的视觉体验。

此外,AI Agents在视频生成领域的应用还可以降低创作门槛、打开C端创作商业空间、游戏、影视制作等B端视频应用空间。这些应用不仅推动了视频内容创作的自动化和个性化,也为AI Agents的研究与认知提供了更广阔的市场和前景。

接下来详细看Mora:

从上图可以看出Mora主要由五个基本的代理:

  1. prompt selection and generation agent
  2. text-to-images generation agent
  3. image-to-image generation agent
  4. image-to-video generation agent
  5. video-to-video agent

【1】Prompt Selection and Generation

目前,GPT-4 是最先进的生成模型。通过利用GPT-4的功能,我们能够生成并精心选择高质量的提示。这些提示详细且丰富,信息丰富,通过为代理提供全面的指导,促进了文本到图像的生成过程。 

 

【2】Text-to-image Generation

利用预先训练的大型文本到图像模型来生成一个高质量和具有代表性的第一图像。

采用The Stable Diffusion XL (SDXL)模型:

主要模型架构是U-Net,并且包含了改进的CrossAttn模块。

Stable Diffusion XL(SDXL)是Stable Diffusion系列的优化版本,它在AI绘画领域取得了显著的成就。以下是该模型架构的详细介绍:

U-Net结构:SDXL采用了U-Net网络结构,这是一种常用于图像生成和分割任务的编码器-解码器架构。它由一个收缩路径(用于捕捉图像的细节)和一个扩展路径(用于精确地定位这些细节)组成。
CrossAttn模块:与Stable Diffusion早期版本相比,SDXL在U-Net结构中减少了CrossAttn模块的数量,但增加了Transformer模块的数量。这种设计使得模型在处理图像生成时更加高效和精确。
下采样过程:在SDXL的CrossAttnDownBlock2D模块中,只进行了两次下采样,这有助于保留更多的图像信息。
性能提升:相比于Stable Diffusion的早期版本,SDXL在使用相同U-Net基础模型的情况下已经展现出更好的性能。当结合Refiner模型后,其图像生成效果进一步提升。
训练技巧:为了提高模型的性能,SDXL在训练过程中采用了一些特定的技巧,这些技巧有助于模型更好地学习和生成高质量的图像内容。

【3】Image-to-Image Generation

采用InstructPix2Pix作为图像到图像生成代理

InstructPix2Pix是一个基于文本指令编辑图像的模型,它能够根据自然语言描述来修改图片内容。

InstructPix2Pix模型的核心在于利用自然语言处理(NLP)和计算机视觉(CV)的结合,实现对图片内容的智能编辑。具体来说,该模型包括以下几个关键点:

1. 数据生成:为了训练这个模型,作者团队首先使用两个预训练的大型模型——语言模型GPT-3和文本到图像模型Stable Diffusion——来生成一个包含大量“指令-图片”对的数据集。这些数据集中的图片是根据特定的文本指令编辑过的。
2. 模型结构:InstructPix2Pix模型本身是基于扩散模型的架构,它通过在前向传播中执行图片编辑,而不需要对每个样例进行微调(fine-tuning)或者反向转换(inversion)。这意味着它可以在几秒钟内快速完成图片的编辑工作。
3. 编辑能力:该模型能够执行广泛的图片编辑任务,包括但不限于改变风格、媒介和纹理。尽管如此,它仍然存在一些局限性,可能无法处理所有类型的编辑需求。
4. 训练过程:InstructPix2Pix的训练依赖于通过上述方式生成的大量示例数据集,这使得模型能够学习如何根据文本指令来编辑图像。
5. 应用场景:由于其快速且灵活的编辑能力,InstructPix2Pix可以被用于各种需要图像内容修改的场景,如创意设计、广告制作、社交媒体内容创建等。
6. 性能优势:InstructPix2Pix的一个重要优势在于其高效性,能够在没有专门硬件支持的情况下,实时地完成图像编辑任务。

【4】Image-to-Video Generation

在文本到视频生成代理中,视频生成代理在确保视频质量和一致性方面起着重要的作用

Stable Video Diffusion (SVD)是一种基于潜在扩散模型的视频生成技术,它能够根据文本或图像条件生成视频,并支持从单一视角到多视角的3D合成。

Stable Video Diffusion的工作原理和框架包含以下几个关键要点:

1. 模型组成:SVD实际上由两个模型组成,分别是SVD和SVD-XT。SVD能够将静态图片转化为14帧的视频,而SVD-XT则将帧数提高到24。
2. 生成速度:这两个模型都能以每秒3到30帧的速度生成视频,这表明其生成速度非常快,适合实时或近实时的视频内容创建需求。
3. 训练过程:SVD模型的训练分为两个阶段。首先,在包含数百万视频的大规模数据集上进行训练,以学习视频的基本结构和动态特性。随后,在规模较小的数据集上进行微调,以更好地适应特定类型的视频生成任务。
4. 技术支持:SVD能够执行文本到视频和图像到视频的生成,这意味着它可以根据文本描述或者已有的图像内容创造出连贯的视频序列。
5. 3D合成能力:除了传统的视频生成能力,SVD还支持物体从单一视角到多视角的3D合成,这为创建更加立体和真实的视频内容提供了可能。
6. 量化模型:为了适应不同的计算资源,SVD提供了16bit量化模型,这使得它在8G显存的设备上也能运行。

 

【5】Connect Videos

对于视频连接任务,使用SEINE 来连接视频。它是基于一个预先训练的基于扩散的T2V模型,它以一个随机掩模视频扩散模型为中心,该模型基于文本描述生成转换。通过将不同场景的图像与基于文本的控制相结合,SEINE产生了保持一致性和视觉质量的过渡视频。此外,该模型还可以扩展到图像到视频动画和自回归视频预测等任务。

参考图中的Planning:

1、Text-to-video generation:

选择一个prompt selection代理,得到一个表达描述,然后根据这个描述采用image generation代理得到一个image,然后再利用一个image-to-video generation代理生成一段视频

(即为step1step2step4这一段位对中间生成的图片进行精修或者编辑)

因此还有step1step2step3step4,其中step3是采用Image-to-image代理得到一个精修或编辑的图片,再采用精修或编辑的图片采用Image-to-video generation代理生成一段视频。

2、Text-guided image-to-video generation:

Step 3 → Step4:对图片进行精修或编辑,再采用Image-to-video generation代理生成一段视频

3、Extend generated videos:

Step 5 → Step4:这个任务的重点是扩展一个现有的视频序列的叙述。通过以输入视频的最后一帧作为起点,视频生成代理制作了一系列新的、连贯的帧来继续这个故事。这种方法允许视频内容的无缝扩展,创建更长的叙述,以保持原始序列的一致性和流程。

4、Video-to-video editing:

Step 5 → Step3 → Step4 :它获取输入视频的第一帧,并根据用户的提示应用编辑,从而实现所需的修改。这个编辑后的帧然后作为图像到视频代理的初始图像,它生成一个新的视频序列,反映所要求的明显或微妙的变化(主要区别在Step3中)

5、Connect videos:

Step 6:利用视频到视频代理,基于用户提供的两个输入视频创建无缝过渡视频。这个高级代理有选择地利用每个输入视频中的关键帧,以确保它们之间的平滑和视觉上一致的转换。它的设计能够准确地识别两个视频中的共同元素和风格,从而确保一个连贯的和视觉上吸引人的输出。这种方法不仅改善了不同视频片段之间的无缝流动,而且还保留了每个视频片段的不同风格。

6、Simulate digital world:

Step 1→Step2→Step4: 这个任务专门处理在数字风格的世界中设置的视频序列的整个风格的变化。通过在编辑提示中添加短语“在数字世界风格中”,用户指示图像到视频代理制作一个体现数字领域的美学和动态的序列,或者利用图像到图像代理将真实图像转移到数字风格。这项任务突破了视频生成的边界,使创造提供独特的视觉体验。

三、实验

将Mora和现有的模型进行比较,并从多个基本指标方面进行比较

1、评估指标

1、video quality measurement

❶对象一致性,由DINO帧间特征相似度计算,以评估对象外观是否在整个视频中保持一致。

❷背景一致性,由CLIP 帧间特征相似度计算。

❸运动平滑度,利用视频帧插值模型AMT中的运动先验来评估生成运动的平滑度。

❹美学评分,通过在每个视频帧上使用LAION美学预测器来评估人类感知的艺术和美丽价值。

❺动态程度,使用RAFT来估计合成视频的动态程度。

❻成像质量,使用SPAQ数据集上训练的MUSIQ图像质量预测器计算。

详细的评估指标相关的论文请自行查阅!

2、video condition consistency measurement

❶时间风格,利用ViCLIP计算视频特征与时间风格描述特征之间的相似度,从而反映时间风格的一致性。

❷外观样式,通过使用CLIP计算合成帧与输入提示符之间的特征相似度,来衡量外观样式的一致性。

 3、Self-defined Metrics

❶视频-文本集成VideoTI,旨在提高模型对文本指令的保真度的定量评价。它使用LLaVA将输入图像传输到文本描述符Ti和视频-Llama中,将模型生成的视频传输到文本中。图像的文本表示加上原始指导文本,形成增强的文本输入Tmix。新形成的文本和视频生成的文本都将被输入到BERT 。通过余弦相似度的计算,对得到的嵌入数据进行语义相似度分析,提供了模型对给定指令和图像的一致性的定量度量。

❷时间一致性TCON,用于测量原始视频与其扩展视频之间的一致性,为评估扩展视频内容的完整性提供了一个重要的工具。对于每个输入-输出视频对,我们使用ViCLIP 视频编码器来提取它们的特征向量。然后我们计算余弦相似度来得到分数。

❸时间相干性Tmean,通过量化中间生成的视频与基于T CON的输入视频之间的相关性。

❹视频长度,以评估模型制作视频内容的效率,特别是关注最大持续时间,以秒为单位测量。

Mora与其他各种模型之间的文本到视频生成性能的比较分析。其他类别的得分来自于Hugging face的排行榜。对于Mora,评估是基于GPT-4生成的提示,根据视频中移动物体的数量分为三种类型:类型I(单个运动的物体)、类型II(两到三个运动的物体)和类型III(超过三个运动的物体)。输入提示的差异解释了Mora在Type II提示在相关评价中的得分优于Sora的原因。

2、实施细节

对于文本到视频的生成,我们遵循官方Sora技术报告中提供的文本提示的风格。随后,我们使用GPT-4 在few-shot的设置下生成更多的文本。GPT-4也被用于在few-shot设置中生成相同数量的文本。然后,将所有生成的文本提示输入到文本到视频的模型中,以生成视频。为了与Sora进行比较,利用了其官方网站上的视频和技术报告。

Few-shot learning是一种机器学习方法,指的是在只有少量标注样本的情况下训练模型。这种方法旨在减少标注成本,提高模型的泛化能力。在few-shot learning中,模型需要从有限的标注数据中学习如何识别新的类别,通常通过将已学习的知识和少量标注数据结合来实现。

所有的实验都是在两个TESLA A100 GPU上进行的,配备了一个大量的2×80GB的VRAM。中央处理器由4xAMD EPYC 7552 48核处理器处理。内存分配设置为320GB。软件环境在PyTorch版本2.0.2和CUDA 12.2上进行视频生成,在PyTorch版本1.10.2和CUDA 11.6上进行视频评估。

3、结果

3.1、Text-to-Video Generation

3.2、Text-conditional Image-to-Video Generation

3.3、Extend Generated Videos

3.4、Video-to-Video Editing

3.5、Connect Videos

3.6、Simulate Digital Worlds

四、结论

我们介绍了Mora,这是一个开创性的通用视频生成框架,用于处理一系列与视频相关的任务。通过多个代理的协作力量,Mora在从文本提示生成视频方面取得了显著的进步,为视频生成领域的适应性、效率和输出质量设立了新的基准。我们 thorough 评估表明,Mora不仅能够与当前领先模型竞争,而且在某些领域还超越了它们的能力。然而,与OpenAI的Sora模型相比,它存在明显的差距,Sora的闭源性质对学术界和专业界内部的复制和创新构成了相当大的挑战。我们的工作展示了一种元编程方法的未开发潜力,该方法促进了各种代理之间的复杂协作,每个代理都专注于视频生成过程的一个环节。本质上,Mora的成就不仅展示了当前开源状态下视频生成的最新技术,也为该领域的未来发展指明了方向。

当我们继续探索生成模型的广阔领域,并推动视频合成可能性的边界时,Mora作为创新的灯塔和开源协作力量的证明。

通过利用多个代理的集体智慧,Mora能够生成不仅视觉上令人惊叹,而且非常连贯和引人入胜的视频。这是通过一种复杂的元编程方法实现的,该方法允许每个代理将其独特的专业知识贡献给生成过程,从而产生大于各部分总和的协同效应。

此外,Mora的适应性和效率使其成为广泛视频相关任务的理想选择,从动画和特效到虚拟现实和增强现实。其输出质量无与伦比,为现实主义、细节和整体视觉冲击力设定了新的标杆。

然而,当我们庆祝这些成就时,我们也必须承认像Sora这样的闭源模型所带来的挑战。这类模型固有的缺乏透明度和可访问性限制了它们的复制和创新能力,阻碍了该领域的进步。

相比之下,Mora的开源本质促进了合作和持续改进,鼓励研究者和开发人员在其基础上构建并探索视频生成的新前沿。因此,Mora不仅代表了技术上的突破,也体现了对开放性、合作和进步的哲学承诺。

总之,Mora是一个开创性的通用视频生成框架,为适应性、效率和输出质量设定了新的标准。它的成功展示了元编程方法的未开发潜力和开源协作的力量。当我们继续推动视频合成可能性的边界时,Mora作为创新的灯塔和该领域未来的指导光芒。

展望未来,有几个有前景的研究方向值得进一步探索。

其中一个方向涉及在代理中整合更复杂的自然语言理解能力,这可能允许生成更详细且对上下文更敏感的视频。

此外,扩展Mora以纳入实时反馈循环,可以提供交互式视频创作体验,用户输入可以以更动态和响应的方式指导生成过程。

此外,可访问性和计算资源需求的挑战仍然是广泛采用和创新的关键障碍。Mora的未来迭代可以从优化中受益,这些优化可以减少这些需求,使先进的视频生成技术更容易被更广泛的用户和开发人员所使用。

与此同时,创建更开放和协作的研究环境的努力可以加速这一领域的进步,使社区能够在Mora框架和其他开创性工作奠定的基础上进一步发展。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt/C++通用跨平台Onvif工具/支持海康大华宇视华为天地伟业等/云台控制/预置位管理/工程调试利器

一、前言 在安防视频监控行业,Onvif作为国际标准,几乎主要的厂商都支持,不仅包含了国内的厂商,也包括主要的国际厂商,由于有了这个标准的存在,使得不同设备不同安防平台之间,能够接入各个厂家的…

【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.在Linux写自己的第一个程序 1.1 nano指令 1.2 nano指令的使用 1.2.1 介绍 1.2.2 演示 1.2.2.1 创建.c文件 1.2.2.2 nano cod…

【黄啊码】如何用GPT和向量数据库做问答型AI

知识库服务依赖该数据库,Embedding 形式个性化训练 ChatGPT,必不可少的就是向量数据库 因为 qdrant 向量数据库只支持 Docker 部署,所以需要先安装好 Docker 服务。 命令行安装 拉取镜像 docker pull qdrant/qdrant 运行服务 docker run -…

【Godot 3.5控件】用TextureProgress制作血条

说明 本文写自2022年11月13日-14日,内容基于Godot3.5。后续可能会进行向4.2版本的转化。 概述 之前基于ProgressBar创建过血条组件。它主要是基于修改StyleBoxFlat,好处是它几乎可以算是矢量的,体积小,所有东西都是样式信息&am…

神级工具之git (一): git 基操

一切都从:Git User Manual开始,或者中文版的Git中文手册 核心概念 工作区 工作区我们可见的,可以进行修改的目录树。我们可以在目录树中进行文件的查看,修改。通常我们会使用一个神级编辑器Vim。我给她取了个名字,就…

Flutter开发进阶之瞧瞧BuildOwner

Flutter开发进阶之瞧瞧BuildOwner 上回说到关于Element Tree的构建还缺最后一块拼图,build的重要过程中会调用_element!.markNeedsBuild();,而markNeedsBuild会调用owner!.scheduleBuildFor(this);。 在Flutter框架中,BuildOwner负责管理构建…

Redis如何删除大key

参考阿里云Redis规范 查找大key: redis-cli --bigkeys 1、String类型: Redis 4.0及以后版本提供了UNLINK命令,该命令与DEL命令类似,但它会在后台异步删除key,不会阻塞当前客户端,也不会阻塞Redis服务器的…

光速论文能用吗 #媒体#知识分享#学习方法

光速论文是一个非常有效的论文写作、查重降重工具,它的使用非常简单方便,而且功能强大,是每个写作者必备的利器。 首先,光速论文具有强大的查重降重功能,能够快速检测论文中的抄袭部分,帮助作者避免不必要的…

Uibot6.0 (RPA财务机器人师资培训第3天 )财务招聘信息抓取机器人案例实战

训练网站:泓江科技 (lessonplan.cn)https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981(本博…

目标检测预测框可视化python代码实现--OpenCV

import numpy as np import cv2 import colorsys from PIL import Image, ImageDraw, ImageFontdef puttext_cn(img, text, pt, color(255,0,0), size16):if (isinstance(img, np.ndarray)): # 判断是否OpenCV图片类型img Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2…

linux centos 安装jenkins,并构建spring boot项目

首先安装jenkins,使用war包安装,比较简单,注意看下载的版本需要的JDK版本,官网下载https://www.jenkins.io/download/ 把下载好的war包放到服务器上,然后运行,注意8080端口的放行 # 前台运行并指定端口 ja…

关于Rust的项目结构的笔记

层级 PackageCrateModulePath Package cargo的特性, 构建、测试、共享Crate 组成: 一个 Cargo.toml 文件, 描述了如何构建这些 Crates至少包含一个 crate最多只能包含一个 library crate可以包含任意个 binary crate cargo new demo-pro 会产生一个名为 demo-pro 的 Packa…

ALPHA开发板中CAN硬件图

一. 简介 前面文章学习了 IMX6ULL芯片的 CAN总线协议,CAN传输速率。 本文来搜索 ALPHA开发板中CAN硬件原理图,以及CAN设备节点信息。这里主要是CAN控制器的驱动,属于IMX6ULL芯片内部的驱动,NXP官方已经写好。 CAN控制器的驱动…

InstructGPT的流程介绍

1. Step1:SFT,Supervised Fine-Tuning,有监督微调。顾名思义,它是在有监督(有标注)数据上微调训练得到的。这里的监督数据其实就是输入Prompt,输出相应的回复,只不过这里的回复是人工…

springboot项目学习-瑞吉外卖(2)

今天主要完善以下功能: 拦截页面(页面拦截功能,在这里用的是过滤器实现的)添加员工功能 项目结构 1.页面拦截功能 filter——LoginCheckFilter类 Slf4j WebFilter(filterName "LoginCheckFilter",urlPatterns "/*") public clas…

Qt打开已有工程方法

在Qt中,对于一个已有工程如何进行打开? 1、首先打开Qt Creator 2、点击文件->打开文件或项目,找到对应文件夹下的.pro文件并打开 3、点击配置工程 这样就打开对应的Qt项目了,点击运行即可看到对应的效果 Qt开发涉及界面修饰…

01-DBA自学课-安装部署MySQL

一、安装包下载 1,登录官网 MySQL :: MySQL Downloads 2,点击社区版下载 3,找到社区服务版 4,点击“档案”Archives 就是找到历史版本; 5,选择版本进行下载 本次学习,我们使用MySQL-8.0.26版本…

IAB欧洲发布首张泛欧洲数字零售媒体能力矩阵图

2024年1月18日,互动广告署-欧洲办事处(IAB Europe)发布了首张泛欧洲数字零售媒体能力矩阵图。为媒体买家提供的新资源概述了在欧洲运营的零售商提供的现场、场外和数字店内零售媒体广告机会。 2024年1月18日,比利时布鲁塞尔,欧洲领…

实用工具推荐:适用于 TypeScript 网络爬取的常用爬虫框架与库

随着互联网的迅猛发展,网络爬虫在信息收集、数据分析等领域扮演着重要角色。而在当前的技术环境下,使用TypeScript编写网络爬虫程序成为越来越流行的选择。TypeScript作为JavaScript的超集,通过类型检查和面向对象的特性,提高了代…

NFT交易市场-后端开发

首先我们需要配置好我们的ipfs,参考官方文档 1.https://docs.ipfs.tech/install/command-line/#system-requirementshttps://docs.ipfs.tech/how-to/command-line-quick-start/#initialize-the-repository 首先新建一个文件夹 然后在终端输入npm init -y命令进行初…