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

具身导航中的视觉语言注意力蒸馏!Vi-LAD:实现动态环境中的社会意识机器人导航

  • 作者:Mohamed Elnoor 1 ^{1} 1, Kasun Weerakoon 1 ^{1} 1, Gershom Seneviratne 1 ^{1} 1, Jing Liang 2 ^{2} 2, Vignesh Rajagopal 3 ^{3} 3,
    and Dinesh Manocha 1 , 2 ^{1,2} 1,2
  • 单位: 1 ^{1} 1马里兰大学帕克分校电气与计算机工程系, 2 ^{2} 2美国马里兰大学帕克分校计算机科学系, 3 ^{3} 3马里兰大学帕克分校James Clark工程学院
  • 论文标题:Vi-LAD: Vision-Language Attention Distillation for Socially-Aware Robot Navigation in Dynamic Environments
  • 论文链接:https://arxiv.org/pdf/250-09820
  • 项目主页:https://gamma.umd.edu/researchdirections/crowdmultiagent/vilad/

主要贡献

  • 视觉-语言注意力蒸馏:通过从大型视觉-语言模型(VLM)中提取注意力信息,并将其蒸馏到一个轻量级模型中,以实现实时导航。

  • 社会引导的注意力微调:使用结构相似性指数(SSIM)损失来对齐注意力图,以提高模型对社会行为的理解和响应能力。

  • 模型预测控制集成:结合MPC进行局部运动规划,确保机器人在导航时遵循社会规范并保持平滑的运动轨迹。

  • 性能提升:在现实世界实验中,Vi-LAD在成功率上显著优于现有方法,显示出更高的成功率和更接近人类操作的轨迹。

研究背景

研究问题

  • 传统的导航方法主要关注碰撞避免和几何路径规划,往往将人类视为静态或移动障碍物,而不是具有社会期望的交互智能体。
  • 论文主要解决的问题是如何在动态环境中实现机器人导航,使其能够安全、高效且符合社会规范。

研究难点​

该问题的研究难点包括:

  • 动态环境的不确定性、
  • 人类行为的复杂性和多样性、
  • 以及大规模预训练模型的高计算需求和实时推理的延迟。

​相关工作​

动态场景中的机器人导航
  • 经典导航方法:这些方法依赖于优化驱动和基于规则的策略,如模型预测控制(MPC)和速度障碍(VO)方法。它们主要用于静态障碍物避障,但在处理复杂的人类行为时缺乏适应性。
  • 基于学习的导航方法:这些方法利用数据驱动的模型来提高适应性。模仿学习(IL)允许机器人模仿专家演示,而强化学习(RL)和逆向强化学习(IRL)则通过与环境互动来学习最优导航策略。然而,这些方法在现实应用中面临挑战,如数据质量和多样性限制、模拟到现实的迁移问题等。
大型模型在导航中的应用
  • 大型预训练模型(LPMs):包括大型语言模型(LLMs)和视觉-语言模型(VLMs),这些模型在机器人感知、规划和导航方面表现出色。VLMs在语义分割和物体识别中广泛应用,支持基于自然语言的导航任务。
  • VLMs的应用:VLMs在动态环境中的应用包括路径生成、场景理解和社会行为预测。尽管VLMs在理解社会规范和预测人类运动方面表现出色,但其计算需求高,限制了在资源受限机器人上的实时部署。
知识蒸馏
  • 知识蒸馏技术:通过将大型、计算密集型的教师模型的知识转移到小型、高效的模型中,以促进在资源受限系统中的实时推理。
  • 在机器人导航中的应用:知识蒸馏用于在机器人导航中传递高级推理能力,如语义场景理解和人类行为预测,而无需承担显著的计算成本。现有技术通常忽略了将社会推理整合到导航策略中。

背景

