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

BEVFusion论文阅读

1. 简介

融合激光雷达和相机的信息已经变成了3D目标检测的一个标准,当前的方法依赖于激光雷达传感器的点云作为查询,以利用图像空间的特征。然而,人们发现,这种基本假设使得当前的融合框架无法在发生 LiDAR 故障时做出任何预测,无论是轻微还是严重。这从根本上限制了实际场景下的部署能力。相比之下,在BEVFusion框架中,其相机流不依赖于 LiDAR 数据的输入,从而解决了以前方法的缺点。

有两个版本的BEVFusion,分别是北大与阿里合作的Bevfusion: A Simple and Robust LiDAR-Camera和麻省理工发表的Bevfusion: Multi-task multi-sensor fusion with unified bird's-eye view representation,下面分别进行介绍。

2. PKU BEVFusion

作者认为,LiDAR和相机融合的理想框架应该是,无论彼此是否存在,单个模态的每个模型都不应该失败,但同时拥有两种模态将进一步提高感知准确性。为此,作者提出了一个令人惊讶的简单而有效的框架,它解决了当前方法的LiDAR相机融合的依赖性,称为BEVFusion。具体来说,如图1 (c)所示,作者的框架有两个独立的流,它们将来自相机和LiDAR传感器的原始输入编码为同一BEV空间内的特征。然后作者设计了一个简单的模块,在这两个流之后融合这些BEV的特征,以便最终的特征可以传递到下游任务架构中。由于作者的框架是一种通用方法,作者可以将当前用于相机和LiDAR的单模态BEV模型合并到作者的框架中。作者采用Lift-Splat-Shoot作为相机流,它将多视图图像特征投影到3D车身坐标特征以生成相机BEV特征。同样,对于LiDAR流,作者选择了三个流行的模型,两个基于超体素(voxel)的模型和一个基于柱子(pillar)的模型将LiDAR特征编码到BEV空间中。

图1 框架对比。以前的融合方法可以大致分为 (a) 点级point-level融合机制,将图像特征投影到原始点云上,即找到点云和图像特征对应的部分,融合信息,以及 (b) 特征级融合机制,分别在每个视图图像上投影LiDAR特征或proposal以提取RGB信息。(c) 相比之下,作者提出一个新框架,相机和lidar的输入分开
图2 BEVFusion框架。两个流分别提取特征并将它们转换到相同的BEV空间:i)将相机视图特征投影到3D车身坐标以生成相机BEV特征;ii) 3D backbone从点云中提取LiDAR BEV特征。然后融合两种模态的BEV特征。最后,基于融合的BEV特征构建特定任务的头部,并预测3D目标。其中蓝框是预测,红圈是错误预测

3. MIT BEVFusion

3.1. 统一表示

不同的视图中可以存在不同的特征。例如,相机特征在透视视图中,而激光雷达/雷达特征通常在3D/鸟瞰视图中。即使是相机功能,每个功能都有不同的视角(即前、后、左、右)。这个视图差异使得特征融合变得困难,因为不同特征张量中的相同元素可能对应完全不同的空间位置(在这种情况下,naive elementwise特征融合将不起作用)。因此,找到一个共享的表示是至关重要的,这样(1)所有传感器特征都可以很容易地转换为它而不丢失信息,(2)它适合于不同类型的任务。

相机。在RGB-D数据的激励下,一种选择是将LiDAR点云投影到相机平面上,并渲染2.5D稀疏深度。然而,这种转换在几何上是有损的。深度图上的两个邻居在3D空间中可以彼此远离。这使得相机视图对于专注于物体/场景几何的任务(如3D物体检测)的效果较差。

激光雷达。大多数最先进的传感器融合方法用相应的摄像机特征(例如语义标签、CNN特征或虚拟点)装饰LiDAR点。然而,这种摄像头到激光雷达的投影在语义上是有损耗的。相机和激光雷达功能的密度有很大的不同,导致只有不到5%的相机功能与激光雷达点匹配(对于32通道激光雷达扫描仪)。放弃相机特征的语义密度严重损害了模型在面向语义任务(如BEV地图分割)上的性能。类似的缺点也适用于潜在空间中的最新融合方法(例如,对象查询)。

