当前位置: 首页 > news >正文

OpenDriveVLA:通过大型视觉-语言-动作模型实现端到端自动驾驶

25年3月来自慕尼黑工大和慕尼黑大学的论文“OpenDriveVLA: Towards End-to-end Autonomous Driving with Large Vision Language Action Model”。

OpenDriveVLA,一种专为端到端自动驾驶而设计的视觉-语言-动作 (VLA) 模型。OpenDriveVLA 以开源预训练大型视觉-语言模型 (VLM) 为基础,以 3D 环境感知、自车状态和驾驶员命令为条件生成可靠的驾驶动作。为了弥合驾驶视觉表示和语言嵌入之间的模态差距,提出一个分层视觉-语言对齐过程,将 2D 和 3D 结构化视觉 token 投射到统一的语义空间中。此外,OpenDriveVLA 通过自回归智体-环境-自车的交互过程对自车、周围智体和静态道路元素之间的动态关系进行建模,确保在空间和行为上都知情的轨迹规划。在 nuScenes 数据集上进行的大量实验表明,OpenDriveVLA 在开环轨迹规划和驾驶相关问答任务中取得最先进的成果。定性分析,可以进一步说明: 在遵循高级驾驶命令和在具有挑战性的场景下,OpenDriveVLA 稳健地生成轨迹方面的卓越能力,凸显其在下一代端到端自动驾驶方面的潜力。

端到端学习框架已成为自动驾驶领域一个有前途的范例,可以在统一的神经网络中联合优化感知、预测和规划 [5, 54]。通过利用大规模驾驶数据,这些模型直接从原始传感器输入中学习驾驶策略,在各种驾驶场景中取得了令人瞩目的表现。尽管取得了显著的进展,现有的端到端驾驶方法仍然面临着严峻的挑战,特别是在长尾场景的泛化有限、对复杂驾驶场景中高级语义理解不足以及任务驱动规划的推理能力不灵活 [4]。与此同时,大型语言模型 (LLM) 和视觉语言模型 (VLM) 表现出强大的上下文学习、常识理解和零样本泛化能力。这些新兴能力凸显它们在自动驾驶领域的前景,特别是考虑到对各种现实世界驾驶条件下稳健场景理解的迫切需求 [28, 53]。

如图所示:利用 VLM 的端到端自动驾驶范式比较

请添加图片描述

然而,直接利用现有的 VLM 进行自动驾驶带来了根本性的挑战。首先,当前的 VLM 主要针对静态、2D 图像语言任务进行优化,导致动态 3D 驾驶环境中的空间推理性能较差 [34, 50]。此外,这些模型经常产生幻觉输出(不正确或过于自信的描述),这严重损害自动驾驶的安全性。受这些限制的启发,本文工作回答一个核心问题:如何利用 VLM 的新兴能力来产生可靠的驾驶动作,同时降低幻觉风险并平衡推理速度和规划效率?

为此,提出 OpenDriveVLA,这是一种专为端到端自动驾驶设计的视觉-语言-动作模型。其整体架构如图所示:

请添加图片描述

OpenDriveVLA 以预训练的视觉编码器开始,该编码器从多视图图像中提取 token 化的环境表示。然后通过跨模态学习将这些视觉 token 对齐到文本域中。对齐后,OpenDriveVLA 进行驾驶指令调整,然后进行智体-自我-环境的交互建模。最后,OpenDriveVLA 进行端到端训练,以预测自车的未来轨迹,由对齐的视觉-语言 token 和驾驶指令引导。

如下图是其多步训练进程:

请添加图片描述

3D 视觉环境感知

