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

【论文阅读】RT-SKETCH: GOAL-CONDITIONED IMITATION LEARNING FROM HAND-DRAWN SKETCHES

RT-Sketch:基于手绘草图的目标条件模仿学习

摘要:在目标条件模仿学习(imitation learning,IL)中,自然语言和图像通常被用作目标表示。然而,自然语言可能存在歧义,图像则可能过于具体。在这项工作中,我们研究将手绘草图作为一种目标指定方式。草图和语言一样,用户可以轻松即时提供,但与图像类似,它也能帮助下游策略具备空间感知能力,甚至超越图像,区分与任务相关和不相关的对象。我们提出了 RT-Sketch,这是一种用于操作任务的目标条件策略,它将所需场景的手绘草图作为输入,并输出动作。我们在一个包含成对轨迹和相应合成生成的目标草图的数据集上训练 RT-Sketch。我们在一个可铰接的台面上进行的六个涉及桌面物体重新排列的操作技能任务中评估了这种方法。实验发现,在简单场景中,RT-Sketch 的表现与基于图像或语言条件的智能体相似,而在语言目标存在歧义或有视觉干扰的情况下,它表现出更强的鲁棒性。此外,我们展示了 RT-Sketch 能够解释并根据不同详细程度的草图采取行动,从简单的线条画到详细的彩色画。有关补充材料和视频,请访问我们的网站。

1. 引言

在家庭、工作场所或工业环境中与人类协同工作的机器人,在提供协助和实现自主作业方面有着巨大潜力。但需要仔细考虑,哪种目标表示方式最便于人类传达给机器人,同时也便于机器人理解并据此行动。具有指令跟随能力的机器人,试图通过将自然语言命令这一直观界面,作为语言条件模仿学习策略的输入,来解决这一问题(Brohan 等人,2023b;a;Karamcheti 等人,2023;Lynch 和 Sermanet,2020;Lynch 等人,2023)。例如,想象让一个家用机器人摆好餐桌。像 “把餐具、餐巾和盘子放在桌子上” 这样的语言描述就不够精确或存在歧义。餐具相对于盘子或餐巾的具体摆放位置并不明确,它们之间的距离是否重要也不清楚。为了达到更高的精度,用户可能需要给出更详细的描述,比如 “把叉子放在盘子右边 2 厘米处,距离桌子最左边边缘 5 厘米”,甚至需要在线修正(“不,你往右移得太远了,往回移一点!”)(Cui 等人,2023;Lynch 等人,2023)。虽然语言是指定目标的直观方式,但其定性的本质和模糊性,使得人类如果不给出冗长的说明或修正,就很难提供准确信息,也让机器人策略难以在下游精确操作中进行解释。

另一方面,近年来,使用目标图像指定目标,并结合或不结合语言指令来训练目标条件模仿学习策略,已被证明相当成功(Jiang 等人,2022;Jang 等人,2022)。在这些场景中,期望最终状态的场景图像可以完全指定预期目标。然而,这也有其自身的缺点:获取目标图像是一个很强的先验假设,而且预先录制的目标图像可能与特定环境相关,很难在不同环境中复用和泛化。

介于自然语言缺乏精确指定目标的粒度,而图像在不必要的细节上过度指定目标,导致需要互联网规模的数据来进行泛化之间,我们认识到当前的框架缺乏一种能够以方便且富有表现力的方式充分捕捉用户意图的目标表示。虽然自然语言高度灵活,但也可能高度模糊,或者需要冗长的描述。这在长期任务或需要空间感知的任务中,很快就会变得困难。与此同时,目标图像在不必要的细节上过度指定目标,导致需要互联网规模的数据来进行泛化。