设置与约定

  • 机器人设置:假设机器人是一个地面机器人,配备了一个RGB摄像头和一个IMU(惯性测量单元)。摄像头的坐标系以机器人的质心为中心,X轴指向前进方向,Y轴指向左侧,Z轴指向上方。
  • 输入和输出:机器人接收来自RGB摄像头的图像和来自IMU的方向及运动反馈。机器人使用相同的控制器架构,接收线速度和角速度命令。

预训练模型

  • 视觉特征提取:预训练模型用于提取视觉特征,帮助机器人导航。传统的模型(如ImageNet训练的模型)主要关注物体检测,而不是导航所需的特定线索(如路径、障碍物和人类运动)。
  • 自监督学习:自监督学习(SSL)方法通过自我监督的方式学习特征,但许多方法需要大规模数据或缺乏泛化能力。
  • VANP模型:论文采用了一个名为VANP的自监督视觉-动作模型。该模型通过将视觉观察与动作轨迹对齐来提取导航相关的特征。具体来说,VANP处理一系列过去的图像,并生成一个注意力图,突出显示对导航至关重要的区域。这个过程可以表示为:
    A pretrained = F pretrained ( I RGB , t − n , … , I RGB , t ) \mathcal{A}_{\text{pretrained}} = \mathcal{F}_{\text{pretrained}}(I_{\text{RGB},t-n}, \ldots, I_{\text{RGB},t}) Apretrained=Fpretrained(IRGB,tn,,IRGB,t)
    其中, F pretrained \mathcal{F}_{\text{pretrained}} Fpretrained 表示预训练模型, I RGB , t − n , … , I RGB , t I_{\text{RGB}, t-n}, \ldots, I_{\text{RGB}, t} IRGB,tn,,IRGB,t 表示作为输入的一系列过去RGB图像。

Vi-LAD方法

数据生成

  • 数据集构建:通过利用视觉-语言模型(VLM)生成社会引导的注意力图来构建一个社会导向的导航数据集。这些注意力图突出了导航相关的区域。
  • 标注过程:选择了一个定制化的SCAND数据集子集,并使用VLM进行标注。对于每个样本,定义了三个导航前沿(左、中、右),并在RGB图像上叠加彩色矩形以突出这些区域。
  • VLM查询:使用链式思维(Chain-of-Thought, CoT)提示方法查询VLM,以估计每个前沿被人群占据的可能性。根据这些可能性,生成一个包含社会引导导航线索的注意力图。公式如下:
    P ( f ) = VLM ⁡ ( I RGB , T prompt ) P(f) = \operatorname{VLM}(I_{\text{RGB}}, \mathcal{T}_{\text{prompt}}) P(f)=VLM(IRGB,Tprompt)
    其中, f ∈ { left , center , right } f \in \{\text{left}, \text{center}, \text{right}\} f{left,center,right} 表示导航前沿, T prompt \mathcal{T}_{\text{prompt}} Tprompt 是一个设计用来引出社会背景推理的结构化查询。

蒸馏模型

  • 低秩适应(LoRA):使用低秩适应方法对预训练模型进行微调,而不是更新所有模型参数。这通过引入低秩可训练适配器来实现,同时保持原始模型权重的冻结。
  • 并行管道:在训练期间,模型由三个并行管道组成:
    • 预训练模型( F pretrained \mathcal{F}_{\text{pretrained}} Fpretrained):提取导航相关的注意力图。
    • 蒸馏模型( F Vi-LAD \mathcal{F}_{\text{Vi-LAD}} FVi-LAD):在ResNet50的最后一层提取更新的注意力图。
    • VLM监督:VLM处理RGB图像以生成社会引导的注意力图,提供微调的监督信号。