最近基于 VLM 的自动驾驶方法通常依赖于 2D 视觉编码器 [34, 50],其中视觉 token 选择和注意通过语言监督间接引导,往往以问答任务的形式出现。虽然在开放域视觉语言应用中有效,但这种设计缺乏明确的 3D 空间基础和结构化的目标级注意,这可能导致在安全-紧要驾驶场景中出现严重幻觉 [42]。为缓解这种情况,OpenDriveVLA 采用以视觉为中心的查询模块,其中模型首先通过 3D 视觉任务学习关注与驾驶相关的目标和地图 token,从而确保可靠的视觉 token 提议。

分层视觉-语言对齐

为了弥合提取的视觉token与预训练 LLM 词嵌入空间之间的模态差距,采用分层的视觉-语言特征对齐策略。给定从 3D 视觉感知模块提取的视觉 token,引入三个特定于 token 的投影器 {Φ_scene,Φ_agent,Φ_map}。在训练期间,来自 3D 检测和跟踪任务的每个活动智体查询(表示为 vi_agent)也会与其对应的真实字幕 X^i_agent 匹配。这些字幕提供详细的描述,包括 2D 外观描述和 3D 空间位置。对于编码整体空间上下文和静态结构属性的场景和地图token,应用逐样本的对齐,其中每个 token 都与场景级字幕 X_scene 或 X_map 匹配。场景 token v_scene 捕获全局 2D 环境上下文,而地图 token v_map 编码结构元素,例如车道拓扑、道路边界和可驾驶区域。每个 token 都与其对应的字幕对齐,表示为 X_scene 和 X_map。在此阶段,视觉编码器和预训练的 LLM 都保持冻结,只有特定于token的投影器才可训练。
为了将高级驾驶知识嵌入到 Open-DriveVLA 中并增强其推理能力,在训练过程中引入专门的驾驶指令调整阶段。不会在推理时执行显式的思维链 (CoT) 推理(这会显著增加延迟),而是通过监督指令调整将必要的驾驶知识蒸馏到模型中,以实现推理速度和推理效率之间的权衡。

在调整过程中,使用精选的驾驶指令 QA 数据集将来自语言领域的驾驶知识注入模型。该数据集涵盖广泛的驾驶相关推理,包括感知理解、运动预测、注意分配、动作推理和高级决策。通过对这组多样化的驾驶查询进行训练,Open-DriveVLA 学会将驾驶场景上下文化、遵循命令并生成基于语义和行为的规划决策。将调整数据表示为指令-响应对 {X_input,X_answer},其中 X_input = (V_env, S_ego, X_query)。这里,X_query 表示与驾驶相关的问题,S_ego 编码文本自车状态。给定此多模态输入,LLM 自回归学习生成目标响应。在指令调整期间,视觉编码器保持冻结,而特定于 token 的投影器和 LLM 设置为可训练。

智体-环境-自我的交互

自动驾驶中可靠的轨迹规划需要基于空间的环境 3D 表示。除了感知之外,它还必须了解自车与周围智体之间的动态交互。有效的交互建模,对于确保规划的轨迹在现实世界的驾驶约束下既可行又无碰撞至关重要。然而,现有的预训练 LLM 缺乏对 3D 驾驶场景中空间推理的固有归纳偏差,因为它们主要在 2D 视觉语言和基于文本的数据集上进行训练。为了解决这一限制,引入一个条件智体运动预测任务,它作为 3D 智体-环境-自我交互建模的智体任务,允许模型学习基于空间的运动模式。在此阶段,OpenDriveVLA 捕获多智体动态的底层结构,增强其场景感知轨迹生成能力并改善复杂交通场景中的决策。

给定场景和地图 token 以及自车状态 S_ego,LLM 根据其投影视觉嵌入 Φ_agent(vi_agent) 预测每个检测智体的未来运动。智体 a_i 的未来运动,表示为一系列航路点 W^i_a。预测轨迹取决于场景背景、地图结构和自车状态,使 OpenDriveVLA 能够推断交互感知和空间基础的运动序列。

这为 OpenDriveVLA 提供必要的空间先验,使其能够弥合高级语义推理和物理基础运动规划之间的差距。

端到端轨迹规划

