【开放词汇分割】Side Adapter Network for Open-Vocabulary Semantic Segmentation

论文链接:Side Adapter Network for Open-Vocabulary Semantic Segmentation

代码链接:https://github.com/MendelXu/SAN

作者:Mengde Xu,Zheng Zhang,Fangyun Wei,Han Hu,Xiang Bai

发表单位:华中科技大学、微软亚洲研究院

会议/期刊:CVPR2023 Highlight

一、研究背景

ImageNet 上的分割结果。对于每个图像,将其类别与 coco 类别结合起来作为推理过程中的词汇表,并且仅可视化注释类别的掩码

现代语义分割方法依赖于大量标注数据,但数据集通常只包含数十到数百个类别,数据收集和标注成本高昂。近年来,大规模视觉-语言模型(如CLIP)在图像分类任务中取得了巨大成功,但在像素级别的语义分割中应用这些模型面临挑战,因为这些模型的训练侧重于图像级别的对比学习,它学习到的表示缺乏语义分割所需的像素级识别能力。弥补表示粒度差距的一种解决方案是在分割数据集上微调模型。然而,分割数据集的数据量远小于视觉语言预训练数据集,因此微调模型在开放词汇识别上的能力常常受到损害。

将语义分割建模为区域识别问题绕过了上述困难。早期尝试采用两阶段训练框架。

在第一阶段,训练一个独立模型来生成一组蒙版图像作物作为蒙版建议。

在第二阶段,使用视觉语言预训练模型(例如 CLIP)来识别蒙版图像裁剪的类别。然而,由于掩模预测模型完全独立于视觉语言预训练模型,它错过了利用视觉语言预训练模型强大特征的机会,并且预测的掩模图像裁剪可能不适合识别,这会导致模型笨重、缓慢且性能低下。

SAN 概述

为了实现这一目标,提出了一个新的框架(上图所示),称为侧适配器网络 (side adapter network, SAN)。由于端到端训练,它的掩模预测和识别是 CLIP 感知的,并且由于利用了 CLIP 的特性,它可以是轻量级的。

红色虚线表示训练期间的梯度流。在框架中,冻结的 CLIP 模型仍然充当分类器,并且侧适配器网络生成掩码提案和注意偏差,以指导 CLIP 模型的更深层来预测提案明智的分类逻辑。在推理过程中,将 mask proposal 和proposal logits 结合起来,通过 Matmul(矩阵乘法函数)得到最终的预测。

二、整体框架

本文提出了一种新的开放词汇语义分割框架——Side Adapter Network (SAN)。该方法将语义分割任务建模为区域识别问题。SAN附加在冻结的CLIP模型上,具有两个分支:一个用于预测掩码提案,另一个用于预测应用在CLIP模型中的注意力偏差,以识别掩码的类别。整个网络可以端到端训练,使附加的侧网络能够适应冻结的CLIP模型,从而使预测的掩码提案对CLIP感知。

作者证明这种解耦设计提高了分割性能,因为用于 CLIP 识别掩模的区域可能与掩模区域本身不同。为了最大限度地降低 CLIP 的成本,进一步提出了单前向设计:将浅层 CLIP 块的特征融合到 SAN,并将其他更深的块与注意力偏差相结合以进行掩模识别。

因为用于 CLIP 识别掩模的区域可能与掩模区域本身不同的理解:CLIP模型主要是通过对比学习在图像级别进行训练的,其学习到的特征更偏向于全局或大范围的图像特征,而不是具体的像素级别特征。当CLIP模型应用于掩模识别时,它的注意力机制可能会关注到一些与掩模区域有重叠但并不完全一致的区域。这种不完全一致性是因为CLIP的注意力机制可能会将注意力分散到整个图像中一些相关的部分,而不仅仅是掩模的边界或内部区域。

