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

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

论文完整名称是DriveMLM:Aligning Multi-Modal Large Language Models with Behavioral Planning States for Autonomous,于2023年12月发布,尚未完全开源。

本文由深圳季连科技有限公司AIgraphX自动驾驶大模型团队编辑。如有错误,欢迎在评论区指正。

Abastract

大型语言模型 (LLM) 为智能代理开辟了新的可能性,赋予它们类人思维和认知能力。在这项工作中,我们深入研究了大型语言模型 (LLM) 在自动驾驶 (AD) 中的潜力。我们引入了DriveMLM,这是一个基于LLM的AD框架,可以在逼真的模拟器中执行闭环自动驾驶。为此,

(1)我们通过根据现成的运动规划模块对决策状态进行标准化来弥合语言决策和车辆控制命令之间的差距。

(2)采用多模态LLM (MLLM)对AD系统的行为规划进行建模,该模型使用各种传感器(如相机、激光雷达)、驾驶规则和用户命令作为输入,做出驾驶决策并提供解释;该模型可以用于闭环驾驶,在Apollo等现有AD系统中即插即用。

(3) 我们设计了一个有效的数据引擎来收集一个数据集,其中包括决策状态和相应的解释标注,用于模型训练和评估。我们进行了广泛的实验,,证明了方法的有效性。模型在 CARLA Town05 Long 上实现了 76.1 的驾驶分数,在相同的设置下超过了 Apollo 基线 4.7 分。我们希望这项工作可以作为LLM自动驾驶的基线。

1. Introduction

近年来,自动驾驶 (AD) 取得了重大进展,从传统基于规则的系统演变,这些系统依赖于由先验知识通知的预定义规则集(见图 1a),到数据驱动的端到端系统,如图 1b 所示。尽管取得了进步,但由于专家知识的限制或训练数据的多样性,这些系统遇到了瓶颈。这使得它们处理极端情况具有挑战性,即使人类驾驶员可能会直观地处理好。与这些传统的基于规则的或数据驱动的 AD 规划器相比,使用网络规模文本语料库训练的大型语言模型 (LLM) 配备了广泛的世界知识、稳健的逻辑推理和高级认知能力。这些特征将它们定位为 AD 系统中的潜在规划器,为自动驾驶提供了一种类似人类的方法。

最近一些研究将LLM集成到AD系统中,截止2023年11月,研究树总结如下。

本文重点是根据驾驶场景生成基于语言的决策。

然而,当涉及到在现实世界环境或逼真模拟器中执行闭环驾驶时,这些方法存在局限性。这是因为LLM输出主要是语言和概念性的,不能用于车辆控制。在传统的模块化 AD 系统中,高级策略目标和低级操作动作之间的差距通过行为规划模块连接,其决策状态可以通过后续运动规划和控制轻松转换为车辆控制信号。这促使我们将LLM与行为规划模块的决策状态对齐,并进一步设计了一个基于LLM的闭环AD系统,该系统可以通过使用对齐的LLM进行行为规划来在现实世界环境或模拟器上运行。

基于这一点,我们提出了DriveMLM,这是第一个基于LLM的AD框架,可以在逼真的模拟器中执行闭环自动驾驶。为了实现这一点,我们有三个主要设计:

(1)我们研究了Apollo系统行为规划模块的决策状态,并将它们转换为 LLM 可以轻松处理的形式。

(2)我们开发了一个多模态LLM (MLLM)规划器,它可以接受当前的多模态输入,包括多视图图像、LiDAR点云、交通规则、系统消息和用户指令,并预测决策状态;

(3)为了获得足够的训练数据进行行为规划状态对齐,我们在CARLA上手动收集280小时的驾驶数据,并通过高效的数据引擎将它们转换为决策状态和相应的解释标注。

