Prior to Segment: Foreground Cues for Weakly Annotated Classes in Partially Supervised Inseg

在这里插入图片描述

摘要

部分监督实例分割的目的是利用更丰富的弱框标签来改善有限掩码标签的掩码预测。在这项工作中,我们证明了在部分监督实例分割中常用的类不可知掩码头,仅使用框监督很难学习弱注释类的前景的一般概念。为了解决这个问题,我们引入了一个对象掩码先验(OMP),它为掩码头提供了在所有类的监督下由盒子分类头隐式学习的一般概念前景。这有助于类不确定掩码头关注感兴趣区域(RoI)中的主要对象,并改进对弱注释类的泛化。我们使用强监督类和弱监督类的不同分割在COCO数据集上测试我们的方法。我们的方法在提供更简单的架构的同时,显著改善了Mask R-CNN基线,并获得了与最先进的具有竞争力的性能。

1. Introduction

实例分割是计算机视觉中的一项基本任务,应用范围从自动驾驶汽车到机器人和医学成像[5,6,13,22,26,30]。最近实例分割方法成功的一个主要贡献者是具有大量实例级掩码标签的大规模数据集的可用性[7,8,12,24,36]。掩码标签的一个主要问题是它们的获取相当耗时,每个实例[4]为~ 67秒。相反,弱标签(w.r.t.实例掩码)如包围框(~ 10.5秒)允许更有效的注释[4]。然而,对于没有足够掩码标签的类,传统的实例分割方法性能较差,并且容易生成穿孔的掩码预测,不能覆盖整个对象或完全丢失它[16,20]。为了提高对没有掩码标签的类的掩码预测,最近的研究集中在部分监督学习设置中解决这个问题[9,16,20,40],其中所有类都用方框标签注释,而这些类中只有一个子集也带有实例掩码标签。部分监督实例分割的目标是将丰富但弱的方框标签与强但有限的掩码标签结合使用,为弱(方框)注释类预测更好的实例掩码。

在目前的方法中,概括弱类掩码预测的任务要么通过类感知权重[16]的元学习实现,要么通过类不可知掩码头实现[9,20,40]。在后一种情况下,不是预测每个类的掩码,而是将RoI中的每个像素分类为前景或背景。因此,类不可知mask头面临的挑战是必须学习前景的一般概念,以便推广到不可见的对象类。然而,即使为弱类提供了丰富的框标签,这也经常失败。

在本文中,我们发现,一方面,问题源于对象实例之间的模糊重叠,其中一个实例的像素出现在另一个实例的边界框中。因此,当RoI包含多个且可能重叠的实例时,实际前景对于掩码头来说是模糊的。参见图1中的示例。另一方面,训练期间出现在RoI背景中的弱类实例被作为背景主动学习。这不利于泛化到经常与其他受监督类交互的弱类。为了解决这些问题,我们引入了一个对象掩码优先(OMP),它突出显示每个RoI中的正确前景。这有助于掩码头解决模棱两可的星座,学习前景的更一般的概念,并将其推广到弱类。

在这里插入图片描述
图1。我们的对象掩码先验(OMP)为掩码头提供前景线索,突出显示模糊的RoIs中的主要实例(黄色像素表示前景)。OPMask能够解决重叠问题并分割正确的实例,而我们的Mask R-CNN基线无法做到这一点。

最近的研究表明,形状先验是有益的归纳偏差,可以引导模型走向更稳定的掩模预测。例如,ShapeMask[20]通过对ground-truth mask应用k-means来创建形状先验知识库,而ShapeProp[40]通过在边界框上使用像素级多实例学习来创建先验。虽然这些先验值有助于推广到弱类,但它们并没有显式地解决上面提到的问题。

相反,我们的先验被显式优化为使用来自所有类的框监督突出RoI中的前景。这是通过利用box分类头自然学习识别RoI中的主要类这一事实来实现的。当box头在部分监督设置中接收所有类的标签时,box特征捕获了前景的一般概念。为了揭示这一前景,我们使用类激活映射(CAMs)[39],这是粗定位映射,指示模型检测到的最具鉴别性的图像区域。因此,给出正确的分类,CAMs有望突出与主要RoI类对应的前景领域。