鸟瞰图。采用鸟瞰图(BEV)作为融合的统一表示。这个视图对几乎所有的感知任务都是友好的,因为输出空间也是在BEV中。更重要的是,向BEV的转换同时保持几何结构(来自激光雷达特征)和语义密度(来自相机特征)。一方面,LiDAR- bev投影将稀疏的LiDAR特征沿高度维度平坦化,从而不会在图1a中产生几何失真。另一方面,相机到BEV投影将每个相机特征像素投射回3D空间中的射线(下一节将详细介绍),这可能导致图1c中密集的BEV特征映射,其中保留了来自相机的完整语义信息。

3.2. 高效的摄像头到BEV的转换

摄像头到BEV的转换不是简单的,因为与每个摄像头特征像素相关的深度本质上是模糊的。根据LSS和BEVDet,他们明确地预测了每个像素的离散深度分布。然后,他们将每个特征像素沿摄像机射线分散到D个离散点,并根据相应的深度概率重新缩放相关特征(图3a)。这将生成一个大小为N HW D的相机特征点云,其中N是相机的数量,(H, W)是相机特征映射的大小。该三维特征点云沿x、y轴进行量化,步长为r(例如0.4m)。他们使用BEV池化操作来聚集每个r × r BEV网格中的所有特征,并沿z轴将特征平坦化。

虽然简单,但BEV池化的效率和速度惊人地低,在RTX 3090 GPU上需要超过500毫秒(而他们模型的其余部分只需要大约100毫秒)。这是因为摄像特征点云非常大:对于典型的工作负载,每帧可能生成大约200万个点,比激光雷达特征点云的密度大两个数量级。为了克服这一效率瓶颈,他们提出了通过预计算和间隔缩短来优化BEV池。

预先计算。BEV池化的第一步是将摄像机特征点云中的每个点与BEV网格关联。与LiDAR点云不同,相机特征点云的坐标是固定的(只要相机的intrinsic和extrinsics保持不变,这通常是在适当校准后的情况下)。在此基础上,他们预先计算每个点的3D坐标和BEV网格索引。他们还根据网格索引对所有点进行排序,并记录每个点的排名。在推理过程中,他们只需要根据预先计算的秩对所有特征点进行重新排序。这种缓存机制可以将网格关联的延迟从17ms减少到4ms。

间隔的减少。网格关联后,同一BEV网格内的所有点在张量表示中都是连续的。BEV池化的下一步是通过一些对称函数(例如,均值、最大值和和)聚合每个BEV网格中的特征。如图3b所示,现有实现首先计算所有点的前缀和,然后减去索引变化边界处的值。然而,前缀和操作需要GPU上的树约简,并产生许多未使用的部分和(因为他们只需要边界上的那些值),这两者都是低效的。为了加速特征聚合,他们实现了一个专门的GPU内核,它直接在BEV网格上并行:他们为每个网格分配一个GPU线程,计算它的间隔和并将结果写回来。该内核消除了输出之间的依赖关系(因此不需要多级树约化),并避免将部分和写入DRAM,将特征聚合的延迟从500ms减少到2ms(图3c)。

其他。通过优化的BEV池化,相机到BEV的转换速度提高了40倍:延迟从超过500ms减少到12ms(仅占他们模型端到端运行时间的10%),并且在不同的特征分辨率上都能很好地伸缩(图3d)。这是在共享BEV表示中统一多模态感官特征的关键使能器。我们同时进行的两项工作也确定了仅在相机的3D检测中的效率瓶颈。他们通过假设均匀的深度分布或截断每个BEV网格中的点来近似视图转换器。相比之下,他们的技术是精确的,没有任何近似,同时仍然更快。

3.3. 全卷积融合

将所有的感官特征转换为共享的BEV表示,他们可以很容易地用一个元素操作符(如拼接)将它们融合在一起。尽管在同一空间中,由于视图转换器的深度不准确,LiDAR BEV特征和相机BEV特征仍然会在一定程度上出现空间错位。为此,他们应用了一个基于卷积的BEV编码器(带有一些剩余块)来补偿这种局部失调。他们的方法可能从更精确的深度估计中受益(例如,用地面真实深度监视视图转换器),他们将其留给未来的工作。

