【论文精读】LTGC: Long-tail Recognition via Leveraging LLMs-driven Generated Content

news2024/10/27 20:44:42

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀论文精读_十二月的猫的博客-CSDN博客

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

1. 摘要

2. 介绍

3. 相关工作 

4. 方法

4.1 生成多样化的尾部图像

4.1.1 获取现有尾部类说明列表

4.1.2  获取扩展尾类说明列表

4.1.3 将描述转换为图像

4.2 混合平衡

5. 总结


1. 摘要

       长尾识别具有挑战性,因为它要求模型从尾部类别中学习良好的表示,并解决所有类别之间的不平衡。在本文中,我们提出了一个新的生成和微调框架,LTGC,通过利用生成的内容来处理长尾识别。首先,受大型模型(例如大型语言模型,llm)中丰富的隐含知识的启发,LTGC利用这些模型对原始尾数据进行解析和推理,以产生多样化的尾类内容。然后,我们提出了几种新的LTGC设计,以确保生成数据的质量,并使用生成的和原始数据有效地微调模型。可视化显示了LTGC生成模块的有效性,生成了准确多样的尾数据。此外,实验结果表明,我们的LTGC在流行的长尾基准测试中优于现有的最先进的方法。

2. 介绍

       在现实世界中,数据通常呈现长尾分布,这对计算机视觉识别提出了重大挑战[44,54]。这些挑战包括(1)类不平衡:在数据集中,一些类(称为“头”类)有大量的代表,而另一些类(称为“尾”类)只有很少的样本。训练过程中的这种不平衡分布可能会导致模型更多地关注头部类,而忽略尾部类[42]。(2)尾部数据稀缺性:数据稀缺性是指样本极其有限的尾部类,缺乏多样性,不足以有效训练模型[8,24]。它阻碍了模型学习特征不变量的能力,而特征不变量是正确识别这些类别所必需的[35]。

两个问题:

1、类不平衡:更新时,在梯度上头部类会拉扯尾部类

2、特征学习:尾部类数据稀缺,导致特征学习不好

图1所示:上图:在这里,我们的lmm使用ChatGPT。对于Trogon Rufus类别,当我们问ChatGPT,“图片中是什么物种?”。由于问题的复杂性,我们没有得到预期的答案。中间和下面:相反,当我们为ChatGPT问一些简单的问题时,“请描述一下图像。或“请描述Trogon Rufus的特点。”它可以准确地回答这些问题。

       为了应对这些挑战,长尾识别领域出现了许多方法,如重采样[5,19]、损失重加权[1,6,12,23,26,27,29,39,48]、集成学习[42,47,56]、解耦[20]和对比学习[11,25,40,59]。他们的主要目标是平衡模型的决策边界和参数权重,以提高长尾识别。

两个方法:

        1、决策边界再平衡:针对类不平衡导致决策边界不准确提出的在平衡决策边界

        2、类再平衡:针对长尾问题中类不平衡提出的类再平衡方法

       然而,由于尾类数据的稀缺性和有限的多样性特征,这些方法遇到了瓶颈[24]。为了获得更多样化的尾类表示,出现了两种方法:一些方法通过数据增强来增加尾类的多样性[9,24,52,55]。其他方法通过转移相关类[8]或大型预训练模型(例如CLIP[32])的特征来增加尾类多样性。这些基于CLIP的迁移学习方法[13,28,36]最近在提高长尾识别方面显示出巨大的潜力。LPT[13]对预训练模型进行微调以适应目标数据集。VL-LTR[36]利用CLIP中的文本特征来增强图像特征的学习。然而,这些方法很难获得正确和期望的尾部类别知识。例如,在现实世界的数据iNauralist 2018[17]中,Aquilegia Pubescens类别的特征仅为白色或淡黄色和带刺的形状。如果我们转移相似的类别特征或盲目地增加语义信息,如红色语义,这个类别会变得更加混乱。