为此,为了应对这些挑战,我们研究将手绘草图作为视觉模仿学习中一种方便且富有表现力的目标指定方式。由于草图简洁,它仍然像语言一样,便于用户即时提供。然而,与语言不同的是,(1)草图能提供更多信息,且有助于更具空间感知的任务指定。与目标图像一样,草图可以很容易地与现成的接受视觉输入的策略架构集成,但它提供了更高层次的目标抽象,忽略了不必要的像素级细节。最后,草图的质量以及对细节的选择性包含或排除,可以帮助下游策略区分与任务相关和不相关的细节,而无需像在图像中那样忠实地保留像素级细节;(2)帮助下游策略根据对物体的选择性包含、排除或细节程度,区分与任务相关和不相关的物体。此外,草图可以很容易地与接受视觉表示作为输入的现成策略架构集成。

在这项工作中,我们提出了 RT-Sketch,这是一种用于操作的目标条件策略,它将用户提供的所需场景的手绘草图作为输入,并输出动作。RT-Sketch 的新颖架构修改了原始的 RT-1 从语言到动作的 Transformer 架构(Brohan 等人,2023b),使其能够处理视觉目标而非语言目标,从而可以灵活地基于草图、图像或任何其他可视觉表示的目标进行条件设定。为了实现这一点,我们在进行标记化之前,将目标草图和观察历史连接起来作为输入,省略了语言部分。我们在一个包含 80K 条轨迹的数据集上训练 RT-Sketch,这些轨迹与通过图像到草图风格化网络合成生成的目标草图配对,该网络是从几百对图像 - 草图对中训练得到的。

我们在真实机器人上对 RT-Sketch 进行了六种操作技能的评估,这些技能涉及在带有抽屉的台面上重新排列桌面物体,并且场景变化多样。这些技能包括将物体移近彼此、将罐子推倒、将罐子直立放置、关闭抽屉和打开抽屉。实验发现,在简单场景中,RT-Sketch 的表现与基于图像或语言条件的智能体相似。当语言指令存在歧义或有视觉干扰时,我们发现,根据人类标注者的评估,RT-Sketch 在空间精度和对齐得分上,比基于语言或目标图像条件的策略高出约 2 倍(见图 1(右))。此外,我们展示了 RT-Sketch 可以处理不同程度的输入特异性,从粗略的草图到更逼真的彩色绘图(见图 1(左))。

2. 相关工作

在本节中,我们将讨论以前基于传统目标表示的目标条件模仿学习方法。我们还将重点介绍图像 - 草图转换方面的研究进展,这些进展为机器人领域中尚未充分探索的目标条件设定方式开辟了新的可能性。

目标条件模仿学习

尽管名称相似,但我们基于所需场景的手绘草图来学习操作策略,与策略草图(policy sketches)(Andreas 等人,2017)的概念不同,策略草图是描述任务结构子组件的符号表示。强化学习(Reinforcement learning,RL)在我们的场景中不太适用,因为定义一个能够准确量化提供的场景草图与智能体在训练过程中访问的状态之间对齐程度的奖励目标并非易事。因此,我们专注于模仿学习(imitation learning,IL)技术,特别是目标条件设定的场景(Ding 等人,2019)。

目标条件模仿学习已被证明在策略必须能够处理同一任务的空间或语义变化的场景中非常有用(Argall 等人,2009)。这些场景包括多个物体的重新排列(Brohan 等人,2023b;a;Lynch 等人,2023;Manuelli 等人,2019)、配套装备(kitting)(Zakka 等人,2020)、将可变形物体折叠成不同形状(Ganapathi 等人,2021)以及在杂乱环境中搜索不同的目标物体(Danielczuk 等人,2019)。然而,这些方法往往要么依赖语言(Brohan 等人,2023b;Lynch 和 Sermanet,2020;Lynch 等人,2023;Karamcheti 等人,2023;Shao 等人,2020),要么依赖目标图像(Danielczuk 等人,2019)来指定变化。后续工作实现了对目标图像和语言(Jang 等人,2022)、提示内图像(Jiang 等人,2022)或图像嵌入(Manuelli 等人,2019;Zakka 等人,2020;Ganapathi 等人,2021)的多模态条件设定。然而,所有这些表示最终都以某种方式源自原始图像或语言,这忽略了更抽象的目标表示的潜力,例如草图,它既易于指定,又能保留空间感知。