假设有一张图像,其中有一只狗在草地上。CLIP模型可能会关注到整只狗以及周围的草地作为特征进行分类,而语义分割任务仅需要标注出狗的具体轮廓区域。这时,CLIP的识别区域(整只狗和部分草地)与实际需要的掩模区域(狗的轮廓)并不完全一致。

出于公平性和可重复性的目的,该研究基于官方发布的 CLIP 模型。重点关注已发布的 ViT CLIP 模型,因为视觉 Transformer 事实上已经取代 ConvNet 成为计算机视觉社区的主导骨干网,并且为了概念的一致性和简单性,侧适配器网络也由视觉 Transformer 实现。

准确的语义分割需要高分辨率图像,但已发布的ViT CLIP模型是针对低分辨率图像(例如224×224)设计的,直接应用于高分辨率图像,性能较差。为了缓解输入分辨率的冲突,在 CLIP 模型中使用低分辨率图像,在侧适配器网络中使用高分辨率图像。作者证明这种不对称输入分辨率非常有效。此外,还探索仅微调 ViT 模型的位置嵌入并注意改进。

三、核心方法 Side Adapter Network

3.1 架构介绍

Side Adapter Network (SAN) 是一个端到端的框架,旨在充分利用CLIP模型在开放词汇语义分割中的能力。SAN由一个轻量级的视觉Transformer实现,可以利用CLIP的特征,并且有两个输出:掩码提案和用于掩码识别的注意力偏差。这些注意力偏差应用于CLIP的自注意力机制,以识别掩码提案的类别。

在实践中,将浅层 CLIP 层的特征融合到 SAN 中,并将注意力偏差应用于更深的 CLIP 层以进行识别。通过这种单前向设计,可以最大限度地降低 CLIP 模型的成本。

SAN的详细架构

  • 输入图像:输入图像被分割成16×16的图像块,每个块通过线性嵌入层投射为视觉tokens。

  • 视觉tokens与查询tokens:这些视觉tokens与N个可学习的查询tokens连接在一起,并输入到随后的Transformer层中。

  • 输出:SAN有两个输出:掩码提案和用于掩码识别的注意力偏差。查询tokens和视觉tokens分别通过两个独立的3层MLP(多层感知器)投射为256维度的向量,用于生成掩码提案和注意力偏差。

投影查询标记可以表示为 \mathbf{Q}_{\mathrm{mask}}\in\mathbb{R}^{N\times256},其中N是查询标记的数量,默认等于100。投影视觉标记可以表示为\mathbf{V}_{\mathrm{mask}}\in\mathbb{R}^{\frac{H}{16}}\times\frac{W}{16}\times256 ,其中H和W是输入的高度和宽度图像。最后的预测mask由Q mask和V mask的内积生成:

\mathbf{M}=\mathbf{V}_\text{mask}\mathbf{Q}_\text{mask}^\mathrm{T}

其中,\mathbf{M}\in\mathbb{R}^{\frac{H}{16}}\times\frac{W}{16}\times N ,产生注意力偏差类似于掩模预测。查询标记和视觉标记也由 3 层 MLP 投影,表示为 \mathbf{Q}_{\mathrm{attn}}\in\mathbb{R}^{N\times256} , {V}_{\mathrm{attn}}\in\mathbb{R}^{\frac{H}{16}\times\frac{W}{16}\times K\times256},其中 K 是 ViT CLIP 的注意力头数量。通过内部生成Q attn和V attn,得到了注意力偏差:

\mathbf{B=V_{attn}Q_{attn}^{T}}

其中, \mathbf{B}\in\mathbb{R}^{\frac{H}{16}\times\frac{W}{16}\times K\times N},此外,如果需要,注意力偏差将进一步调整为 \mathbf{B}\in\mathbb{R}^{h\times w\times K\times N},其中h和w是 CLIP 中注意力图的高度和宽度。在实践中,Q mask和Q attn可以共享,并且注意力偏差将应用于CLIP的多个自注意力层中,即偏差用于不同的自注意力层中。

