模态链:利用视觉-语言模型从多模态人类视频中学习操作程序
25年4月来自谷歌 DeepMind 和斯坦福大学的论文“Chain-of-Modality: Learning Manipulation Programs from Multimodal Human Videos with Vision-Language-Models”。
从人类视频中学习执行操作任务,是一种很有前景的机器人教学方法。然而,许多操作任务需要在执行过程中改变控制参数,例如力度,而单靠视觉数据无法捕捉到这些参数。本研究利用传感设备(例如测量人体肌肉活动的臂环和录制声音的麦克风)来捕捉人体操作过程中的细节,并使机器人能够提取任务规划和控制参数来执行相同的任务。为了实现这一目标,本文引入模态链(CoM),这是一种提示策略,使视觉-语言模型能够推理多模态人类演示数据——视频与肌肉或音频信号相结合。通过逐步整合来自各个模态的信息,CoM 可以完善任务规划并生成详细的控制参数,使机器人能够基于单个多模态人类视频提示执行操作任务。实验表明,与基线相比,CoM 在提取任务规划和控制参数方面准确率提高三倍,并且对现实世界机器人实验中的新任务设置和目标,具有很强的泛化能力。
机器人能否仅通过观看一段人类手部视频演示来学习执行具有挑战性的体力操作任务(例如,扭动打开水瓶或击鼓)?实现此功能的一种方法是从视频中识别人类任务规划,然后将其转换为可执行的机器人技能。虽然视频理解领域的最新进展,在动作识别方面显示出令人鼓舞的结果 [26],但许多操作技能需要精确指定控制参数,而这些参数无法轻易地从纯视觉信息中推断出来,例如,轻轻握住以旋转手中的钥匙,用力按压插头以插入,轻轻敲击鼓以发出柔和的声音。这种约束限制了机器人仅通过观看人类视频来执行各种操作任务的能力。
从视频中理解人类活动。理解视频中的人类活动一直是计算机视觉领域的长期研究重点 [6, 12, 16, 17, 29]。早期的研究主要旨在通过分类来捕捉视频的高级语义 [56, 61]。为了提取更详细的信息,后期的研究开始专注于从视频中推导任务规划 [7, 20, 67]。然而,这些方法往往受限于对特定训练数据集的依赖,因此很难推广到未见过的动作类别。近年来,大型视觉-语言模型的发展在促进视觉-语言模型 (VLM) 从视频中理解人类活动方面取得了令人瞩目的成果 [25]。
机器人与控制的基础模型。近年来,基础模型在机器人技术领域取得了显著进展,涵盖了从高级推理到低级控制的各个领域 [15, 19]。早期研究主要关注语言条件下的机器人推理和规划,其中任务使用自然语言定义 [2, 9, 21, 23, 32, 33, 39, 51, 57, 66]。然而,某些操作任务——尤其是涉及空间模糊性或需要细粒度控制的任务——难以仅用语言来指定。视觉-语言模型 (VLM) 的最新进展引入了更具表现力的任务规范,例如视觉注释 [18, 22, 36, 54]。另一方面,为了将基础模型应用于机器人控制,一些颇具前景的方法已经出现,包括目标条件策略的子目标选择 [11, 46, 50]、轨迹优化的奖励或约束生成 [22, 31, 64],以及基于感知和控制原语的代码生成 [30, 52]。
从人类视频中学习操作。近期大量研究探索利用人类视频数据来教授机器人操作技能 [3, 5, 13, 14, 24, 28, 37, 42, 43, 47–49, 53, 55, 58, 60, 62, 65]。这些工作专注于从人类视频中提取不同的信息,例如物体 affordance [4, 27]、运动轨迹 [55, 59, 68]、任务动态 [34, 41] 和奖励表征 [8, 35, 44, 45]。[24, 55, 68] 等工作训练的操作策略以人类或机器人视频为条件,而不是语言指令。尽管这些方法很有效,但由于它们只从视频(图像序列)中学习,它们无法推断出许多操作任务所需的重要细节,例如需要施加多大的力。
这里的核心挑战是,从人类视频数据中提取任务规划非常困难,因为纯视觉数据缺乏识别这些规划所需的细节。一个关键的观察是,人类任务规划中的许多细节,例如力和速度等控制参数,可以通过附加信号(例如人体肌肉活动和物体交互声音)更好地捕捉。例如,当插入电源插头时,人们会先用较小的力抓住插头,调整其在手中的方向,然后在将其插入插座时牢牢握住。
这项工作利用传感设备,例如配备肌肉传感器的现代臂环和带麦克风的运动相机,来收集包含图像、肌肉活动和物体交互声音的多模态演示视频。它们提供关于人类在操作过程中何时以及如何施加身体力量的附加信息。然而,有效地利用这些信号需要新的从多模态人类演示视频进行推理的方法。视觉-语言模型 (VLM) 能够解决广泛的实际问题,从视觉推理到信号处理 [63],甚至用于控制机器人的代码生成 [30]。长上下文输入的最新进展进一步使 VLM 能够将视频和长序列数字信号作为输入 [10]。这不禁要问:VLM 能否作为通用的推理模型,从多模态演示视频中推断出人类的任务规划?大多数 VLM 应用程序仍然只接受一种模态作为输入。
为了应对这一挑战,本文引入模态链 (CoM),这是一个框架,它促使 VLM 逐个分析每个模态,通过整合来自每个模态的新信息逐步完善答案。如图所示:
该系统设计中,其任务是以单个多模态人体演示视频作为输入,并生成机器人可执行代码来执行视频中演示的操作任务。该系统包含三个主要组件:(1) 收集多模态人类视频;(2) 用于理解多模态人类视频的模态链;以及 (3) 生成代码并控制机器人。
多模态人类演示视频
视频通常难以捕捉人体执行操作任务的细微细节,尤其是涉及施力的场景。为了应对这些挑战,考虑将多模态人体视频在每个时间步长上包含 RGB 图像、人体肌肉信号或物体交互声音以及手势(如上图所示)。它们共同构成了对人体任务规划的更全面视图。带有肌肉传感器(EMG)的臂带捕捉的人体肌肉信号,或麦克风捕捉的物体交互声音,可以提供必要的力信息,这些信息可以指示人体在整个任务过程中施加力的时间和大小。此外,为了提供关于人体手部运动的更详细信息,使用基于视觉的方法[38]来估计手势,并将指尖的像素位置作为另一种输入模态。
模态链
接下来,用视觉-语言模型 (VLM) 分析此类多模态人类视频中提供的丰富信息,以提取任务规划描述。VLM 需要处理来自所有模态的信号:以正确的时间顺序识别人类动作,并确定每个动作的控制参数(例如,目标物体的名称、运动方向)。为此,使用 VLM 的一种方法是直接查询模型,将所有模态交错排列在一个序列中(如图 (a) 所示)。然而,最先进的 VLM(例如 Gemini 1.5 Pro [40]、GPT-4o [1])通常难以关联不同模态之间的信息,从而导致诸如忽略某些输入或尝试从错误的模态中提取信息等问题。为了提升 VLM 理解多模态人体视频的性能,本文提出模态链 (CoM,如图 (b) 所示),这是一种提示策略,它要求 VLM 按顺序分析每个模态,提取关键信息并逐步汇总结果以生成最终答案。
提示模态链。CoM 提示由三部分组成:(1) 每种模态及其输入数据格式的描述;(2) 可用动作集的描述以及动作参数的说明;以及 (3) 一个视频-到-分析对的示例,介绍如何分析每种模态以生成一系列带有参数的可识别动作。
模态链示例。上图右展示一个使用 CoM 分析多模态人类视频的示例。在此视频中,一个人用左手握住瓶子,用右手拧开瓶盖。CoM 按顺序分析每个输入模态,并根据之前的分析优化答案。在图中,用不同的颜色突出显示每种模态贡献的新信息。在第一阶段,VLM 分析力或听觉信号,并找出人何时施加和释放力。然后,它推断出人施加力的次数。但是,如果没有手和图像信息,就不清楚人到底在做什么。在第二阶段,VLM 结合手部姿势信息。它现在识别出人在施加力时处于抓握和扭转状态。手指位置还表明在握住瓶子时逆时针扭转约 180 度,而在释放时顺时针旋转手指。但是,由于没有图像数据,任务中出现的物体仍然未知。在第三阶段,VLM 整合图像数据。它识别出左手握住瓶子,右手扭动瓶盖。利用这些信息,VLM 生成动作函数,指定每个时间步的详细动作参数。注:示例提示中未出现任何任务或目标。示例提示仅用于演示分析的输出格式和可用技能库。
编写机器人代码
基于上述获得的人类视频分析,最后一步是将动作序列转换为带有低级 API 调用的机器人可执行代码。使用相同的 VLM 执行此代码生成 [30],以创建完成任务的操作程序。代码生成的提示,包括视频分析以及机器人 API 的描述和所需的输出格式,例如:
生成高级任务规划的示例。以下是针对上述开瓶任务生成的程序示例:
VLM 整合 CoM 的视频分析,并生成详细的开瓶任务规划,其中包括使用右侧夹持器握住瓶盖逆时针旋转,以及不握住瓶盖顺时针旋转。它还生成一个 for 循环脚本,来指定周期性旋转动作。
控制参数生成示例。除了生成任务规划外,在诸如将插头插入电源板等接触密集型任务中,VLM 还可以生成控制参数来指定力的使用:
利用多模态人类视频中的力信息,VLM 指定在不同任务阶段施加的力大小,允许使用“移动到”功能通过将插头推向墙壁(force = 20)来重新调整手中插头的方向,并在将插头插入电源板时牢牢握住插头(force = 100)。
实现细节
数据收集。肌肉信号 (EMG) 包含八个通道,采样率为 200Hz。由于摄像头的记录频率为 60Hz,对肌肉信号进行下采样以匹配摄像头的采样率,并使用八个通道中的最大值作为每个时间步的力信号。与音频信号类似,计算每个时间步的声音响度作为输入音频值。对于手势估计,用 HaMeR [38] 来定位指尖的像素位置。
机器人执行。机器人 API 调用由预定义的控制函数组成,这些函数将生成的程序“扎根”于现实世界的机器人系统中。这些 API 受益于感知模型的最新进展。例如,在实验中,所有目标定位都是通过使用 RGB-D 图像和目标物体的名称(在生成的程序中指定)查询 Gemini 1.5 Pro 来执行的,这会直接在 RGB 图像上围绕目标物体生成一个 2D 边框。然后,利用深度信息和相机参数创建检测边框内实体的三维点云,并使用平均三维位置来表示物体的位置。这些开放词汇 API 简化生成的程序与机器人感知系统之间的连接,直接增强基于代码机器人策略的能力。
实验设置
基线。将基线分为两类:具有不同输入模态的基线和具有不同 VLM 推理程序的基线。对于具有不同输入模态的方法,基线包括:(1) 仅图像 - 仅使用视频图像输入;(2) 无图像 - 使用力和手势输入,不使用图像输入;(3) 无力 - 不包括力输入;(4) 无手势 - 不包括手势输入;以及 (5) 全部 - 使用所有三种输入模态:力、手势和图像。对于具有不同 VLM 推理程序的方法,基线包括:(1)Merg - 合并所有模态输入并直接生成最终答案;(2)Merg-Sep - 合并所有输入但为每种模态生成单独的答案;(3)Sep-Merg - 分离每种模态输入,然后直接生成一个最终答案;(4)Sep-Sep - 分离每种模态输入并为每个模态生成单独的答案,然后生成最终答案;(5)Ours - 本文按顺序处理每种模态,在分析前一种模态的基础上分析每种模态,直到得到最终答案。
任务。设计两类任务:多模态视频分析和使用生成程序进行真实世界机器人评估。在多模态视频分析中,在四个任务上测试所有方法:按压立方块、插入插头、打鼓和开瓶子。这些任务具有长任务范围、力敏感性和双手操作的特点。每个任务包含 10 个包含不同目标和摄像机视点的测试视频。对于每个基线,对每个视频查询 VLM 三次,并报告生成在视频中观察的正确人类任务规划平均成功率,以及相似度得分,该得分通过查找输出和真值之间的最长公共字符串计算得出。对于所有四个任务,使用两个高级 VLM 模型进行测试:Gemini 1.5 Pro [40] 和 GPT-4o [1]。在现实世界的机器人评估中,测试四个任务(如图所示):开瓶子、插插头、擦木板和打鼓。每种方法都经过 20 次试验,并报告平均成功率。
为了测试泛化能力,如上图 © 所示,使用 7 种类型的瓶子(其中 6 种未见过)测试开瓶子;在插插头任务中,还随机放置插头、电源板和盒子。在擦木板中,在木板上的不同位置绘制不同形状的标记。在打鼓任务中,测试不同的鼓点。为了测试方法的跨实体部署,在两个机器人平台上测试开瓶任务:双手操控的 ViperX 和双手操控的 KUKA。
提示。对于视频分析任务,使用的提示包括输入数据格式的说明和一个示例视频。输入格式解释手势数据,该数据由拇指和中指尖的二维像素位置组成。肌肉或音频信号被标准化为单个浮点值。示例视频涉及人类以随机方式与任务无关的物体进行交互。例如,“按压立方体”和“开瓶”任务都使用相同的示例视频,其中人类正在按压并旋转桌子上的苹果和罐头。该视频仅演示原始技能的关键特征,不包括测试目标或任务计划。提供示例视频的预期输出,以帮助 VLM 生成相同格式的响应,从而方便对结果进行基准测试。在每个评估任务中,所有基准方法都使用相同的示例视频。提示后,提供不带任务描述的测试视频,并直接让 VLM 生成对输入多模态视频的分析。对于真实世界机器人评估,提示包含这里 CoM 流水线先前生成的视频分析,以及 Python 格式的机器人 API 调用定义。然后,要求 VLM 生成主函数,以根据视频分析重现人类任务规划。VLM 生成程序后,使用 exec() 在真实世界机器人上执行生成的代码。
相关文章:
模态链:利用视觉-语言模型从多模态人类视频中学习操作程序
25年4月来自谷歌 DeepMind 和斯坦福大学的论文“Chain-of-Modality: Learning Manipulation Programs from Multimodal Human Videos with Vision-Language-Models”。 从人类视频中学习执行操作任务,是一种很有前景的机器人教学方法。然而,许多操作任务…...
JAVAEE初阶01
个人主页 JavaSE专栏 JAVAEE初阶01 操作系统 1.对下(硬件)管理各种计算机设备 2.对上(软件)为各种软件提供一个稳定的运行环境 线程 运行的程序在操作系统中以进程的形式存在 进程是系统分配资源的最小单位 进程与线程的关…...
【网络安全】用 Linux 命令行 CLI 日志文件处理指南
Linux 命令行 CLI 神技回忆录:日志文件处理指南(以 Zeek Logs 为例) 1. CLI简介2. 基础操作3. 文件读取4. 查找与筛选5. 进阶操作6. Zeek 日志骚操作7. 结语 1. CLI简介 在数据分析的世界里,图形界面(GUI)…...
[C++] 高精度乘法
目录 引入: 大整数比较比较方法例题1-青蛙计数题目描述 输入描述输出描述输入输出样例AC代码 高精度乘法模版高精度运算小合集(这集乘法上集加法) 注意: 若还没有学过高精度运算的话先去看高精度加法 引入: 大整数比较 比较方法 大整数比较可以使用此方法比较(注释有讲解): …...
反事实——AI与思维模型【82】
一、定义 反事实思维模型是一种心理认知模型,它指的是人们在头脑中对已经发生的事件进行否定,然后构建出一种可能性假设的思维活动。简单来说,就是思考“如果当时……,那么就会……”的情景。这种思维方式让我们能够超越现实的限制,设想不同的可能性和结果,从而对过去的…...
Java学习手册:Java开发常用的内置工具类包
以下是常用 Java 内置工具包。 • 日期时间处理工具包 • java.time包(JSR 310):这是 Java 8 引入的一套全新的日期时间 API,旨在替代陈旧的java.util.Date和java.util.Calendar类。其中的LocalDate用于表示不带时区的日期&…...
JAVA多线程(8.0)
目录 线程池 为什么使用线程池 线程池的使用 工厂类Executors(工厂模式) submit 实现一个线程池 线程池 为什么使用线程池 在前面我们都是通过new Thread() 来创建线程的,虽然在java中对线程的创建、中断、销毁、等值等功能提供了支持…...
通过门店销售明细表用Python Pandas得到每月每个门店的销冠和按月的同比环比数据
假设我在本地有Excel销售表,包含ID主键、门店ID、日期、销售员姓名和销售额,需要用Pandas统计出每个月所有门店和各门店销售额最高的人,不一定是一个人,以及他所在的门店ID和月总销售额。 步骤1:导入数据并处理日期 …...
详解最新链路追踪skywalking框架介绍、架构、环境本地部署配置、整合微服务springcloudalibaba 、日志收集、自定义链路追踪、告警等
1.skywalking介绍 多种监控手段,可以通过语言探针和service mesh 获得监控数据支持多种语言自动探针,包含java/net/nodejs轻量高效,无需大数据平台和大量的服务器资源模块化,UI、存储、集群管理都有多种机制可选支持告警优秀的可…...
【OSG学习笔记】Day 11: 文件格式与数据交换
OSG 常用文件格式简介 在开始转换前,先了解 OSG 生态中常见的文件格式: .osg:OSG 标准二进制格式,存储场景图数据,体积小、加载快,适合实时渲染。 .ive:OSG 标准文本格式,可读性强,便于手动编辑或调试场景图结构(本质是 XML 格式的文本描述)。 .osgb:OSG 二进制格…...
2025.04.26-美团春招笔试题-第二题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 02. 曼哈顿距离探测器 问题描述 K小姐正在研发一种城市交通探测器,该探测器能够检测城市中任意两个位置之间的曼哈顿距离是否恰好为特定值。曼哈顿距离是在直角坐标系中,两点之间…...
搭建基于火灾风险预测与防范的消防安全科普小程序
基于微信小程序的消防安全科普互动平台的设计与实现,是关于微信小程序的,知识课程学习,包括学习后答题。 技术栈主要采用微信小程序云开发,有下面的模块: 1.课程学习模块 2.资讯模块 3.答题模块 4.我的模块 还需…...
05--Altium Designer(AD)的详细安装
一、软件的下载 Altium Designer官网下载 1、临近五一的假期,想着搞个项目,且这个项目与PCB有关系,所以就下这个软件来玩玩。下面保姆级教大家安装。 2、选择适合自己的版本下载(我安装的是24的) 3、软件安装 1.下…...
药监平台上传数据报资源码不存在
问题:电子监管码上传药监平台提示“导入的资源码不存在” 现象:从生产系统导出的关联关系数据包上传到药监平台时显示: 原因:上传数据包的通道的资源码与数据包的资源码不匹配。 解决方法:检查药监平台和生产系统的药…...
DeepSeek预训练追求极致的训练效率的做法
DeepSeek在预训练阶段通过多种技术手段实现了极致的训练效率,其中包括采用FP8混合精度训练框架以降低计算和内存需求 ,创新性地引入Multi-head Latent Attention(MLA)压缩KV缓存以提升推理效率,以及基于Mixture-of-Experts(MoE)的稀疏计算架构以在保证性能的同时显著降低…...
Windows11系统中GIT下载
Windows11系统中GIT下载 0、GIT背景介绍0.0 GIT概述0.1 GIT诞生背景0.2 Linus Torvalds 的设计目标0.3 Git 的诞生(2005 年)0.4 Git 的后续发展0.5 为什么 Git 能成功? 1、资源下载地址1.1 官网资源1.2 站内资源 2、安装指导3、验证是否下载完…...
Maven的概念与初识Maven
目录 一、Maven的概念 1. 什么是Maven 2. 项目构建:从代码到部署的标准化流程 2.1 Maven构建生命周期 2.2 传统构建 vs Maven构建 3. 依赖管理:解决“JAR地狱”的利器 3.1 依赖声明 3.2 依赖传递与冲突解决 4. Maven仓库:依赖的存储…...
【Android】app调用wallpaperManager.setBitmap的隐藏权限
这是一个杞人忧天的问题,app中,可以通过wallpaperManager.setBitmap来设置壁纸, private void setWallpaper() {// 获取 WallpaperManager 实例WallpaperManager wallpaperManager WallpaperManager.getInstance(getApplicationContext());t…...
ORACLE数据库备份入门:第四部分:2-备份场景举例
下面以4个常见的场景为例,介绍如何规划备份方案。备份方案没有标准答案,需要根据实现情况来制定,也和管理员的个人使用习惯有很大相关性。 1 交易型数据库备份 以银行的交易系统为例,除了前一章节提到的关于RPO和RTO的指标外&am…...
STL中emplace实现原理是什么?
template <class... Args>void emplace_back (Args&&... args);这个是vector的emplace_back方法,用到的c11的语法有三个,分别是万能引用、完美转发、参数包。 参数包中的参数是用来构造vector<T>中的T对象。 假如我直接传的就是一个…...
血泪之arduino库文件找不到ArduinoJSON.h: No such file or directory错误原因
#include <ArduinoJson.h> 始终报这个错误, C:\techxixi_project\Arduino\test\camer\camertoserver\camertoserver.ino:6:10: fatal error: ArduinoJSON.h: No such file or directory 6 | #include <ArduinoJSON.h> | ^~~~~~~~~…...
通过门店销售明细表用PySpark得到每月每个门店的销冠和按月的同比环比数据
假设我在Amazon S3上有销售表的Parquet数据文件的路径,包含ID主键、门店ID、日期、销售员姓名和销售额,需要分别用PySpark的SparkSQL和Dataframe API统计出每个月所有门店和各门店销售额最高的人,不一定是一个人,以及他所在的门店…...
【前后端分离项目】Vue+Springboot+MySQL
文章目录 1.安装 Node.js2.配置 Node.js 环境3.安装 Node.js 国内镜像4.创建 Vue 项目5.运行 Vue 项目6.访问 Vue 项目7.创建 Spring Boot 项目8.运行 Spring Boot 项目9.访问 Spring Boot 项目10.实现 Vue 与 Spring Boot 联动11.安装 axios12.编写请求13.调用函数请求接口14.…...
图解 Redis 事务 ACID特性 |源码解析|EXEC、WATCH、QUEUE
写在前面 Redis 通过 MULTI、EXEC、WATCH 等命令来实现事务功能。Redis的事务是将多个命令请求打包,然后一次性、按照顺序的执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而该去执行其他客户端的命令请求。 就像下面这样&#…...
w~嵌入式C语言~合集3
我自己的原文哦~ https://blog.51cto.com/whaosoft/13870307 一、单片机多任务事件驱动 单片机的ROM与RAM存贮空间有限,一般没有多线程可用,给复杂的单片机项目带来困扰。 经过多年的单片机项目实践,借鉴windows消息机制的思想ÿ…...
CMCC RAX3000M CH EC 算力版刷机(中国移动 RAX3000M 算力版)刷机
刷机前面的工作参考: https://blog.csdn.net/asdcls/article/details/147434218 刷机 eMMC Flash instructions: 1. SSH to RAX3000M, and backup everything, especially factory part. (data partition can be ignored, its useless.) 2. Write new GPT tabl…...
cron定时任务
cron定时任务 一、Cron表达式的定义 基础结构 Cron表达式是由空格分隔的6或7个字段组成的字符串,格式为: 秒 分 时 日 月 星期 [年]其中,年通常可以被省略 字段说明: 秒(0-59) 秒字段表示每分钟的哪一…...
1.4 大模型应用产品与技术架构
目录 一,产品架构 1.1 AI Embedded产品架构 1.2 AI Copilot产品架构 1.3 AI Agent产品架构 二,技术架构 2.1 纯Prompt 2.2 Agent Function Calling 2.3 RAG (Retrieval-Augmented Generation 检索增强生成) 2.4 Fine-tu…...
Android HAL HIDL
1 Android HAL HIDL 1.1 Android中查看有哪些HIDL HAL HIDL是Treble Interface的一部分。 adb root adb shell # lshal 1.2 Android打印C调用栈 #include <utils/CallStack.h> 在需要打印的地方加如下的定义。 android::CallStack stack("oem"); logcat | g…...
std::mutex底层实现原理
std::mutex是一个用于实现互斥访问的类,其具备两个成员函数——lock和unlock 锁的底层实现原理 锁的底层实现是基于原子操作的,这些原子操作是由指令支持的,因为单个指令是不能被中断的 一些与锁的实现有关的原子指令为: 待补充…...
性能提升手段--池化技术
看到hadoop代码里有ByteBufferPool,使用池子来避免频繁创建、销毁ByteBuffer,减轻GC压力,提高性能。 顺便总结一下池化技术 一、什么是池化技术? 池化(Pooling) 是一种资源管理策略,通过预先创建并复用资源(如数据库连接、线程、内存对象等)来提…...
精益数据分析(28/126):解读商业模式拼图与关键指标
精益数据分析(28/126):解读商业模式拼图与关键指标 在创业和数据分析的探索旅程中,每一次深入研究都可能带来新的启发和突破。今天,我们依旧带着共同进步的初心,深入解读《精益数据分析》中关于商业模式的…...
QT6 源(52)篇二:存储 c 语言字符串的类 QByteArray 的使用举例,
(3) (4) 谢谢...
工业摄像头通过USB接口实现图像
工业摄像头系列概览:类型与应用 工业摄像头系列涵盖了多种类型,以满足不同行业和应用的需求。以下是对工业摄像头系列的一些介绍: 一、主要类型与特点 USB工业摄像头 :这类摄像头通常通过USB接口与计算机连接,适用于…...
【BBDM】main.py -- notes
命令行接口 python main.py [OPTIONS]参数 参数类型默认值说明-c, --configstr"BBDM_base.yml"配置文件路径-s, --seedint1234随机种子,用于结果复现-r, --result_pathstr"results"结果保存目录-t, --trainflagFalse训练模式开关:…...
X86物理机安装iStoreOS软路由
目录 安装前准备 制作启动盘 安装系统到硬盘 启动与初始配置 常见问题与注意事项 参考资料 安装前准备 硬件设备 X86物理机(如普通电脑、J4125/N5105等小主机) U盘(建议容量≥2GB) 显示器、键盘(用于初始配置…...
QML Date:日期处理示例
目录 引言相关阅读QML Date对象知识概要格式化选项 DateExamples示例解析代码解析示例1:日期格式化示例2:不同地区的日期显示示例3:日期解析示例4:自定义格式示例5:日期与时间戳转换 运行效果总结下载链接 引言 在Qt …...
python 与Redis操作整理
以下是使用 Python 操作 Redis 的完整整理,涵盖基础操作、高级功能及最佳实践: 1. 安装与连接 (1) 安装库 pip install redis(2) 基础连接 import redis# 创建连接池(推荐复用连接) pool redis.ConnectionPool(hostlocalhost, …...
【Linux】环境监控系统软件框架
目录 tasks.h type.h main.c tasks.c makefile 运行结果 调用多线程框架,在主函数写好环境监控文件的函数,使用结构体封装环境指标的参数 最后使用makefile管理工程文件 tasks.h #include<pthread.h>#ifndef __TASK_H__ #define __TASK_H_…...
WPF实现数字孪生示例
WPF 数字孪生系统实现示例 数字孪生(Digital Twin)是通过数字化手段在虚拟空间中构建物理实体的精确数字模型,并实现虚实映射、实时交互和智能决策的技术。本文将展示如何使用WPF实现一个基础的数字孪生系统示例。 一、系统架构设计 1. 整体架构 +-------------------+ | …...
对卡尔曼滤波的理解和简单示例实现
目录 一、概述 二、基本公式解释 1)状态转移方程 2)状态更新方程 3)卡尔曼系数更新方程 4)误差协方差估计方程 三、一个简单示例 一、概述 经典卡尔曼滤波算法在线性系统中运用非常广泛,可以对数据实现很好的平…...
Linux基础命令总结
Linux系统命令 1. systemctl 1. 基本语法 systemctl start | stop | restart | status 服务名 2. 经验技巧查看服务的方法:/usr/lib/systemd/system 3. 案例实操 (1)查看防火墙服务的状态 systemctl status firewalld (2)停止防火墙服务 systemctl stop firewalld (…...
视觉大模型专栏导航
关于视觉大模型专栏,暂时还没有比较明确的更新计划,最近会在本专栏上更新关于Sam模型的基本原理,包括Image Encoder、Prompt Encoder及Mask Decoder等模块的实现;还有记录下如何利用Sam代码跑通一个demo。 后期接触了其他视觉大模…...
Eigen的主要类及其功能
Eigen 是一个高性能的 C 模板库,主要用于线性代数、矩阵和向量运算。它提供了许多类来支持各种数学运算,以下是 Eigen 的主要类及其功能分类。 1. 核心矩阵和向量类 这些是 Eigen 中最常用的类,用于表示矩阵和向量: Matrix - 通用…...
深入理解TransmittableThreadLocal:原理、使用与避坑指南
一、ThreadLocal与InheritableThreadLocal回顾 在介绍TransmittableThreadLocal之前,我们先回顾一下Java中的ThreadLocal和InheritableThreadLocal。 1. ThreadLocal ThreadLocal提供了线程局部变量,每个线程都可以通过get/set访问自己独立的变量副本…...
大模型奖励建模新突破!Inference-Time Scaling for Generalist Reward Modeling
传统的RM在通用领域面临准确性和灵活性挑战,而DeepSeek-GRM通过动态生成principle和critic,结合并行采样与meta RM引导的投票机制,实现了更高质量的奖励信号生成。论文通过Self-Principled Critique Tuning (SPCT)方法,显著提升了…...
C++:string 1
练习题: 这个题的思路是从前往后,从后往前同时找,不是字母的话就继续,是的话就交换。 代码: #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> #include <string> using namespace std; //1、4个…...
C语言学习之调试
在C语言的编程学习中,我们能不可避免的要遇到bug。通常我们面对编译错误等问题是很容易发现的,但是当我们面对代码结果不满足预期等情况下是很难去改的,因此我们就要学习如何调试代码。 bug与调试 什么是bug? bug本意是“昆虫”和…...
【project】--模拟搭建一个中小型校园网的网络平台
文章目录 项目介绍设备及IP地址分配node01配置网卡配置DHCP配置路由转发 node02配置网卡配置安装并配置授权 Unbound DNS node03配置网卡配置安装防火墙SNAT配置DNAT配置(端口转发)纯缓存 Unbound DNS 配置 node04配置node05配置node06配置 项目介绍 本项目通过1台物理机和VMw…...
DeepSeek 的长上下文扩展机制
DeepSeek 在基础预训练完成后,引入 YaRN(Yet another RoPE extensioN method)技术,通过额外的训练阶段将模型的上下文窗口从默认的 4K 逐步扩展至 128K。整个过程分为两个阶段:第一阶段将上下文窗口从 4K 扩展到 32K;第二阶段则进一步从 32K 扩展到 128K。每个阶段均采用…...