通过这些设计,我们可以得到一个MLLM规划器(已经在Apollo系统上完成集成测试),可以根据驾驶场景和用户需求做出决策,其决策可以很容易地转化为车辆控制信号进行闭环驾驶。

我们的工作具有以下优点:

(1)受益于对齐的决策状态,我们的 MLLM 规划器可以很容易地与现有的模块化 AD 系统(例如 Apollo)集成,以实现闭环驾驶,而无需任何重大更改或修改。

(2) 通过将语言指令作为输入,我们的模型可以处理用户需求(例如,超车)和高级系统消息(例如,定义基本驾驶逻辑)。这使得我们的模型更加灵活,能够适应不同的驾驶情况和角落情况。

(3) 它可以提供可解释性,并解释不同的决策。这增强了我们模型的透明度和可信度,因为它可以解释其对用户的动作和选择。

此外,我们可以通过用语言指令(例如为救护车或交通规则产生)描述特殊要求来改变 MLLM 规划器的决策,如图 2 所示。

Related Work

Multi-Modal Large Language Models

最近,大型语言模型 (LLM) 的快速发展催生了多模态 LLM (MLLM) 的出现,这些模型具有分析和理解来自不同模态信息的能力。

  • GPT-4、Flamingo、KOSMOS-1、LLAVA 系列和 MiniGPT-4,以及InstructBLIP。这些模型集成了视觉指令调整方法,以增强 MLLM 遵守规定指令的能力。
  • mPLUG-DocOwl 通过结合数字文档数据集,扩大了 MLLM 的文档理解能力。
  • Shikra、VisionLLM、KOSMOS-2、LISA 和  Qwen-VL 增强了具有视觉基础能力的 MLLM,使它们能够根据用户提示检测或分割对象。
  • VideoChat 和  VideoLLaMA 催生了视频处理能力。
  • NExT-GPT 引入了一种用于多模态提示调整的模态切换指令调整技术,促进了文本、图像、视频和音频的任何组合中输入和输出的处理。
  • ASM 和 GPT4RoI 引入了区域级别识别和理解能力。

这些努力,证明了 LLM 的有效性和可泛化性,为开放世界任务奠定了基础。

Intelligent Agents with Large Language Models

LLM的一个新兴应用是它们促进了智能代理(例如,机器人、虚拟助理或游戏角色)和各种实体(包括人类、环境,甚至智能代理本身)之间的互动和通信。

  • 几种基于 API 的方法,包括 Visual ChatGPT、MM-REACT、HuggingGPT、InternGPT、ViperGPT、ControlLLM 和 GPT4Tool,试图将不同的模态 API 与 LLM 集成,以完成开放世界中的复杂任务,例如图像编辑、视频处理和音频合成。这些方法允许语言模型通过遵循自然语言指令来执行复杂的现实世界任务。
  • 其他研究计划,如 Camel、AutoGPT、MetaGPT 和 Smallville,研究了 LLM 在角色扮演对话或通讯游戏的背景下的效用。
  • 领域内具身 AI 作品,如 PaLM-E、EmbodiedGPT 和 RT 系列利用 LLM 生成自然语言动作,从而控制精通在真实或 3D 仿真环境中执行导航、操作和交互任务的具身代理。这些工作证明了 LLM 在智能代理控制领域取得显著进步。

Autonomous Driving Models

近年来,自动驾驶 (AD) 模型的发展迅速加快,产生了许多破坏性和突破性的技术。值得注意的是,Apollo 和 Autoware 等开源操作系统框架,通过提供强大的工具和资源发挥了关键作用,从而促进自动驾驶技术的发展,并有助于其广泛采用和推广。

在AD感知方面,BEV (Bird’s Eye View)和Occupancy Network占用网络已成为自动驾驶汽车的重要组成部分,(当前迫切需要)帮助它们更好地了解周围环境并做出相应的决策。