掩模预测和识别的解耦设计背后的动机很直观:用于在 CLIP 中识别掩模的感兴趣区域可能与掩模区域本身不同。

3.2 Feature fusion on visual tokens 视觉标记上的特征融合

在ViT模型中,视觉tokens和[CLS] token是主要的特征表示。为了充分利用CLIP模型的强大特征,SAN将CLIP模型的视觉tokens与SAN的视觉tokens进行特征融合。具体步骤如下:

  • 特征重排:由于CLIP和SAN的视觉tokens数量和特征维度可能不同,首先将CLIP的视觉tokens重新排列为特征图,经过1×1卷积和重尺寸操作来调整通道维度和特征图大小。

  • 特征融合:将调整后的CLIP特征图与SAN的对应特征图进行逐元素相加,从而实现特征融合。特征融合在多个层次上进行,例如在12层的ViT-B/16 CLIP模型和8层的SAN模型中,将CLIP的{stem,3,6,9}层的特征与SAN的{stem,1,2,3}层的特征融合。

3.3 Mask recognition with attention bias 带有注意偏差的掩模识别

原始的CLIP模型只能通过[CLS] token进行图像级的识别,为了在CLIP模型中实现精确的掩码识别,SAN引入了注意力偏差,这些偏差用于指导CLIP模型的[CLS] token在感兴趣区域进行识别。

在 CLIP 中使用注意偏差来预测掩模的图示

左图创建一组 [SLS] 令牌(即影子 [CLS] 令牌副本)并将其应用于 CLIP。这些[SLS]令牌在注意力偏差的影响下更新。 右图该图显示了不同类型的令牌如何相互作用。方块的颜色表示query token和key token之间的关系:黑色表示query没有被key更新,白色表示query可以正常被key更新,灰色表示在attention的作用下query可以被key更新偏见。

过程总结:

  • 生成[SLS] tokens:创建一组[CLS] token的影子副本([SLS] tokens),这些副本在更新时仅受视觉tokens的影响,而不会反过来影响视觉tokens或[CLS] tokens。

  • 添加注意力偏差:在计算注意力时,将预测的注意力偏差Bk添加到注意力矩阵中,从而引导[SLS] tokens的特征逐渐适应掩码预测。

  • 类别预测:通过比较[SLS] token与CLIP文本嵌入的类别名称之间的距离或相似度,轻松获得掩码的类别预测。

在计算注意力时,预测的注意力偏差 Bk 被添加到注意力矩阵中,从而引导[SLS] tokens的特征逐渐适应掩码预测。公式如下:

X_{[SLS]}^{l+1}=\text{softmax}(Q_{[SLS]}^lK_{\text{visual}}^l+B_k)V_{[SLS]}^l

其中,l 表示层数,k表示第 k个注意力头,Q[SLS]=Wq X[SLS]和 V[SLS]=Wv X[SLS] 是[SLS] tokens的查询和value嵌入,Kvisua l=Wk Xvisual 是视觉tokens的键嵌入,Wq,Wk,Wv 是查询、键、value嵌入层的权重。

在原始设计中,计算复杂度为:

\mathcal{O}((T_{\mathrm{visual}}+T_{[\mathrm{CLS}]}+T_{[\mathrm{SLS}]}))^2

Tvisual​ 是视觉tokens的数量,T[CLS] 是[CLS] token的数量(通常为1),T[SLS]​ 是[SLS] tokens的数量。

这个计算复杂度考虑了所有类型的tokens,并假设它们都通过屏蔽自注意力层(masked self-attention layer)进行更新。具体来说,每个token与所有其他token进行交互,导致了二次复杂度。

为了降低计算复杂度,作者提出使用交叉注意力(cross-attention)来更新[SLS] tokens。交叉注意力与自注意力共享嵌入权重,但只涉及特定类型的token之间的交互。这使得计算复杂度降低为:

\mathcal{O}((T_{\mathrm{visual}}+T_{[\mathrm{CLS}]})^2+T_{[\mathrm{SLS}]}(T_{\mathrm{visual}}+T_{[\mathrm{CLS}]}))

随着注意力偏差的应用,[SLS] tokens 的特征逐渐演化以适应掩码预测。掩码的类别预测通过比较[SLS] tokens和CLIP文本嵌入的类别名称之间的距离或相似度来获得:

P\in\mathbb{R}^{C\times N}

其中 C 是类别数量,N 是查询tokens的数量。

3.4 Segmentation map generation

最后,结合掩码提案 M\in\mathbb{R}^{\frac H{16}\times\frac W{16}\times N}和掩码的类别预测 P\in\mathbb{R}^{C\times N},通过矩阵乘法生成最终的分割图 S:

\large S=M\times P^T

其中, S\in\mathbb{R}^{\frac H{16}\times\frac W{16}\times C}

为了训练模型,mask生成通过dice损失L mask_dice和二元交叉熵损失L mask_bce进行监督。mask模识别通过交叉熵损L cls进行监督。总损失为:

L_{\mathrm{seg}}=\lambda_{1}L_{\mathrm{mask_dice}}+\lambda_{2}L_{\mathrm{mask_bce}}+\lambda_{3}L_{\mathrm{cls}}

损失权重𝜆1、𝜆2、𝜆3分别为 5.0、5.0 和 2.0。 通过端到端训练,侧适配器网络可以最大限度地适应冻结的CLIP模型,因此掩模建议和注意偏差是CLIP感知的。

四、实验结果

在 6 个数据集上进行了实验:COCO Stuff、ADE20K-150、ADE20K-847、Pascal Context-59、Pascal Context-459 和 Pascal VOC。按照常见的做法,所有模型都在 COCO Stuff 的训练集上进行训练,并在其他数据集上进行评估。

  • COCO Stuff:它包含 164K 图像和 171 个注释类,分为训练集、验证集和测试集,分别包含 118K、5K 和 41K 图像。在实验中,默认使用完整的118K训练集作为训练数据。

  • ADE20K-150(ADE-150):它是一个大规模场景理解数据集,包含 20K 训练图像和 2K 验证图像,总共 150 个注释类。

  • ADE20K-847(ADE-847):它具有与 ADE20K-150 相同的图像,但有更多注释的类(847 个类),这对于开放词汇语义分割来说是一个具有挑战性的数据集。

  • Pascal VOC(VOC) :Pascal VOC 包含 20 类语义分割注释,其中训练集和验证集分别包含 1464 个和 1449 个图像。

  • Pascal Context-59:它是一个用于语义理解的数据集,包含 5K 训练图像、5K 验证图像以及总共 59 个带注释的类。

  • Pascal Context-459:它具有与 Pascal Context-59 相同的图像,但有更多注释的类(459 个类),这也广泛用于开放词汇语义分割。

Dataset Analysis:为了澄清并有利于对开放词汇能力的理解,作者通过计算其他数据集和训练数据集 COCO Stuff 之间的类别相似度来进行简单的分析,结果显示在表1。

  • 提取文本嵌入:使用预训练的CLIP模型,将每个数据集的类别名称转换为文本嵌入向量。

  • 计算余弦相似度:对于每一对数据集,计算其类别嵌入向量之间的余弦相似度。具体来说,对于两个类别集合A和B中的每个类别对(a, b),计算它们的余弦相似度,然后利用这些相似度计算Hausdorff(豪斯多夫,对于点集 A 中的每个点 a,找到点集 B 中距离 a 最近的点,然后在这些最近距离中取最大值)距离,作为这两个数据集之间的相似度度量。

  • 生成相似度表:通过上述步骤,得到不同数据集之间的相似度,结果显示在表1中。