除了在目标表示方面缺乏灵活性之外,目标条件模仿学习还容易过度拟合演示数据,并且在新场景中即使遇到轻微的分布变化也难以处理(Ross 等人,2011)。对于语言条件设定,分布变化可能包括语义或空间歧义、新颖的指令或措辞,以及未见过的物体(Jang 等人,2022;Brohan 等人,2023b)。目标图像条件设定同样容易受到分布外视觉变化的影响,例如光照或物体外观的变化,以及未见过的背景纹理(Burns 等人,2022;Belkhale 等人,2023)。相反,我们选择草图,它足够简洁,可以抵御视觉干扰,同时又具有足够的表现力,能够提供明确的目标。先前的工作,包括(Barber 等人,2010)和(Porfirio 等人,2023),已经展示了草图在导航和有限操作场景中优于纯语言的效用。然而,这些工作中探索的草图主要用于指导操作时关节层面的低级运动,或者为导航提供明确的方向线索。Cui 等人(2022)将草图与其他模态一起视为目标条件操作的输入,但没有明确训练基于草图的策略。因此,他们得出结论,在目标指定方面,场景图像比草图图像更好。我们的结果与之不同且互补,即训练以草图为输入的策略在受到视觉干扰时,在感知空间和语义对齐的李克特量表评分上,分别比基于场景图像条件的策略高出 1.63 倍和 1.5 倍。

图像 - 草图转换

近年来,草图在计算机视觉领域越来越受欢迎,可用于物体检测、场景理解(Chowdhury 等人,2023b)等应用,既可以单独使用,也可以与文本和图像结合使用。在考虑如何最好地将草图融入模仿学习时,一个重要的设计选择是在(1)测试时(即将草图转换为与预训练策略兼容的其他目标模态),还是(2)训练时(即明确训练基于草图的模仿学习策略)考虑草图。对于(1),可以首先将给定的草图转换为目标图像,然后运行一个普通的基于目标图像条件的策略。这可以基于现有的草图到图像转换框架,如 ControlNet(Zhang 和 Agrawala,2023)、生成对抗网络(GAN)风格的方法(Koley 等人,2023),或者文本到图像合成方法,如 InstructPix2Pix(Brooks 等人,2023)或 Stable Diffusion(Rombach 等人,2022)。虽然这些模型在最佳条件下可以生成逼真的结果,但它们不能同时处理图像生成和风格转换,这使得生成的图像不太可能与智能体观察到的风格匹配。同时,这些方法容易产生幻觉伪影,引入分布变化(Zhang 和 Agrawala,2023)。

基于这些挑战,我们选择(2),并考虑使用图像到草图转换技术,对预先录制的演示轨迹中的终端图像进行事后重标记。最近,Vinker 等人(2022b;a)提出了用于预测输入图像物体或场景的基于贝塞尔曲线的草图的网络。草图质量由基于 CLIP 的对齐度量进行监督。虽然这些方法生成的草图具有较高的视觉保真度,但测试时的优化需要几分钟的时间,这无法扩展到机器人学习数据集的典型规模(数百到数千条演示轨迹)。与此同时,条件生成对抗网络(conditional generative adversarial networks,cGANs),如 Pix2Pix(Isola 等人,2017),已被证明对可扩展的图像到图像转换很有用。与我们的工作最相关的是 Li 等人(2019)的工作,他们在一个包含 5K 对图像和线条画的大规模众包数据集上,训练了一个 Pix2Pix 模型,用于从给定图像生成草图。我们在这项工作的基础上,在机器人轨迹数据上对图像到草图模型进行微调,并展示了它在实现基于草图的下游操作方面的效用。

3. 基于草图的条件模仿学习