传统自动驾驶系统的决策过程通常依赖于有限状态机。这些系统通常需要手动创建许多规则来确定在它们之间转换的状态和条件。然而,考虑到世界不断变化的性质,设计规则来覆盖现实世界的所有场景通常很费力。近年来,端到端自动驾驶模型也取得了显著的进展,如UniAD,它采用了一种新的端到端方法,直接集成感知、预测和规划,避免了传统模块化设计方法中的信息丢失和效率问题。最近,已经提出了开源模拟器来弥合模型预测和闭环控制之间的差距。

CARLA 具有全面的传感器模拟和逼真环境,是许多最先进的方法评估闭环性能最广泛使用的基准.

通过引入LLM进行驾驶规划,改变感知,为自动驾驶领域开辟了新方向。

  • ChatGPT和GPT4预测驾驶决策。
  • Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving,微调LLM模型以预测驾驶信号。
  • GPT-DRIVER: LEARNING TO DRIVE WITH GPT,微调LLM模型以预测轨迹。
  • MTD-GPT: A Multi-Task Decision-Making GPT Model for Autonomous Driving at Unsignalized Intersections,微调LLM模型以预测决策空间。
  • DRIVEGPT4: INTERPRETABLE END-TO-END AUTONOMOUS DRIVINGVIA LARGE LANGUAGE MODEL,微调LLM预测控制信号。

然而,DriveGPT4 受到单目相机输入的限制,限制了其构建综合场景信息的能力。上述所有基于 LLM 的工作都没有在闭环驾驶中的真实模拟器上进行评估,因为 LLM 的语言决策很难转化为实际可靠的控制信号,或者 LLM 对控制信号的直接预测仍然是实时闭环驾驶的一大差距。

Proposed Method

System Overview

DriveMLM 框架将大型语言模型 (LLM) 的世界知识和推理能力集成到自动驾驶 (AD) 系统中,实现了现实模拟器中的闭环驱动。

如图 3 所示,DriveMLM framework 具有三个关键设计:

(1) Behavioral Planning States Alignment,这一部分将LLM的语言决策输出与Apollo等成熟的模块化AD系统的行为规划模块对齐。这样,LLM的输出可以很容易地转化为车辆控制信号。

(2) MLLM Planner,它是多模态LLM (MLLM) tokenizer和decoder的组合。多模态tokenizer将多视图图像、LiDAR、交通规则和用户需求等不同输入转换为统一的tokens,MLLM 解码器做出决策。

(3) Efficient Data Collection Strategy,它为基于LLM的自动驾驶引入了一种定制的数据收集方法,确保了一个全面的数据集,包括决策状态、决策解释和用户命令。

Behavioral Planning States Alignment

将大型语言模型 (LLM) 的语言选择转换为可操作的控制信号对于车辆控制至关重要。

为此,我们将LLM的输出与流行的Apollo系统中行为规划模块的决策阶段对齐。按照常见的做法,我们将决策过程分为两类:速度决策和路径决策。具体来说,

速度决策状态包含 [KEEP、ACCELERATE、DECELERATE、STOP]。

路径决策状态包括 [FOLLOW、LEFT CHANGE、RIGHT CHANGE、LEFT BORROW、RIGHT BORROW]。

为了使语言模型能够在这些状态之间进行准确的预测,我们建立了语言描述和决策状态之间的综合联系,如表1的系统质量所示。这种相关性被用作系统消息的一部分,并集成到MLLM规划器中。因此,一旦LLM描述了某些情况,预测就会收敛到决策空间中的明确决策。同时,相互推断一个速度决策和一个路径决策,发送到运动规划框架。决策状态的更详细定义可以在补充材料中找到。

MLLM Planner

DriveMLM 的 MLLM 规划器由两部分组成:多模态tokenier和 MLLM decoder。这两个组件紧密协作,处理各种输入以准确确定驾驶决策并为这些决策提供解释。

Multi-Modal Tokenizer

Tokenizer旨在有效地处理各种形式的输入:

