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

Segment Anything(论文解析)

Segment Anything

    • 摘要
    • 1.介绍
    • 2 SAM任务
    • SAM模型

摘要

我们介绍了“Segment Anything” (SA) 项目:这是一个新的任务、模型和数据集对于图像分割。使用我们高效的模型进行数据收集,我们构建了迄今为止最大的分割数据集(远远超过其他数据集),其中包含了超过10亿个掩膜,覆盖了1100万张经过许可和尊重隐私的图像。该模型被设计和训练为可提示的,因此可以实现零次学习,适用于新的图像分布和任务。我们在多个任务上评估了它的性能,并发现它的零次学习性能令人印象深刻,通常可以与先前的完全监督结果相竞争甚至更优越。我们发布了“Segment Anything Model” (SAM) 和相应的数据集(SA-1B),其中包含10亿个掩膜和1100万张图像,网址为https://segment-anything.com,旨在促进计算机视觉基础模型的研究。

1.介绍

在大规模的基于网络的数据集上预训练的大型语言模型正在通过强大的零次学习和少次学习泛化[10] 彻底改变自然语言处理领域。这些“基础模型”[8] 能够泛化到训练期间未曾见过的任务和数据分布。这一能力通常通过提示工程来实现,其中手工创建的文本用于提示语言模型生成任务所需的有效文本响应。当这些模型使用来自网络的大量文本语料库进行扩展和训练时,它们的零次学习和少次学习性能出奇地与微调模型相媲美(在某些情况下甚至匹敌)[10, 21]。经验性趋势显示,这种行为随着模型规模、数据集大小和总训练计算资源的增加而得到改进[56, 10, 21, 51]。

尽管规模较小,但基础模型在计算机视觉领域也受到了研究。也许最明显的例子是从网络中对齐文本和图像的工作。例如,CLIP [82] 和ALIGN [55] 使用对比学习来训练文本和图像编码器,以使这两种模态对齐。一旦训练完成,通过精心设计的文本提示可以实现零次泛化,用于新颖的视觉概念和数据分布。这种编码器还可以与其他模块有效地组合,以实现下游任务,如图像生成(例如DALL·E [83])。尽管在视觉与语言编码器方面取得了很大进展,但计算机视觉涵盖了许多超出此范围的问题,而对于其中许多问题,没有丰富的训练数据。

在这项工作中,我们的目标是构建一个用于图像分割的基础模型。也就是说,我们希望开发一个可提示的模型,并在广泛的数据集上进行预训练,使用一个能够进行强大泛化的任务。借助这个模型,我们的目标是使用提示工程方法解决新的数据分布上的各种下游分割问题。

这一计划的成功取决于三个要素:任务、模型和数据。为了开发它们,我们需要解决有关图像分割的以下问题:

  1. 什么任务将实现zero-shot泛化?
  2. 对应的模型架构是什么?
  3. 什么数据可以支持这一任务和模型?

这些问题相互关联,需要综合解决。我们从定义一个可提示的分割任务开始,该任务足够通用,提供了强大的预训练目标,并能够支持广泛的下游应用。这个任务需要一个支持灵活提示并能够在实时提示时输出分割掩膜的模型,以支持交互式使用。为了训练我们的模型,我们需要一个多样化、大规模的数据来源。不幸的是,目前没有用于分割的大规模Web数据源;为了解决这个问题,我们构建了一个"数据引擎",即我们在使用我们高效的模型协助数据收集和使用新收集的数据来改进模型之间进行迭代。接下来,我们将介绍每个相互关联的组件,然后介绍我们创建的数据集以及展示我们方法的有效性的实验。

任务(§2)。在自然语言处理领域,以及最近在计算机视觉领域,基础模型是一个具有潜力的发展方向,它可以通过使用“提示”技术通常执行对新数据集和任务的零样本学习和少样本学习。受到这一领域工作的启发,我们提出了可提示的分割任务,其目标是根据任何分割提示返回有效的分割掩码(见图1a)。提示简单地指定了要在图像中分割的内容,例如,提示可以包括标识对象的空间或文本信息。有效的输出掩膜要求即使在提示模糊不清且可能涉及多个对象的情况下(例如,衬衫上的一个点可能既指衬衫又指穿戴者),输出应该是至少一个对象的合理掩膜。我们将可提示的分割任务用作预训练目标,以及通过提示工程解决通用的下游分割任务。