3.4. 多任务头

他们将多个特定于任务的头应用到融合BEV特征图中。他们的方法适用于大多数3D感知任务。他们展示了两个例子:三维物体检测和BEV地图分割。

检测。他们使用特定于类的中心热图头来预测所有对象的中心位置,并使用一些回归头来估计对象的大小、旋转和速度。我们建议读者参考之前的3D检测论文[1, 67, 68]了解更多细节。

分割。不同的地图类别可能会重叠(例如,人行横道是可驾驶空间的子集)。因此,他们将这个问题表述为多个二进制语义分割,每个类一个。他们遵循CVT,用标准focal loss来训练分割头。

参考文献

https://download.csdn.net/blog/column/11257654/134724055

Bevfusion: A Simple and Robust LiDAR-Camera

BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework - 知乎

BEVFusion:A Simple and Robust LiDAR-Camera Fusion Framework 论文笔记_bevfusion: a simple and robust lidar-camera fusion-CSDN博客

Bevfusion: Multi-task multi-sensor fusion with unified bird's-eye view representation

技术精讲 | BEVFusion: 基于统一BEV表征的多任务多传感器融合-CSDN博客 

BEVFusion论文解读-CSDN博客

相关文章:

BEVFusion论文阅读

1. 简介 融合激光雷达和相机的信息已经变成了3D目标检测的一个标准,当前的方法依赖于激光雷达传感器的点云作为查询,以利用图像空间的特征。然而,人们发现,这种基本假设使得当前的融合框架无法在发生 LiDAR 故障时做出任何预测&a…...

【总结盘点类】2024,一场关于海量数据治理以及合理建模的系列写作

目录 1.今年的创作路线 2.先说第一条线 2.1.由日志引出的海量文本数据存储和分析问题 2.2.监控以及监控的可视化 2.3.数据量级再往上走牵扯出了大数据 2.4.由大数据牵扯出的JAVA线程高级内容 3.第二条线,也是2025要继续的主线 1.今年的创作路线 今年的写作内…...

【25考研】考清华的软件工程专业的研究生需要准备什么?

清华软件复试竞争一样很激烈!建议同学认真复习! 关于项目的注意事项先来一些总结: 千万别照抄开源项目 开源项目是一个很好的参考,但直接搬过来就没啥意义啦。我们可以根据开源项目学习它的技术架构和关键点,然后结…...

网络编程-UDP套接字

文章目录 UDP/TCP协议简介两种协议的联系与区别Socket是什么 UDP的SocketAPIDatagramSocketDatagramPacket 使用UDP模拟通信服务器端客户端测试 完整测试代码 UDP/TCP协议简介 两种协议的联系与区别 TCP和UDP其实是传输层的两个协议的内容, 差别非常大, 对于我们的Java来说, …...

EXCEL的一些用法记录

按某个分隔符进行拆分多列 【数据】- 【分列】 多列调整成多行 复制 - 粘贴 - 选择【转置】 部分内容替换 SUBSTITUTE()函数 ,固定内容 加“”...

不使用 JS 纯 CSS 获取屏幕宽高

前言 在现代前端开发中,获取屏幕的宽度和高度通常依赖于 JavaScript。然而现代 CSS 也可以获取到屏幕的宽高,通过自定义属性(CSS Variables)和一些数学函数来实现这一目标。本文将详细解析如何使用 CSS 的 property 规则和一些数…...

Node.js 完全教程:从入门到精通

Node.js 完全教程:从入门到精通 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,允许开发者在服务器端使用 JavaScript。它的非阻塞 I/O 和事件驱动架构使得 Node.js 非常适合于构建高性能的网络应用。本文将详细介绍 Node.js 的安装、基本语…...

可替代CentOS 7的Linux操作系统选型

可替代CentOS 7的其他Linux操作系统选型 一、背景介绍二、主流操作系统调研2.1 企业级产品:Red Hat Enterprise Linux/CentOS Stream2.1.1 Red Hat Enterprise Linux2.1.2 CentOS Stream2.2 其他发行版:Debian/Ubuntu2.3 开源产品:AlmaLinux / RockyLinux2.3.1 AlmaLinux2.3…...

【ESP32】ESP32连接JY61P并通过WIFI发送给电脑