(1)对于时序多视图图像:我们使用时序 QFormer 从时间戳 -T 到 0(当前时间戳)处理多视图图像。

首先,它在时间戳−T处获取每个视图I_{i}^{-T},并将其送到具有D维N_{Q}随机初始化查询的ViT-g和QFormer。这会产生 X_{I_{i}^{-T}} \in \mathbb{R}^{N_{Q}\times D} 的图像令牌嵌入。然后,使用图像令牌嵌入 X_{I_{i}}^{-T} (没代码核对,不知作者是否有错)作为 QFormer 的查询,我们通过再次执行第一步来获得下一个时间戳X_{I_{i}^{-T plus 1}}的图像令牌嵌入。

我们重复这两个步骤,直到我们得到当前时间戳 X_{I_{i}^{0}} 的图像令牌嵌入,它从−T到0收集所有时间信息。这种方法避免了随着时间长度的增加,处理时间序列数据所需的资源线性增加。

(2)对于激光雷达数据,我们首先将点云作为 Sparse Pyramid Transformer(SPT)骨干的输入,提取LiDAR特征。

然后我们使用具有 M 个 D 维随机初始化Q的 Qformer 来获得点云令牌嵌入 X_{L} \in \mathbb{R}^{N_{Q}\times D}。我们将其与图像令牌嵌入连接起来。

(3) 对于系统消息和用户指令,我们简单地将它们视为正常文本数据,并使用 LLM 的令牌嵌入层来提取它们的embedding,X_{M} \in \mathbb{R}^{N_{M}\times D} , X_{U} \in \mathbb{R}^{N_{U}\times D}

MLLM Decoder

解码器是将token化的输入转换为决策状态和决策解释的核心。为此,我们为基于 LLM 的 AD 设计了一个系统消息模板,如表 1 所示。

我们看到系统消息包含 AD 任务、交通规则、决策状态的定义以及每个模态合并信息的占位符。这种方法确保来自各种模态和源的输入无缝集成。输出被格式化以提供决策状态(见表 1 的 Q2)和决策的解释(见表 1 的 Q3),在决策过程中提供透明度和清晰度。关于监督方法,我们的框架使用交叉熵损失和下一个token预测,遵循常见的做法。通过这种方式,MLLM 规划器可以对来自不同传感器和来源的数据进行详细理解和处理,并将其转换为适当的决策和解释。

Efficient Data Engine

我们提出了一个数据生成pipeline,可以从 CARLA 模拟器中的各种场景中创建决策状态和解释标注。该pipeline可以解决现有驾驶数据的局限性,缺乏决策状态和详细的解释来训练基于LLM的AD系统。我们的pipeline由两个主要组件组成:数据收集和数据标注。

数据收集旨在改善决策多样性,同时保持逼真真实。首先,模拟器中构建了各种具有挑战性的场景。需要复杂的驾驶行为来安全驾驶。然后,要求专家(无论是有经验的人类驾驶员还是代理)安全地通过在其许多可通行位置之一触发这些场景来驾驶。值得注意的是,当专家随机提出驾驶需求并相应地驾驶时,会产生交互数据。一旦专家安全地驾驶到目的地,就会记录数据。

数据标注主要关注决策和解释。首先,通过使用手工制作的规则,根据专家的驾驶轨迹自动标注速度和路径决策状态。其次,解释标注首先基于场景生成,该场景由附近当前元素动态定义。第三,生成的解释标注由人工标注者细化,它们的多样性由 GPT-3.5 扩展。此外,交互内容也被人工标注者细化,包括执行或拒绝人类请求的情况。通过这种方式,我们避免了昂贵的逐帧决策状态标注,以及从头开始对解释标注进行昂贵的手动编写,大大加快了我们的数据标注过程。

Experiments

Data Analysis

