视觉和GPT再碰火花!CVPR`24 | RegionGPT:面向复杂区域理解的VLM(港大英伟达)

文章链接:https://arxiv.org/pdf/2403.02330

视觉语言模型(VLMs)通过将大语言模型(LLMs)与图像文本对集成,经历了快速的发展,但由于视觉编码器的空间意识有限以及使用缺乏详细的区域特定字幕的粗粒度训练数据,它们在详细的区域视觉理解方面存在困难。为了解决这个问题,引入了RegionGPT(简称RGPT),这是一个专门设计用于复杂区域级字幕和理解的新框架。

RGPT通过对现有视觉编码器进行简单而有效的修改,增强了区域表示的空间意识。进一步通过在训练和推断阶段集成任务引导指令提示来提高需要特定输出范围的任务的性能,同时保持模型对于通用任务的多功能性。此外,我们开发了一个自动化的区域字幕数据生成pipeline,丰富了训练集的区域级详细字幕。证明了一个通用的RGPT模型可以有效地应用于并显著提高各种区域级任务的性能,包括但不限于复杂区域描述、推理、物体分类和引用表达理解。 RegionGPT,它为多模态大语言模型提供了复杂的区域级字幕、推理、分类和表达式理解能力。用户可以输入任何形状的感兴趣区域,在任何位置使用“区域”作为指令中的占位符。这样的占位符随后被语义区域级别的嵌入所替代,这些嵌入被输入到语言解码器中。

开源代码链接:

https://guoqiushan.github.io/regiongpt.github.io/

介绍

视觉语言模型(VLMs)在人工智能领域中标志着视觉和语言领域的显著融合。随着多模态大语言模型(MLLMs)的出现,该领域的能力得到了显著增强,可以解释图像并简化人类与VLMs之间的交互。然而,尽管这些模型在理解整个图像方面非常有效,但它们仍然在详细分析特定区域方面遇到困难。另一方面,对于先进的视觉任务,包括分析目标属性和解释目标间关系,精细的理解至关重要。

在VLMs中解决区域级复杂理解问题需要空间信息和语义的对齐。为了实现这一点,现有的研究通过学习将感兴趣的区域以文本形式输入,例如,来实现这一点,其模型结构与用于图像级任务的模型结构相同。然而,这在很大程度上依赖于语言解码器来解释位置,无意中忽略了视觉编码器提供的先前位置信息。这样的疏忽可能导致在有效地将视觉线索与语言上下文集成的过程中出现差距,而这对于涉及详细图像理解的任务至关重要。在更先进的方法中,GPT4RoI引入了带有RoI对齐特征的空间框,专门在区域-文本对上训练模型。尽管如此,位置格式仍然受限于一个框。然而,区域特定的视觉表示的潜力仍未被充分探索,这可能提供更具表现力的细粒度细节,从而有利于下游的视觉任务。

本文介绍了RGPT,这是一个通用框架,旨在促进复杂的区域级字幕和理解。具体而言,我们发现简单地改进由CLIP提取的视觉特征,并采用Mask Pooling来容纳任何形状的兴趣区域(RoI)显著提高了语言模型对于理解具有空间感知语义概念的性能。此外,开发了任务引导的指令提示,将视觉任务(如封闭集分类和引用表达理解)无缝地集成到我们的框架中。这是通过使用视觉问答和响应格式来指定这些任务来实现的。现有的可用的区域级字幕数据集,如ReferCOCOg和VG,倾向于提供过于简单的区域描述,缺乏详细的属性,如颜色、形状、风格及其与周围环境的空间关系。为了减轻手动标注的负担,我们提出了一个自动化pipeline来标注详细的区域级字幕,这是通过重新格式化现有的目标检测数据集并采用两阶段的GPT辅助方法实现的。我们的标注字幕每个区域平均包含87.14个单词,远远超过了ReferCOCOg的8.46个单词,从而为每个区域提供了更丰富的上下文信息。

本文的贡献有三个方面:

  • 提出了RGPT,一个通用框架,利用LLMs的能力来处理复杂的区域级字幕和理解任务。RGPT专为开放式视觉问题而设计,适用于图像级和区域级任务。

  • 设计了任务引导的指令提示,以指定输出格式,从而消除响应中的歧义。通过将视觉任务转换为VQA任务,输出模式与语言模型对齐。

  • 提出了一种新颖的数据重塑方法和pipeline,利用GPT辅助,创建高质量、详细的区域级字幕。我们的方法显著增强了这些字幕的描述丰富性,平均每个字幕包含87.14个单词。

相关工作

大语言模型

近来,大语言模型在自然语言处理领域引起了相当大的兴趣,被视为一种形式的人工通用智能。这种关注激增归因于它们在几个关键领域的卓越能力:语言生成、上下文学习以及整合广泛的世界知识和推理能力。

LLM的早期潜力首先通过BERT和GPT等开创性工作展示出来。这开启了一个规模扩展的趋势,导致了一系列重大进展,包括T5、GPT-3、Flan-T5、PaLM等。随着训练数据和模型参数的扩展,这种规模扩大的进程最终导致了OpenAI开发的ChatGPT的推出。ChatGPT利用生成式预训练模型,并通过基于人类反馈的指导调整,展示了在进行类似人类对话方面无与伦比的能力。开源LLMs的快速进展,如Llama、Llama-2和Vicuna,也开始使它们与ChatGPT越来越具有竞争力。

多模态大语言模型

在先前的知识和推理方面,LLMs展示了强大的能力,引发了对其他模态的兴趣。这导致了将LLMs扩展到多模态领域的努力,其中它们可以与各种输入交互并解释信息,而不仅仅是文本。对于图像,建议在图像文本对上进行端到端的指导调整,以连接视觉主干和语言解码器。Flamingo、BLIP-2、LLaVA和MiniGPT4是首批在图像级视觉任务(如图像字幕和视觉问答)上训练视觉语言连接器或语言解码器的先驱者。受到这些先驱者的启发,更近期的工作涌现出构建用户友好的交互数据集和轻量级可训练权重的努力。一些其他有趣的工作通过将LLM扩展到音频、医学VQA和控制系统等领域取得了显著进展。

区域级视觉语言模型

传统的区域级任务在计算机视觉中是常见的实践,如目标检测、实例分割和语义分割,旨在定位感兴趣的区域和封闭集分类。开放词汇表的区域级识别任务旨在理解由文本描述的任意类别的目标。

最近,像KOSMOS-2、Shikra、MiniGPT-2和LLaVA等区域感知的MLLMs,学习以文本形式输入区域信息,这在很大程度上依赖于语言解码器来解释位置。

我们认为,将视觉空间感知模块纳入其中可以更直接、更高效地提取区域级特征。通过利用视觉语言连接器,这些特征使得复杂的区域级字幕和推理能力成为可能。VisionLLM、GPT4RoI和ASM利用具有ROI对齐特征的空间框来将区域级特征对齐到LLM词embedding空间。

然而,输入的位置格式仅限于框。此外,用于细粒度细节的区域视觉表示仍未得到充分探索。相反,我们的模型支持任何形状的区域作为输入,并专注于复杂的推理和字幕生成。同时,引入了任务引导的指令提示,将视觉任务转换为VQA任务,其输出模式与语言模型对齐。

方法

RGPT是一个多模态大语言模型,具有强大的能力来理解和引用特定区域。它可以接收任何2D区域的输入,通常以框或mask的形式,并根据指令提供答案。通过设置对指令应该如何响应的规则,模型能够以有用和一致的格式输出。这个特性使得RGPT能够在封闭词汇表中对区域级别的目标进行分类。此外,通过给模型提供区域提议,它可以在给定query描述的情况下识别特定的目标或区域。这使得RGPT成为一个实用工具,用于需要详细理解和处理图像中不同区域的任务。

模型架构

RGPT用于区域级别理解和图像级别理解,概述如下图2所示。

它包含一个图像编码器,用于提取语义特征,一个特征细化模块,用于细化低分辨率特征图,一个MLP层,用于将视觉特征投影到词embedding空间,并且一个接受视觉和文本tokens的大语言模型。

视觉主干。RGPT采用预训练的CLIP ViT-L模型作为视觉主干。在整个训练过程中,视觉主干都是冻结的。具体而言,一个输入图像被编码成一个低分辨率特征图 = f()。

特征细化模块。 视觉主干产生了一个低分辨率的特征图,无法表示小尺度的区域和目标。为了进一步细化视觉特征,我们引入了两个步幅为2的反卷积层,以产生4×缩放的特征图,即。我们的方法旨在理解图像的任意形状的区域,因此,选择Mask Pooling来从高分辨率特征图中提取区域级特征。更简洁地说,我们在区域中对的特征进行平均,以获得区域级特征。

由于视觉特征被压平为序列输入到语言解码器中,因此高分辨率特征图会得到更长的序列输入,这会显著降低训练和推断的效率。因此,简单地使用自适应池化层来合并图像特征块,以获得图像级特征 = AdaPool (, (H, W)),其中(H, W)是低分辨率输出特征图的目标形状。

MLP视觉-语言连接器。 为了把来自视觉主干的视觉特征投影到语言模型的词embedding空间中,我们采用了一个两层MLP作为视觉-语言连接器。一个完整图像的embedding表示为,而区域的embedding表示为。图像级和区域级特征共享同一个连接器,以保持语义一致性。

大语言模型。 RGPT采用Vicuna(7B)作为语言解码器。文本输入首先被分词并转换为词embedding。经过MLP连接器处理后的图像级和区域级特征直接输入到语言解码器中。

区域级指导调整

通用提示格式。 对于每个图像,生成多轮对话数据(),其中T是轮次的数量,是第t个指令,是相应的响应,遵循[30]。图像始终用作第一个指令的起始输入,以提供上下文信息。为了方便区域级响应,我们引入了特殊的token〈region〉作为用户输入提示中的占位符,它将被对应的区域embedding 替换。训练损失是标准的自回归训练目标。我们只将响应设置为学习目标,忽略指令部分。

任务引导的指令提示。语言模型在训练过程中不受其输出范围的限制,以追求灵活性和适应性。然而,某些任务需要特定的输出格式。例如,在COCO检测任务的背景下,当提供了指定的边界框时,模型需要仅输出对应的类别名称。这个响应必须从预先确定的80个候选类别中选择。为了定制模型的响应以适应特定任务,我们制作了定制的指令提示,以引导模型达到期望的输出格式,如下表1所示。

任务引导的指令提示确保了模型在特定任务应用中保持多功能性和准确性。经验证明,我们精心设计的指令提示显著提高了在COCO 2017验证集上的mAP结果。

预训练阶段。为了保持并增强模型在全局和区域级别理解图像的能力,我们采用了一种联合预训练策略,包括图像级和区域级任务。对于全局图像理解,利用LAION-CC-SBU-558K数据集,采用图像字幕作为预文本任务。同时,为了增强模型在解释和与图像的区域方面进行交互的能力,使用了来自Visual Genome、ReferCOCOg和V3Det等数据集的任务。这些数据集被转换为多轮会话格式,有助于模型在基于区域的关系理解、字幕生成和分类方面的表现。

在训练过程中,我们保持视觉编码器和语言模型的权重冻结,并训练特征细化模块和MLP视觉-语言连接器以将图像特征与语言embedding进行对齐。

微调阶段。我们只保持视觉编码器的权重冻结,并继续更新特征细化模块、MLP连接器和语言模型的权重。目标是开发一个能够进行高级区域级别字幕生成和推理的模型。然而,像ReferCOCOg和Visual Genome这样的现有数据集对于字幕生成的复杂性不够满足我们的需求。为了弥补这一差距,额外将GPT辅助区域字幕数据集纳入训练方案中。此外,在COCO-2017和ReferCOCOg训练集上制作了任务引导的指令提示,以开发模型对于封闭集目标分类和理解引用表达的能力,如表1所示。

数据处理。为了提高训练效率,我们通过平衡每个类别的边界框数量来优化V3Det数据集。在预训练阶段,限制每个类别的边界框数为100个,在微调阶段,进一步减少到每个类别10个边界框。对于COCO数据集上的封闭集目标分类任务,我们保留了每个类别20个边界框进行微调。在Visual Genome的情况下,随机采样每个图像最多10个边界框来生成对话。这种过滤过程用于生成具有多样性和复杂性的对话。尽管这种过滤方法减少了数据的量,但重要的是要注意,视觉主干和语言模型都已经在大规模数据集上进行了预训练。强大的先验知识使得即使在一个较小但多样化的数据集上,模型也能有效地执行。我们的数据处理在训练效率和模型性能之间取得了平衡。

GPT辅助区域字幕生成

本节介绍了一个GPT辅助的密集字幕生成流程,用于构建区域字幕数据集(RecapD)。与传统的图像-文本配对数据集通常提供对图像的整体描述不同,RecapD提供了针对图像中特定目标区域的深入标注。这些描述强调了颜色、形状、材料以及目标之间的空间关系等属性。RecapD的主要目标是解决与图像中区域级别理解和引用相关的挑战,从而显著增强视觉语言模型在详细的视觉理解方面的能力。

两阶段方法。探索使用现有的全局级别图像字幕生成VLM,即LLaVA,进行区域特定任务。一个简单的方法是裁剪感兴趣的区域(RoI)并调整其以适应模型的输入格式。然而,由于缺乏来自图像周围区域的上下文信息,这种方法通常会导致不准确的字幕。周围信息的缺失还使得传达目标之间的空间关系变得不可行。

作为替代,绕过了VLM的限制,即不支持同时输入全局图像和局部区域patches。为了规避这一限制,在第一阶段,使用VLM为图像生成全局级别的字幕。然后,将这个全局描述作为上下文信息,以文本的形式包含在提示的开头。随后,在第二阶段,通过输入ROI,促使VLM描述由图像补丁表示的特定区域。将通过一个详细的示例说明这种方法。

在整个图像的背景下,<GlobalCaption>,详细描述特写区域。

值得注意的是,观察表明,即使使用了这种两阶段方法,模型通常也难以准确描述输入的区域。这种不准确性主要源于模型无法正确识别裁剪区域内的目标类别。因此,我们进一步增强了我们的方法,通过在提示VLM描述区域属性时加入人工标注的类别名称作为附加条件:

在整个图像的背景下,<GlobalCaption>,详细描述特写区域中的<ClassName>

GPT辅助提示增强。为了增强模型对各种风格和用户输入组合的适应性,使用ChatGPT-4对输入提示进行了增强。例如,在第一阶段,除了“详细描述图像”之外,还可以询问“提供给定图像的详细描述”或“分享图像的全面分析”等。为了确保各种回复的多样性,我们为每个阶段创建了十种不同版本的输入提示,具体说明见补充材料。在数据生成过程中,对于每个阶段,随机选择其中的一种变体,以促进模型响应的多样性。

区域字幕数据集分析。利用我们的自动标注流程,标注了213,000张V3Det图像的语料库,利用了其全面的目标边界框和类别名称。该数据集包括约13,000个精确tokens的概念,为模型训练提供了丰富的基础。这种广泛和精确的标注提高了生成数据的可靠性。为了进一步完善我们的数据集,我们利用CLIP模型计算图像区域与相应生成的区域字幕之间的相似度。

这个过程使能够过滤掉嘈杂或不相关的样本,确保只使用高质量的数据进行训练。如下表2所示,我们的数据集以每个区域字幕平均87.14个单词的显著较高数量而著称,相比其他数据集。这种详细的丰富程度为深入理解区域级别奠定了坚实的基础。

实验

本节介绍了实验设置和结果。实验主要针对区域分类、字幕生成、表情理解和目标幻觉基准进行。我们呈现了定量和定性结果。

实现细节

在整个训练过程中,视觉主干的权重保持不变。在预训练和微调阶段,使用336×336的图像分辨率进行模型训练。如果输入图像不是正方形,我们会对其进行填充,使其达到正方形格式。在预训练阶段,采用余弦学习率调度器。最大学习率设置为,权重衰减为0,warmup比率为0.03。模型的batch大小为256进行一次完整的训练周期。在微调阶段,最大学习率降低到,batch大小调整为128。除此之外,所有其他超参数保持与预训练阶段相同。

定量评估

区域分类。首先在COCO-2017数据集上评估我们模型的目标分类能力。报告了mAP和分类准确度指标来量化性能。重点是区域识别,而不是目标定位。因此,遵循RegionCLIP,将边界框真值作为位置信息的输入。除此之外,将任务导向的指令提示附加到通用指令提示上,并仅将一个边界框输入到一个回合对话中。如果输出不属于COCO数据集的预定义候选类别中,简单地丢弃这个预测并将其归类为错误分类。报告了VLM和基于特征的视觉模型的结果,如下表3所示。

对于我们的基线模型,从图像中裁剪RoI,将其调整为输入尺寸,然后将其与COCO数据集中的80个类别的特征进行比较,以选择相似度最高的类别。此外,考虑了其他基于特征的方法,如RegionCLIP和ASM。RegionCLIP预训练CLIP模型以在特征空间中对齐CC3M区域-文本对。

ASM在约22M图像上进行训练,特征由语言解码器生成。其他VLM使用文本格式作为输出。在COCO数据集上,我们的方法实现了70.0的mAP和80.86%的准确度,证明了我们的方法在约束输出格式方面的有效性以及在区域级别目标识别方面的强大能力。

区域字幕生成。在ReferCOCOg和Visual Genome上评估我们模型的区域级字幕生成能力,使用与图像级字幕生成相同的评估指标:METEOR 和CIDEr。如下表4所示,我们的模型超越了区域感知的VLM,Kosmos-2。结果突显了我们模型在准确生成图像区域的指称表达方面的熟练程度。

指代表达理解(REC)。在ReferCOCOg数据集上评估我们模型的表达理解能力。我们的方法专注于区域级理解,而不是目标定位。因此,使用[61]中的边界框proposal作为候选框集。如果边界框真值与任何候选框的交集比小于0.5,将边界框真值包括在候选集中。下表5中的结果仅突显了我们模型在理解提供区域上下文中的复杂表达方面的特定优势。

特征细化模块的消融研究。 研究了特征细化模块对目标分类任务的影响。我们设计这个模块的动机是为了改进CLIP视觉特征,以获得更好的空间感知语义。下表6显示,两个反卷积层的设计显著优于基线模型(最后一列),表明了特征细化的有效性。

一个有趣的观察是,16倍上采样方法(BiLinear和Deconv + BiLinear)增强了对较小目标的分类准确度,尽管它在较大目标上表现出性能下降。我们的方法在这两个方面取得了更好的折衷。我们相信,实现更复杂和精心设计的特征优化机制可能会进一步提高性能。

视觉主干的消融研究。研究了视觉主干对目标分类任务的影响。下表7中的结果表明,通过用更强大的视觉主干替换当前的视觉主干,可以进一步提高区域级理解的性能。

目标幻觉。使用POPE评估pipeline对我们方法生成与目标图像描述不一致的目标进行了目标幻觉评估,结果详见下表8。我们的方法明显优于最近流行的图像级VLM。鉴于我们的基线模型是LLaVA模型,将这种性能增益归因于我们的区域级指令微调策略,这显著提高了模型对图像的解释能力,使其更加精确。

定性评估

如下图所示,RGPT能够分析图像中多个区域之间的关系。此外,在绿色示例中,我们的模型展现出了类似于GPT-4V演示中看到的复杂区域级推理能力,有效地解释和说明视觉内容。

一些令人非常振奋的结果

结论

本文提出了RGPT,这是一个通用的视觉语言模型,用于遵循用户的指示来处理复杂的区域级标题和推理任务。我们的模型采用区域级指令微调来将视觉特征与语言词embedding空间对齐。此外,精心设计了任务引导的指令提示,通过将视觉任务转换为VQA任务并提示响应格式,将视觉任务无缝融合到GPT框架中。最后,提出了一个两阶段的GPT辅助标注流程,用于重新格式化目标检测数据集并创建详细的区域级标题。结果表明,RGPT在区域级理解任务上取得了令人印象深刻的性能。

参考文献

[1]RegionGPT: Towards Region Understanding Vision Language Model

  更多精彩内容,请关注公众号:AI生成未来

欢迎加群交流AIGC技术,添加小助手

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

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

相关文章

从数据到智能:探讨大数据在AI领域的核心作用

前言 大数据和人工智能已经成为当今社会的两大热门话题。它们之间究竟有何关系&#xff1f;又如何在各个领域发挥着重要作用&#xff1f; 概念区别与联系 一、大数据与人工智能的基本概念 大数据&#xff0c;顾名思义&#xff0c;指的是海量的、类型繁多的数据集合。这些数据…

20240304-2-计算机网络

计算机网络 知识体系 Questions 1.计算机网络分层的优点和缺点 优点 各层之间是独立的&#xff1b;灵活性好&#xff1b;结构上可分割开&#xff1b;易于实现和维护&#xff1b;能促进标准化工作。 缺点&#xff1a; 降低效率&#xff1b;有些功能会在不同的层次中重复出现&…

软考 系统分析师系列知识点之系统性能评估(5)

接前一篇文章&#xff1a;软考 系统分析师系列知识点之系统性能评估&#xff08;4&#xff09; 所属章节&#xff1a; 第6章. 系统配置与性能评价 第8节. 系统性能评估 相关试题 1. 以下关于系统型嫩评估方法的描述&#xff0c;错误的是&#xff08; &#xff09;。 A. 指令…

ChatGPT/GPT4科研技术应用与AI绘图(包含Claude3、Gemini、Sora、GPTs中大模型的最新技术)

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

51-26 DriveMLM: 多模态大型语言模型与自动驾驶行为规划状态对齐

DriveMLM是来自上海AILab、港中文、商汤、斯坦福、南京大学和清华大学的工作。该模型使用各种传感器(如相机、激光雷达)、驾驶规则和用户指令作为输入&#xff0c;采用多模态LLM对AD系统的行为规划进行建模&#xff0c;做出驾驶决策并提供解释。该模型可以用于闭环自动驾驶&…

Dubbo基本知识

Dubbo 工作原理 工作原理分 10 层&#xff1a; 第一层&#xff1a;service 层&#xff0c;接口层&#xff0c;给服务提供者和消费者来实现的&#xff08;留给开发人员来实现&#xff09;&#xff1b;第二层&#xff1a;config 层&#xff0c;配置层&#xff0c;主要是对 Dubb…

利用tree命令自动保存文件层级结构

tree命令的使用 为了将上图左侧的文件目录&#xff0c;生成上图右侧中的文件夹结构列表&#xff0c;保存在txt中&#xff0c;使用了如下cmd命令&#xff1a; C:\armadillo-12.8.0>tree .>list.txt以上tree命令分为3部分&#xff1a; tree 命令. 在当前目录>list.tx…

✅ Windows11 系统 I 卡独显 A770 安装 深度学习 Pytorch 环境

&#x1f4cb; 文献参考 这里非常感谢知乎上的 ‘丢丢’ 的[**Windows系统下英特尔独显Pytorch的历程**] 为我提供了一开始的 I 卡安装想法&#xff01;但是文中并未介绍如何进行额外的环境变量操作问题&#xff0c;导致很多软件直接安装至系统盘&#xff0c;占用系统盘空间&am…

HTML静态网页成品作业(HTML+CSS)——美食企业介绍设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

前端布局方式及其优缺点

前端布局方式多种多样&#xff0c;每种布局方式都有其特定的应用场景、特性和优缺点。以下是一些常见的前端布局方式及其特点和优缺点&#xff1a; 静态布局&#xff1a; 特性&#xff1a;元素的尺寸使用绝对单位&#xff08;如px&#xff09;进行定义&#xff0c;不会随浏览器…

神经网络必备基础

和神经网络介绍相比&#xff0c;本文更侧重于程序实现 理解Keras中的组件 Keras是一个高级的神经网络API&#xff0c;用Python实现的&#xff0c;并且可以运行在TensorFlow、CNTK或Theano等后台之上。 model.compile() compile(self, optimizer, loss, metricsNone, ...) 该…

Python刘诗诗

写在前面 刘诗诗在电视剧《一念关山》中饰演了女主角任如意&#xff0c;这是一个极具魅力的女性角色&#xff0c;她既是一位有着高超武艺和智慧的女侠士&#xff0c;也曾经是安国朱衣卫前左使&#xff0c;身怀绝技且性格坚韧不屈。剧中&#xff0c;任如意因不满于朱衣卫的暴行…

【Spring】Spring状态机

1.什么是状态机 (1). 什么是状态 先来解释什么是“状态”&#xff08; State &#xff09;。现实事物是有不同状态的&#xff0c;例如一个自动门&#xff0c;就有 open 和 closed 两种状态。我们通常所说的状态机是有限状态机&#xff0c;也就是被描述的事物的状态的数量是有…

vue页面刷新问题:返回之前打开的页面,走了create方法(解决)

vue页面刷新问题&#xff1a;返回之前打开的页面&#xff0c;走了create方法&#xff08;解决&#xff09; 直接上图&#xff0c; 我们在开发的时候经常会复制粘贴&#xff0c;导致vue文件的name没有及时修改 我们需要保证name和浏览器的地址一致&#xff0c;这样才能实现缓…

2024 PhpStorm激活,分享几个PhpStorm激活的方案

文章目录 PhpStorm 公司简介我这边使用PhpStorm的理由PhpStorm 2023.3 最新变化AI Assistant 预览阶段结束 正式版基于 LLM 的代码补全测试代码生成编辑器内代码生成控制台中基于 AI 的错误解释 Pest 更新PHP 8.3 支持#[\Override] 特性新的 json_validate() 函数类型化类常量弃…

OpenCascade源码剖析:Standard_Transient根类

Standard_Transient是OCCT继承体系最顶层的根类&#xff0c;Transient在编程中具有一定的语义&#xff0c;与Persistent相对应&#xff0c;通常用于描述数据的持久性或持久性存储。 Transient&#xff0c;意味着数据是临时的或瞬态的&#xff0c;它们不会被持久化保存&#xf…

【C语言基础】:深入理解指针(三)

文章目录 深入理解指针一、冒泡排序二、二级指针三、指针数组3.1 指针数组模拟二维数组 四、字符指针变量五、数组指针变量5.1 数组指针变量是什么&#xff1f;5.2 数组指针变量的初始化 六、二维数组传参的本质 深入理解指针 指针系列回顾&#xff1a; 【C语言基础】&#xf…

Ubuntu 24.04 抢先体验换国内源 清华源 阿里源 中科大源 163源

Update 240307:Ubuntu 24.04 LTS 进入功能冻结期 预计4月25日正式发布。 Ubuntu22.04换源 Ubuntu 24.04重要升级daily版本下载换源步骤 (阿里源)清华源中科大源网易163源 Ubuntu 24.04 LTS&#xff0c;代号 「Noble Numbat」&#xff0c;即将与我们见面&#xff01; Canonica…

Java代码审计安全篇-目录穿越漏洞

前言&#xff1a; 堕落了三个月&#xff0c;现在因为被找实习而困扰&#xff0c;着实自己能力不足&#xff0c;从今天开始 每天沉淀一点点 &#xff0c;准备秋招 加油 注意&#xff1a; 本文章参考qax的网络安全java代码审计&#xff0c;记录自己的学习过程&#xff0c;还希望各…

揭示/proc/pid/pagemap的力量:在Linux中将虚拟地址映射到物理地址

pagemap的力量&#xff1a;在Linux中将虚拟地址映射到物理地址 一、/proc/pid/pagemap简介二、了解虚拟地址到物理地址的转换三、利用/proc/pid/pagemap进行地址转换3.1、访问/proc/pid/pagemap3.2、pagemap文件的数据和结构 四、页表、页框架的相关概念五、总结 一、/proc/pid…