核心方法:

        1、数据增强。增加尾部类的多样性

        2、大型预训练模型或其他方法增加尾部类多样性

       最近,大型语言模型(llm)(如ChatGPT)和大型多模态模型(lmm)(如GPT4V (ChatGPT with Vision[50])和Minigpt4[7,58])由于其丰富的潜在知识,已被用于各种下游任务,如机器人任务计划[34],开放集对象识别[30],自动机器人学习[43]和各种视觉推理任务[50,51,60]。然而,由于训练数据不平衡的偏差,lmm在一些复杂任务上表现不佳[10]。我们在长尾识别中也发现了这种困境,如图1所示。当我们问lmm关于Trogon rufus类别的图像时:“图像中是什么物种?”,我们没有得到预期的答案。相反,当我们问一些简单的问题关于这个图像:“请描述一下这个图像。或“请描述Trogon Rufus的独特之处”,我们都会得到想要的答案。这表明,尽管大型模型在长尾识别中表现不佳(例如,很难将复杂的图像特征与标签对齐),但它们仍然包含所需的潜在知识(例如,正确描述图像和提供物种知识)。受此启发,我们的目标是利用几个大型模型丰富的潜在知识来解决长尾数据稀缺性的挑战,并很好地执行长尾识别。然而,有效地利用大型模型来应对这些挑战并非易事:(1)大型模型中知识的潜在性质使得很难提取出促进长尾识别任务的所需知识。(2)由于生成的数据与原始数据之间存在领域差距[38],有效利用这些混合数据仍然是一个悬而未决的问题。

大语言模型(大型预训练语言模型)存在的困境:由于 训练数据的不平衡+很难将图像特征和标签对齐 大语言模型很难直接用于下游的识别任务中。

这就意味着需要基于预训练语言模型自己搭建一个适用解决长尾数据下的下游任务的模型

大语言模型(大型预训练语言模型)可利用之处:

1、大语言模型虽然难以直接解决长尾问题,因为(预训练模型本身的训练数据也是相当不平衡+图片到文字需要标签对齐)两个问题作用导致。

2、但是大语言模型对于尾部数据本身,仍然是有很大数据量的投入(只是相比于头部数据比较少)。

3、因此,虽然大语言模型不能直接根据图片做长尾数据的判断(头部类有影响),但是大语言模型仍然有很多的潜在知识可以利用

       为此,我们提出了一种新的基于生成内容的长尾识别框架,表示为LTGC,如图2所示。我们的LTGC旨在利用大型模型的能力来生成针对长尾类定制的明确多样的内容[15],并结合新颖的设计来增强长尾识别。首先,由于大型模型中潜在知识的丰富以及文本更可控的事实,我们使用它们来扩展尾部类。具体来说,为了产生更加多样化和可控性的尾数据,我们遵循先分析已有特征再生成缺失特征的原则。为了实现这一点,LTGC利用lmm来分析已经在尾类中的图像,以获得现有的尾类描述列表。然后LTGC将现有的描述列表输入llm,以获得现有尾类中缺失的图像所需的扩展尾类描述列表。其次,LTGC利用文本到图像(tt2i)模型(如DALL-E[33])将这些文本描述转换为图像。此外,受到思维链的好处[46]的启发,我们为这一过程提出了一个自我反思和迭代评估模块,以确保生成内容的多样性和质量。最后,受Mixup[52]在合并不同图像域方面的优势的启发,我们提出了BalanceMix模块来解决生成图像在微调过程中的域移位问题。

       综上所述,我们的工作贡献如下:

1. 首先,我们通过生成内容提出了一个新的框架,LTGC,它利用大型模型的力量来解决长尾识别的挑战。

2. 我们设计了一系列新颖的模块来解决尾类图像稀缺问题,并设计了BalanceMix模块来利用生成的数据和原始数据对模型进行有效的微调。

3. 实验结果表明,我们的LTGC在流行的长尾基准测试中优于现有的最先进的方法。此外,可视化说明了我们生成的尾部图像的多样性和可控性。