前言 手头上有个ESP32&#xff0c;发现有wifi功能&#xff0c;希望连接JY61P并通过WIFI把姿态数据发送给电脑 1.采用Arduino IDE编译器&#xff1b;需要安装ESP32的开发板管理器&#xff1b; 2.电脑接受数据是基于python的&#xff1b; 1. ESP32 连接手机WIFI #include <…...

【JSqlParser】Java使用JSqlParser解析SQL语句总结

简述 Java解析SQL语句有很多工具都可以做到&#xff0c;比如Mybatis、Druid、目前用来用去最全面的仍然是Jsqlparser&#xff0c;它是一个Github上的开源项目&#xff0c;JSqlParser是一个用于解析SQL语句的Java库&#xff0c;它可以帮助开发者分析和操作SQL语句的结构。无论是…...

TCP断开通信前的四次挥手(为啥不是三次?)

1.四次握手的过程 客户端A发送 FIN&#xff08;终止连接请求&#xff09; A&#xff1a;我要断开连接了&#xff08;FIN&#xff09;。A进入FIN_WAIT_1状态&#xff0c;表示请求断开&#xff0c;等待对方确认。 服务器B回复 ACK&#xff08;确认断开请求&#xff0c;但还未准备…...

解决用 rm 报bash: /usr/bin/rm: Argument list too long错

但目录里面文件过多用 rm 报bash: /usr/bin/rm: Argument list too long错时怎么办&#xff1a; 看看以下操作记录 rootmcu:/# cd /tmp rootmcu:/tmp# rm -f /tmp/chunk* bash: /usr/bin/rm: Argument list too long rootmcu:/tmp# rm -rf /tmp/chunk* bash: /usr/bin/rm: Arg…...

AI News(1/21/2025):OpenAI 安全疏忽:ChatGPT漏洞引发DDoS风险/OpenAI 代理工具即将发布

1、OpenAI 的安全疏忽&#xff1a;ChatGPT API 漏洞引发DDoS风险 德国安全研究员 Benjamin Flesch 发现了一个严重的安全漏洞&#xff1a;攻击者可以通过向 ChatGPT API 发送一个 HTTP 请求&#xff0c;利用 ChatGPT 的爬虫对目标网站发起 DDoS 攻击。该漏洞源于 OpenAI 在处理…...

从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)

从零到上线&#xff1a;Node.js 项目的完整部署流程&#xff08;包含 Docker 和 CI/CD&#xff09; 目录 项目初始化&#xff1a;构建一个简单的 Node.js 应用设置 Docker 环境&#xff1a;容器化你的应用配置 CI/CD&#xff1a;自动化构建与部署上线前的最后检查&#xff1a;…...

哈希桶(开散列)

文章目录 前言实现插入put方法实现get方法实现泛型类哈希桶 前言 哈希桶用来解决哈希冲突&#xff0c;牺牲空间换取时间。 通过数组和链表来实现哈希桶 public class Node{public int key;public int value;public Node next;public Node(int key,int value){this.keykey;this…...

DEBERTA:具有解耦注意力机制的解码增强型BERT

摘要 近年来&#xff0c;预训练神经语言模型的进展显著提升了许多自然语言处理&#xff08;NLP&#xff09;任务的性能。本文提出了一种新的模型架构DeBERTa&#xff08;具有解耦注意力机制的解码增强型BERT&#xff09;&#xff0c;通过两种新技术改进了BERT和RoBERTa模型。第…...

WWW2025 多模态对话系统意图识别挑战赛方案总结

WWW2025 多模态对话系统意图识别挑战赛方案 代码实现&#xff1a;https://github.com/klayc-gzl/incent_internvl_2.5_8b 最终成绩&#xff1a; 大赛背景 互联网已成为提供客户服务的主要沟通渠道。网络客户服务面临的一个关键挑战是服务对话中多模态意图的高效识别。通过利…...

渗透测试--攻击常见的Web应用

本文章咱主要讨论&#xff0c;常见Web应用的攻击手法&#xff0c;其中并不完全&#xff0c;因为Web应用是在太多无法囊括全部&#xff0c;但其中的手法思想却值得我们借鉴&#xff0c;所以俺在此做了记录&#xff0c;希望对大家有帮助&#xff01;主要有以下内容&#xff1a; 1…...