在这里插入图片描述
图1:我们旨在通过引入三个互相关联的组件来构建一个分割的基础模型:一个可提示的分割任务,一个用于数据注释并通过提示工程实现对一系列任务的零次转移的分割模型(SAM),以及用于收集SA-1B的数据引擎,这是我们的数据集,包含超过10亿个掩膜。

模型(§3)。可提示的分割任务和实际应用目标对模型架构施加了一些约束。特别是,模型必须支持灵活的提示,需要在摊销的实时内计算掩膜以允许交互使用,并且必须具备模糊感知能力。令人惊讶的是,我们发现一个简单的设计满足了这三个约束:一个强大的图像编码器计算图像嵌入,一个提示编码器嵌入提示,然后这两个信息源在一个轻量级的掩膜解码器中组合,用于预测分割掩膜。我们将这个模型称为"Segment Anything Model",或SAM(见图1b)。通过将SAM分为图像编码器和快速提示编码器/掩膜解码器,可以重复使用相同的图像嵌入(并摊销其成本)进行不同提示的操作。给定图像嵌入,提示编码器和掩膜解码器从提示中预测出一个掩码,在Web浏览器中以约50毫秒的速度进行操作。我们专注于点、框和掩码提示,并还提供了使用自由文本提示的初始结果。为了使SAM具备模糊感知能力,我们设计它可以为单个提示预测多个掩码,从而使SAM能够自然地处理模糊情况,比如衬衫与人的示例。

数据引擎(§4)。为了实现对新数据分布的强大泛化,我们发现有必要让SAM在大规模和多样化的掩码集上进行训练,超出了任何已经存在的分割数据集。对于基础模型来说,通常的方法是在线获取数据[82],但掩码并不是自然丰富的,因此我们需要一种替代策略。我们的解决方案是构建一个"数据引擎",也就是说,我们与模型在数据标注中共同开发(见图1c)。我们的数据引擎有三个阶段:辅助手动、半自动和全自动。在第一阶段,SAM协助标注员进行掩码标注,类似于经典的交互式分割设置。在第二阶段,SAM可以通过提示它可能的对象位置来自动生成部分对象的掩码,而标注员则专注于标注其余对象,有助于增加掩码的多样性。在最后一个阶段,我们使用前景点的常规网格提示SAM,从而平均每个图像产生约100个高质量的掩膜。

数据集(§5)。我们的最终数据集,SA-1B,包括来自1100万受许可且保护隐私的图像的超过10亿个掩码(见图2)。SA-1B是完全自动收集的,使用了我们数据引擎的最后阶段,它拥有比任何现有分割数据集[66, 44, 117, 60]多400倍的掩膜数量,而且如我们广泛验证的那样,这些掩膜质量高且多样化。除了在训练SAM以使其更强大和通用方面的用途,我们希望SA-1B成为旨在构建新的基础模型的研究的有价值的资源。

责任AI(§6)。我们研究并报告了在使用SA-1B和SAM时可能存在的公平性关切和偏见。SA-1B中的图像跨足了各种地理和经济多样化的国家,我们发现SAM在不同人群中表现相似。我们希望这将使我们的工作在实际应用中更加公平。我们在附录中提供了模型和数据集卡片。

实验(§7)。我们对SAM进行了广泛的评估。首先,使用一套多样化的23个分割数据集,我们发现SAM从单个前景点生成的掩模质量很高,通常只略低于手动注释的地面实况。其次,我们在使用提示工程的零照射转移协议下,在各种下游任务上得到了一致强大的定量和定性结果,包括边缘检测、目标提议生成、实例分割,以及对文本到掩模预测的初步探索。这些结果表明,SAM可以立即使用提示工程来解决涉及SAM培训数据之外的对象和图像分布的各种任务。然而,仍然有改进的空间,我们将在第8节中讨论。