与之前为预先创建引入单独模块的方法不同,我们只依赖于box头中的特征,并以端到端方式将OMP嵌入到我们的模型中。除了使用来自所有类别的框监督,我们的先验能够使用有限的掩码标签的掩码梯度来增加其空间范围。我们将我们的OMP嵌入到Mask R-CNN元架构中,并将我们的整体模型命名为OPMask (Object Prior Mask R-CNN)。我们的主要贡献如下:

  • 我们发现了部分监督实例分割中的两个基本问题:首先,在训练期间出现在掩码监督RoI背景中的弱类实例被模型作为背景学习。其次,在包含多个且可能重叠实例的模糊roi中,掩码头很难找到前景。
  • 我们在掩码头中引入了对象掩码先验(OMP)来解决上述识别的问题。先验通过利用来自box头的信息,突出了所有类的前景。
  • 在COCO数据集[24]上,OPMask比我们的Mask R-CNN基线显著提高了13.0 AP。与之前的最先进技术相比,我们改进了ShapeMask[20]和ShapeProp[40],并在使用更简单的架构时实现了与CPMask[9]相比的竞争结果。

2. Related Work

实例分割旨在分割场景中的每个对象实例。基于检测的方法[6,13,22,26]为现有的检测模型添加了一个掩码预测网络,代表了当前的最先进技术。Mask R-CNN[13]扩展了两级检测网络Faster R-CNN[32]是第一个引入结合检测和掩码梯度的多任务损失。Mask R-CNN是一个强大的基线,由于其可扩展性,经常用作元体系结构。基于轮廓的方法[27,30,38]通过细化顶点序列来匹配对象形状来分割对象。自底向上方法将像素分组以生成实例掩码[2,25,28]。由于这些方法需要具有像素级监督的大型数据集,因此不适合部分监督任务。

部分监督实例分割。在部分监督的实例分割中,类的子集使用框和掩码监督进行强注释,而其余类只携带弱框标签。目标是使用丰富的框标签和有限的掩码来预测所有类的实例掩码。Hu等人的开创性方法[16]用一个权重传递函数来增强mask R-CNN,该函数学习从box到mask权重的映射,引入了一个类感知掩码头,捕获所有类的表示。

Kuo等人介绍了ShapeMask[20],它通过对可用的ground-truth mask应用k-means来创建形状先验知识库。ShapeMask基于它的先验仅仅是有限的掩码标签。相反,我们使用所有可用类的方框标签,并使用掩码标签进行细化。

ShapeProp[40]在边界框上使用像素级多实例学习(MIL)来创建显著性热图,并对其进行进一步处理,从而生成更具表现力的形状激活图。ShapeProp和OPMask都利用框标签来生成掩码预测的先验。Shape-Prop引入了两个单独的模块来生成和细化它们的先验。另一方面,我们利用了box头隐式学习前景概念的事实。因此,我们设计我们的模型来利用box头已经提供的功能。

最后,Fan等人了解了实例掩码之间的基本形状和外观共性,这些共性应该泛化到弱类中。形状共性由边界预测头学习,而外观共性由基于注意力的关联解析模块强制执行。除了学习有助于泛化的共性外,我们还发现一个主要问题在于模糊的RoIs和面具头难以学习前景的一般概念。为了解决这个问题,我们利用我们的OMP,它突出RoI的前景来解决不明确的重叠问题,并帮助泛化到弱类。

弱监督实例分割方法仅依赖于弱标签,如包围框或图像级别标签[1,3,10,15,19,21,41,42]。使用图像级标签的模型[1,10,21,41,42]主要使用基于CAM的图像范围定位信息来辅助实例掩码预测。Zhou等人[41]使用类响应映射的峰值来检测和分割实例。Ge等[10]使用共享同一骨干网的多任务网络头来细化对象注意映射。Laradji等人[21]和Ahn等人[1]都创建并改进了伪掩码,后来用于训练掩码R-CNN[13]。只有图像级标签可用的设置需要引入复杂的细化模块。相反,在我们的设置中,我们依赖于模型中已经可用的掩模梯度来改进我们的OMP。

使用box监督所做的工作较少[15,19]。Hsu等人[15]采用了一种类似于mask R-CNN的架构,其中掩模头部使用MIL。Khoreva等人[19]使用GrabCut[33]创建伪ground truth来训练一个单独的分割模型。我们不是使用box像素来预测掩码,而是使用CAM来提取box特征中的前景信息来创建我们的OMP。