3. 相关工作 

       长尾识别:近年来,人们提出了许多方法来应对长尾识别挑战,如重新采样 [5, 19]、损失再平衡 [1, 6, 12, 23, 26, 27, 29, 39, 48] 来提高模型对尾部类别的关注度,集合学习 [42, 53, 56] 通过提高模型性能来提高识别尾部样本的能力、 对比学习 [11, 21, 25, 40, 49, 59] 和校准学习 [9, 57] 来改进模型的决策边界,但由于尾部数据稀少,模型仍然没有足够的特征来学习长尾识别的类别表征。最近,基于数据增强的方法 [8, 9, 24] 提出通过增强相关特征来处理稀缺尾部数据。然而,这些方法很难获得正确的尾类知识。其他方法 19511[13,36]通过迁移学习[37]视觉语言预训练模型(如 CLIP [32])的特征来进行长尾识别,取得了良好的效果。

长尾往期方法:

        1、类再平衡:重采样、损失函数调参再平衡、损失函数优化梯度调整

        2、决策边界再平衡:集成学习、对比学习和校准学习

       与以往的方法不同,本文从一个新颖的角度出发,探索了一种生成和微调框架,利用大型模型的丰富潜在知识来处理长尾识别。具体来说,我们设计了几个新颖的模块,利用正确的知识生成尾部数据,并对生成的数据进行有效的微调,以提高长尾识别率。

       大型模型:最近,出现了一些大型模型,包括大型语言模型(如 ChatGPT [50])、大型多模式模型(如 GPT-4 (ision) [50]、MiniGPT [58])和大型生成模型(如 DALLE [33])。这些庞大的模型是大量知识的宝库[15],在机器人任务计划[34]、开放集物体识别[30]、上下文物体检测[51]、视频生成[22]和少镜头分割[60]等各种应用中都受到了严格的审查。在这项工作中,我们利用这些大型模型的丰富潜在知识来应对长尾识别挑战。

核心思想:

        1、基于大语言模型中关于尾部数据的大量知识,利用这些潜在知识来解决长尾问题

4. 方法

       要很好地进行长尾识别,面临的挑战是让模型从尾部类别中学习不同的表征,并解决所有类别中的不平衡问题。在本文中,我们提出了一个新颖的长尾识别框架 LTGC 来应对这些挑战。如图 2 所示,LTGC 利用各种现成的大规模模型中的潜在知识来生成和迭代评估尾类的质量和多样性(第 3.1 节)。此外,LTGC 还提出了平衡混合(BalanceMix)模块,以促进生成数据集和原始数据集的微调过程(第 3.2 节)。下文将详细介绍这些模块。

4.1 生成多样化的尾部图像

       为了从尾部类别中学习多样性表征,以往的方法采用了数据增强 [9, 24] 或迁移学习 [13, 36]。然而,这些方法很难获得正确和理想的尾部类别多样性知识。受到 LLM 中常识性知识和文本描述更可控这一事实的启发 [33, 50],LTGC 利用这些优势来控制生成的尾部类别的细节和多样性。首先,为了更好地生成多样化图像并控制图像细节,LTGC 致力于生成原始尾部数据中不存在的图像,并以文本形式表示这些图像。具体来说,LTGC 采用 LMM 分析原始尾部数据,获得现有的尾部类别描述列表。然后,LTGC 利用 LLM 的常识性知识,在现有尾类描述列表的基础上获得扩展的尾类描述。最后,由于图像更适合作为长尾识别任务的训练数据,我们利用文本到图像模块,根据这些尾类描述生成多样化的图像。

问题:

        1、数据增强、迁移学习等方法生成新的尾部数据,其缺点在于难以复刻尾部数据的多样性知识。

解决方案:

        2、利用LLM针对尾部类别去生成相联系/相近似的关键词,再利用关键词在文本到图像模块去生成图像,从而做到真正的重采样。