在五个验证数据集中,Pascal VOC和Pascal Context-59的相似度高达0.9,这意味着它们更擅长衡量视觉类别方面的域内开放词汇能力。此外,Pascal Context-459、ADE20K-150和ADE20K-847的相似度得分较低,这使得它们能够更好地评估跨领域开放词汇能力。

表 1:验证数据集和训练集(即 COCO Stuff)之间的标签集相似度。基于CLIP文本编码器通过Hausdorff距离和余弦相似度测量。

与最先进方法的性能比较。 † SimSeg [33] 在其论文中使用 COCO Stuff 的子集进行训练。为了公平比较,使用他们官方发布的代码在完整的 COCO Stuff 上重现了他们的方法。 * RN101:ResNet-101 [14]; EN-B7:EfficientNet-B7 [29]; SAN 整体。ensemble是使用集成技巧的结果,而不是默认设置。

与其他方法的训练和测试效率比较。

Param.代表方法中可训练参数的总数(以百万为单位)。输入图像的分辨率为640×640。CLIP型号为ViT-B/16。 * 目前还没有可用的官方代码,按照他们论文中的描述重新实现他们的方法。 OvSeg与 SimSeg具有相似的结构,但它对整个 CLIP 模型进行了微调,从而产生了更多的可训练参数。

不同的特征融合策略。 ViT-B/16 的最后 3 层用于所有实验中的掩模预测。

特征融合层数量和掩模预测层数量之间的权衡

SAN轻量级的关键是利用CLIP模型的强大功能。通过实验说明了表中特征融合的重要性。 如果不融合 CLIP 功能,mIoU 将从 27.8 下降到 21.1。

此外,还注意到,融合较深层(例如第9层)的特征比融合较浅层(例如stem层)的特征要好,并且仅融合第9层的特征可以达到27.1 mIoU,比融合高+6.0 mIoU没有特征融合的基线。这一观察结果与更深层次的特征往往更具语义性的直觉是一致的。此外,与单层融合相比,融合多层特征可以进一步提高性能 +0.8 mIoU。

为了最小化 CLIP 的推理成本,采用单前向设计,即较浅的层用于特征融合,其他较深层用于mask识别,因此需要进行权衡,如上表所示。 当前9层用于特征融合,后3层用于掩模识别时,性能最佳。

掩模预测头的设计选择。 (a) 单头和来自 CLIP 的阻塞梯度的两阶段训练; (b) 单头端到端训练; (c) 解耦头端到端训练。红色虚线表示训练期间的梯度流。

与其他两阶段框架不同,本文的方法是端到端的训练框架。

作者研究了其他两个框架之间的差异。由于注意力偏差分支必须通过 CLIP 进行训练,为了进行比较,在 CLIP 的自注意力层中使用 mask proposal 代替注意力偏差。如果来自 CLIP 的梯度被阻止,则该方法退化为两阶段框架,即掩模预测与 CLIP 识别隔离。否则,该方法是单头端到端训练框架,并且掩模预测是 CLIP 感知的。

两阶段与端到端。这一显着改进证明了 CLIP 感知掩模预测的重要性。

单头和解耦头的比较。只需很少的额外参数和触发器,解耦头就可以显着提高性能。所有模型都经过端到端训练。

单头设计意味着模型只有一个注意力头来处理掩码预测和识别。解耦头设计意味着模型在处理掩码预测和识别时,使用了多个注意力头,这些头之间的计算是解耦的。

ViT-B/16 CLIP 模型输入分辨率的影响。改变 CLIP 输入分辨率,同时始终在侧面适配器网络中使用 640*640 图像。

微调位置嵌入可以提高性能

方法的定性结果。 (a) 和 (b) 是具有不同词汇表(分别为 ADE-150 和 ADE-847)的相同输入图像的结果

SAN容量的影响。代表模型中可训练参数的总数(以百万为单位)。