注意力引导的损失函数

  • 注意力一致性损失:为了整合来自VLM的社会推理,同时保持预训练模型的导航先验,引入了一个注意力一致性损失函数。
  • 损失函数公式:总损失函数结合了两个目标:
    L = ( 1 − λ VLM ) ⋅ L SSIM ( A Vi-LAD , A pretrained ) + λ VLM ⋅ L SSIM ( A Vi-LAD , A VLM ) \mathcal{L} = (1 - \lambda_{\text{VLM}}) \cdot \mathcal{L}_{\text{SSIM}}(\mathcal{A}_{\text{Vi-LAD}}, \mathcal{A}_{\text{pretrained}}) + \lambda_{\text{VLM}} \cdot \mathcal{L}_{\text{SSIM}}(\mathcal{A}_{\text{Vi-LAD}}, \mathcal{A}_{\text{VLM}}) L=(1λVLM)LSSIM(AVi-LAD,Apretrained)+λVLMLSSIM(AVi-LAD,AVLM)
    其中, L SSIM \mathcal{L}_{\text{SSIM}} LSSIM 是注意力图之间的余弦相似度,定义为:
    L SSIM ( A , B ) = 1 − ∑ ( A ⋅ B ) ∥ A ∥ ∥ B ∥ \mathcal{L}_{\text{SSIM}}(A, B) = 1 - \frac{\sum(A \cdot B)}{\|A\| \|B\|} LSSIM(A,B)=1A∥∥B(AB)

社会意识的运动规划器

  • 模型预测控制(MPC)框架:采用一个修改后的MPC框架来生成社会意识的导航轨迹。MPC优化线速度和角速度对,以引导机器人朝向目标,同时确保平滑且社会合规的运动。
  • 社会成本函数:引入一个社会成本函数,通过注意力图( A Vi-LAD \mathcal{A}_{\text{Vi-LAD}} AVi-LAD)对齐机器人的行为与人类导航规范。通过计算投影轨迹与蒸馏注意力图的对齐度来定义社会成本。公式如下:
    s o c ( v , ω ) = max ⁡ ( i , j ) ∈ traj C ( v , ω ) A Vi-LAD ( i , j ) soc(v, \omega) = \max_{(i, j) \in \text{traj}^C(v, \omega)} \mathcal{A}_{\text{Vi-LAD}}(i, j) soc(v,ω)=(i,j)trajC(v,ω)maxAVi-LAD(i,j)
    其中, traj C ( v , ω ) \text{traj}^C(v, \omega) trajC(v,ω) 是投影到代价图的轨迹, A Vi-LAD ( i , j ) \mathcal{A}_{\text{Vi-LAD}}(i, j) AVi-LAD(i,j) 表示在给定位置的分散注意力代价图。

结果与分析

实现与机器人设置

  • 实现:论文使用PyTorch实现了他们的方法,并在Nvidia A6000 GPU上进行模型训练。
  • 机器人设备:在现实世界的实验中,使用了Clearpath Husky机器人,配备了Velodyne VLP16激光雷达、Intel RealSense D435i相机和一台搭载Intel i9处理器和Nvidia RTX 2080 GPU的笔记本电脑。
  • 数据集标注:使用GPT-4o对数据集进行标注,以生成社会引导的注意力图。

比较方法

  • 动态窗口方法:一种基于MPC的方法,使用2D激光雷达扫描进行避障。
  • CoNVOI:一种基于VLM的上下文感知导航方法,使用VLM生成参考轨迹,并由经典规划器执行。
  • VANP:一个自监督预训练模型,用于生成注意力图,并与论文的规划器结合使用。

评估指标

  • 成功率:成功导航试验的比例,即机器人能够到达目标而不冻结或碰撞障碍物的比例。
  • 到达时间:成功试验中机器人到达目标的平均时间(秒)。
  • Fréchet距离:衡量人类遥控机器人轨迹与比较方法轨迹之间的相似性。

测试场景

  • 场景1:包含动态智能体和静态障碍物。
  • 场景2:包含动态智能体、围栏和低矮路缘。
  • 场景3:多个智能体(坐着和行走)、嵌套的围栏柱、椅子和桌子。
  • 场景4:在不同光照条件下有多人行走。