在本节中,我们将首先介绍学习基于草图的条件策略这一问题。然后讨论训练一个端到端从草图到动作的模仿学习智能体的方法。首先,在 3.1 节中,我们将讨论辅助图像到草图转换网络的实例化,该网络可以从参考图像自动生成草图。在 3.2 节中,我们将讨论如何使用这样的模型,用合成生成的目标草图自动对现有的演示数据集进行事后重标记,并在这个数据集上训练基于草图的条件策略。

相关文章:

【论文阅读】RT-SKETCH: GOAL-CONDITIONED IMITATION LEARNING FROM HAND-DRAWN SKETCHES

RT-Sketch:基于手绘草图的目标条件模仿学习 摘要:在目标条件模仿学习(imitation learning,IL)中,自然语言和图像通常被用作目标表示。然而,自然语言可能存在歧义,图像则可能过于具体…...

27. 【.NET 8 实战--孢子记账--从单体到微服务】--简易报表--报表服务

报表是每个记账应用所具备的功能,要实现报表功能就需要把账本的核心功能(记账)完成,因此报表服务作为本专栏第一部分单体应用开发中最后一个要实现的功能,这一篇文章很简单,我们一起来实现一个简单的报表服…...

LeetCode - #194 Swift 实现文件内容转置

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...

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

【全栈】SprintBootvue3迷你商城(9) 往期的文章都在这里啦,大家有兴趣可以看一下 后端部分: 【全栈】SprintBootvue3迷你商城(1) 【全栈】SprintBootvue3迷你商城(2) 【全栈】Spr…...

ThreeJS示例教程200+【目录】

Three.js 是一个强大的 JavaScript 库,旨在简化在网页上创建和展示3D图形的过程。它基于 WebGL 技术,但提供了比直接使用 WebGL 更易于使用的API,使得开发者无需深入了解 WebGL 的复杂细节就能创建出高质量的3D内容。 由于目前内容还不多,下面的内容暂时做一个占位。 文章目…...

《边界感知的分而治之方法:基于扩散模型的无监督阴影去除解决方案》学习笔记

paper:Boundary-Aware Divide and Conquer: A Diffusion-Based Solution for Unsupervised Shadow Removal 目录 摘要 1、介绍 2、相关工作 2.1 阴影去除 2.2 去噪扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM) 3、方…...

PyCharm+RobotFramework框架实现UDS自动化测试- (四)项目实战0x10

1.环境搭建 硬件环境:CANoe、待测设备(包含UDS诊断模块) 2.pythonPyCharm环境 pip install robotframework pip install robotframework-ride pip install openpyxl pip install udsoncan pip install python-can pip install can-isotp3…...

基于java实现规则引擎设计思路

背景 去年底换了公司,目前在做HR招聘系统,产品要求:管理端手动配置发布招聘要求(支持多个招聘条件AND与OR关系编排);当C端用户报名该职位时,系统执行该规则,返回报名成功或失败。根据技术调研,采用db存规则…...

TCP协议:互联网数据传输的守护者

在互联网的浩瀚海洋中,数据如同涓涓细流,无时无刻不在流动。而这些数据的稳定、可靠传输,离不开一个重要的协议——TCP(Transmission Control Protocol,传输控制协议)。TCP协议作为互联网协议族中的核心成员…...

2025美国大学生数学建模竞赛(美赛)B题完整思路分析论文(35页)(含模型、可运行代码和运行结果)

2025美国大学生数学建模竞赛B题完整思路分析论文 目录 摘要 一、问题重述 二、问题分析 三、模型假设 四、模型建立与求解 4.1问题1 4.1.1问题1思路分析 4.1.2问题1模型建立 4.1.3问题1样例代码(仅供参考) 4.1.4问题1样例代码运行结…...

InceptionV1_V2

目录 不同大小的感受野去提取特征 经典 Inception 网络的设计思路与运行流程 背景任务:图像分类(以 CIFAR-10 数据集为例) Inception 网络的设计思路 Inception 网络的运行流程 打个比方 多个损失函数的理解 1. 为什么需要多个损失函数&#…...