注意偏差设计的消融和[SLS]令牌的初始化方法

Prompt工程的效果。单个模板“{} 的照片”。用于不使用Prompt工程的模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 快速入门案例

步骤一&#xff1a;引入vue.js文件 添加<script>标签并标明路径 步骤二&#xff1a;定义Vue对象 el Vue接管区域 data 定义数据模型 步骤三&#xff1a;编写视图层的展示 v-model 绑定数据模型 {{要展示的数据模型}} 运行效果 总结 文本框里的值&a…

雪花算法的原理以及实现

文章目录 一、简介二、算法优缺点三、算法实现 一、简介 有这么一种说法&#xff0c;自然界中并不存在两片完全一样的雪花的。每一片雪花都拥有自己漂亮独特的形状、独一无二。雪花算法也表示生成的ID如雪花般独一无二。 雪花算法 &#xff08;SnowFlake &#xff09;算法&am…

几度互联网站群管理系统全媒体解决方案

随着高考的结束&#xff0c;各高校开启了紧张的招生宣传工作&#xff0c;几度互联网站群系统助力各高校招生宣传。 学校官方网站是互联网时代学校对外交流的重要途径和信息公开的主要载体&#xff0c;是展示学校形象、密切联系师生的重要窗口&#xff0c;是加强校园宣传思想工…

【MySQL备份】Percona XtraBackup篇

目录 1.关于Percona XtraBackup 2. Percona XtraBackup有哪些特点&#xff1f; 3.安装Percona XtraBackup 3.1.环境信息 3.2.安装步骤 4.实战演练 4.1.全量备份与恢复 4.2.总结 1.关于Percona XtraBackup Percona XtraBackup是世界上唯一的开源、免费的MySQL热备份 为…

品牌推广方案怎么写?策划书模板与实战技巧分享

品牌想要快速得到市场的认可&#xff0c;一个精心策划的品牌推广方案是脱颖而出的关键。 作为一名手工酸奶品牌创始人&#xff0c;目前全国也复制了100多家门店&#xff0c;这篇文章&#xff0c;我和大家分享下&#xff0c;如何做一个清晰的结构框架、策划书模板以及实战技巧&…

【论文阅读】-- TimeNotes:时间序列数据的有效图表可视化和交互技术研究

TimeNotes: A Study on Effective Chart Visualization and Interaction Techniques for Time-Series Data 摘要1 介绍和动机2 文献2.1 时间序列数据探索2.1.1 数据聚合2.1.2 基于透镜2.1.3 基于布局 3 任务和设计3.1 数据3.2 领域表征3.3 探索、分析和呈现 4 TimeNotes4.1 布局…

Kaggle竞赛——房价预测

目录 1. 特征分析1.1 数据集导入1.2 统计缺失值1.3 可视化缺失值1.4 缺失值相关性分析1.5 训练集和测试集缺失数据对比1.6 统计特征的数据类型1.7 数值型特征分布直方图1.8 数值型特征与房价的线性关系1.9 非数值型特征的分布直方图1.10 非数值型特征箱线图1.11 数值型特征填充…

JAVA:常用的算法指南

请关注微信公众号&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、简述 在软件开发过程中&#xff0c;算法扮演着关键的角色。它们用于解决各种问题&#xff0c;从数据处理到搜索、排序等。本文将介绍几种常见的算法及其 Java 实现&#xff0c;包括排序算…

基于java+springboot+vue实现的农产品直卖平台(文末源码+Lw)266

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通…

Python从0到100(三十三):xpath和lxml类库

1. 为什么要学习xpath和lxml lxml是一款高性能的 Python HTML/XML 解析器&#xff0c;我们可以利用XPath&#xff0c;来快速的定位特定元素以及获取节点信息 2. 什么是xpath XPath&#xff0c;全称为XML Path Language&#xff0c;是一种用于在XML文档中进行导航和数据提取的…