在此阶段,OpenDriveVLA 将未来的驾驶行为规划为接下来几秒钟的一系列航路点,记为 W_ego = {w_1,w_2,…,w_T }。每个航路点 wt 代表时间步 t 时自车的 2D 坐标 (x_t , y_t )。为了使用 LLM 实现自回归生成,首先将航路点标记为一系列离散的文本 token:T_traj = Tokenizer(W_ego)。然后将生成过程转换为因果序列预测任务,其中每个 token 都根据视觉感知 token V_env、自我状态 S_ego 和驾驶命令 X_dri 进行预测。

整个模型,包括视觉编码器、跨模态投影器和 LLM,在训练期间进行端到端联合优化。在推理时,模型自回归生成 token 化轨迹 Tˆ_traj,然后将其解码回数值航路点。

对 nuScenes 数据集 [2] 进行实验,将标准数据分为训练集和验证集。OpenDriveVLA 使用训练集和相应的 QA 字幕进行训练,而验证集专门用于性能评估,以确保与之前的工作进行公平比较。在如下表中展示每个阶段的训练数据信息。

请添加图片描述

对于智体特征对齐,对来自 [20] 的实例字幕进行后处理,它提供了单个目标的 2D 视觉描述。为了进一步增强空间意识,每个目标字幕都增强了其相应的 BEV 坐标,使模型能够将目标属性与精确的空间位置相关联。对于场景token,我们处理来自 [46] 的多视图场景描述,将它们合并为统一的摘要,描述所有摄像机视图中的驾驶环境。对于地图 token,结构化语言描述来自真值注释,将车道分隔线、人行横道和道路边界等地图元素转换为描述性文本。

采用源自 nuScenes 多个面向指令的数据集,将驾驶特定知识整合到 OpenDriveVLA 中。将多个数据集统一为标准化的基于指令 QA 格式,包括从 nuCaption [46]、nuScenesQA [32] 和 nuX [8] 数据集收集的与驾驶相关的问答对。每个 QA 对都以结构化环境视觉token和自车车辆状态为条件,确保不同数据源之间的一致性。这种多模式指令调整过程使 OpenDriveVLA 能够有效地将语言理解融入环境感知和场景理解中,在语言空间内连接感知、推理和行动。

在自车系统中制定智体运动预测和自我轨迹规划,其中模型直接预测每个实体相对于自我车辆局部坐标系内的未来位移以进行规划,并预测相对于每个智体的未来位移以进行预测。此公式以空间一致的方式捕获所有实体的运动动态。按照 [29],自我车辆状态被编码为文本输入,以确保整个训练过程中的自我意识。这两项任务都预测 3 秒的未来轨迹,以 0.5 秒的间隔进行采样,每条轨迹有 6 个航点。

OpenDriveVLA 中的 3D 视觉感知模块遵循 [14] 中以视觉为中心的设计,使用 ResNet-101 主干进行 2D 特征提取。感知主干通过 3D 物体检测、物体跟踪和地图分割等多任务学习进行预训练。生成的 BEV 特征图的空间分辨率为 200×200。为了构建统一的场景表示,全局 SceneSampler 将 2D 自适应池化应用于每个摄像机视图,随后将池化的多视图特征连接成全局场景 token。智体和地图 token 从各自 QueryTransformer 模块的最后一层提取。然后使用具有 GeLU 激活的单独两层 MLP 将每种 token 类型映射到语言空间中。采用 Qwen 2.5-Instruct [45] 作为预训练的 LLM,并在训练期间进行全参数调整。该模型在 4 个 NVIDIA H100 GPU 上进行训练,批处理大小为 1,大约需要两天时间完成。在推理过程中,将解码温度设置为 0,以确保确定性轨迹生成。在第 3 阶段冻结 2D 主干。上表总结详细的训练配置。

相关文章:

OpenDriveVLA:通过大型视觉-语言-动作模型实现端到端自动驾驶