3. Method

在部分监督实例分割中,具有类不可知掩码头的传统mask R-CNN无法预测某些弱类的可靠实例掩码,如图1和图4所示。为了解决这个问题,我们提出了OPMask,它引入了一个对象掩码先验(OMP),用于捕获数据集中所有类的前景线索(即广义前景)。OPMask采用了带ResNet[14]骨干网和FPN[23]的Mask R-CNN[13]设计。该模型如图2所示。

在这里插入图片描述
图2。总体结构。box头生成我们的OMP, OMP被添加到进入掩码头的特征中,以创建对象感知的特征 F o b j e c t F_{object} Fobject。掩码头然后使用 F o b j e c t F_{object} Fobject来预测实例掩码。

3.1. Object Mask Prior (OMP)

OMP的作用是作为一个归纳偏差捕捉前景的一般概念,以提高对弱类的泛化。在部分监督学习设置中,预测一般的前景不是简单的,主要有两个原因:(1)对于类的子集,像素级掩码标签缺失;(2)在许多情况下,RoI包含多个重叠的实例,使得RoI中的前景不明确。OMP通过在每个RoI中突出显示正确的前景来解决这些问题,这有助于掩码头学习前景的更一般的概念,解决模糊的RoI,并将其推广到弱类。

我们通过提取box头中box特征捕获的前景信息来创建这样的先验。我们利用box分类头学习数据集中所有类的主类(即前景)的表示这一事实。为了揭示这一前景,我们使用类激活映射(CAMs)[39],它提供了粗定位映射,强调了模型用于分类的最具鉴别性的区域。因此,给出正确的分类,CAMs有望突出与主要RoI类对应的前景领域。

为了实现CAM计算,我们使用了一个带有四个卷积层的box头,其中在最后一个卷积特征图上应用了全局平均池化(GAP)。得到的向量经过线性层处理,进行box分类和回归(见图2)。我们用函数 f W c l s f_{W_{cls}} fWcls计算CAMs,该函数是一个 1 × 1 1 \times 1 1×1卷积,参数化为分类权重 W c l s W_{cls} Wcls,如下所示:

在这里插入图片描述
其中 F b o x F_{box} Fbox是GAP之前box头的最后一个特征图。这允许用一个操作有效地计算所有CAM,同时保持它们可微。根据是训练时间还是推理时间,我们使用ground truth标签或box头预测的类从 M c a m M_{cam} Mcam中选择正确的CAM切片。我们可以期望CAMs在不同类别之间是稳定的,因为部分监督实例分割任务假设所有类别都有丰富的框标签。

正确类别的CAM被添加到相应的掩码特征中,这将在下一节中描述。除了提供mask头有利的前景线索,这也允许mask梯度通过box头反向传播。CAM的一个众所周知的缺点是,它们不能覆盖物体的全部范围,而只能覆盖最显著特征的最小区域。还有一些工作使用昂贵的采样或细化步骤来增加CAMs的空间范围[34,41,42]。为了确保没有单独的CAM细化步骤的简单快速架构,我们使用了高效的原始CAM定义[39],并利用mask梯度为box头中的特征提供掩码信息。这导致CAMs的空间范围增加,使它们能够捕捉更精细的细节。

因此,接收掩模梯度的CAM会产生我们的OMP。事实上,OMP起源于box分类任务,直接优化分类RoI中的主要实例,为它提供了强大的前景线索。这与之前的工作[20,40]形成了直接对比,之前的工作为先前的创建和改进引入了单独的模块。相反,我们的OMP注定要为mask头提供一个前景的一般概念,允许它解决模糊的roi,也更好地泛化到弱类。

3.2. Inducing the Prior

生成OMP后,我们将其与RoIAlign F f p n F_{fpn} Ffpn后的FPN特征聚合,创建对象感知的特征 F o b j e c t F_{object} Fobject,如下所示:
在这里插入图片描述
其中 M c a m , k ∈ R H , W M_{cam,k}∈R^{H,W} Mcam,kRH,W被加到其匹配RoI的每个通道 F f p n , k ∈ R D , H , W F_{fpn,k}∈R^{D,H,W} Ffpn,kRD,H,W。在加法之前,我们使用双线性插值将 M c a m M_{cam} Mcam调整为 F f p n F_{fpn} Ffpn的空间维度。