w173疫苗发布和接种预约系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

常用的跨域方案有哪些?

在前端开发中&#xff0c;跨域&#xff08;Cross-Origin&#xff09;是一个常见问题&#xff0c;通常是由于浏览器的同源策略&#xff08;Same-Origin Policy&#xff09;限制导致的。为了解决跨域问题&#xff0c;前端开发者可以采用多种方案。 1. CORS&#xff08;跨域资源共…...

JS通过ASCII码值实现随机字符串的生成(可指定长度以及解决首位不出现数值)

在之前写过一篇“JS实现随机生成字符串&#xff08;可指定长度&#xff09;”&#xff0c;当时写的过于简单和传统&#xff0c;比较粗放。此次针对此问题&#xff0c;对随机生成字符串的功能进行优化处理&#xff0c;对随机取到的字符都通过程序自动来完成。 在写之前&#xff…...

IoTDB 1.2 升级 1.3 后 Pipe 插件失效

问题现象 客户使用 Pipe 功能将数据从 IoTDB 系统传输至 Kafka 集群&#xff0c;以便进行后续的数据处理与分析。在从企业版 1.2.5 升级至企业版 1.3.3.6 后&#xff0c;客户反馈 Kafka 的 consumer 无法接收到数据。经检查日志&#xff0c;发现存在以下报错&#xff1a; 问题…...

基于STM32的智能门锁安防系统(开源)

目录 项目演示 项目概述 硬件组成&#xff1a; 功能实现 1. 开锁模式 1.1 按键密码开锁 1.2 门禁卡开锁 1.3 指纹开锁 2. 功能备注 3. 硬件模块工作流程 3.1 步进电机控制 3.2 蜂鸣器提示 3.3 OLED显示 3.4 指纹与卡片管理 项目源代码分析 1. 主程序流程 (main…...

浅谈云端编辑器,分析其亮点与不足

浅谈云端编辑器&#xff0c;分析其亮点与不足 这个云端编辑器界面可以分为左侧题目筛选栏、中间题目描述与代码编辑区域、右侧AI提示功能三部分。以下是详细的分析&#xff1a; 1. 左侧题目筛选栏 层次结构清晰&#xff1a;左侧栏展示了一个层级结构&#xff0c;题目按主题分…...

Python字符串引号的嵌套问题

目录 1、使用不同类型的引号 2、使用转义字符 3、使用三重引号 4、嵌套三重引号 5、注意事项 在Python中&#xff0c;字符串可以使用单引号 () 或双引号 (") 来定义&#xff0c;但是如果我们要定义的字符串内也包含引号&#xff0c;字符串界定符的不正确使用会导致语法…...

latex如何让目录后面有点

使用前效果 在导言区引入以下代码 \usepackage[subfigure]{tocloft} \usepackage{subfigure} % 设置目录中 section 条目前导符号为连续点 \renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}}编译后的效果...

【力扣系列题目】不同路径 组合总和 最大连续1个数 打家劫舍{持续更新中...}