25年3月来自慕尼黑工大和慕尼黑大学的论文“OpenDriveVLA: Towards End-to-end Autonomous Driving with Large Vision Language Action Model”。 OpenDriveVLA,一种专为端到端自动驾驶而设计的视觉-语言-动作 (VLA) 模型。OpenDriveVLA 以开源预训练大型视觉-语言…...

深入探究C++ 运算符重载:以日期类为例

目录 前言 一、运算符重载基础 1.1 运算符重载原理 1.2 示例代码 二、赋值运算符重载 2.1 赋值运算符重载格式 2.2 代码实现 2.3 注意事项 三、前置和后置重载 3.1 前置重载 3.2 后置重载 四、日期类的完整实现 4.1 获取某月天数 4.2 完整类定义 五、总结 前言 …...

2024第十五届蓝桥杯大赛软件赛省赛Java大学B组 报数游戏 类斐波那契循环数 分布式队列 食堂 最优分组 星际旅行 LITS游戏 拼十字

目录 A 报数游戏 B 类斐波那契循环数 C 分布式队列 D 食堂 E 最优分组 F 星际旅行 G LITS 游戏 H 拼十字 今天心血来潮把去年的题目又做了一遍... 本人去年大一 拿的是全省第五进的国赛 而如今的已经是一名 codeforces 1500 分的入门级别的算竞选手了 下周又是蓝桥杯…...

4月6日随笔

一觉起来十点多 其实六点和九点分别醒过一次。 起来之后点了个侍卫草推荐的猪排饭,真的巨好吃,猪排很脆,溏心蛋也很香 但是因为酒店十二点半要退房,就匆匆吃完了猪排和一半米饭就走了 今天下午在科技楼写了一会作业&#xff0c…...

[GN] sigrokdecode 模块学习指南 --- 准备阶段

系列文章目录 文章目录 系列文章目录前言指南libsigrokdecode 学习一、构建环境安装libsigrokdecode安装 sigrok-cli(命令行工具)安装 PulseView(图形界面)关联 libsigrokdecode完整验证参数解释 二、BUG解决1. 确保编译时启用了 …...

【力扣hot100题】(056)电话号码的字母组合

依旧是很经典的回溯。 记得当初做这题想了半天电话号码怎么存储&#xff0c;用哈希表就可以解决。 class Solution { public:vector<string> result;string digits;int loc0;unordered_map<char,string> dictionary{{2,"abc"},{3,"def"},{4,…...

kotlin,数字滚动选择

用国内的通义灵码和codegeex都没有弄出来&#xff0c;最后只得用墙外的chatgpt才弄出一个满意的。kotlin真的有点难&#xff0c;好在有AI&#xff0c;让学习没这难了。 package com.example.mynumsetimport android.os.Bundle import androidx.activity.ComponentActivity imp…...

Flask学习笔记 - 数据库

Flask 数据库操作 Flask 提供了多种方式来与数据库进行交互&#xff0c;包括直接使用 SQL 和利用 ORM&#xff08;对象关系映射&#xff09;工具&#xff0c;如 SQLAlchemy。 使用SQLAlchemy创建和管理数据库&#xff1a;使用 db.create_all() 创建表。CRUD 操作&#xff1a;…...

学透Spring Boot — 015. 自废武功——关闭自动配置

这是我的《学透Spring Boot》专栏的第15篇文章&#xff0c;了解更多请移步我的专栏&#xff1a;CSDN Postnull的专栏《学透Spring Boot》 目录 遇到的问题 分析日志 自动配置的过程 解决报错 方法1&#xff1a;添加数据库配置 方法2&#xff1a;关闭JPA自动配置 总结 遇…...

DeepSeek本地部署(Ollama)

1. Ollama 安装 Ollama 官网地址&#xff1a; https://ollama.com/安装包网盘地址: https://pan.baidu.com 2. Deepseek 部署 根据自己电脑配置和应用需求选择不同模型&#xff0c;配置不足会导致运行时候卡顿。 版本安装指令模型大小硬盘&#xff08;存储&#xff09;显卡…...