在OMP响应高的空间位置, F f p n F_{fpn} Ffpn的增加突出了这些特征。这为mask头提供了显式的前景信息,这些信息由mask头中的后续卷积层嵌入。这激励mask头学习数据集中所有类的前景的一般概念。注意,这种方法不同于[17]和[31]中提出的box和mask特征之间的特征融合。虽然特征是对图像及其内容的丰富描述,但我们的OMP是一个简单的一层对象/背景编码,帮助mask头部聚焦在正确的对象上。

添加后, F o b j e c t F_{object} Fobject被一个由7个 3 × 3 3 \times 3 3×3卷积层组成的函数 f m a s k f_{mask} fmask处理,其中一个转置卷积层使特征空间分辨率加倍,一个 1 × 1 1 \times 1 1×1卷积进行掩码预测,如下所示:

在这里插入图片描述
其中 M m a s k M_{mask} Mmask是应用逐像素sigmoid后的掩码预测。我们使用7个卷积层来实现一个足够大的感受野,以便 f m a s k f_{mask} fmask对整个输入特征映射进行操作。在每次 3 × 3 3 \times 3 3×3卷积后应用批量归一化[18],利用其随机特性提高泛化能力。最后,使用可用的掩码标签 M g t M_{gt} Mgt M m a s k M_mask Mmask进行像素级二进制交叉熵损失,如下所示:

在这里插入图片描述

4. Experiments

在4.1节中,首先介绍了数据集和实验设置。然后,在第4.2节中,我们提供了证据,证明训练期间出现在RoI背景中的弱类实例是作为背景学习的,而传统的类不可知掩码头在模糊RoI中很难考虑正确的前景。之后,第4.3节展示了OPMask泛化到弱类的能力。最后,在第4.4节中,我们将我们的OMP与常规CAM进行比较,显示mask梯度更新box特征的积极影响。

4.1. Experimental Setup

我们在COCO数据集[24]上进行实验。为了实现部分监督学习设置,我们将80个COCO类的掩码标签分为两个子集。一个子集由用于训练的强注释类组成,另一个子集由弱注释类组成,反之亦然。在训练期间,所有类别都可以使用box标签。为了与相关工作进行比较,我们主要关注将COCO数据集划分为Pascal voc数据集[8]的20个类,以及剩余的60个类。下面,non-voc→voc表示mask头在non-voc类别上进行训练,并在voc类别上进行评估,反之亦然。对于训练,我们使用带有动量的SGD,初始学习率为0.02,在前1000次迭代中线性warm up[11]。batch size设置为16,通过将它们裁剪为1.0的值来稳定梯度。ResNet-50和ResNet-101[14]采用FPN[23]作为骨干。实现基于PyTorch[29]和Detectron2[37]。

Baseline。我们使用一个Mask R-CNN与类不相关mask head。为了公平比较,我们使用了与OPMask相同的box head,并在其mask head上添加了BN。在下面,我们称这个baseline为“Our Mask R-CNN”。

4.2. Insights on Identifying Foreground in RoIs

Learning classes as background

类不相关mask head面临着在前景或背景之间分类RoI像素的任务,其中有监督对应的像素被认为是前景,而所有其他像素被认为是背景。COCO数据集包含带有杂乱对象的复杂场景,这导致roi通常包含多个实例。背景像素既可以是有mask监督的类的一部分,也可以属于我们想泛化的弱类,或者不属于数据集中的任何类。在第二种情况下,我们面临的困境是,模型主动学习将弱类对应的特征分类为背景。这显然与部分监督学习任务的泛化目标相冲突。

这种现象特别影响那些经常与其他类重叠的类。为了研究这一点,我们计算了弱类(voc→non-voc和non-voc→voc)的类重叠和mask AP之间的相关性。为了近似类之间的重叠,我们计算了COCO数据集中所有真实边界框的IoU。然后,我们计算每个类别的平均IoU与其掩码AP之间的回归。

在这里插入图片描述
图3:box IoU和mask AP之间的相关性。

图3给出了两个回归模型。第一个(左)是用Mask R-CNN baseline计算的,显示在所有类别的平均IoU和mask AP之间存在显著的负相关。这为我们的假设提供了证据,即出现在roi背景中的弱类在训练中作为背景被主动学习。用OPMask计算的第二次回归(右)仅显示微弱的负相关,不足以达到显著性。与此同时,我们看到平均IoU值较高的类别有显著改善,这些类别更有可能出现在其他类别RoIs的背景中(例如,人:0.99至22.72,猫:3.77至60.63 AP)。这表明OMP能够为掩码头提供一个前景的一般概念,这抵消了学习这些弱类作为背景的影响。