发布.我们正在发布SA-1B数据集用于研究目的,并在https://segment-anything.com上以许可的开放许可证(Apache 2.0)提供SAM。我们还通过在线演示展示了SAM的功能。
在这里插入图片描述
图2:示例图像,上面叠加了我们新引入的数据集SA-1B的掩膜。SA-1B包含了1100万多样化的、高分辨率的、经过许可的、以及保护隐私的图像和11亿高质量的分割掩膜。这些掩膜是由SAM完全自动注释的,并经过人工评分和众多实验的验证,质量和多样性都很高。我们按每个图像的掩膜数量对图像进行分组以进行可视化(平均每个图像有大约100个掩膜)。

2 SAM任务

我们受到了自然语言处理领域的启发,那里的下一个标记预测任务被用于基础模型的预训练以及通过提示工程解决多种下游任务[10]。为了构建分割的基础模型,我们的目标是定义一个具有类似功能的任务。

任务。我们首先将从自然语言处理领域的“提示”概念转化为分割领域,其中提示可以是一组前景/背景点、粗略的框或掩模、自由文本,或者一般来说,任何指示图像中要分割的内容的信息。因此,可提示的分割任务是在给定任何提示的情况下返回有效的分割掩模。 “有效” 掩模的要求简单地意味着,即使提示有歧义并且可能涉及多个对象(例如,回想一下衬衫与人的例子,参见图3),输出应对其中至少一个对象生成一个合理的掩模。这一要求类似于期望语言模型对模糊的提示产生连贯的响应。我们选择这个任务,因为它会导致一种自然的预训练算法,以及通过提示实现零-shot迁移到下游分割任务的通用方法。

在这里插入图片描述
图3:每列显示SAM从单个模糊点提示(绿色圆圈)生成的3个有效掩码。

预训练。可提示的分割任务建议了一种自然的预训练算法,该算法模拟了每个训练样本的一系列提示(例如,点、框或掩模),并将模型的掩模预测与地面实况进行比较。我们改编了这种方法自交互式分割(interactive segmentation)[109, 70],尽管与交互式分割的目标是在获得足够用户输入后最终预测一个有效的掩模不同,我们的目标是在任何提示下始终预测一个有效的掩模,即使提示具有歧义。这确保了预训练模型在涉及歧义的使用案例中的有效性,包括我们数据引擎 §4 中所需的自动注释。我们注意到,在这个任务中表现良好是具有挑战性的,需要专门的建模和训练损失选择,这些内容我们在第3节中进行了讨论。

零次迁移。直观地说,我们的预训练任务使模型在推断时具备对任何提示做出适当响应的能力,因此可以通过设计适当的提示来解决下游任务。例如,如果有一个用于检测猫的边界框检测器,那么可以通过将检测器的边界框输出作为提示提供给我们的模型来解决猫实例分割问题。一般来说,许多实际的分割任务都可以通过提示来完成。除了用于自动数据集标记之外,在我们的实验中,我们还探索了五个不同的示例任务,具体内容在第7节中介绍。

相关任务。分割是一个广泛的领域:包括交互式分割、边缘检测、超像素生成、对象提议生成、前景分割、语义分割、实例分割、全景分割等。我们的可提示分割任务的目标是创建一个通用模型,能够通过提示工程适应许多(尽管不是所有)现有和新的分割任务。这种能力是一种任务泛化的形式。请注意,这与以前的多任务分割系统不同。在多任务系统中,单一模型执行一组固定的任务,例如联合语义、实例和全景分割,但训练和测试任务是相同的。我们工作的一个重要区别在于,通过训练可提示分割模型,该模型可以在推断时通过充当较大系统的组件来执行新的不同任务,例如,要执行实例分割,可提示分割模型与现有的对象检测器组合在一起。

讨论。提示和组合是强大的工具,使单个模型可以以可扩展的方式使用,潜在地可以执行在模型设计时不知道的任务,这与其他基础模型的使用方式类似,例如,CLIP是DALL·E图像生成系统的文本-图像对齐组件。我们预计,可组合的系统设计,借助提示工程等技术,将实现比专门针对一组固定任务训练的系统更多样的应用。此外,通过组合的角度来看,有趣的是可提示分割和交互式分割:尽管交互式分割模型是为人类用户设计的,但经过可提示分割培训的模型也可以组合到更大的算法系统中,正如我们将在示例中演示的。