Python如何将已经安装的包导出为 .whl 文件以便离线使用

1、确认已安装的依赖包 pip list --formatfreeze > requirements.txt2、下载但不安装依赖包 # 单个包使用 pip download 依赖包名称 -d ./offline_packages# 多个包使用 pip download -r requirements.txt -d ./offline_packages使用离线包的时候&#xff0c;还需要确保在与…...

TypeScript学习第十六篇 - interface和type的区别?

在 TypeScript 中&#xff0c;interface 和 type 都用于定义自定义类型&#xff0c;但它们有一些关键区别&#xff1a; 1. 主要区别 1.1. 语法差异 interface 使用 interface 关键字。 interface Person {name: string;age: number; } type 使用 type 关键字。 type Pers…...

vue-axios跨域问题

vue-axios跨域问题 跨域原因现象前端解决方案 跨域原因 跨域&#xff1a;浏览器从一个域名的网页去请求另一个域名的资源时&#xff0c;域名、端口、协议任一不同&#xff0c;都是跨域。 在前后端分离的模式下&#xff0c;前后端的域名是不一致的&#xff0c;此时就会发生跨域…...

PyCharm中虚拟环境.venv搭建详解

PyCharm中创建、配置和管理虚拟环境&#xff0c;可以确保每个项目都有独立的依赖项&#xff0c;从而提高开发效率和项目的可移植性。接下来介绍一下pycharm虚拟环境的目录介绍以及搭建和管理办法。 虚拟环境目录是PyCharm中用于存储虚拟环境相关文件和配置的文件夹。PyCharm虚…...

小刚说C语言刷题——第16讲 switch语句

在日常生活中&#xff0c;我们经常会遇到多分支的情况。当分支较多时&#xff0c;我们可以用嵌套的if-else语句。但是这样会让结构显得混乱。这个时候我们可以考虑用switch语句。 1.语法格式 switch (表达式) { case 常量表达式1&#xff1a; 语句1; break; case 常量表达式…...

关联容器-模板类pair数对

关联容器 关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。 关联容器支持高效的关键字查找和访问。 两个主要的关联容器(associative-container),set和map。 set 中每个元素只包…...

Linux:基础IO---inode

文章目录 1. inode1.1 未被打开的文件1.2 认识硬件1.3 对磁盘进行逻辑抽象&#xff08;解构&#xff09;1.4 文件系统 序&#xff1a;在上一个章节缓冲区中&#xff0c;我通过将几个实例进行对比&#xff0c;引出了C语言级别即用户级别的缓冲区的概念&#xff0c;将用户级缓冲与…...

蓝桥杯_LITS游戏 俄罗斯方块 模拟 暴力 搜索 DFS 剪纸 枚举

从格子图的第一个格子开始&#xff0c;依次尝试放置 L、I、T、S 形状。在放置每个形状时&#xff0c;检查当前位置是否合法&#xff08;是否在格子图范围内且没有被其他形状占据&#xff09;。如果合法&#xff0c;我们就标记当前位置为已占据&#xff0c;并递归地尝试放置下一…...

蓝桥杯基础算法-字符串与集合

对集合的考察集中在集合的特性和功能。 set-唯一性 list-有序性 集合元素的个数 思路分析&#xff1a;set的唯一性&#xff0c;取出重复的子串 eg&#xff1a; 下标0截取的范围&#xff1a;【0&#xff0c;最大下标】 下标1截取的范围&#xff1a;【1&#xff0c;最大下标…...

ChatGPT 4:解锁AI文案、绘画与视频创作新纪元