我们收集了 280 小时驾驶数据进行训练。这些数据由50K条路线,30个驾驶场景,CARLA 中具有不同天气和照明条件 的8 个地图(Town01、Town02、Town03、Town04、Town06、Town07、Town10HD、Town12)组成。平均而言,每个场景在每个地图上都有大约 200 个触发点来随机触发。每个场景都是驾驶中常见的或罕见的safety-critical情况。这些场景的详细信息在补充材料中。对于每一帧,我们从前、后、左、右四个摄像头收集图像,以及从自车中心添加的激光雷达传感器的点云。

我们收集的所有数据都有相应的解释和准确的决策,都成功地通过场景驾驶。

表 2 显示了与之前设计用于使用自然语言驾驶理解数据集的比较。

我们的数据有两个独特的特征。

  • 第一个是行为规划状态的对齐。这使我们能够将 MLLM 规划器的输出转换为控制信号,以便我们的框架可以在闭环驾驶中控制车辆。
  • 第二个是人机交互标注。它的特点是人类给出的自然语言指令以及响应决策和解释。目标是提高理解人类指令及响应的能力。

Implementation Details

该部分咱们关注怎么实现及消融实验,内容有所删减。

我们的 MLLM 模型由 LLaMA 构建。

  • 使用EVA-CLIP中的ViT-g/14作为视觉编码器,LLaMA-7B作为LLM。
  • Querying transformer 用于从 ViT 中提取图像标记,其中设置query Nq = 32。
  • 对于 LiDAR 编码器,使用在 ONCE 上微调的 GD-MAE  模型。
  • 基于预训练的 husky 模型,使用指令跟随数据训练 MLLM。
  • 采用β1 = 0.9, β2 = 0.95的AdamW优化器,学习率为5e−5的余弦学习率衰减。训练周期为2,批大小为256。
  • 训练QFormer和LLM来确保LLM的指令跟随能力,从而获得预定义的路径决策和速度决策格式。
  • MLLM 的图像输入分辨率设置为 448 × 448。

为了评估闭环驾驶性能

  • 我们使用了广泛使用的 Town05Long 基准。值得注意的是,Town05 不在我们的训练数据中。
  • 我们使用驾驶分数 (DS)、路线完成 (RC) 和违规分数 (IS)  作为评估指标。RC 计算代理完成的路线的平均百分比。IS测量0到1之间的违规惩罚,包括碰撞和违反交通规则。IS仅根据路线的已完成部分进行计算。DS 是三个的核心度量,它是 RC 和 IS 的乘积。
  • 我们还使用 Miles Per Intervention (MPI) 评估驾驶性能,这是工业中广泛使用的指标。它被计算为在人类接管的总时间上行驶的总距离。

对于开环评估

  •  我们收集了 Town05 中每个场景的 10 条路径,并由人类驾驶员标注作为测试集。
  • 与流行的 Apollo 进行比较,该 Apollo 基于有限状态机 (FSM) 和两个 MLLM 模型:LlaVA1.5 和 InstructBLIP 。这两个用于比较的MLLM模型没有进行微调,而是提供了几个输入/决策对的例子,进行少样本适应。

Evaluation in Closed-Loop Driving

Evaluation of Driving Knowledge

Ablation Study

Sensor Modality

表 5 显示了传感器输入模态对 DriveMLM 结果的不同影响。

  • 多视图 (MV) 图像在路径和速度 F1 分数上带来了显著的性能提升,准确度也提高了 18.19%。
  • 与直接连接时序token相比,时序QFormer在确保多模式决策能力的同时,实现了7.4%的更大改进,速度决策的平均 F1 得分也提高了0.05。
  • 点云没有表现出提高性能的能力。

Temporal Module Design

我们提出了时序QFormer模块来处理时序多视图图像。一个简单而天真的设计是直接连接时序查询token,以生成Ntq=T×Ni×Nq令牌作为LLM输入。但是 Ntq 随着 T 的增加而增加,导致计算成本大。相反,我们提出了时序QFormer模块分别处理每个视图的时序图像,为LLM输入生成NI × NQ标记。时序模块的比较如表 5 所示,表明我们具有更好的性能。