Resolving ambiguous RoIs

多个且可能重叠的实例的另一个问题是RoI的主要实例(即前景)可能是不明确的。我们发现传统的mask head很难在这些模糊的重叠中定位前景。

为了量化模糊实例对模型性能的影响,我们将COCO验证集分为模糊实例和非模糊实例。由于正确的量化实例是否模糊不是简单的,我们使用box label的IoU来简单的表达,这允许在强调简单性和可重复性的同时捕捉总体趋势。我们认为图像中至少有一个其他实例,如box label IoU≥0.5的实例是不明确的。表1比较了OPMask与我们的Mask R-CNN baseline(都是ResNet-50主干)在模糊和非模糊的情况下,在完全监督和部分监督的COCO分割中训练。结果表明,OPMask在所有比较中都比我们的Mask R-CNN baseline表现得更好,在模糊重叠情况下改善最大。特别是在部分监督设置中,我们的Mask R-CNN baseline明显落后于OPMask。这表明,传统的类不想关mask head在处理模糊实例时存在相当大的问题,特别是当它必须推广到弱类时。与此同时,由于OMP在ROI中突出显示了正确的前景,OPMask设法显著减轻了mask AP的下降。这些结果特别反映了我们的OMP的精度,因为即使在这样模糊重叠中,它也能够聚焦正确的物体。

在这里插入图片描述
表1。OPMask的掩mask AP与我们的mask R-CNN baseline在模糊和非模糊的情况下的对比。OPMask在所有比较中都表现得更好,在部分监督设置中,模糊实例的改进最大。

此外,图1提供了OPMask和我们的Mask R-CNN基线处理模糊实例之间的定性比较。结果显示模糊的RoI,其中Mask R-CNN baseline错误地将背景实例预测为前景。另一方面,OMP能够突出显示RoI中的前景实例,从而允许OPMask正确地分割实例。所有的例子都来自于在voc→non voc或non voc→voc设置下训练的模型。有趣的是,第一行中的结果是通过在voc→non voc设置中训练的模型实现的,其中人是一个受监督的类,而伞是一个弱类。虽然Mask R-CNN错误地分割了人,但OPMask将伞识别为主要类,并能够在泛化到弱类时预测准确的实例掩码。这进一步强调了定量结果,其中Mask R-CNN baseline在部分监督设置中的模糊实例中表现特别差。

4.3. Generalization to Weakly Annotated Classes

Pascal voc vs. non-voc classes

我们在表2中给出了voc和non voc的定量结果。结果表明,在所有情况下,OPMask都大大改善了Mask R-CNN baseline。例如,在ResNet-50骨干网下,non-voc→voc显著增加10.1 AP, voc→non-voc显著增加13.0 AP。在所有情况下,OPMask的性能也优于之前的ShapeProp[40]和ShapeMask[20]。值得注意的是,即使使用ResNet-50,我们也能获得比配备更强大ResNet-101的ShapeMask和ShapeProp更好或更具竞争力的性能。与目前最先进的CPMask[9]相比,我们通过ResNet-50骨干网(例如3.1 AP)实现了实质性的改进。对于ResNet-50主干,CPMask只提供voc→non voc设置的结果。我们的ResNet-101骨干网模型在non voc→voc方面取得了具有竞争力的性能(例如增加0.3个AP),但在voc→non voc方面表现略差(例如减少0.8个AP)。然而,应该指出的是,与我们不同的是,CPMask在配备ResNet-101骨干时使用多尺度训练,这被认为可以大幅提高模型的整体性能。事实上,我们在没有多尺度训练的情况下,在ResNet-50上的表现明显优于CPMask,但在ResNet-101上只取得了有竞争力的表现,这表明了多尺度训练可能带来的巨大改进。此外,CPMask采用更强大的FCOS[35]进行box检测,其检测性能比Faster R-CNN (+5.3 AP)要好得多,对实例分割性能有积极的影响。我们还强调了OPMask的计算效率。在推理时,我们的方法(0.12秒/img)比ShapeMask(29.1秒/img)和ShapeProp(29.1秒/img)更有效。,且仅略高于mask R-CNN baseline(0.08 s/img) 。