面向对象设计原则

面向对象最大的优势是抵御变化 理解隔离变化: 从宏观面来看,面向对象构建方式更能适应软件的变化,能将变化所带来的影响减为最少。 各司其职:从微观层面来看,面向对象的方式更强调各个类的责任。由于需求变化导致的新…...

近年流行的开发技术

Web 开发领域 前端技术 HTML5、CSS3 和 JavaScript HTML5&#xff1a;作为网页结构的基础&#xff0c;引入了新的语义化标签&#xff08;如<header>、<nav>、<article>等&#xff09;&#xff0c;增强了网页的可读性和搜索引擎优化效果&#xff0c;同时支持…...

Go语言中的Select

Select 在 Go 语言中&#xff0c;select 是一种用于处理多个通道操作的控制结构。它允许你同时监听多个通道上的通信操作&#xff08;发送或接收&#xff09;&#xff0c;并根据哪个操作先完成来执行相应的代码块。select 是 Go 并发编程中的一个重要工具&#xff0c;常用于实…...

SQL调优讨论

说明&#xff1a;狭义的SQL调优&#xff0c;指对慢SQL&#xff08;一般是Select语句&#xff0c;或包含Select的语句&#xff09;优化&#xff0c;在不改变查询结果的情况下提高SQL执行效率。广义上的SQL调优&#xff0c;指对某个慢查询优化&#xff0c;通过一些类操作提高查询…...

【STM32】-TTP223B触摸开关

前言 本文章旨在记录博主STM32的学习经验&#xff0c;我自身也在不断的学习当中&#xff0c;如果文章有写的不对的地方&#xff0c;欢迎各位大佬批评指正。 准备工作 今天这篇文章介绍的是触摸开关这一外围硬件。 ST-link调试器STM32最小系统板单路TTP223B触摸传感器模块LE…...

华为数据之道-读书笔记

内容简介 关键字 数字化生产 已经成为普遍的商业模式&#xff0c;其本质是以数据为处理对象&#xff0c;以ICT平台为生产工具&#xff0c;以软件为载体&#xff0c;以服务为目的的生产过程。 信息与通信技术平台&#xff08;Information and Communication Technology Platf…...

Zookeeper(28)Zookeeper的线性化写入和顺序一致性读是什么?

Zookeeper 是一个分布式协调服务&#xff0c;它在设计上提供了强一致性的保证&#xff0c;其中包括线性化写入和顺序一致性读。这两种一致性模型确保了在分布式系统中数据的一致性和操作的确定性。 线性化写入&#xff08;Linearizable Writes&#xff09; 线性化写入保证在任…...

Ubuntu安装GitLab

在 Ubuntu 上安装 GitLab 的步骤如下。这里以 GitLab Community Edition&#xff08;CE&#xff09;为例&#xff1a; 前提条件 确保你的 Ubuntu 系统是 20.04 或更高版本。确保你的系统满足 GitLab 的硬件要求。 步骤 更新系统包&#xff1a; sudo apt update sudo apt upg…...

Stable Diffusion 3.5 介绍

Stable Diffusion 3.5 是由 Stability AI 推出的最新一代图像生成模型&#xff0c;是 Stable Diffusion 系列的重要升级版本。以下是关于 Stable Diffusion 3.5 的详细信息&#xff1a; 版本概述 Stable Diffusion 3.5 包含三个主要版本&#xff1a; Stable Diffusion 3.5 L…...

力扣hot100-->滑动窗口、贪心

你好呀&#xff0c;欢迎来到 Dong雨 的技术小栈 &#x1f331; 在这里&#xff0c;我们一同探索代码的奥秘&#xff0c;感受技术的魅力 ✨。 &#x1f449; 我的小世界&#xff1a;Dong雨 &#x1f4cc; 分享我的学习旅程 &#x1f6e0;️ 提供贴心的实用工具 &#x1f4a1; 记…...