4.1.1 获取现有尾部类说明列表

       为了确保尾类图像的多样性,我们在生成新的尾类图像之前,首先分析原始尾类图像的特征信息。这保证了生成图像的内容与现有尾类图像的内容截然不同。此外,由于文本描述更具可控性[33],我们利用文本描述来控制生成图像的细节和多样性。为此,我们的 LTGC 采用语言模型多模态(LMM),如 GPT-4V(Vision)[50],来分析特征信息并提取现有尾类的文本描述。在这一过程中,LMMs 的文本响应可能多种多样,有时甚至是冗余的,这可能会妨碍生成所需的图像。因此,我们采用文本模板来约束 LMM 的响应,旨在统一文本描述格式。受对象类别和特征列表可完整描述或生成对象图像的启发[4, 41],我们设计的文本模板包括给定的类别及其特征。此外,在场景中引入变化对增强模型的泛化能力起着至关重要的作用[2],这一问题在长尾数据集中尤为突出[35]。因此,场景的文本信息对于图像生成也很重要

       为此,我们针对给定类别 y 设计了 LMM 响应模板 1(Prompt1) 如下: “[y]类的一张照片,{具有显著特征}{在特定场景中}",其中包括给定类别、其显著特征以及特定场景或环境。有了回复模板,对于给定的我的号码类别 y,我们将这些尾类图片依次输入 LMM,同时输入[提示 1],以分析这些图片的特征: “请使用模板 1 简要描述 [y] 类的图像"。图 3 展示了这一过程,其中 y 是给定的类别标签。如图所示,通过使用模板进行描述,LMM 会自动替换回复中的类别、特征和背景。在对每个类别的所有图像进行上述处理后,我们将编译出与每个类别相对应的文本描述列表。然后,我们打算用现有的尾类描述列表来扩展尾类描述列表,以生成尾类中缺少的图像。

核心思想:

        1、利用LLM分析原始尾类图像的特征

        2、考虑到LLM输出文本的结构统一,因此设定特定的输出模板(prompt1)

4.1.2  获取扩展尾类说明列表

       在本节中,我们旨在分析尾类中缺失的特征,并在现有尾类描述列表的基础上丰富这些类的描述。为此,受大型语言模型(LLMs)(如 ChatGPT [50])丰富的常识知识的启发,我们通过两个步骤扩展尾类描述列表: 1) 将现有描述列表输入 LLM,2) 设计提示 2,引导 LLM 为给定尾类 y 中不存在的图像生成所需的描述: “除上述描述外,请使用模板 1 列出[y]类的其他可能的{显著特征}和{特定场景}",如图 4 所示。对于每个类别,我们都要重复上述两步流程,然后得到所有尾类的尾类描述列表。

 

       此外,为了让这些生成的描述更好地补充每个尾类,我们鼓励 LLM 生成足够数量和多样性的描述。为了实现这一目标,我们在此过程中引入了自我反思模块,旨在引导 LMM 反思是否有遗漏或重复的特征或场景。它包括两个关键设计:数字检查模块和重复检查模块。(1) 数字检查模块旨在引导 LMM 重新思考是否有其他遗漏的特征或场景。为此,在为 y 类提出初始 [提示 2]之后,我们更新扩展描述列表,并结合新获得的列表重新向 LLMs 提出 [提示 2]问题。对于每个类别 y,这种数字检查迭代过程一直持续到尾部类别的最大数量 Ky,其中 Ky = My+Ny,Ny 是类别 y 生成的描述数量。 (2) 重复检查模块旨在引导 LMM 重新思考在数字检查迭代结束时是否有其他特征或场景重复。具体来说,我们输入每个类别 y 的扩展描述列表和以下[提示 3],供 LLMs 进行重复检查: “请排除此描述列表中 [y] 类的任何重复的{显著特征}和{特定场景}"。之后,LLM 将根据此提示过滤掉有重复特征的描述,并返回新的描述列表。通过植入

核心思想:

1、利用LLM输出结构(Prompt1)限定,来保证其输出为一个Tail-class Descriptions List

2、利用Prompt2来实现自我反思模块,保证一轮轮迭代自我反思(Self-Reflection)后达到尾部类别的最大数量。

3、利用Prompt3来供给LLM进行重复性检查,保证描述列表质量是高的

4.1.3 将描述转换为图像

       以上,我们得到了每个类别 y 的扩展尾类描述列表,用 Ly 表示。由于图像更适合执行视觉识别任务,因此在本节中我们的目标是利用文本到图像(T2I)方法的图像生成能力,从尾类描述列表中生成图像。具体来说,我们采用 T2I 方法根据描述列表生成图像,表示为:

i_n^y=\text{T2I}(d_n^y),\text{where} n\in\{1,\ldots,N\}\quad(1)

       其中,n ∈ N 表示第 n 次生成的 y 类描述,i_n^y表示 T2I 模型根据 d_n^y 生成的图像。不过,有些生成的图像质量可能不够高,不能准确地代表所需的类别,如质量较低的图像。如图 7 所示7 所示,质量较低的图像输出的特征不明显,会造成更多的类别混淆。因此,在训练中直接使用这些生成的图像可能会破坏模型对尾部类别的预测。

背景知识:

        1、文生图容易出现不准确的图片

        2、大模型从图生文+自我迭代增加的方式可以确定图生文准确度还可以

       为了解决质量较低的图像无法准确表达其所需类别的难题,我们的目标是自动检测这些图像,完善其文本描述,并相应地重新生成图像。为了实现这一目标,我们从人类通过同伴反馈来提高理解能力的理念中汲取灵感,研究了一个大型模型通过整合另一个基本模型的反馈来提高其输出的可能性。因此,我们提出了一个迭代评估模块,如图 5 所示。该模块利用基本模型 CLIP 作为 “反馈提供者”,CLIP 擅长理解图像并有效地将图像与文本上下文联系起来[32]。它将质量较低的图像反馈给 LLM,从而帮助其完善相应的描述。

核心思想:

        1、利用模型间的反馈检查来对图片进行筛选

流程:

利用extended description生成图片——新图片利用CLIP转为图片编码——extended description利用CLIP转为文字编码——比较两个编码的余弦相似度——相似度高则保留新图片——相似度低则利用旧图片通过LLM结合Prompt5(另一套Prompt)重新生成description——利用新的description通过T2I生成新的图片

       此外,为了便于 CLIP 抓住图像中的特征,一种直接的方法是检查图像与其类模板之间的匹配程度: “一张 [y] 的照片"。然而,由于 CLIP 的文本编码器可能包含较少的尾类特征知识(例如,在 iNaturalist 2018 数据集上出现的零镜头识别性能较差的情况[13]),我们的目标是为每个类设计一个新的文本特征模板,突出其独特的特征。然后,CLIP 利用它来确定模板与图像之间的对应关系。思维链[30, 46]的概念表明,如果能提供额外的线索,LMM 的表现会更好,我们从这一概念中汲取灵感,进一步引导 LMM 总结每个类别最显著的特征。具体来说,在获得扩展的尾类描述列表后,我们通过以下[提示 4]和模板 2,为给定的类 y 获取包含最显著特征的类特征模板 Cy: [提示 4] “请使用模板 2 总结类 [y]} 的最显著特征"。模板 2:“具有{特征 1}{特征 2}{......}的类别[y]的照片”。这个过程可以引导 LMM 重新思考和总结最显著的特征,并为每个类别 y 生成类别特征模板 Cy。此外,由于我们的重点是检查图像的特征信息是否能代表其所需的类别,因此在类别特征模板中不包含场景信息。然后,我们介绍迭代评估模块的细节。

核心思想:

        1、利用LLM+Prompt模板为每一个类生成显著特征,并根据显著特征生成每一个类的特征模板

       如图 5 所示,我们的迭代评估模块反复进行以下三个步骤:(1)检测。为了识别质量较差的图像,我们首先利用 CLIP 强大的图像与文本对齐能力,将生成的图像i_n^y的特征与其类特征模板 Cy 用余弦相似度指标进行匹配,如下所示:

\mathcal{S}=\mathrm{Encoder}_{\mathrm{vis}}(i_n^y)\cdot\mathrm{Encoder}_{\mathrm{text}}(C_y),\quad(2)

       其中,Encoder_{vis} 表示 CLIP 的视觉编码器,Encoder_{text }表示 CLIP 的文本编码器。如果图像i_n^y 的相似度得分 S 低于阈值 µ,则图像i_n^y将被检测为低质量图像并被过滤掉。接下来,同样受思维链[46]的启发,我们提出了以下改进描述的提示。具体来说,如果 i_n^y 被识别为质量较低的图像,我们会根据 CLIP 提供的反馈(即[提示 5]),提示 LLM 改进其相应的描述d_n^y,以更准确地表示预定的类别 y: “这个描述d_n^y似乎不能代表 [y] 类。您能否对其进行改进,以增强 [y] 类的显著特征?" (3) 重新生成。最后,T2I 模型根据改进后的文字描述重新生成图像 i_n^y