分析与讨论

  • 定量分析:结果显示,Vi-LAD在所有场景中均取得了最高的成功率,并且在所有场景中都表现出与人类遥控操作相似的行为,Fréchet距离较低。
  • 场景1:Vi-LAD比DWA更早开始移动,并且比CoNVOI更快地到达目标,显示出更低的Fréchet距离。
  • 场景2:Vi-LAD能够准确识别路缘并调整轨迹,避免了障碍物和人类的碰撞。
  • 场景3:Vi-LAD成功地绕过障碍物,并保持了对环境中人类存在的意识,显示出更社会合规的导航。
  • 场景4:Vi-LAD能够动态调整其轨迹以应对移动障碍物,确保了安全和高效的导航。

总结

  • 论文提出了Vi-LAD视觉语言注意力蒸馏方法,通过将大型VLM中的社会推理知识蒸馏到轻量级基于变换器的模型中,实现了社会合规且实时的机器人导航。
  • 实验结果表明,Vi-LAD在真实世界实验中显著优于现有的最先进方法,具有更高的成功率和更平滑的运动执行。
  • 未来的工作将探索多模态预训练模型、在线适应策略以及复杂环境中的长距离导航扩展。

相关文章:

具身导航中的视觉语言注意力蒸馏!Vi-LAD:实现动态环境中的社会意识机器人导航

作者:Mohamed Elnoor 1 ^{1} 1, Kasun Weerakoon 1 ^{1} 1, Gershom Seneviratne 1 ^{1} 1, Jing Liang 2 ^{2} 2, Vignesh Rajagopal 3 ^{3} 3, and Dinesh Manocha 1 , 2 ^{1,2} 1,2单位: 1 ^{1} 1马里兰大学帕克分校电气与计算机工程系, 2…...

FreeRTOS入门与工程实践-基于STM32F103(一)(单片机程序设计模式,FreeRTOS源码概述,内存管理,任务管理,同步互斥与通信,队列,信号量)

裸机程序设计模式 裸机程序的设计模式可以分为:轮询、前后台、定时器驱动、基于状态机。前面三种方法都无法解决一个问题:假设有A、B两个都很耗时的函数,无法降低它们相互之间的影响。第4种方法可以解决这个问题,但是实践起来有难…...

算法思想之位运算(二)

欢迎拜访:雾里看山-CSDN博客 本篇主题:算法思想之位运算(二) 发布时间:2025.4.13 隶属专栏:算法 目录 滑动窗口算法介绍六大基础位运算符常用模板总结 例题判定字符是否唯一题目链接题目描述算法思路代码实现 汉明距离题目链接题目…...

软考笔记day04

寻址方式 CISC RISC 流水线技术 存储系统 1、层次化存储系统 2、Cache 3、主存编址计算 输入输出技术 I/O 总线...

本地电脑如何连接windows云服务器

进行远程连接需要几个数据:用户名、密码、公网IP 打开本地cmd,输入命令mstsc打开远程连接面板, 在计算机输入框中输入云服务器的IP地址 点击“选项”展开,点击“本地资源”,然后点击“详细信息” 用户名通常为admin…...

Linux内核常见的调度策略