### 2.5.3 二叉树的基本操作

2.5.3 二叉树的基本操作 // 获取树中节点的个数 int size(Node root);// 获取叶子节点的个数 int getLeafNodeCount(Node root);// 子问题思路-求叶子结点个数// 获取第K层节点的个数 int getKLevelNodeCount(Node root,int k);// 获取二叉树的高度 int getHeight(Node root);…...

GAEA 社区:从用户到共同创造者

GAEA 模型最引人注目的方面之一是&#xff0c;它将用户视为共同创造者&#xff0c;而不仅仅是被动的消费者。在许多中心化平台中&#xff0c;用户就是用户。但在 GAEA 的生态系统中&#xff0c;每个人都在推动进步。无论您是贡献计算能力、分享有价值的数据还是帮助改进模型&am…...

记录一个连不上docker中的mysql的问题

引言 使用的debian12,不同发行版可能有些许差异&#xff0c;连接使用的工具是navicat lite 本来是毫无思绪的&#xff0c;以前在云服务器上可能是防火墙的问题&#xff0c;但是这个桌面环境我压根没有使用防火墙。 直到 ying192:~$ mysql -h127.0.0.1 -uroot ERROR 1045 (28…...

doris:MySQL Load

Doris 兼容 MySQL 协议&#xff0c;可以使用 MySQL 标准的 LOAD DATA 语法导入本地文件。MySQL Load 是一种同步导入方式&#xff0c;执行导入后即返回导入结果。可以通过 LOAD DATA 语句的返回结果判断导入是否成功。一般来说&#xff0c;可以使用 MySQL Load 导入 10GB 以下的…...

使用vitepress搭建自己的博客项目

一、介绍can-vitepress-blog 什么是CAN BLOG CAN BLOG是基于vitepress二开的个人博客系统&#xff0c;他能够方便使用者快速构建自己的博客文章&#xff0c;无需繁琐的配置和复杂的代码编写。 CAN BLOG以antdv为UI设计基础&#xff0c;简洁大方&#xff0c;界面友好&#xf…...

Yii框架中的扩展:如何使用外部库

在Yii框架中&#xff0c;扩展功能的一种常见且有效的方式是使用外部库。这些外部库可以帮助开发者实现特定的功能&#xff0c;如调用第三方API、处理图片、生成PDF文件或发送邮件等。以下是使用外部库扩展Yii框架的详细步骤&#xff1a; 一、安装外部库 使用Composer&#xff…...

【Elasticsearch】inference ingest pipeline

Elasticsearch 的 Ingest Pipeline 功能允许你在数据索引之前对其进行预处理。通过使用 Ingest Pipeline&#xff0c;你可以执行各种数据转换和富化操作&#xff0c;包括使用机器学习模型进行推理&#xff08;inference&#xff09;。这在处理词嵌入、情感分析、图像识别等场景…...

Linux的基本指令(上)

1.ls指令 语法&#xff1a;ls [选项] [目录或文件] 功能&#xff1a;对于⽬录&#xff0c;该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件&#xff0c;将列出⽂件名以及其他信息。 常用选项&#xff1a; -a 列出⽬录下的所有⽂件&#xff0c;包括以 . 开头的隐含⽂件。 -d 将…...

【贪心算法】洛谷P1106 - 删数问题

2025 - 01 - 22 - 第 46 篇 【洛谷】贪心算法题单 - 【贪心算法】 - 【学习笔记】 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 目录 文章目录 目录P1106 删数问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路代码 P1106 删数问题 题目描述 键盘输入一个高…...

【人工智能】Python中的知识图谱构建与应用

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着人工智能技术的不断发展,知识图谱已成为信息检索、推荐系统、自然语言处理等领域的重要技术之一。本文将详细介绍如何使用Python构建知…...

Spring WebSocket 与 STOMP 协议结合实现私聊私信功能