核心思想:

        1、如果相似度不高,因为文生图容易出错,因此重新生成图片。结合特征模板让LLM重新生成描述词。

        2、利用新的描述词(特征模板强化过的描述词)(Prompt5)输入到T2I中,重新生成图片。

        3、如此迭代直到相似度准确

4.2 混合平衡

       有了生成的新的尾部类图像,最后的问题是如何有效地利用这些生成数据和原始数据来很好地进行长尾识别。由于生成数据和原始长尾数据之间存在领域差距 [38],我们提出了一种名为 BalanceMix 的方法来应对这一挑战。我们首先将原始数据和生成数据定义为 Do 和 Dg。然后,BalanceMix 从 Do 中平衡采样 [5] 图像 xi,并从 Dg 中采样图像 xj。同时,它将图像 xi 和 xj 及其对应的标签混合在一起,标记为:

\widetilde{x}=\lambda\odot x_{i}+(\mathbf{1}-\lambda)\odot x_{j},\text{(3)}\\\widetilde{y}=\lambda\odot y_{i}+(\mathbf{1}-\lambda)\odot y_{j},\text{(4)}

       其中,λ 为 Beta (0,1) 分布。最后,我们在所有混合数据对(\widetilde{x},\widetilde{y})上使用 LORA [18] 对 CLIP 的视觉编码器进行微调,以实现高效的长尾识别。

5. 总结

如果想要学习更多深度学习论文,大家可以点个关注并订阅,持续学习、天天进步

你的点赞就是我更新的动力,如果觉得对你有帮助,辛苦友友点个赞,收个藏呀~~~

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

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

相关文章

系统聚类比较——最短距离法、最长距离法、重心法和类平均法