SAM模型

接下来,我们将介绍用于可提示分割的Segment Anything Model(SAM)。SAM有三个组件,如图4所示:图像编码器、灵活的提示编码器和快速掩膜解码器。我们基于具有特定折衷的变压器视觉模型[14, 33, 20, 62]来实现(摊销)实时性能。我们在这里以高层次介绍这些组件,详细信息请参阅§A。

在这里插入图片描述
图 4:Segment Anything Model(SAM)概述。重量级图像编码器输出图像嵌入,然后可以通过各种输入提示进行高效查询,以以摊销的实时速度生成对象掩膜。对于与多个对象对应的模糊提示,SAM可以输出多个有效掩码和相关的置信度分数。

图像编码器。出于可伸缩性和强大的预训练方法的动机,我们使用了经MAE [47]预训练的Vision Transformer(ViT)[33],经过最小的自适应处理以处理高分辨率的输入[62]。图像编码器每张图片运行一次,并可以在提示模型之前应用。

提示编码器。我们考虑两组提示:稀疏提示(点、框、文本)和密集提示(掩码)。我们通过位置编码[95]表示点和框,这些位置编码与每种提示类型的学习嵌入相加,而对于自由文本,我们使用CLIP [82]的现成文本编码器。密集提示(即掩码)使用卷积嵌入,与图像嵌入按元素相加。

掩膜解码器。掩膜解码器高效地将图像嵌入、提示嵌入和输出令牌映射到一个掩膜。这个设计受到[14, 20]的启发,采用了Transformer解码器块[103]的修改,后跟一个动态掩码预测头。我们的修改后的解码器块使用提示的自注意力和双向交叉关注(提示到图像嵌入和反之亦然)来更新所有嵌入。在运行两个块后,我们将图像嵌入上采样,然后一个MLP将输出令牌映射到一个动态线性分类器,然后计算每个图像位置的掩膜前景概率。

解决模糊性。使用一个输出,如果给出模糊提示,模型将综合多个有效的掩膜。为了解决这个问题,我们修改了模型,以便为单个提示预测多个输出掩膜(参见图3)。我们发现3个掩膜输出足以处理大多数常见情况(嵌套掩码通常最多三层深:整体、部分和子部分)。在训练过程中,我们仅反向传播相对于掩膜的最小损失[15, 45, 64]。为了对掩膜进行排名,模型预测了每个掩膜的置信分数(即估计的IoU)。

效率。总体模型设计在很大程度上受效率的启发。在给定预计算的图像嵌入的情况下,提示编码器和掩码解码器在Web浏览器上以CPU方式运行,耗时约为50毫秒。这种运行时性能使我们的模型可以无缝、实时地进行交互提示。

损失和训练。我们使用在[14]中使用的焦点损失[65]和Dice损失[73]的线性组合来监督掩码预测。我们使用几何提示的混合来训练提示性分割任务(有关文本提示,请参见第7.5节)。按照[92, 37]的方法,我们通过在每个掩码的11轮中随机采样提示来模拟交互式设置,使SAM能够无缝地集成到我们的数据引擎中。

相关文章:

Segment Anything(论文解析)