目录 后端pom.xmlConfig配置类Controller类DTO 前端安装相关依赖websocketService.js接口javascripthtmlCSS 效果展示简单测试连接&#xff1a; 报错解决方法1、vue3 使用SockJS报错 ReferenceError: global is not defined 功能补充拓展1. 安全性和身份验证2. 异常处理3. 消息…...

【Matlab高端绘图SCI绘图模板】第05期 绘制高阶折线图

1.折线图简介 折线图是一个由点和线组成的统计图表&#xff0c;常用来表示数值随连续时间间隔或有序类别的变化。在折线图中&#xff0c;x 轴通常用作连续时间间隔或有序类别&#xff08;比如阶段1&#xff0c;阶段2&#xff0c;阶段3&#xff09;。y 轴用于量化的数据&#x…...

java后端之事务管理

Transactional注解&#xff1a;作用于业务层的方法、类、接口上&#xff0c;将当前方法交给spring进行事务管理&#xff0c;执行前开启事务&#xff0c;成功执行则提交事务&#xff0c;执行异常回滚事务 spring事务管理日志&#xff1a; 默认情况下&#xff0c;只有出现Runti…...

常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)

1.FFmpeg FFmpeg是一个非常强大的开源多媒体处理框架&#xff0c;它提供了一系列用于处理音频、视频和多媒体流的工具和库。它也是最流行且应用最广泛的框架&#xff01; 官方网址&#xff1a;https://ffmpeg.org/ FFmpeg 的主要特点和功能&#xff1a; 编解码器支持: FFmpe…...

如何移植ftp服务器到arm板子?

很多厂家提供的sdk&#xff0c;一般都不自带ftp服务器功能&#xff0c; 需要要发人员自己移植ftp服务器程序。 本文手把手教大家如何移植ftp server到arm板子。 环境 sdk&#xff1a;复旦微 Buildroot 2018.02.31. 解压 $ mkdir ~/vsftpd $ cp vsftpd-3.0.2.tar.gz ~/vs…...

牛批,吾爱出品

可能是因为从事IT的原因&#xff0c;我身边的大多数朋友也是从事相关工作的&#xff0c;而IT工作往往需要长时间对着电脑。这样就很容易眼睛疲劳。今天给大家推荐几款&#xff0c;希望有对有需要的小伙伴有所帮助&#xff0c;大家可以收藏以来哦。 CareUEyes CareUEyes是一款绿…...

基于 Android 的日程管理系统的设计与实现

标题:基于 Android 的日程管理系统的设计与实现 内容:1.摘要 基于 Android 的日程管理系统旨在帮助用户更高效地管理个人日程安排。该系统采用了 Android 平台的优势&#xff0c;结合了简洁的界面设计和强大的功能&#xff0c;为用户提供了便捷的日程管理体验。 在设计与实现过…...

Kubectl 与 Helm 详解

在 Kubernetes 生态中,kubectl 和 Helm 是两个核心工具,分别用于直接管理 Kubernetes 资源和简化应用的部署与管理。本文将深入探讨 kubectl 和 Helm 的功能、使用场景、部署与更新方式,并对比它们的优缺点。 1. Kubectl 详解 1.1 什么是 Kubectl? kubectl 是 Kubernetes…...

centos搭建docker registry镜像仓库

centos搭建docker registry镜像仓库 简介 Docker Registry是一个存储和分发Docker镜像的服务。它允许用户上传、下载和管理 Docker 镜像&#xff0c;为容器化应用的部署提供了便利。 拉取镜像 docker image pull registry证书配置 创建镜像仓库的镜像数据目录和证书目录&…...

Pyecharts之饼图与多饼图的应用

在数据可视化领域&#xff0c;饼图是一种常用的图表类型&#xff0c;特别适合展示数据的比例关系。Pyecharts 为我们提供了强大的饼图绘制功能&#xff0c;不仅可以轻松绘制各种饼图&#xff0c;还能对饼图的样式和数据标签进行深度定制&#xff0c;并且可以组合多个饼图以满足…...