Python基础之多进程

文章目录 1 多进程1.1 简介1.2 Linux下多进程1.3 multiprocessing1.4 Pool1.5 进程间通信1.6 分布式进程 1 多进程 1.1 简介 要让Python程序实现多进程&#xff08;multiprocessing&#xff09;&#xff0c;我们先了解操作系统的相关知识。 Unix/Linux操作系统提供了一个fork…

豆包文科成绩超了一本线,为什么理科不行?

卡奥斯智能交互引擎是卡奥斯基于海尔近40年工业生产经验积累和卡奥斯7年工业互联网平台建设的最佳实践&#xff0c;基于大语言模型和RAG技术&#xff0c;集合海量工业领域生态资源方优质产品和知识服务&#xff0c;旨在通过智能搜索、连续交互&#xff0c;实时生成个性化的内容…

Java - 程序员面试笔记记录 实现 - Part2

2.1 输入输出流 流可以被看作一组有序的字节集合&#xff0c;即数据在两个设备间的传输。 字节流&#xff1a;以字节作为单位&#xff0c;读到一个字节就返回一个字节&#xff1b;InputStream & OutputStream。 字符流&#xff1a;使用字节流读到一个到多个字节先查询码…

基于RabbitMQ的异步消息传递:发送与消费

引言 RabbitMQ是一个流行的开源消息代理&#xff0c;用于在分布式系统中实现异步消息传递。它基于Erlang语言编写&#xff0c;具有高可用性和可伸缩性。在本文中&#xff0c;我们将探讨如何在Python中使用RabbitMQ进行消息发送和消费。 安装RabbitMQ 在 Ubuntu 上安装 Rabbi…

提升写作效率:探索AI在现代办公自动化中的应用

工欲善其事&#xff0c;必先利其器。 随着AI技术与各个行业或细分场景的深度融合&#xff0c;日常工作可使用的AI工具呈现出井喷式发展的趋势&#xff0c;AI工具的类别也从最初的AI文本生成、AI绘画工具&#xff0c;逐渐扩展到AI思维导图工具、AI流程图工具、AI生成PPT工具、AI…

ubuntu 系统中 使用docker 制作 Windows 系统,从此告别 vmware虚拟机

我的系统是 ubuntu 24 前期准备工作&#xff1a; 安装dockerdocker pull 或者 手动制作镜像 docker build 的话 必须要 科学上网&#xff0c; 好像阿里镜像都下不下来。需要 知道 docker 和docker compose 命令的使用方式 我是给docker 挂了 http代理 如果你能pull下来镜像 …

springboot健身房管理系统-计算机毕业设计源码031807

摘 要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在健身房管理的要求下&#xff0c;开发一款整体式结构的健身房管理系统…

Windows环境使用SpringBoot整合Minio平替OSS

目录 配置Minio环境 一、下载minio.exe mc.exe 二、设置用户名和密码 用管理员模式打开cmd 三、启动Minio服务器 四、访问WebUI给的地址 SpringBoot整合Minio 一、配置依赖&#xff0c;application.yml 二、代码部分 FileVO MinioConfig MinioUploadService MinioController 三…

使用Python绘制太阳系图

使用Python绘制太阳系图 太阳系图太阳系图的优点使用场景 效果代码 太阳系图 太阳系图&#xff08;Sunburst Chart&#xff09;是一种层次结构图表&#xff0c;用于表示数据的分层结构。它使用同心圆表示各个层级&#xff0c;中心圆代表最高层级&#xff0c;向外的圆环代表逐级…

CCT技术

概念介绍 多个功能核心的集成可以通过片上系统(SOC)或封装中系统(SIP)设备的开发来实现。SOC器件将核心集成到单个集成电路中。SIP集成是将多个集成电路组合到单个封装中。核心数量 的增加可能导致必要的测试人员资源和/或测试时间的增加。这直接影响了与测试这些设备相关的…