在 Linux 内核中,调度策略决定了任务如何被分配 CPU 时间以及任务之间的优先级关系。以下是五种常见的调度策略:STOP、DL(Deadline)、RT(Real-Time)、CFS(Completely Fair Scheduler&#xff09…...

【Linux】进程优先级、进程切换、进程调度

Linux 1.进程优先级1.基本概念2.查看进程1.UID2.PRI、NI3.修改优先级(PRI) 3.竞争、独立、并行、并发 2.进程切换3.进程调度1.活动队列2.过期队列3.active、expired指针 1.进程优先级 1.基本概念 优先级:进程得到 CPU 资源分配的先后顺序。优…...

HCIP第十二天

LSA --- 链路状态通告 链路状态类型,链路状态ID,通告路由器 --- LSA的三元组 --- 可以唯一的标识出一条LSA Type --- OSPFv2中,常见的需要掌握LSA有6种 LS ID --- LSA的名字 --- 因为每一种LSA LS ID的生成方式都不相同,所以&am…...

Magnet Pro Macbook窗口分屏管理软件【提高效率工具】

Magnet Pro Macbook窗口分屏管理软件【提高效率工具】 一、介绍 Magnet Pro for Mac,是一款功能强大的窗口分屏管理软件,具有多种布局模式、窗口布局功能和其他工具,可以帮助您高效地进行多任务处理和管理工作。 拖动窗口到边缘&#xff0c…...

控制单元(Control Unit, CU)

一、控制单元的定义与核心作用 控制单元 是 CPU 的核心部件之一,负责 解析指令、生成控制信号 并 协调各硬件部件 的工作时序,确保指令按预定流程正确执行。 核心定位:计算机系统的“指挥中心”,通过控制总线与运算器、存储器、…...

JavaWeb 课堂笔记 —— 10 MySQL DML + DQL

本系列为笔者学习JavaWeb的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖SpringMyBatisSpringMVCSpringBoot等)》,章节分布参考视频教程,为同样学习…...

基于 LSTM 的多特征序列预测-SHAP可视化!

往期精彩内容: 单步预测-风速预测模型代码全家桶-CSDN博客 半天入门!锂电池剩余寿命预测(Python)-CSDN博客 超强预测模型:二次分解-组合预测-CSDN博客 VMD CEEMDAN 二次分解,BiLSTM-Attention预测模型…...

【C++】哈希扩展海量数据处理

目录 位图 位图面试题 C库中的位图bitset 位图优缺点 位图相关题目 布隆过滤器 布隆过滤器的介绍 布隆过滤器的应用 海量数据处理 位图 位图面试题 1.给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个整数是否在这40亿…...

考研数据结构精讲:数组与特殊矩阵的压缩存储技巧(包含真题及解析)

考研数据结构精讲:数组与特殊矩阵的压缩存储技巧 一、数组基础概念 1.1 数组的定义 数组是由相同数据类型的元素构成的有限序列,具有以下核心特性: 维度特性:支持一维到多维结构(常见二维数组)随机访问…...

【Android】ContentResolver的使用

在 Android 中,ContentResolver 是一个非常重要的类,它提供了与 ContentProvider 进行交互的方法。ContentProvider 是用于在不同应用程序之间共享数据的标准接口,而 ContentResolver 则是从客户端(如 Activity 或 Service&#x…...

Python 的 collections 模块

1. deque (双端队列) 定义 deque(读作 “deck”,即双端队列)是一个支持从两端高效添加和删除元素的数据结构。相比列表(list)在头部操作的 O(n) 时间复杂度,deque 的两端操作都是 O(1)。 用途 队列和栈…...

浏览器发起调用到服务器的全过程解析

在 Web 应用的交互过程中,从用户在浏览器输入 URL 发起请求,到最终获取服务器返回的内容,背后涉及多个复杂而有序的步骤。理解这一过程,对于深入掌握 Web 开发、优化应用性能以及排查网络问题都具有重要意义。下面将详细阐述浏览器…...

塑料瓶识别分割数据集labelme格式976张1类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):976 标注数量(json文件个数):976 标注类别数:1 标注类别名称:["Trash plastic"] 每个类别标注的框数…...

RuoYi-Vue升级为https访问-后端安装SSL证书(单台Linux服务器部署)

一、前言 当Nginx已经作为反向代理并成功配置了SSL证书时,前端客户端与Nginx的通信已经是加密的。但Nginx和后端服务之间的连接可能仍然存在明文传输的风险。 如果Nginx和后端服务位于同一台物理机器或者通过安全的内部网络(如私有VLAN或防火墙保护的内网)进行通信,则可以…...

【学习笔记】文件上传漏洞--中间件解析漏洞、编辑器安全