Case Study & Visualization

Human Interaction

图 4 提供了如何通过人工指令实现车辆控制的示例。控制过程涉及分析道路条件、做出决策选择并提供解释性陈述。当给出与“接管”相同的指令时,DriveMLM 根据当前交通状况的分析表现出不同的响应。在右车道被占用且左车道可用的场景中,系统选择从右到左接管。然而,在给定指令可能构成危险的情况下,例如当所有车道都被占用时,DriveMLM 选择避免执行超车机动和适当响应。在这种情况下,DriveMLM 作为人机交互的界面,它根据交通动态评估指令的合理性,并确保它在最终选择动作过程之前遵守预定义的规则。

Performance in Real Scenarios

Conclusion

在这项工作中,我们提出了 DriveMLM,这是一个利用大型语言模型 (LLM) 进行自动驾驶 (AD) 的新框架。DriveMLM 通过使用多模态 LLM (MLLM) 对模块化 AD 系统的行为规划模块进行建模,可以在真实模拟器中执行闭环 AD。DriveMLM还可以为其驾驶决策生成自然语言解释,从而提高AD系统的透明度和可信度。实验表明,DriveMLM 在 CARLA Town05 Long 基准测试中可以优于 Apollo 基线。我们相信我们的工作可以激发更多关于 LLM 和 AD 集成的研究。

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

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

相关文章

Dubbo基本知识

Dubbo 工作原理 工作原理分 10 层: 第一层:service 层,接口层,给服务提供者和消费者来实现的(留给开发人员来实现);第二层:config 层,配置层,主要是对 Dubb…

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

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

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

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

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

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

前端布局方式及其优缺点

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

神经网络必备基础

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

Python刘诗诗

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

【Spring】Spring状态机

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

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

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

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

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

文章目录 深入理解指针一、冒泡排序二、二级指针三、指针数组3.1 指针数组模拟二维数组 四、字符指针变量五、数组指针变量5.1 数组指针变量是什么?5.2 数组指针变量的初始化 六、二维数组传参的本质 深入理解指针 指针系列回顾: 【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,代号 「Noble Numbat」,即将与我们见面! Canonica…

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

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

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

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

信号处理-探索相邻数据点之间的变化和关联性的操作方法

当前值减去前一个值,乘上当前值与前一个值差值的绝对值 当前值减去后一个值,乘上当前值与后一个值差值的绝对值。 意义何在? 当前值减去前一个值:表示当前数据点与前一个数据点之间的变化量。当前值与前一个值差值的绝对值&…

【Linux】软件管理器yum和编辑器vim

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、Linux下安装软件的方案1.1 源代码安装1.2 rpm安装1.3 yum安装 二、Linux软件…

外贸常用的出口认证 | 全球外贸数据服务平台 | 箱讯科技

出口认证是一种贸易信任背书,对许多外贸从业者而言,产品的出口认证和当前的国际贸易环境一样复杂多变,不同的目标市场、不同的产品类别,所需要的认证及标准也不同。 国际认证 01 IECEE-CB IECEE-CB体系的中文含义是“关于电工产品测试证书的相互认可体…

记一次简单的获取虚拟机|伪终端shell权限

场景描述 某个系统是ova文件,导入虚拟机启动,但是启动后只有一个伪终端权限,即权限很小,如何拿到这个虚拟机的shell权限呢? 实际操作 这次运气比较好,所遇到的系统磁盘并没有被加密,所以直接…

吴恩达深度学习笔记:神经网络的编程基础2.1-2.3

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第二周:神经网络的编程基础 (Basics of Neural Network programming)2.1 二分类(Binary Classification)2.2 逻辑回归(Logistic Regression) 第一门课:神经网络和深度学…