文章目录 不同路径不同路径[不同路径 II](https://leetcode.cn/problems/unique-paths-ii/)[不同路径 III](https://leetcode.cn/problems/unique-paths-iii/) 组合总和组合总和 【无重复数字无限制选择次数】[组合总和 II](https://leetcode.cn/problems/combination-sum-ii/)…...

方法建议ChatGPT提示词分享

方法建议 ChatGPT能够根据您的具体需求提供针对性的建议&#xff0c;帮助您选择最合适的研究方法。通过清晰的提示&#xff0c;ChatGPT可以精准地为您提供最契合的研究方案。此外&#xff0c;它还能协助您将这些方法灵活地应用于新的研究环境&#xff0c;提出创新的技术解决方案…...

Cursor的详细使用指南

以下是一份关于 Cursor 的详细使用指南&#xff1a; 一、安装与设置 下载与安装&#xff1a; 首先&#xff0c;访问 Cursor 的官方网站&#xff0c;根据你的操作系统&#xff08;Windows、Mac 或 Linux&#xff09;下载相应的安装程序。运行安装程序&#xff0c;按照屏幕上的提…...

Python----Python高级(正则表达式:语法规则,re库)

一、正则表达式 1.1、概念 正则表达式&#xff0c;又称规则表达式,&#xff08;Regular Expression&#xff0c;在代码中常简写为regex、 regexp或RE&#xff09;&#xff0c;是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff0…...

电脑如何访问手机文件?

手机和电脑已经深深融入了我们的日常生活&#xff0c;无时无刻不在为我们提供服务。除了电脑远程操控电脑外&#xff0c;我们还可以在电脑上轻松地访问Android或iPhone手机上的文件。那么&#xff0c;如何使用电脑远程访问手机上的文件呢&#xff1f; 如何使用电脑访问手机文件…...

计算最接近的数

计算最接近的数 真题目录: 点击去查看 E B卷 100分题型 题目描述 给定一个数组X和正整数K&#xff0c;请找出使表达式&#xff1a; X[i] - X[i 1] - … - X[i K - 1] 结果最接近于数组中位数的下标 i &#xff0c;如果有多个 i 满足条件&#xff0c;请返回最大的 i. 其中&…...

Ubuntu离线docker compose安装DataEase 2.10.4版本笔记

1、先准备一个可以正常上网的相同版本的Ubuntu系统&#xff0c;可以使用虚拟机。Ubuntu系统需要安装好docker compose或docker-compose 2、下载dataease-online-installer-v2.10.4-ce.tar在线安装包&#xff0c;解压并执行install.sh进行安装和启动 3、导出docker镜像 sudo d…...

C#使用WMI获取控制面板中安装的所有程序列表

C#使用WMI获取控制面板中安装的所有程序列表 WMI 全称Windows Management Instrumentation,Windows Management Instrumentation是Windows中用于提供共同的界面和对象模式以便访问有关操作系统、设备、应用程序和服务的管理信息。如果此服务被终止&#xff0c;多数基于 Windo…...

WPF2-1在xaml为对象的属性赋值.md

1. AttributeValue方式 1.1. 简单属性赋值1.2. 对象属性赋值 2. 属性标签的方式给属性赋值3. 标签扩展 (Markup Extensions) 3.1. StaticResource3.2. Binding 3.2.1. 普通 Binding3.2.2. ElementName Binding3.2.3. RelativeSource Binding3.2.4. StaticResource Binding (带参…...

社区版Dify实现文生视频 LLM+ComfyUI+混元视频

社区版Dify实现文生视频 LLMComfyUI混元视频 一、 社区版Dify实现私有化混元视频效果二、为什么社区版Dify可以在对话框实现文生视频&#xff1f;LLMComfyUI混元视频 实现流程图&#xff08;重点&#xff09;1. 文生视频模型支持ComfyUI2. ComfyUI可以轻松导出API实现封装3. Di…...

QT调用OpenSceneGraph

OSG和osgQt编译教程&#xff0c;实测通过 一、下载OpenSceneGraph OpenSceneGraphhttps://github.com/openscenegraph/OpenSceneGraph 二、使用CMAKE编译OpenSceneGraph 1.打开cmake&#xff0c;配置源代码目录 2. CMAKE_INSTALL_PREFIX设置为install文件夹&#xff0c;生…...

Qt基础项目篇——Qt版Word字处理软件

一、核心功能 本软件为多文档型程序&#xff0c;界面是标准的 Windows 主从窗口 拥有&#xff1a;主菜单、工具栏、文档显示区 和 状态栏。 所要实现的东西&#xff0c;均在下图了。 开发该软件&#xff0c;主要分为下面三个阶段 1&#xff09;界面设计开发 多窗口 MDI 程序…...

【Postgres_Python】使用python脚本批量创建和导入多个PG数据库

之前批量创建和导入数据库分为2个python脚本进行&#xff0c;现整合优化代码合并为一个python脚本&#xff0c;可同步实现数据库的创建和数据导入。之前的文章链接&#xff1a; 【Postgres_Python】使用python脚本批量创建PG数据库 【Postgres_Python】使用python脚本将多个.S…...

消息队列篇--原理篇--RabbitMQ和Kafka对比分析

RabbitMQ和Kafka是两种非常流行的消息队列系统&#xff0c;但它们的设计哲学、架构特点和适用场景存在显著差异。对比如下。 1、架构设计 RabbitMQ&#xff1a; 基AMQP协议&#xff1a;RabbitMQ是基于AMQP&#xff08;高级消息队列协议&#xff09;构建的&#xff0c;支持多…...

俄语画外音的特点

随着全球媒体消费的增加&#xff0c;语音服务呈指数级增长。作为视听翻译和本地化的一个关键方面&#xff0c;画外音在确保来自不同语言和文化背景的观众能够以一种真实和可访问的方式参与内容方面发挥着重要作用。说到俄语&#xff0c;画外音有其独特的特点、挑战和复杂性&…...

【机器学习实战中阶】音乐流派分类-自动化分类不同音乐风格

音乐流派分类 – 自动化分类不同音乐风格 在本教程中,我们将开发一个深度学习项目,用于自动化地从音频文件中分类不同的音乐流派。我们将使用音频文件的频率域和时间域低级特征来分类这些音频文件。 对于这个项目,我们需要一个具有相似大小和相似频率范围的音频曲目数据集…...

Keil5 IDE使用笔记

1 Keil生成bin文件 $K\ARM\ARMCLANG\bin\fromelf.exe --bin --outputL/L.bin !L $K: 表示 Keil 5的安装路径 L: 表示 工程名 !L: 表示 工程名.arf 后缀的文件 可根据实际需要修改 --output 的值调整生成的bin文件的存放路径。 2 下载程序报错 No ST-LINK detected Error: Fla…...

自动化办公|使用Python重命名并移动文件到对应文件夹

在日常的文件管理和处理过程中&#xff0c;我们可能会遇到需要将文件整理到不同文件夹中的需求。例如&#xff0c;我们有一个包含多个文件的目录&#xff0c;文件名的首字符表示文件应该存放在哪个文件夹中。我们可以使用Python脚本来自动完成这个任务&#xff0c;实现文件的分…...

【全栈】SprintBoot+vue3迷你商城(5)

【全栈】SprintBootvue3迷你商城&#xff08;5&#xff09; 上一期我们基本完成了与用户相关的接口&#xff0c;而这些接口都是用户才能干的事情&#xff0c;如果你没登录&#xff0c;那么这些接口功能你都不能实现。 那么如何做到这一步呢&#xff1f; 1.Token 作用 身份…...

Java 并发编程:Java 中的乐观锁与 CAS

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 025 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…...

模拟飞行入坑(五) P3D 多通道视角配置 viewgroup

背景&#xff1a; P3D进行多个屏幕显示的时候&#xff0c;如果使用英伟达自带的屏幕融合成一个屏&#xff0c;或者使用P3D单独拉伸窗口&#xff0c;会使得P3D的画面被整体拉伸&#xff0c;又或者,当使用Multichannel进行多个设备联动时&#xff0c;视角同步组合需要配置&#…...

react中hooks之 React 19 新 Hooks useActionState useFormStatus用法总结

React 19 新 Hooks 使用指南: useActionState & useFormStatus 目录 useActionStateuseFormStatus最佳实践 useActionState 概述 useActionState 是 React 19 引入的新 Hook&#xff0c;用于处理表单 action 的状态更新。它允许你基于表单 action 的结果来更新组件状态…...

为AI聊天工具添加一个知识系统 之48 蒙板程序设计(第二版):Respect九宫格【社会形态:治理】

本文要点 1、词汇表Vocabulary &#xff08;普通名词&#xff09; 1) 三组词&#xff08;数据库支持的三个数字散列&#xff09;&#xff1a; 工作&#xff0c;工件&#xff0c;工具。论题&#xff0c;主题词&#xff0c;关键字。口号&#xff0c;符号&#xff0c;编号。 2…...

靠右行驶数学建模分析(2014MCM美赛A题)

笔记 题目 要求分析&#xff1a; 比较规则的性能&#xff0c;分为light和heavy两种情况&#xff0c;性能指的是 a.流量与安全 b. 速度限制等分析左侧驾驶分析智能系统 论文 参考论文 两类规则分析 靠右行驶&#xff08;第一条&#xff09;2. 无限制&#xff08;去掉了第一条…...