文章目录 一、ChatGPT 4的技术革新二、AI文案创作&#xff1a;精准生成与个性化定制三、AI绘画艺术&#xff1a;从文字到图像的神奇转化四、AI视频制作&#xff1a;自动化剪辑与创意实现五、知识库与ChatGPT 4的深度融合六、全新的变革和机遇《ChatGPT 4 应用详解&#xff1a;A…...

【C++】多态详解

文章目录 一、多态的概念二、多态的效果及实现1.多态的效果2.实现多态有两个必须条件3.虚函数4.虚函数的重写/覆盖5.多态场景下两个很坑的选择题6.重载/重写/隐藏的对比 三、虚函数重写的一些其他知识1.协变&#xff08;了解&#xff09;2.析构函数的重写3.检测是否重写&#x…...

Python与CATIA集成实现拓扑面颜色映射——图像驱动自动化设计实战

一、技术背景与需求场景 在汽车/航空等高端制造领域&#xff0c;常需将二维图像的颜色特征映射到三维模型的拓扑表面。传统手动操作耗时且易出错&#xff0c;本文通过Python-CATIA集成技术实现像素级颜色自动映射&#xff0c;可应用于&#xff1a; 涂装方案可视化验证材料纹理…...

Qt中的多种输出方式,信号与槽的基本使用

完成Hello World可以通过很多控件实现 如采用编辑框来完成hello world 编辑框分为单行编辑框----QLineEdit 和多行编辑框---QTextEdit 采用单行编辑框&#xff0c;创建项目后&#xff0c;展开forms文件夹&#xff0c;双击ui文件进入 qt designer设计页面 找到line edit 拖到页…...

C语言查漏补缺:基础篇

1.原理 C语言是一门编译型计算机语言&#xff0c;要编写C代码&#xff0c;C源代码文本文件本身无法直接执行&#xff0c;必须通过编译器翻译和链接器的链接&#xff0c;生成二进制的可执行文件&#xff0c;然后才能执行。这里的二进制的可执行文件就是我们最终要形成的可执行程…...

【ElasticSearch】

目录 1. 基本知识1.1 restful语法1.2 内部基于_version乐观锁控制1.3 restful 批量&#xff08;bulk&#xff09;增删改 2. 分布式及容错机制2.1 ElasticSearch分布式基础1 ES分布式机制2 rebalance3 master节点4 节点对等 2.2 分片shard、副本replica机制2.3 es容错机制 3. 文…...

投资策略分析:十年年化32.2%,夏普比1.31的动量斜率策略(策略源码+数据下载)

原创内容第848篇&#xff0c;专注智能量化投资、个人成长与财富自由。 竹杖芒鞋轻胜马&#xff0c;谁怕&#xff1f;一蓑烟雨任平生。 回首向来萧瑟处&#xff0c;归去&#xff0c;也无风雨也无晴。 苏轼被贬黄州期间&#xff0c;借雨中徐行的意象&#xff0c;表达对人生荣辱得…...

httpx模块的使用

在使用requests模块发起请求时&#xff0c;报以下错误&#xff0c;表示服务器有可能使用的是http2.0协议版本&#xff0c;导致requests无法爬取。 此时就可以使用httpx模块爬取。 先下载httpx模块&#xff1a; pip install httpx[http2]然后用httpx发起请求&#xff1a; impo…...

【文献研究】含硼钢中BN表面偏析对可镀性的影响

《B 添加钢的溶融 Zn めっき性に及ぼす BN 表面析出の影響》由JFE公司田原大輔等人撰写。研究聚焦 B 添加钢在低露点退火时 BN 形成对镀锌性的影响&#xff0c;对汽车用高强度钢镀锌工艺优化意义重大。通过多组对比实验&#xff0c;结合多种分析手段&#xff0c;明确了相关因素…...

Logo语言的区块链

Logo语言的区块链探索 引言 随着科技的快速发展&#xff0c;区块链作为一种颠覆传统的分布式账本技术&#xff0c;正逐渐被许多行业所接受和应用。其核心特性在于去中心化、透明性、不可篡改性和安全性&#xff0c;这些特性使得区块链在金融、供应链、医疗、版权保护等领域显…...