Segment Anything 摘要1.介绍2 SAM任务SAM模型 摘要 我们介绍了“Segment Anything” (SA) 项目:这是一个新的任务、模型和数据集对于图像分割。使用我们高效的模型进行数据收集,我们构建了迄今为止最大的分割数据集(远远超过其他数据集&…...

@ConditionalOnProperty 用法

文章目录 前言一、使用场景二、使用步骤1.错误示例2.ConditionalOnProperty的解决方案 总结 前言 ConditionalOnProperty 是Spring Boot中的条件注解,它的核心功能是通过属性名以及属性值来实现的,常被用于判断某个属性是否存在,然后决定某个…...

如何选择超声波清洗机、超声波清洗机排行榜

眼镜的日常清洗生活中很多人都会把它给忘记!长时间下来眼镜支架就会变成黄色的,非常的难洗掉,从而又浪费了一个眼镜。一副好的眼镜也不便宜的,把换眼镜的钱省下来入一款超声波清洗机,可以大大的减少金钱的支持&#xf…...

大家这么喜欢这件羽绒服的吗?眼光太好啦

简单干净散发着朝气,温暖的气息由内而外 90白鸭绒,高密度充绒量和蓬松度 三防工艺,立领连帽设计 下摆抽绳,帽子上的魔术贴设计 无一不将保暖落实在实处...

pytorch 入门(二)

本文为🔗小白入门Pytorch内部限免文章 🍨 本文为🔗小白入门Pytorch中的学习记录博客🍦 参考文章:【小白入门Pytorch】教案二🍖 原作者:K同学啊 目录 一、神经网络的组成部分1. 神经元2. 神经网络…...

2023年国赛-大数据应用开发(师生同赛)_赛项规程样题解析

2023年国赛-大数据应用开发(师生同赛)_赛项规程样题解析-任务B:离线数据处理_子任务一:数据抽取2023年国赛-大数据应用开发(师生同赛)_赛项规程样题解析-任务B:离线数据处理_子任务二:数据清洗2023年国赛-大数据应用开发(师生同赛…...

MNE系列教程1——MNE的安装与基本绘图

一、MNE包简介 MNE-Python是一个强大的Python库,专门用于脑电图(EEG)和磁共振成像(MRI)数据的分析和可视化。它提供了广泛的工具,使研究人员能够高效地处理神经科学数据。 MNE-Python支持许多数据格式,包括标准的EEG和MEG文件格式,以及不同类型的MRI数据。它可以用于…...

黑马JVM总结(三十六)

(1)CAS-概述 cas是配合volatile使用的技术 ,对共享变量的安全性要使用synachonized加锁,但是CAS不加锁,它是使用where(true)的死循环,里面compareAndSwap尝试把结果赋值给共享变量&…...

【React】01-React的入门

文章目录 1.1 React简介1.1.1 官网1.1.2 介绍描述1.1.3 React的特点1.1.3 React高效的原因 1.2.React的基本使用1.2.2.相关js库1.2.3.创建虚拟DOM的两种方式1.2.4.虚拟DOM与真实DOM 1.3.React JSX1.3.1.效果jsx语法规则:1.3.2.JSX1.3.3.渲染虚拟DOM(元素)1.3.4.JSX练…...

【C语言进阶】自定义类型:结构体,枚举,联合

自定义类型:结构体,枚举,联合 1.结构体1.1结构体类的基础知识1.2结构的声明1.3特殊的声明1.4结构的自引用1.5结构体变量的定义和初始化1.6结构体内存对齐1.7修改默认对齐1.8结构体传参 2.段位2.1什么是段位2.2段位的内存分配2.3位段的跨平台问…...

Sklearn 聚类算法的性能评估

聚类算法的性能评估是什么? 聚类是无监督学习的一种常用技术,用于将相似的数据点分组在一起。然而在实施聚类算法后,一个关键的问题便是如何评估其性能或质量。由于聚类是无监督的,因此评估其性能相对更为复杂。本文将探讨多种用于评估聚类性能的指标,包括肘部法则、轮廓…...

9月最新外贸进出口数据出来了,外贸整体向好

10月13日,海关总署发布数据显示,今年前三季度中国货物贸易出口2.52万亿美元,下降5.7%。 9月当月,中国出口2991.3亿美元,同比下降6.2%。贸易顺差777.1亿美元。 这个数据还是在改善的。特别是,我们看到全球…...

SSL证书有效期越来越短是什么原因?

随着互联网的普及和数据安全意识的提高,SSL证书的使用变得日益普遍。SSL证书是一种用于加密数据传输并验证网站身份的安全协议。它们通过加密在用户浏览器和网站服务器之间传输的数据,从而确保数据的隐私和完整性。此外,SSL证书还通过数字签名…...

【前段基础入门之】=>CSS3新特性 3D 变换

导语 在上一章节中,我们分享了2D 变换的效果,也分享了一些案例,同时,既然有2D 变换,那么也就肯定有 3D 变换 那么本章节,就为大家带来有关3D 变换的分享. 文章目录 开启3D空间设置景深透视点位置3D 位移3D …...

form表单的三种封装方法(Vue+ElementUI)

form表单的三种封装方法(VueElementUI) 1.首先是最普通,也是大家最先想到的方法,直接封装:2.实现表单动态渲染、可视化配置的方法,动态表单又可以分为两种方法:(注意:注意 v-model 的…...

云原生周刊:CNCF 宣布 Cilium 毕业 | 2023.10.16

开源项目推荐 Reloader Reloader 是一个 Kubernetes 控制器,用于监控 ConfigMap 和 Secrets 中的变化,并对 Pod 及其相关部署、StatefulSet、DaemonSet 和 DeploymentConfig 进行滚动升级! Spegel Spegel 在瑞典语中意为镜像,…...

岩土工程监测利器:多通道振弦数据记录仪应用隧道监测

岩土工程监测利器:多通道振弦数据记录仪应用隧道监测 岩土工程监测在现代工程建设中的作用越来越重要。为了确保工程质量和工程安全,需要对工程过程中的各种参数进行实时监测和记录。而多通道振弦数据记录仪则是一种重要的监测工具,特别适用…...

hive排序

目录 order by (全局排序asc ,desc) sort by(reduce 内排序) Distribute by(分区排序) Cluster By(当 distribute by 和 sorts by 字段相同时 ,可以使用 ) order by (全局排序asc ,desc) INSERT OVERWRITE LOCAL DIRECTORY /home/test2 …...

网络安全入门教程(非常详细)从零基础入门到精通

网络安全是一个庞大而不断发展的领域,它包含多个专业领域,如网络防御、网络攻击、数据加密等。介绍网络安全的基本概念、技术和工具,逐步深入,帮助您成为一名合格的网络安全从业人员。 一、网络安全基础知识 1.计算机基础知识 …...

自动驾驶中的数据安全和隐私

自动驾驶技术的发展已经改变了我们的出行方式,但伴随着这项技术的普及,数据安全和隐私问题也变得愈发重要。本文将探讨自动驾驶中的数据收集、数据隐私和安全挑战,以及如何保护自动驾驶系统的数据。 自动驾驶中的数据收集 在自动驾驶技术中…...

回应:淘宝支持使用微信支付?

近日,就有网友共享称淘宝APP的支付界面出现“微信二维码支付”及其“去微信找个朋友帮我付”这个选项。 淘宝官方网对此回应称,“微信二维码支付作用仍在逐步开放中,目前只有针对一些客户对外开放,并且只有部分商品适用这一付款方…...

k8s的etcd启动报错

背景 电脑休眠状态意外断电导致虚拟机直接进入关机状态。 问题 kubectl命令报错 [rootmaster01 ~]#kubectl get node The connection to the server master01.kktb.org:6443 was refused - did you specify the right host or port?kubelet服务报错 Oct 15 08:39:37 mas…...

codeigniter 4.1.3 gadget chain

EXP code 找到一条很有意思的codeigniter框架的链。 <?php namespace CodeIgniter\HTTP {class CURLRequest {protected $config ["debug" > "./eee.php"];} }namespace CodeIgniter\Session\Handlers {class MemcachedHandler{public function …...

L1-039 古风排版 C++解法

题目再现 中国的古人写文字&#xff0c;是从右向左竖向排版的。本题就请你编写程序&#xff0c;把一段文字按古风排版。 输入格式&#xff1a; 输入在第一行给出一个正整数N&#xff08;<100&#xff09;&#xff0c;是每一列的字符数。第二行给出一个长度不超过1000的非…...

docker安装tomcat

1.通过dockerhub搜索tomcat镜像 dockerhub官网&#xff1a;https://hub.docker.com/ 选择star最多的tomcat点击进入&#xff0c;有很多tomcat详细信息 docker run&#xff1a;运行&#xff0c;没有则会去docker pull 拉去镜像 -it&#xff1a;使用交互方式运行&#xff0c;进…...

别人ping不通我的ip解决方法

方法一&#xff1a;关闭防火墙 方法二&#xff1a;开启ICMPv4 控制面板\系统和安全\Windows Defender 防火墙-----打开高级设置-----入站规则&#xff0c;开启域和专用两个 ICMPv4 方法三&#xff1a;更改共享选项 控制面板\网络和 Internet\网络和共享中心...

Python爬虫基础之Selenium详解

目录 1. Selenium简介2. 为什么使用Selenium&#xff1f;3. Selenium的安装4. Selenium的使用5. Selenium的元素定位6. Selenium的交互7. Chrome handless参考文献 原文地址&#xff1a;https://program-park.top/2023/10/16/reptile_3/ 本文章中所有内容仅供学习交流使用&…...

MS5228数模转换器可pin对pin兼容AD5628

MS5228/5248/5268 是一款 12/14/16bit 八通道输出的电压型 DAC&#xff0c;内部集成上电复位电路、可选内部基准、接口采用四线串口模式&#xff0c;最高工作频率可以到 40MHz&#xff0c;可以兼容 SPI、QSPI、DSP 接口和 Microwire 串口。可pin对pin兼容AD5628。输出接到一个 …...

强化学习基础(2)—常用算法总结

目录 1.Value-Based 2. Policy-Based 参考文献 1.Value-Based Sarsa&#xff08;State-action-reward-state’-action&#xff09;&#xff1a;是为了建立和优化状态-动作(state-action)的价值Q表格所建立的方法。首先初始化Q表格&#xff0c;根据当前的状态和动作与环境进行…...

Web攻防01-ASP应用相关漏洞-HTTP.SYSIIS短文件文件解析ACCESS注入

文章目录 ASP-默认安装-MDB数据库泄漏下载漏洞漏洞描述 ASP-中间件 HTTP.SYS&#xff08;CVE-2015-1635&#xff09;1、漏洞描述2、影响版本3、漏洞利用条件4、漏洞复现 ASP-中间件 IIS短文件漏洞1、漏洞描述2、漏洞成因:3、应用场景&#xff1a;4、利用工具&#xff1a;5、漏洞…...

建设网站需要什么设施/seo企业优化方案

终端进入工程Runner目录 执行 pod setup 编辑PodFile文件 新增 #必须集成 //由原来的UMCCommon变为UMCommonpod UMCommonpod UMDevice 具体位置如下 终端执行命令 pod install 安装好后 因为我的工程是Flutter接入友盟&#xff0c;原生桥接文件 flutter 种sdk已经有了 新…...

wordpress jfinal/免费引流推广工具

本节大纲&#xff1a; 一&#xff1a;双层装饰器&#xff1a;一个函数可以被多层装饰器进行装饰&#xff0c;函数渲染&#xff08;编译&#xff09;从下到上&#xff0c;函数执行从上到下。如下程序&#xff1a; 1 #!/usr/bin/env python2 #-*-coding:utf-8-*-3 # author:liume…...

杭州电子商务网站开发/google下载官方版

P12 JWindow 窗口1.概述2.JWindow 代码实例3.效果演示4.实现鼠标拖动 JWindow 窗口5.效果演示系统&#xff1a;Win10 Java&#xff1a;1.8.0_333 IDEA&#xff1a;2020.3.4 Gitee&#xff1a;https://gitee.com/lijinjiang01/JavaSwing 1.概述 JWindow&#xff1a;一个容器&am…...

动态网站建设试题/百度推广代理商名单

lua 函数 函数 语法格式 function_scope function function_name( argument1, argument2, argument3, ...)function_bodyreturn result_params_comma_separated end 相关说明 function_scope&#xff1a;函数作用域&#xff0c;全局或者local&#xff0c;不设置默认为全局 fu…...

高性能网站开发/今日最新新闻

所有使用 /proc 的模块应当包含 <linux/proc_fs.h> 来定义正确的函数. 要创建一个只读 /proc 文件, 你的驱动必须实现一个函数来在文件被读时产生数据. 当 某个进程读文件时(使用 read 系统调用), 这个请求通过这个函数到达你的模块. 我们先 看看这个函数并在本章后面讨论…...

做网站先做前台还是后台/百度指数是怎么计算的

前言 在使用 python 制作网页的过程中&#xff0c;我们往往需要先将站点的目录“虚拟化”。虚拟化其实就是将当前文件下程序的运行环境与整个系统的环境隔离。那么为什么我们要将一个项目虚拟化呢&#xff1f; 1.不进行虚拟化会产生的问题 在平时使用 python 时&#xff0c;有可…...