51单片机入门_01_单片机(MCU)概述(使用STC89C52芯片;使用到的硬件及课程安排)

文章目录 1. 什么是单片机1.1 微型计算机的组成1.2 微型计算机的应用形态1.3 单板微型计算机1.4 单片机(MCU)1.4.1 单片机内部结构1.4.2 单片机应用系统的组成 1.5 80C51单片机系列1.5.1 STC公司的51单片机1.5.1 STC公司单片机的命名规则 2. 单片机的特点及应用领域2.1 单片机的…...

蓝桥杯LQ1044 求完数

题目描述 因子&#xff1a;因子也叫因数&#xff0c;例如3515&#xff0c;那么3和5是15的因子。 同时15115&#xff0c;那么1和15也是15的因子。 1&#xff0c;3&#xff0c;5&#xff0c;15 这四个因子是15的所有因子。 完数&#xff1a;如果一个数等于不含它本身的其他因子之…...

Django 日志配置实战指南

日志是 Django 项目中不可或缺的一部分,它帮助我们记录应用程序的运行状态、调试信息、错误信息等。通过合理配置日志,我们可以更好地监控和调试应用程序。本文将详细介绍如何在 Django 项目中实现日志文件分割、日志级别控制以及多环境日志配置,并结合最佳实践和代码示例,…...

[笔记] 极狐GitLab实例 : 手动备份步骤总结

官方备份文档 : 备份和恢复极狐GitLab 一. 要求 为了能够进行备份和恢复&#xff0c;请确保您系统已安装 Rsync。 如果您安装了极狐GitLab&#xff1a; 如果您使用 Omnibus 软件包&#xff0c;则无需额外操作。如果您使用源代码安装&#xff0c;您需要确定是否安装了 rsync。…...

php代码审计2 piwigo CMS in_array()函数漏洞

php代码审计2 piwigo CMS in_array()函数漏洞 一、目的 本次学习目的是了解in_array()函数和对项目piwigo中关于in_array()函数存在漏洞的一个审计并利用漏洞获得管理员帐号。 二、in_array函数学习 in_array() 函数搜索数组中是否存在指定的值。 in_array($search,$array…...

随机矩阵投影长度保持引理及其证明

原论文中的引理 2 \textbf{2} 2 1. \textbf{1. } 1. 引理 1 \textbf{1} 1(前提之一) 1.1. \textbf{1.1. } 1.1. 引理 1 \textbf{1} 1的内容 &#x1f449;前提&#xff1a; X ∼ N ( 0 , σ ) X\sim{}N(0,\sigma) X∼N(0,σ)即 f ( x ) 1 2 π σ e – x 2 2 σ 2 f(x)\text{}…...

蓝桥杯真题 - 三国游戏 - 题解

题目链接&#xff1a;https://www.lanqiao.cn/problems/3518/learning/ 个人评价&#xff1a;难度 2 星&#xff08;满星&#xff1a;5&#xff09; 前置知识&#xff1a;贪心 整体思路 先假设魏蜀吴中的某一个势力最终获胜的情况下&#xff0c;如何求出事件发生的最大数量&a…...

Spring 源码学习(七)——注解后处理器-2

五 InitDestroyAnnotationBeanPostProcessor 类 1 属性 InitDestroyAnnotationBeanPostProcessor 类用于处理初始化与销毁注解&#xff1b;其中第一个属性为用于标识初始化方法与销毁方法注解类型的 initAnnotationType 与 destroyAnnotationType 属性、还有一个用于标识执行顺…...

即梦(Dreamina)技术浅析(一)

1.技术架构与核心组件 2.生成模型的具体实现 3.多模态融合技术 4.训练数据与模型优化 5.用户交互与创作流程 6.技术挑战与解决方案 7.未来发展方向 1. 技术架构与核心组件 即梦的技术架构可以分为以下几个核心组件: 1.1 前端用户界面(UI) 功能模块: 文字输入框:用…...