3D Gaussian Splatting as MCMC 与gsplat中的应用实现

3D高斯泼溅(3D Gaussian splatting)自2023年提出以后,相关研究paper井喷式增长,尽管出现了许多改进版本,但依旧面临着诸多挑战,例如实现照片级真实感、应对高存储需求,而 “悬浮的高斯核” 问题就是其中之一。浮动高斯核通常由输入图像中的曝光或颜色不一致引发,也可能…...

车载ECU底软测试:方法与技术的深度解析

文章目录 引言车载 ECU 底软概述测试目标测试范围功能验证性能与实时性安全性与可靠性兼容性测试测试工具与技术方案分层测试方法与技术实现1. 单元测试(Unit Testing)2. 集成测试(Integration Testing)3. 系统测试(System Testing)4. 安全认证测试(Certification Testi…...

机器视觉3D中激光偏镜的优点

机器视觉的3D应用中,激光偏镜(如偏振片、波片、偏振分束器等)通过其独特的偏振控制能力,显著提升了系统的测量精度、抗干扰能力和适应性。以下是其核心优点: 1. 提升3D成像精度 抑制环境光干扰:偏振片可滤除非偏振的环境杂光(如日光、室内照明),仅保留激光偏振信号,大…...

25.6 多模态AI类型系统实战:日均10万请求下的99.99%可靠性保障与10倍性能提升

多模态AI类型系统实战:日均10万请求下的99.99%可靠性保障与10倍性能提升 关键词:类型标注实践, Pydantic 数据建模, 多模态数据处理, CogView 集成, CharGLM 对话引擎 1. 类型系统在 AI 应用中的核心价值 在复杂 Agent 系统中,类型标注是保障代码健壮性的第一道防线。当我…...

单链表的实现 | 附学生信息管理系统的实现

目录 1.前言&#xff1a; 2.单链表的相关概念&#xff1a; 2.1定义&#xff1a; 2.2形式&#xff1a; 2.3特点&#xff1a; 3.常见功能及代码 &#xff1a; 3.1创建节点&#xff1a; 3.2头插&#xff1a; 3.3尾插&#xff1a; 3.4头删&#xff1a; 3.5尾删&#xff1a; 3.6插入…...

【CMake】《CMake构建实战:项目开发卷》笔记-Chapter11-实践:基于onnxruntime的手写数字识别库

第11章 实践&#xff1a;基于onnxruntime的手写数字识别库 读者已经跟着本书实践了很多零零散散的实例&#xff0c;应该能够熟练使用CMake来构建C和C程序了吧&#xff01;不过&#xff0c;前面的实例往往都是针对某个特定功能编写的&#xff0c;我们可能很难将它们综合起来实…...

微软主要收入云计算,OFFICE,操作系统和游戏10大分类

微软2024年主要收入10大分类是哪些,再加一列赚钱比例 微软 2024 财年的财务数据可能尚未完全统计完成&#xff0c;且官方可能没有正好按 10 大分类公布主要收入情况。不过&#xff0c;依据微软过往的业务板块和常见的收入来源&#xff0c;下面是模拟的表格&#xff0c;赚钱比例…...

PDF预览-搜索并高亮文本

在PDF.js中实现搜索高亮功能可以通过自定义一些代码来实现。PDF.js 是一个通用的、基于Web的PDF阅读器&#xff0c;它允许你在网页上嵌入PDF文件&#xff0c;并提供基本的阅读功能。要实现搜索并高亮显示文本&#xff0c;你可以通过以下几个步骤来完成&#xff1a; 1. 引入PDF…...

随笔1 认识编译命令

1.认识编译命令 1.1 解释gcc编译命令: gcc test1.cpp -o test1 pkg-config --cflags --libs opencv 命令解析&#xff1a; gcc&#xff1a;GNU C/C 编译器&#xff0c;用于编译C/C代码。 test1.cpp&#xff1a;源代码文件。 -o test1&#xff1a;指定输出的可执行文件名为t…...

【谷歌设置】chrome打开页面在新tab设置(新版)

这里一定要在搜索之后点击账户&#xff0c;然后选择更过设置 选择在新窗口打开搜索结果...

9.翻页器组件设计开发与应用(Vue父子组件通信)

翻页器组件设计开发与使用 写在前面el-pagination分页器的用法用法介绍实战案例实现代码 Vue中的父子组件用法与通信何谓父子组件搭建Paginator.vue子组件组件初步搭建父组件向子组件传参通信子组件向父组件通信 最终代码Index.vuePaginator.vue 总结 欢迎加入Gerapy二次开发教…...

MyBatis-Flex关联查询

MyBatis-Flex关联查询 在 MyBatis-Flex 中&#xff0c;我们内置了 3 种方案&#xff0c;帮助用户进行关联查询&#xff0c;比如 一对多、一对一、多对一、多对多等场景&#xff0c;他们分别是&#xff1a; 方案1&#xff1a;Relations 注解方案2&#xff1a;Field Query方案3…...

Lucene.Net 分词器选择指南:盘古分词 vs 结巴分词

文章目录 前言一、核心特性对比二、典型场景推荐1. 选择盘古分词的场景2. 选择结巴分词的场景 三、关键指标实测对比1. 分词质量测试&#xff08;F1值&#xff09;2. 性能测试&#xff08;单线程&#xff09; 四、如何选择&#xff1f;决策树五、进阶优化建议1. 盘古分词优化方…...

YOLOv11实战电力设备缺陷检测

本文采用YOLOv11作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv11以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对电力设备缺陷数据集进行训练和优化&#xff0c;该数据集包含丰富的电力设备缺…...

LINUX 5 vim cat zip unzip

dd u撤销 ctrlr取消撤销 q!刚才的操作不做保存 刚才是编辑模式 现在是可视化模式 多行注释...

Redis的常见命令

Redis的常见命令 官方命令文档&#xff1a;https://redis.io/docs/latest/commands/ 文章目录 Redis的常见命令Redis数据结构介绍Redis通用命令1.String类型2.Hash类型3.List类型List类型的常见命令&#xff1a;利用List结构实现&#xff1a;栈、队列、阻塞队列&#xff1a; 4.…...

LeetCode第131题_分割回文串

LeetCode 第131题&#xff1a;分割回文串 题目描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 难度 中等 题目链接 点击在LeetCode中查看题目 示…...

网络钓鱼攻击的威胁和执法部门的作用(第一部分)

在当今的数字世界中&#xff0c;网络犯罪分子不断开发新技术来利用个人、企业和政府机构。 最普遍和最具破坏性的网络犯罪形式之一是网络钓鱼——一种社会工程手段&#xff0c;用于欺骗人们提供敏感信息&#xff0c;例如登录凭据、财务数据和个人详细信息。 随着网络钓鱼攻击…...

用Scala玩转Flink:从零构建实时处理系统

大家好&#xff01;欢迎来到 Flink 的奇妙世界&#xff01;如果你正对实时数据处理充满好奇&#xff0c;或者已经厌倦了传统批处理的漫长等待&#xff0c;那么你找对地方了。本系列文章将带你使用优雅的 Scala 语言&#xff0c;一步步掌握强大的流处理引擎——Apache Flink。 今…...

【LeetCode】算法详解#3 ---最大子数组和

1.题目介绍 给定一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组是数组中的一个连续部分。 1 < nums.length < 105-104 < nums[i] < 104 2.解决思路 要求出…...

基于Python的心衰疾病数据可视化分析系统

【Python】基于Python的心衰疾病数据可视化分析系统 &#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 本项目基于Python开发&#xff0c;重点针对5000条心衰疾病患者的数据进行可视化分析&#…...