ChatBEV:一种理解 BEV 地图的可视化语言模型
25年3月来自上海交大、上海AI实验室、同济大学和MAGIC的论文“ChatBEV: A Visual Language Model that Understands BEV Maps”。
交通场景理解对于智能交通系统和自动驾驶至关重要,可确保车辆安全高效地运行。虽然 VLM 的最新进展已显示出整体场景理解的前景,但 VLM 在交通场景中的应用(尤其是使用 BEV 地图)仍未得到充分探索。现有方法通常受任务设计和数据量限制的影响,从而阻碍全面的场景理解。为了应对这些挑战,推出 ChatBEV-QA,这是一个BEV VQA 基准,包含超过 137,000 个问题,旨在涵盖广泛的场景理解任务,包括全局场景理解、车辆-车道交互和车辆-车辆交互。该基准使用数据收集流水线构建,为 BEV 地图生成可扩展且信息丰富的 VQA 数据。进一步微调专门的视觉语言模型 ChatBEV,使其能够解释不同的问题提示并从 BEV 地图中提取相关的上下文-觉察信息。此外,提出一种语言驱动的交通场景生成流程,其中 ChatBEV 有助于地图理解和文本对齐的导航指导,显著增强真实一致的交通场景的生成。
如图所示ChatBEV-QA和以此微调的ChatBEV模型:
自动化数据构建流程
本文提出一个三步自动化流程,用于从 nuPlan [7] 数据集生成 ChatBEV-QA 数据,如图 a 所示。首先,设计各种问题以涵盖全面理解任务。然后,提取必要的注释并生成信息丰富的 BEV 地图。最后,VQA 生成器根据问题、注释和 BEV 地图创建 VQA 数据。
步骤 1:问题设计。从三个方面获得全面理解,并据此进一步开发六种不同类型的问题:
全局理解:识别更广泛的环境背景对于预测车辆行为至关重要。不同的场景会产生不同的运动模式,例如,交叉路口的车辆更有可能转弯,而停车场的车辆则倾向于保持静止。为了捕捉这些上下文信息,引入两个关键问题:区域类型(用于对周围环境进行分类,例如交叉路口、停车场)和车道类型(用于指定车道类别,例如直行、左转),从而有助于更精确地预测车辆行为。
车-车道交互:近期研究经常忽略车-车道交互,而车-车道交互对于响应道路特征、交通规则和环境因素的自适应导航至关重要。为了增强该领域的推理能力,引入两个关键方面:位置(用于识别车辆占用的精确车道)和导航(根据左转或直行等特定引导确定最相关的车道)。这些考虑因素有助于实现更明智的轨迹预测和稳健的场景理解。
车-车交互:车-车交互对于空间关系建模至关重要,直接影响行为协调。为了评估这些相互作用,引入两个关键方面:存在性(确定特定方向上附近车辆的存在)和相对方向(评估最近和最远车辆的方向)。这些考虑因素增强了对交通动态的理解,并改进了预测模型。
这些问题提供了一个结构化的框架,用于理解场景中车辆行为和相互作用的各个维度。为了增加多样性,为每种问题类型设计多个模板。
步骤 2:数据收集和注释。nuPlan 的原始注释涵盖车辆位置、速度和车道细节等基本信息。增强数据集,并设计一个标注器,它具有广泛的基于规则函数,可以提取高级语义信息并适用于所设计的问题。通过一个迭代的人工参与审查过程,严格改进函数的设计,以确保其输出与人类判断紧密一致。对于场景中每个时间步的每辆车,利用包含以下字段的设计函数生成 JSON 格式的输出:1). 区域类型,指示车辆当前所处的区域类型;2). 车道类型,指定车辆当前所处车道的类型;3). 轨迹,描述接下来 50 个时间步长内与车辆轨迹对应的类别;4). 轨迹车道,捕获接下来 50 帧内与轨迹对应的所有车道 ID。5). 相关车辆,存储位于车辆周围四个方向上的其他车辆的 ID;6). 距离,计算当前车辆与场景中所有其他车辆之间的距离,如上图 a 的第二部分所示。
然后,根据 nuPlan 的原始地图和轨迹注释为每个场景中的每辆车生成 BEV 地图,坐标原点放在本车的位置。感兴趣的车辆以红色突出显示以引起注意,箭头指示其运动方向。生成的 BEV 地图清楚地标记车道边界和区域划分,为车辆与车道交互和整体理解提供必要的信息。
步骤 3:VQA 对生成。有了问题模板和注释,可以通过 VQA 生成器生成问答对。对于车道类型和区域类型的问题,生成器随机选择一个模板并使用相应的注释文本作为答案。对于位置和导航问题,通过提供多项选择题来简化问题。具体来说,提供两个边框:一个正确,一个来自非重叠车道的干扰项。位置问题的正确答案,是当前车道的地面真值边框,而对于导航问题,用真值轨迹类型作为问题提示,正确答案对应于与真值实轨迹相关的车道边框。对于存在性和相对方向性问题,生成器首先选择一个方向,然后根据空间关系标注得出答案。
原始 nuPlan 数据集呈现长尾分布,例如直车道上车辆数量较多,而转弯车道上车辆相对较少,这导致答案类别分布不平衡,可能会使模型性能偏向更常见的场景。为了缓解这个问题,采用一种随机欠采样技术,在数据集构建过程中选择性地从占多数的类别中移除一定比例的样本,从而促进更均衡的分布。
数据集统计数据和指标
由于整个 nuPlan 数据集非常庞大,从 nuPlan-mini 拆分中构建数据,从而提供更小、更易于管理的子集。总体而言,ChatBEV-QA 包含 25331 张 BEV 图像的 137818 个问答对,其中 21634 张 BEV 图像上有 116112 个问题用于训练,3697 张 BEV 图像上有 21706 个问题用于测试,平均每张图像约有 5.44 个问题。上图 b 和上图 c 分别显示训练集上每个问题的问题类型和答案分布,突出显示 ChatBEV-QA 的均衡组成。此外,设计的自动化数据创建流程允许无缝扩展到完整的 nuPlan 数据集,从而有助于获取更多数据用于未来的实验。这是一个专注于 BEV 地图的 VQA 数据集,旨在全面理解场景及其中各种元素之间的相互作用。 由于设计的问题的答案属于特定集合,因此用 Top-1 准确率作为评估指标,这与以往 VQA 研究中常用的做法一致。还分别评估不同类型问题的表现,以便更详细地了解模型在场景理解各个方面的表现。
ChatBEV 系列模型
除了拟议的数据集外,本文还提供基线模型。由于 BEV 表示固有的紧凑性,其包含不同于自然图像的特定结构和与任务相关的语义信息,现有的 VLM 直接应用于此任务已被证明不够充分。为了解决这个问题,通过使用 LoRA 进行视觉指令调整,对几个高级 VLM [15, 24, 27, 27] 进行微调,并根据 BEV 地图理解的独特需求进行定制。根据不同的基础 VLM,经过微调的模型分别表示为 ChatBEV-LLaVA-1.5-7b、ChatBEV-LLaVA-1.5-13b、ChatBEV-BLIP 和 ChatBEV-InternLM-XComposer2,在捕捉 BEV 地图中的空间关系和上下文推理方面表现出不同程度的性能,其中 ChatBEV-LLaVA-1.5-13b 的性能优于其他模型。
本文提出一种基于扩散的架构,其中 ChatBEV 充当地图理解提取器,提供全面的场景理解,从而生成更精确、更符合上下文的输出。推理过程如图所示。
问题表述
按照 [53, 54] 将场景生成任务表述为一个模仿学习问题。从数学上讲,给定一个包含 N 辆车的场景,将所有车辆在 T 个时间步长内的状态定义为 S = [S_1, S_2, ···, S_N],其中 S_i = [s1_i, s1_i,···, sT_i],st_i = (xt_i, y_it, v_it, θ_it) 表示车辆 i 在第 t 个时间步长的当前状态(二维位置、速度和偏航角)。类似地,可以定义相应的动作A,这里A_i = [a0_i, a1_i,···,aT−1_i],每个 at_i=(v ̇_it, θ ̇_it) 是车辆 i 在第 t 个时间步的动作(加速度和偏航角速度)。状态 s_it+1 可以通过单轮车动力学模型f计算得出,s_it+1 = f (s_it, a_it)。整体轨迹表示为 τ = [A, S]。用 C = (I, D, Sh, M) 表示决策相关上下文,其中I是局部语义图,D是文本描述,Sh = [S−H, · · · , S^0] 表示车辆的 H 个先前状态,M 是额外的 BEV 图理解信息。目标是根据与决策相关的背景生成真实且文本一致的交通轨迹。
地图理解提取器
给定场景中车辆的初始状态和相应的文本描述,首先提取地图理解信息 M,并将其与原始输入集成,形成下一个模块的最终输入。
这里,考虑两种有助于后续场景生成的地图理解信息,包括全局理解信息 V 和场景推理信息 P。考虑到车辆对场景的整体理解(例如其当前所在的区域和车道)会影响其特定的运动模式,引入全局理解信息 V = [R, L],它是区域类型 one-hot 向量 R 和车道类型 one-hot 向量 L 的串联。为了提供更精确且文本对齐的导航引导,引入导航推理信息,表示为 P。它表示车辆根据文本中描述的轨迹类型可能选择的最可能车道的中心线数据。这里 N_s 表示相关车道数,N_p 表示每条车道中心线的点数,d 表示每个点的维度。
在训练过程中,通过将车辆的初始位置转换为区域和车道类型的 one-hot 向量来获得全局理解。导航推理基于真值轨迹附近的道路。在推理过程中,根据文本描述生成一张 BEV 图像和一个问题。经过微调的 ChatBEV 会检索区域、车道类型以及合理车道的边框。通过收集该边框内的所有车道,最终完成导航推理。
条件扩散
条件编码器。条件编码器旨在有效地集成各种条件输入,并提供信息丰富的条件嵌入,从而促进后续的解码过程。在提取器之后,条件编码器为每个场景接受三种类型的输入:初始状态 S^h、文本描述 D 和地图理解信息 M = ([R, L], P)。对于每个输入,使用相应的前馈编码模块提取嵌入,然后沿时间维度广播,之后将它们连接起来形成最终的条件嵌入 E。
扩散解码器。给定条件输入,扩散解码器通过迭代细化噪声数据在每个时间步生成预测轨迹。这里采用 CTG++ [53] 作为扩散解码器模块。该过程首先将来自条件编码器的条件嵌入与来自前馈模块的预测未来轨迹嵌入沿时间维度连接起来。正弦位置编码应用于公司内时间动态。采用去噪步骤 k 的正弦位置编码来融入时间动态。编码后的轨迹,经过时间注意模块来捕捉智体关系,然后经过空间注意模块来捕捉几何关系。之后,地图注意层,将车道点转换为车道向量,从而通过多头注意机制实现地图-觉察。最后,将编码后的轨迹投影回输入维度,生成预测的动作轨迹,再经过动态函数计算得出结果。
相关文章:
ChatBEV:一种理解 BEV 地图的可视化语言模型
25年3月来自上海交大、上海AI实验室、同济大学和MAGIC的论文“ChatBEV: A Visual Language Model that Understands BEV Maps”。 交通场景理解对于智能交通系统和自动驾驶至关重要,可确保车辆安全高效地运行。虽然 VLM 的最新进展已显示出整体场景理解的前景&…...
利用Python爬虫实现百度图片搜索的PNG图片下载
在图像识别、训练数据集构建等场景中,我们经常需要从互联网上批量下载图片素材。百度图片是中文搜索中最常用的来源之一。本文将介绍如何使用Python构建一个稳定、可扩展的百度图片爬虫,专门用于下载并保存高清PNG格式图片。 一、项目目标 本项目的目标…...
自主可控鸿道Intewell工业实时操作系统
鸿道Intewell工业实时操作系统是东土科技旗下科东软件自主研发的新一代智能工业操作系统,以下是相关介绍: 系统架构 -Intewell-C全实时构型:设备上只运行自研RTOS的全实时系统,适用于有功能安全认证需求的实时控制场景…...
【数据结构入门训练DAY-21】信息学奥赛一本通T1334-围圈报数
文章目录 前言一、题目二、解题思路结语 前言 本次训练内容 STL库中队列的使用练习。训练解题思维 一、题目 有n个人依次围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数&am…...
【C语言】C语言中的字符函数和字符串函数全解析
前言 在C语言编程中,字符和字符串的处理是必不可少的。C语言标准库提供了丰富的字符和字符串函数,这些函数极大地简化了字符和字符串的操作。本文将详细介绍这些函数的使用方法、模拟实现以及一些实用的代码示例,帮助你更好地理解和掌握它们…...
声纹振动传感器在电力监测领域的应用
声纹振动传感器在电力监测领域有多种应用,主要包括以下几个方面: 变压器监测 故障诊断:变压器在运行过程中会产生特定的声纹和振动信号,当变压器内部出现故障,如绕组短路、铁芯松动、局部放电等,其声纹和振…...
配色之道:解码产品设计中的UI设计配色艺术
在数字化时代,用户界面(UI)作为产品与用户交互的桥梁,其设计质量直接影响着用户体验与产品成败。而配色,作为UI设计中最为直观且富有表现力的元素之一,不仅是视觉美学的体现,更是情感传递、信息…...
python基础语法测试
1. 关于Python语言数值操作符,以下选项中描述错误的是 A x%y表示x与y之商的余数,也称为模运算 B x/y表示x与y之商 C x**y表示x的y次幂,其中,y必须是整数 D x//y表示x与y之整数商,即不大于x与y之商的最大整数2. 下面代码…...
如何安装Visio(win10)
首先下载下面这些文件 HomeStudent2021Retail.img officedeploymenttool_17531-20046.exe office中文语言包.exe 确保这些文件都在一个文件夹内(我已经上传这些资源,这些资源都是官网下载的) 官网资源下载教程 1.下载Office镜像࿰…...
Sql刷题日志(day5)
面试: 1、从数据分析角度,推荐模块怎么用指标衡量? 推荐模块主要目的是将用户进行转化,所以其主指标是推荐的转化率推荐模块的指标一般都通过埋点去收集用户的行为并完成相应的计算而形成相应的指标数据,而这里的驱动…...
.NET、java、python语言连接SAP系统的方法
💡 本文会带给你 可用哪些技术与Sap系统连接怎样用Rfc技术连接SAP一. SAP系统与外部系统集成技术 SAP系统提供了多种方式供Java、.NET、Python等外部编程语言进行连接和集成。 1. RFC (Remote Function Call) 连接 适用语言:Java, .NET, Python, 其他支持RFC的编程语言 …...
C++ 容器查找效率
C 容器查找效率 只要选对容器,多写几行代码就能让程序“飞”起来。下面用生活化的比喻 足够多的带注释示例,帮你弄懂常用 STL 容器的查找特性。 读完你应该能快速判断:“我的场景该用哪一个?” 0. 先把“查找复杂度”聊明白 记号…...
汽车可变转向比系统的全面认识
一、什么是转向比? 转向比又叫转向传动比,是指方向盘转向角度与车轮转向角度之比。 例如,方向盘向左转动了60角,而车轮则向左转动了30角,转向比就是2:1。 转向比越大,意味着要使车轮转向达到指…...
知识储备-后仿
仿真环境设定 mem、constant input(scan/test)等设非x初值无复位ff通过force-release处理vcs timing_check、optconfigfile (自定义配置,如指定模块timing check与否)设置运行核数、仿真精度不要过小设置、根据测试目的选择性关闭、dump范围(时间/空间)…...
C# AutoResetEvent 详解
一、简介 AutoResetEvent 是 .NET 中一个重要的线程同步原语,用于线程间的信号通知。下面我将从多个方面详细讲解 AutoResetEvent。 AutoResetEvent 是 System.Threading 命名空间下的一个类,它表示一个线程同步事件,在等待线程被释放后会自…...
【水印图片文字识别】水印相机拍摄的照片提取重要的信息可以批量改名,批量识别水印文字内容批量给图片改名,基于QT和腾讯OCR的识别方案
应用场景 在日常工作和生活中,人们使用水印相机拍摄的照片往往包含重要的信息,如拍摄地点、时间、事件等。这些信息以水印的形式存在于照片中。当需要对大量照片进行管理时,手动为每张照片重命名是一项繁琐且容易出错的工作。通过批量识别水印文字内容并为图片改名,可以提…...
【架构】Armstrong公理系统通俗详解:数据库设计的基本法则
关系数据库就像一本精心设计的通讯录,而Armstrong公理系统则是帮我们整理这本通讯录的基本规则。本文将用简单易懂的语言和生活实例,带你理解这套看似复杂的理论。 1. 什么是函数依赖? 想象你有一个学生信息表,包含学号、姓名、…...
Redis高频核心面试题
1.阐述Redis的主要的特性和优势 ? 【Redis 的主要特性】 (1)Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库 (2)Redis 与其他 key - value 缓存产品有以下三个特点&a…...
Vue3-原始值的响应式方案ref
一、原始类型的值 原始类型的指的是: boolean、number、string、symbol、undefind和null等类型的值. 一、初识ref 为什么vue3需要对原始值的响应式做单独处理?因为Javascript中的Proxy只能代理对象类型的数据, 如普通对象、数组、Set、Map等。 为了解决Proxy不能代理原始类…...
VUE的创建
Vue Vue的创建脚手架创建Vue的解析setup函数:插值表达式数据响应式 ⽬录和⽂件解读指令 Vue的创建 下载VScode https://code.visualstudio.com/download 加入拓展包 点击 然后输入代码 <!DOCTYPE html> <html lang"en"><head><meta charset&…...
第51讲:AI在农业政策支持系统中的应用——用人工智能点亮科学决策的新范式
目录 🧠 开篇引导:农业决策,如何更科学? 🤖 什么是“AI驱动的农业政策支持系统”? 🧪 案例解析:AI如何助力农业政策? 🌾 案例一:政策补贴的智能匹配 🌍 案例二:土地利用规划支持 🛠 AI在农业政策建模中的常用技术 📈 可视化与接口建议 🌟 未来…...
开关电源LM5160-Q1 在 Fly-Buck 电路中的硬件设计与 PCB Layout 优化
一、LM5160-Q1 规格书深度解读与硬件设计参数提取 核心功能 宽输入范围:4.5V~65V,支持汽车级输入电压波动(AEC-Q100 标准,温度等级 1:-40C~125C)。 集成度:内置高侧 / 低侧 MOSFET,无需外部肖特基二极管,同步降压 / Fly-Buck 双模式。 控制架构:自适应恒定导通时间…...
面向 C# 初学者的完整教程
🧱 一、项目结构说明 你的项目大致结构如下: TaskManager/ ├── backend/ │ ├── TaskManager.Core/ // 实体类和接口 │ ├── TaskManager.Infrastructure/ // 数据库、服务实现 │ └── TaskManager.API/ // We…...
Python实现孔填充与坐标转换
一、问题背景 在工业自动化、材料加工等领域,常需要在图像识别的闭合区域内生成等间距的孔位坐标。本文基于OpenCV库,提出一种从图像边界提取到物理坐标生成的完整解决方案,实现以下核心功能: 像素坐标到实际尺寸的转换安全间距…...
精益数据分析(16/126):掌握关键方法,探寻创业真谛
精益数据分析(16/126):掌握关键方法,探寻创业真谛 大家好!在创业与数据分析的学习道路上,每一次的探索都让我们离成功更近一步。今天,我带着和大家共同进步的初心,继续深入解读《精…...
pytorch(gpu版本安装)
Pytorch官网下载很慢 选择以下方法,关于版本对应从pytorch官网查看 官网方法 pip install torch2.2.0 torchvision0.17.0 torchaudio2.2.0 --index-url https://download.pytorch.org/whl/cu121 其他方法 pip install torch2.2.0cu121 torchvision0.17.0cu121 t…...
day001
文章目录 1. 常用Linux发行版本2. 常用的Linux系统及版本3. Linux系统运行在哪?4. 安装kylin虚拟机4.1 环境准备4.2 新建虚拟机4.3 配置虚拟机参数4.4 同意系统使用协议4.5 登录系统,查看ip4.6 保存系统快照 5. 远程连接5.1 连接类型对比5.2 使用Xshell连…...
k8s 证书相关问题
1.重新生成新证书 kubeadm init phase certs apiserver-etcd-client --config ~/kubeadm.yaml这个命令表示生成 kube-apiserver 连接 etcd 使用的证书,生成后如下 -rw------- 1 root root 1.7K Apr 23 16:35 apiserver-etcd-client.key -rw-r--r-- 1 root root 1.2K Apr 23 …...
Spring JDBC 的开发步骤(注解方式)
Spring JDBC 的开发步骤主要包括以下关键环节,结合代码示例说明如下: 1. 添加依赖 在 pom.xml 中引入 Spring JDBC 和数据库驱动依赖(以 HikariCP 连接池和 MySQL 为例): <!-- Spring JDBC --> <dependency…...
蓝桥杯 15.小数第n位
小数第n位 原题目链接 题目描述 我们知道,整数做除法时,有时会得到有限小数,有时会得到无限循环小数。 如果我们把有限小数的末尾加上无限多个 0,它们就具有了统一的形式。 本题的任务是:在上述约定下,…...
[计算机科学#1]:计算机的前世今生,从算盘到IBM的演变之路
【核知坊】:释放青春想象,码动全新视野。 我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!! 内容摘要:在我们的日常生活中,计算机无处不在——…...
【LangChain4j】AI 第一弹:LangChain4j 的理解
一、LangChain4j 的简介 1.1 LangChain4j的背景 LangChain4j(LangChain for java) 的目标是简化将大语言模型(LLM - Large Language Model)集成到 Java 应用程序中的过程。 官网: https://docs.langchain4j.dev 202…...
深入解析C++ STL Stack:后进先出的数据结构
一、引言 在计算机科学中,栈(Stack)作为一种遵循后进先出(LIFO)原则的数据结构,是算法设计和程序开发的基础构件。C STL中的stack容器适配器以简洁的接口封装了底层容器的操作,为开发者提供了…...
3.2 Agent核心能力:感知、规划、决策与执行
智能代理(Agent)是一种能够在复杂环境中自主运作的计算实体,其智能行为依赖于四大核心能力:感知(Perception)、规划(Planning)、决策(Decision-making)和执行…...
(即插即用模块-特征处理部分) 四十一、(2024) MSAA 多尺度注意力聚合模块
文章目录 1、Multi-Scale Attention Aggregation Module2、代码实现 paper:CM-UNet: Hybrid CNN-Mamba UNet for Remote Sensing Image Semantic Segmentation Code:https://github.com/XiaoBuL/CM-UNet 1、Multi-Scale Attention Aggregation Module 传…...
【速写】hook与fx
文章目录 问题方法方法 1:使用 PyTorch 的 register_forward_hook方法 2:自定义前向传播(修改 forward 方法)方法 3:使用 output_attentions 或 output_hidden_states方法 4:使用 torch.fx 进行动态追踪总结…...
基于javaweb的SpringBoot扶农助农平台管理系统设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
用户模块-SpringEvent观察者模式
1. 背景与需求 在很多系统中,我们常常需要对用户的行为进行处理,比如发放奖励、处理通知等。在这个例子中,我们希望在两个场景下发放“改名卡”这个奖励: 用户注册时:当一个新用户注册成功时,我们希望立即发…...
三目云台转动性能稳定性
三目云台是一种具备三个摄像头或观测窗口的云台设备,其转动性能对于实现全方位、多角度的监控或观测至关重要。以下是对三目云台转动的详细分析: 一、转动原理 云台本身是一种摄像机稳定器,通过内置的电机和控制系统实现转动。三目云台则在…...
Python基础语法3
目录 1、函数 1.1、语法格式 1.2、函数返回值 1.3、变量作用域 1.4、执行过程 1.5、链式调用 1.6、嵌套调用 1.7、函数递归 1.8、参数默认值 1.9、关键字参数 2、列表 2.1、创建列表 2.2、下标访问 2.3、切片操作 2.4、遍历列表元素 2.5、新增元素 2.6、查找元…...
45、子类需要重写父类的构造函数嘛,子类自己的构造函数呢?
45、子类需要重写父类的构造函数嘛,子类自己的构造函数呢? 一、子类是否需要重写父类的构造函数? 1. 不需要重写的场景 基类有无参构造函数 若父类(基类)显式或隐式定义了无参构造函数,子类无需重写构造函…...
C语言 ——— 分支循环语句
目录 分支循环语句 单分支 多分支 switch 分支语句 牛刀小试 判断一个数是否是奇数 输出 1-100之间 的奇数 计算 n 的阶乘 计算 1! 2! 3! ... n! 在一个有序数组中查找具体的某一个数字 打印 100-200 之间的素数 求两个整数的最大公约数 getchar函数 和 putc…...
解耦旧系统的利器:Java 中的适配器模式(Adapter Pattern)实战解析
在现代软件开发中,我们经常需要与旧系统、第三方库或不一致接口打交道。这时候,如果能优雅地整合这些不兼容组件,又不破坏原有结构,就需要一位“翻译官” —— 适配器模式。本文将通过 Java 实例,详细讲解适配器模式的…...
C++学习之游戏服务器开发十五QT登录器实现
目录 1.界面搭建 2.登录客户端步骤分析 3.拼接登录请求实现 4.发送http请求 5.服务器登录请求处理 6.客户端处理服务器回复数据 7.注册页面启动 8.qt启动游戏程序 1.界面搭建 2.登录客户端步骤分析 3.拼接登录请求实现 CGI 程序处理流程 程序员自己写程序处理各种业务 …...
搭建Stable Diffusion图像生成系统实现通过网址访问(Ngrok+Flask实现项目系统公网测试,轻量易部署)
目录 前言 背景与需求 🎯 需求分析 核心功能 网络优化 方案确认 1. 安装 Flask 和 Ngrok 2. 构建 Flask 应用 3. 使用 Ngrok 实现内网穿透 4. 测试图像生成接口 技术栈 实现流程 优化目标 实现细节 1. 迁移到Flask 2. 持久化提示词 3. 图像下载功能 …...
第五章:5.3 ESP32物联网应用:阿里云IoT平台与腾讯云IoT平台的数据上传与远程控制
一、阿里云IoT平台接入 1. 准备工作 注册阿里云账号 访问阿里云官网,注册并完成实名认证。创建产品和设备 进入物联网平台控制台 → 公共实例 → 创建产品(例如产品名称“ESP32_Sensor”,节点…...
【AI News | 20250423】每日AI进展
AI Repos 1、suna Suna是一款完全开源的AI助手,旨在通过自然对话帮助用户轻松完成现实世界的任务。它作为您的数字伙伴,提供研究、数据分析和日常问题解决等功能,并结合强大的能力与直观的界面,理解您的需求并交付成果。Suna的工…...
3.1 Agent定义与分类:自主Agent、协作Agent与混合Agent的特点
随着人工智能技术的快速发展,智能代理(Agent)作为一种能够感知环境、自主决策并采取行动的计算实体,已成为人工智能领域的重要研究对象和应用工具。特别是在大模型(Large Models)的赋能下,Agent…...
stack和queue的学习
stack的介绍 stack的文档介绍 stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,…...
leetcode-位运算
位运算 371. 两整数之和 题目 给你两个整数 a 和 b ,不使用 运算符 和 - ,计算并返回两整数之和。 示例 1: 输入: a 1, b 2 输出: 3 示例 2: 输入: a 2, b 3 输出: 5 提示&am…...