目录 一、IIS 二、Apache HTTP Server 三、Apache HTTPD 未知后缀解析漏洞 四、Apache HTTPD 换行解析漏洞 五、黑、白名单 六、nginx解析漏洞 七、编辑器漏洞 一、IIS 文件夹 正常:image/qq.jpg 执行:image.asp/qq.jpg qq.jpg就会被当做asp解…...

【论文阅读】UniAD: Planning-oriented Autonomous Driving

一、Introduction 传统的无人驾驶采用了区分子模块的设计,即将无人驾驶拆分为感知规划控制三个模块,这虽然能够让无人驾驶以一个很清晰的结构实现,但是感知的结果在传达到规划部分的时候,会导致部分信息丢失,这势必会…...

【第16届蓝桥杯C++C组】--- 数位倍数

Hello呀,小伙伴们,第16届蓝桥杯也完美结束了,无论大家考的如何,都要放平心态,今年我刚上大一,也第一次参加蓝桥杯,刷的算法题也只有200来道,但是还是考的不咋滴,但是拿不…...

【腾讯云智】20250329笔试算法题

文章目录 第一题1. 题目描述2. 思路解析3. AC代码 第二题1. 题目描述2. 思路解析3. AC代码 第三题1. 题目描述2. 思路解析3. AC代码 第一题 1. 题目描述 题目链接:牛牛的水果店 2. 思路解析 这题比较简单,按数学思维把题目的意思翻译过来就是给你一…...

【2025最新】windows本地部署LightRAG,完成neo4j知识图谱保存

之前在服务器部署neo4j失败,无奈只能在本地部署,导致后期所有使用的知识图谱数据都存在本地,这里为了节省时间,先在本地安装LigthRAG完成整个实验流程,后续在学习各种服务器部署和端口调用。从基础和简单的部分先做起来…...

思考力提升的黄金标准:广度、深度与速度的深度剖析

文章目录 引言一、广度的拓展:构建多元知识网络1.1 定义与重要性1.2 IT技术实例与提升策略小结:构建多元知识网络,提升IT领域思考力广度 二、深度的挖掘:追求知识的精髓2.1 定义与重要性2.2 IT技术实例与提升策略小结:…...

7个向量数据库对比:Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant

7个向量数据库对比:Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant 本文简要总结了当今市场上正在积极开发的7个向量数据库,Milvus、Pinecone、Vespa、Weaviate、Vald、GSI 和 Qdrant 的详细比较。 我们已经接近在搜索引擎体验的基础层面上涉…...

计算机组成原理笔记(十五)——3.5指令系统的发展

不同类型的计算机有各具特色的指令系统,由于计算机的性能、机器结构和使用环境不同,指令系统的差异也是很大的。 3.5.1 x86架构的扩展指令集 x86架构的扩展指令集是为了增强处理器在多媒体、三维图形、并行计算等领域的性能而设计的。这些扩展指令集通…...

Rust 中的Relaxed 内存指令重排演示:X=0 Y=0 是怎么出现的?

🔥 Rust 中的内存重排演示:X0 && Y0 是怎么出现的? 在并发编程中,我们经常会听说“内存重排(Memory Reordering)”这个术语,但它似乎总是只出现在理论或者别人口中的幻觉里。本文将通过…...

vp 2023 icpc 合肥 解题补题记录 [F E J G]

gym 链接: https://codeforces.com/gym/104857 F. Colorful Balloons 血签, 用 map 存一下每个颜色气球出现的次数, 找出出现次数大于一半的颜色. #include<bits/stdc.h> using namespace std;#define int long long #define endl \nsigned main() {int n;cin >> …...

学习SqlSugar的跨库查询基本用法

使用SqlSugar操作数据库通常都是单库操作&#xff0c;跨库查询的情况要么是单个系统数据不完整&#xff0c;需要其它系统的关联业务数据支撑&#xff0c;要么就是需要整合汇总多个系统的数据进行数据数据分析、处理、展示。遇到上述情况&#xff0c;可以要求另外的系统提供查询…...

智慧工厂可视化系统,赋能工业生产智能化升级