在这里插入图片描述
表2。比较OPMask和COCO上最先进的部分监督实例分割设置。OPMask优于我们的Mask R-CNN baseline,以及MaskX R-CNN, ShapeMask和ShapeProp。此外,OPMask在ResNet-50上的性能优于CPMask,并在ResNet-101上保持竞争力。Non-voc→voc表示mask head在Non-voc类别上进行训练,并在voc类别上进行评估,反之亦然。

Qualitative Results.

在图1和图4中,我们提供了OMP如何引导mask预测并改进对弱类的泛化的定性分析。每个示例都显示了voc→non voc或non voc→voc设置中的弱类。接下来是OPMask的OMP和mask 预测,我们的mask R-CNN baseline预测。结果表明,OMP在覆盖大部分对象的空间扩展的同时,能很好地识别和突出RoIs中的主要实例。此外,我们意识到我们的粗糙先验足以使mask head泛化到细化掩模。这强调了我们的假设,为所有类别提供一个类别不相关mask head并且提供关于前景的关键提示是特别重要的。最后,图5展示了一些在voc→non voc设置中产生的过分重视掩模预测的COCO图像。结果显示OPMask能够在不同场景和对象大小下为弱类实例生成精确的预测。本节中的所有示例都是通过配备ResNet-101的模型实现的。

在这里插入图片描述
图4。Mask R-CNN baseline产生穿孔、不完整或缺失的mask。由OMP驱动的OPMask能够准确地分割弱类的每个实例。

Strongly vs weakly supervised class ratios

为了更好地概述OPMask的泛化能力,我们评估了它在强注释类和弱注释类的不同分割上的性能。为了创建40个类分割,我们从20个Pascal voc[8]类开始,并从non voc分割中随机添加另外20个类。图6显示OPMask在我们的Mask R-CNN baseline上持续改进,同时在所有类分割上表现出稳定的性能。即使在完全监督设置(Full coco)中,Mask R-CNN仍然与其他最先进的实例分割方法具有竞争力,OPMask也获得了更好的性能(+1.6 AP)。我们将这些改进归因于这样一个事实,即即使在完全监督下,OMP也帮助类别不相关mask head解决模糊的RoI,这反过来提高了OPMask预测。这表明,当强注释对所有类可用时,OMP仍然是有益的。

在这里插入图片描述
图6。OPMask在不同数量的监督类上的性能。它显著提高了我们的Mask R-CNN baseline在所有类的分割性能,包括完全监督的设置。

4.4. Refining the Object Mask Prior

一个简单的CAM作为OMP可能会做一个合理的工作,尽管一个更好的先验有望导致更好的分割结果。为了改进我们的OMP,我们让掩码梯度通过box head反向传播,这用掩码信息增强了box特征。这增加了CAMs的空间范围,并允许OMP覆盖更大部分的物体。由此得到的改进结果进一步提高了最终mask AP 1.1点。为了研究先验的改进,我们将OMP的mask AP与COCO验证集上的CAMs进行了比较。我们比较了 faster R-CNN和Mask R-CNN与OPMask相同的box head。表3提供了voc与non voc类别划分的AP和AP50结果。由于Faster R-CNN不接收任何掩码梯度,它只在所有类上进行训练和评估。

在这里插入图片描述

5. Conclusion

我们提出了一种部分监督实例分割的新方法OPMask。OPMask引入了一个对象掩码先验(OMP),帮助它的类不相关mask head学习前景的一般概念,解决模糊的RoI并泛化到弱类。我们的研究指出了阻碍类不相关mask head推广到弱类的两个主要问题。首先,模型将训练过程中出现在掩码监督RoI背景中的弱类实例作为背景学习。其次,在包含多个且可能重叠实例的模糊roi中,掩码头很难考虑正确的前景。我们证明,这两个问题都可以极大地缓解,我们的OMP通过利用来自box head的信息来突出所有类的前景。最后,我们展示了OPMask显著提高了我们的Mask R-CNN基线,并与最先进的技术实现了具有竞争力的性能,同时提供了一个更简单的架构,计算开销更少。

猜你喜欢

转载自blog.csdn.net/xijuezhu8128/article/details/128495831
今日推荐