系统聚类概述 系统聚类,又称分层聚类法,是一种用于分析数据的统计方法,在生物学、分类学、社会网络等领域有广泛应用。以下是对系统聚类的详细概述: 一、基本思想 系统聚类的基本思想是将每个样品(或数据点&#xf…

深入理解C++模板编程:从基础到进阶

引言 在C编程中,模板是实现泛型编程的关键工具。模板使得代码能够适用于不同的数据类型,极大地提升了代码复用性、灵活性和可维护性。本文将深入探讨模板编程的基础知识,包括函数模板和类模板的定义、使用、以及它们的实例化和匹配规则。 一…

《分布式机器学习模式》:解锁分布式ML的实战宝典

在大数据和人工智能时代,机器学习已经成为推动技术进步的重要引擎。然而,随着数据量的爆炸性增长和模型复杂度的提升,单机环境下的机器学习已经难以满足实际需求。因此,将机器学习应用迁移到分布式系统上,成为了一个不…

世界酒中国菜与另可数字平台达成战略合作

世界酒中国菜与另可数字平台达成战略合作,共推行业发展新高度 近日,在行业内引起广泛关注的“世界酒中国菜”项目,与“另可”数字平台成功举行了战略合作签约仪式。这一重要合作不仅是双方发展历程中的重要里程碑,更是继世界酒中…

如何通过视频建立3d模型

通过视频建立3D模型通常包括几个关键步骤:从视频中提取帧、对帧中的物体进行特征提取、将多帧中的信息结合起来恢复三维结构。Python中有一些库和工具可以帮助实现这个过程,例如OpenCV、Open3D、COLMAP等。以下是一个简化的流程和代码框架: 步…

量子计算突破:下一个科技革命的风口浪尖在哪里?

内容概要 在当今科技飞速发展的时代,量子计算如同一颗璀璨的明珠,正闪烁着无尽的可能性。它不仅是解决科学难题的钥匙,更是即将引领科技革命的先锋。如今,随着技术的不断突破,量子计算已经步入了一个崭新的阶段。想象…

使用React构建现代Web应用

💖 博客主页:瑕疵的CSDN主页 💻 Gitee主页:瑕疵的gitee主页 🚀 文章专栏:《热点资讯》 使用React构建现代Web应用 1 引言 2 React简介 3 安装React 4 创建React项目 5 设计应用结构 6 创建组件 7 使用组件…

Docker本地安装Minio对象存储

Docker本地安装Minio对象存储 1. 什么是 MinIO? MinIO 是一个开源的对象存储服务器。这意味着它允许你在互联网上存储大量数据,比如文件、图片、视频等,而不需要依赖传统的文件系统。MinIO 的特点在于它非常灵活、易于使用,同时…

【ruoyi-vue】ruoyi-vue 去掉数据库和redis

场景:采用ruoyi-vue作为一个简单的后台框架,不需要使用数据库,redis。因此采取以下方法去掉相关配置,防止启动时造成数据和redis不存在的报错。 1、去掉数据库 注释掉framework下的DruidConfig.java 2、去掉部分数据启动时的初…

将公有云变成本地磁盘的几种方式

因为微信更改了推送机制,不按照号主发文时间排序了。现在的规则是综合多种因素,你可能在今天收到昨天的推送,甚至前天的! 如果你认可菜鸟小白的学习分享的话,就星标一下吧,只需要两步! 这样你可…

猫头虎 分享:Python库 Click 的简介、安装、用法详解入门教程

🐯 猫头虎 分享:Python库 Click 的简介、安装、用法详解入门教程 今天猫头虎带您一起探索 Click 库!最近有位粉丝私信猫哥,问到在项目中如何用 Python 简单又高效地实现命令行工具。大家熟悉的 argparse 虽然功能齐全&#xff0c…

深入理解gPTP时间同步过程

泛化精确时间协议(gPTP)是一个用于实现精确时间同步的协议,特别适用于分布式系统中需要高度协调的操作,比如汽车电子、工业自动化等。 gPTP通过同步主节点(Time Master)和从节点(Time Slave)的时钟,实现全局一致的时间参考。 以下是gPTP实现主从时间同步的详细过程:…

WaveNet模型实现电力预测

项目源码获取方式见文章末尾! 回复暗号:13,免费获取600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【EfficientNet-B6模型实现ISIC皮肤镜图像数据集分类】 2.【卫星图像道路检测De…

GeoWebCache1.26调用ArcGIS切片

常用网址: GeoServer GeoWebCache (osgeo.org) GeoServer 用户手册 — GeoServer 2.20.x 用户手册 一、版本需要适配:Geoserver与GeoWebCache、jdk等的版本适配对照 ​ 查看来源 二、准备工作 1、数据:Arcgis标准的切片,通过…

安全芯片 OPTIGA TRUST M 使用介绍与示例(基于STM32裸机)

文章目录 目的资料索引硬件电路软件框架介绍数据存储框架移植框架使用 使用示例示例地址与硬件连接通讯测试功能测试 总结 目的 OPTIGA TRUST M 是英飞凌推出的安全芯片,芯片通提供了很多 slot ,用于存放各类安全证书、密钥、用户数据等,内置…

飞书文档解除复制限制

解除飞书文档没有编辑器权限限制复制功能方法 方法一:使用插件 方法二: 通过调试工具删除所有的copy事件 使用插件 缺点: 只有markdown格式,如果需要其他格式需要再通过Typora等markdown编辑器转pdf,word等格式 安装插件 Cloud Do…

Day02回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 …

关于 Linux 内核“合规要求”与俄罗斯制裁的一些澄清

原文:Michael Larabel - 2024.10.24 当 一些俄罗斯的 Linux 开发者被从内核的 MAINTAINERS 文件中移除 时,原因被描述为“合规要求”,但并未明确这些要求具体涉及什么内容。随后,Linus Torvalds 对此发表了评论,明确指…

便捷之选:微信小程序驱动的停车场管理系统

作者介绍:✌️大厂全栈码农|毕设实战开发,专注于大学生项目实战开发、讲解和毕业答疑辅导。 🍅获取源码联系方式请查看文末🍅 推荐订阅精彩专栏 👇🏻 避免错过下次更新 Springboot项目精选实战案例 更多项目…

2024最新版 Tomcat安装与配置(带图详细步骤)简单易懂

官方网站: Apache Tomcat - 欢迎! 一、选择下载版本(本文选择tomcat 9版本为例) 二、找到你下载压缩包的位置,进行解压 三、配置环境 1)新建系统变量,变量名为: CATALINA_HOME 变…