借助图扑软件 HT 搭建智慧工厂可视化系统。利用先进 3D 建模&#xff0c;对工厂布局、设备运行、生产流程进行逼真复刻。实时展示设备状态、生产进度、质量检测数据等&#xff0c;助力管理者精准洞察生产&#xff0c;高效决策&#xff0c;推动工厂智能化转型。...

案例驱动的 IT 团队管理:创新与突破之路: 第四章 危机应对:从风险预见到创新破局-4.1.2债务评估模型与优先级排序

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 4.1.2 技术债务评估模型与优先级排序&#xff1a;构建智能决策体系一、技术债务的"冰山效应"与量化困境二、三维评估模型&#xff1a;穿透债务迷雾的探照灯2.1 评…...

nfs共享目录主配置文件权限参数

/etc/exports 文件默认为空文件&#xff0c;需要输入nfs共享命令 格式&#xff1a;共享目录的路径 允许访问的NFS客户端(共享权限参数) #编辑共享目录配置文件&#xff08;即/etc/exports&#xff09; [rootserver ~]# mkdir /nfs_share &#xff08;创建共享的目录&#xf…...

C++ 编程指南35 - 为保持ABI稳定,应避免模板接口

一&#xff1a;概述 模板在 C 中是编译期展开的&#xff0c;不同模板参数会生成不同的代码&#xff0c;这使得模板类/函数天然不具备 ABI 稳定性。为了保持ABI稳定&#xff0c;接口不要直接用模板&#xff0c;先用普通类打个底&#xff0c;模板只是“外壳”&#xff0c;这样 AB…...

探索 MCP 和 A2A 协议: 本质上新协议都基于 HTTP的

以下是以 CSDN 博客的形式记录你对 MCP 协议和 A2A 协议数据传递的理解&#xff0c;重点探讨了它们为何基于 HTTP 协议、HTTP 的优势&#xff0c;以及数据传输的本质。文章面向技术社区&#xff0c;结构清晰&#xff0c;适合分享。 探索 MCP 和 A2A 协议&#xff1a;为何新协议…...

Linux网络http与https

应用层协议HTTP 提示 因为现在大多数都是https&#xff0c;所以就用https来介绍http&#xff0c;https比http多了一个加密功能&#xff0c;不影响介绍http。 什么是http 虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的…...

C++ 算法(2):STL list 完全解析,从入门到高效使用

1. list概述 std::list是C标准模板库(STL)中的一个双向链表容器。与vector和deque不同&#xff0c;list不支持随机访问&#xff0c;但它在任何位置插入和删除元素都非常高效&#xff0c;时间复杂度为O(1)。 2. list的基本特性 双向链表结构&#xff1a;每个元素都包含指向前驱…...

【Linux实践系列】:匿名管道收尾+完善shell外壳程序

&#x1f525; 本文专栏&#xff1a;Linux Linux实践项目 &#x1f338;作者主页&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客励志语录&#xff1a; 人生总会有自己能力所不及的范围&#xff0c;但是如果你在你能力所及的范围尽了全部的努力&#xff0c;那你还有什么遗…...

Linux基本指令2

1.head 查看文件的前面内容 head 路径 &#xff1a;查看路径开头部分内容&#xff0c;如下图&#xff1a;head /var/log/messages查看/var/log/messages这个日志中前面内容 head -数字 路径 &#xff1a;查看路径开头指定数字行部分内容&#xff0c;如下图&#xff1a;he…...

Tkinter使用Canvas绘制图形

在Tkinter中,Canvas是一个非常强大的控件,用于绘制图形、显示图片和实现自定义图形界面。通过Canvas,您可以绘制各种形状、线条、文本等,并且能够进行灵活的动画和交互。掌握Canvas的使用将使您能够创建丰富的图形界面。 8.1 创建Canvas控件 Canvas控件是一个区域,用于绘…...

CF985G Team Players

我敢赌&#xff0c;就算你知道怎么做&#xff0c;也必然得调试半天才能 AC。 [Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 图片来自洛谷。 [Analysis] \color{blue}{\texttt{[Analysis]}} [Analysis] 显然不可能正面计算。所以…...

ngx_conf_read_token - events

file_size ngx_file_size(&cf->conf_file->file.info); 获取 配置文件的大小 此时 file_size364 for ( ;; ) {if (b->pos > b->last) { 此时 b->pos 0x5cd4701487e4 b->last 0x5cd47014893c b->start0x5cd4701487d0 条件不成立 ch *b->pos;…...

L2范数与权重衰退

权重衰退 定义损失函数 $ \ell(\mathbf{w}, b) $ 来衡量模型的预测值与真实值的差距 使用L2范数作为硬性限制 通过限制参数值的选择范围来控制模型容量 min ⁡ ℓ ( w , b ) s u b j e c t t o ∥ w ∥ 2 ≤ θ \min \ell(\mathbf{w}, b) \quad \\ subject \ to \|\mathbf{w…...

计算机组成原理笔记(十四)——3.4指令类型

一台计算机的指令系统可以有上百条指令&#xff0c;这些指令按其功能可以分成几种类型&#xff0c;下面分别介绍。 3.4.1数据传送类指令 一、核心概念与功能定位 数据传送类指令是计算机指令系统中最基础的指令类型&#xff0c;负责在 寄存器、主存、I/O设备 之间高效复制数…...

GM DC Monitor v2.0 数据中心监控预警平台-CMDB使用教程(第九篇)

SNMP配置管理功能使用手册 本模块主要用于导入设备厂家的mib库文件&#xff0c;也可以手工创建对应的oid信息&#xff0c;用以实现设备的被动监控功能。 另&#xff1a;系统部署完毕后&#xff0c;已经集成了个别厂家的MIB库数据。 设计思路及使用教程 设计思路&#xff1a;通…...

try-with-resources 详解

try-with-resources 详解 一、基本概念 try-with-resources 是 Java 7 引入的语法结构&#xff0c;用于自动管理资源&#xff08;如文件流、数据库连接等需要关闭的对象&#xff09;。 核心特点 自动资源释放&#xff1a;无需手动调用 close() 简洁代码&#xff1a;减少 tr…...

第二十四:查看当前 端口号是否被占用

查看当前 端口号是否被占用&#xff1a; mac 情况下&#xff1a; lsof -i :端口号 netstat -an | grep 端口号 系统将显示监听该端口的进程信息&#xff0c;包括进程名称、进程ID、用户和协议等。如果需要更多信息&#xff0c;可以添加-P和-n参数&#xff0c;例如&#xf…...

【数据结构与算法】——堆(补充)

前言 上一篇文章讲解了堆的概念和堆排序&#xff0c;本文是对堆的内容补充 主要包括&#xff1a;堆排序的时间复杂度、TOP 这里写目录标题 前言正文堆排序的时间复杂度TOP-K 正文 堆排序的时间复杂度 前文提到&#xff0c;利用堆的思想完成的堆排序的代码如下&#xff08;包…...

【Web功能测试】Web商城搜索模块测试用例设计深度解析

Web商城的搜索模块功能测试用例设计 1.搜索功能设计 1.1 搜索框设计 位置显眼&#xff1a;通常置于页面顶部中央&#xff0c;符合用户习惯。 智能提示&#xff08;Autocomplete&#xff09;&#xff1a;输入时实时推荐关键词、商品或分类&#xff08;如“手机 苹果”&#x…...

ubuntu 18.04安装tomcat,zookeeper,kafka,hadoop,MySQL,maxwell

事情是这样的&#xff0c;因为昨天发现我用的ubuntu16.04官方不维护了&#xff0c;以及之前就觉得不是很好用&#xff0c;于是升级到了18.04。如图&#xff1a; 但是&#xff01;由于为备份升级前忘记关闭服务&#xff0c;上面装好的东西所剩无几。 于是我重装了。。。 如何启…...