以下文章来源于机器之心SOTA模型 ,作者机器之心SOTA模型
机器之心专栏
本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
(资料图片仅供参考)
本文将分 3 期进行连载,共介绍19个在图像分割任务上曾取得 SOTA 的经典模型。
第 1 期:FCN、ReSeg、U-Net、ParseNet、DeepMask、SegNet、Instance-Aware Segmentation
第 2 期:DeepLab、DeepLabv3、RefineNet、PSPNet、Dense-Net、Mask-Lab
第 3 期:PANet、DANet、FastFCN、Gated-SCNN、OneFormer、PSPNet-ResNet50_PSSL
您正在阅读的是其中的第 3 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
第 1 期回顾:
第 2 期回顾:
本期收录模型速览
模型 | SOTA!模型资源站收录情况 | 模型来源论文 |
---|---|---|
PANet | https://sota.jiqizhixin.com/project/panet-2收录实现数量:1 | Path aggregation network for instance segmentation |
DANet | https://sota.jiqizhixin.com/project/danet-1收录实现数量:10支持框架:PyTorch、TensorFlow等 | Dual attention network for scene segmentation |
FastFCN | https://sota.jiqizhixin.com/project/fastfcn收录实现数量:2支持框架:PyTorch、PaddlePaddle | FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation |
Gated-SCNN | https://sota.jiqizhixin.com/project/gated-scnn收录实现数量:2支持框架:PyTorch、PaddlePaddle | Gated-SCNN: Gated Shape CNNs for Semantic Segmentation |
OneFormer | https://sota.jiqizhixin.com/project/oneformer收录实现数量:1支持框架:PyTorch | OneFormer: One Transformer to Rule Universal Image Segmentation |
PSPNet-ResNet50_PSSL | https://sota.jiqizhixin.com/project/pspnet-resnet50_pssl收录实现数量:1支持框架:PaddlePaddle | Distilling Ensemble of Explanations for Weakly-Supervised Pre-Training of Image Segmentation Models |
图像分割是计算机视觉中的一项基本任务,其应用领域包括场景理解、医学图像分析、机器人感知、视频监控、增强现实和图像压缩等。图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。相比图像分类和检测,分割是一项更精细的工作,因为需要对每个像素点分类。
图像分割可以表示为带有语义标签的像素分类问题(语义分割,Semantic Segmentation)或单个对象的分割问题(实例分割,Instance Segmentation)。语义分割是对所有图像像素进行一组对象类别(如人、车、树、天空)的像素级标记,即简单地对图像中各个像素点分类。实例分割进一步扩展了语义分割的范围,需要检测和描绘图像中每个感兴趣的对象(例如,对个人的分割),即区分开不同的物体。从一定意义上来说,实例分割可以看作是语义分割加检测。
此外,还有全景分割(Panoramic segmentation),全景分割是语义分割和实例分割的结合。跟实例分割不同的是:实例分割只对图像中的object进行检测,并对检测到的object进行分割,而全景分割是对图中的所有物体(包括背景)都要进行检测和分割。本文不涉及全景分割的方法。
随着深度学习技术的应用,已经产生了新一代的图像分割模型,其性能有了显著的提高——通常在流行的基准测试中获得了最高的准确率——致使许多研究人员认为该领域发生了范式转变。
本文聚焦于深度学习技术,回顾图像分割中必备的TOP模型,包括语义分割模型和实例分割模型。
1、 PANet本文提出了PANet(Path Aggregation Network),旨在提升proposal-based 的实例分割框架中的信息流。具体来说,通过自下而上的路径增强(path augmentation),在下层用精确的位置信息增强整个特征层次,从而缩短下层和最上层特征之间的信息路径;提出了adaptive feature pooling,将feature grid和所有特征层联系起来,使每个特征层的有用信息直接传播到下面的proposal subnetworks;为进一步提高mask prediction能力,作者创建了一个捕捉每个proposal不同视图的补充分支。如图1所示。
图1 框架说明。(a)FPN骨干网。(b) 自下而上的路径增强。(c) 自适应特征池。(d)Box branch。(e)全连接融合。请注意,为了简洁起见,省略了(a)和(b)中特征图的通道维度Bottom up Path Augmentation
高层的神经元对整个物体有强烈的反应,而其他神经元更容易被局部纹理和图案激活。经典的FPN中加入了一条top-down的旁路连接,能给feature增加high-level的语义性以改进分类。本文在FPN的P2-P5又加了low-level的特征,最底层的特征流动到N2-N5只需要经过很少的层如绿色所示(仅仅有几个降维的卷积)。框架首先完成了自下而上的路径增强。参照FPN的定义,产生具有相同空间大小的特征图的图层处于同一个网络阶段。每个特征层对应一个阶段。以ResNet为基本结构,用{P2,P3,P4,P5}来表示FPN产生的特征层。增强路径从最低处特征P2开始,然后逐渐到P5。从P2到P5,空间大小逐渐下采样,每一层下采样因子为2。用{N2,N3,N4,N5}表示对应{P2,P3,P4,P5}新生成的特征图。N2 是由P2直接复制的。
图2自下而上的路径增强构件图示如图2所示,每个building block通过横向连接取一个分辨率较高的特征图N_i 和一个较低的图P_i + 1,生成新的特征图N_ i + 1。每个特征图N _i首先经过一个3×3的卷积层,步长2,以减小空间大小。然后将特征图P_i + 1和下采样图的每个元素通过横向连接相加。融合后的特征图再经过另一个3×3卷积层处理,生成N _i + 1,用于子网络。这是一个反复的过程,并在P5后终止。在这些building block中,始终使用通道数为256的特征图。所有卷积层之后都有一个ReLU。然后从新的特征图{N2,N3,N4,N5}汇集每个proposal的feature grid。
Adaptive feature pooling
自适应特征池化如图3所示。首先,对于每个proposal,将它们映射到不同的特征级别。按照Mask R-CNN,使用ROIAlign将每个级别的特征网格进行池化。然后利用融合操作(element-wise max or sum)来融合不同层次的特征网格。在下面的子网络中,池化特征网格独立地经过一个参数层,之后进行融合操作,使网络能够适应特征。由于Mask R-CNN的mask prediction分支中使用了四个连续的卷积层,将融合操作放在第一层和第二层卷积层之间。融合后的特征网格作为每个proposal的特征网格,用于进一步的预测,即分类、box回归和mask prediction。如图3所示。
图3box分支的自适应特征池化图示Fully-connected Fusion
全连接层,即MLP,被广泛用于实例分割和Mask建议生成中的mask预测。Mask R-CNN在汇集的特征网格上应用微小的FCN来预测相应的Mask,避免了类别之间的竞争。作者注意到fc层与FCN相比产生了不同的属性,后者在每个像素上都有基于局部感受野的预测,并且参数在不同的空间位置是共享的。相反,fc层对位置敏感,因为不同空间位置的预测是通过不同的参数集实现的。所以他们有能力适应不同的空间位置。同时,每个空间位置的预测是通过全局信息进行的。它有助于区分实例和识别属于同一物体的独立部分。鉴于fc层和卷积层的属性彼此不同,作者融合了这两类层的预测,以获得更好的mask预测。
图4 引入全连接融合的mask预测分支如图4所示,主路径是一个小型FCN,由4个连续的卷积层和1个反卷积层组成。每个卷积层由256个3×3的滤波器组成,反卷积层以系数2对特征进行上采样。它为每个类别独立预测一个二进制的像素级mask,以解耦分割和分类,类似于Mask R-CNN的做法。创建一个从conv3层到fc层的短路径,包含两个3×3的卷积层,其中第二层将通道缩小到一半以减少计算开销。
使用一个fc层来预测一个不分等级的前景/背景Mask。它不仅效率高,而且允许用更多的样本训练fc层中的参数,以实现更好的通用性。使用的mask大小为28×28,这样fc层就会产生一个784×1×1的向量。这个向量被重塑为与FCN预测的mask相同的空间大小。为了得到最终的mask预测,加入来自FCN的每个类别的mask和来自fc的前景/背景预测。只使用一个fc层,而不是多个fc层来进行最终预测,可以防止将隐藏的空间特征图折叠成一个短的特征向量,从而失去空间信息的问题。
当前SOTA!平台收录 PANet 共1个模型实现。
项目SOTA!平台项目详情页PANet前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/panet-22、DANet
本文引入注意力机制,提出了DANet(Dual attention network),该模型可以自适应地集成局部特征及其全局依赖性。具体而言,作者在传统FCN之上附加两种类型的注意力模块,它们分别模拟空间和通道维度中的语义相互依赖性。Position Attention 模块通过对所有位置的特征进行加权和,有选择地聚合每个位置的特征。无论距离如何,相似的特征都将彼此相关。同时,Channel Attention模块通过整合所有信道映射中的相关特征来选择性地强调相互依赖的信道映射。作者利用这两种注意力模块来捕获图像中的全局信息。整体结构如图5所示。
图5 DANet结构Position Attention 模块
如图6所示,Position Attention模块的输入是一个特征图,其尺寸大小为原始图像的1/8,在这里表示为CxHxW,其中,C表示Channel数,H表示特征图的高,W表示特征图的宽。B、C、D表示的都是特征图A,然后对他们进行reshape操作,得到了三个大小为CxN的矩阵,而这三个矩阵也就对应了自注意力机制的Q、K、V。
图6位置注意力模块和通道注意力模块的细节见(A)和(B)首先,计算像素间的相似性矩阵,其过程就是通过QT x K,也就是(N x C)矩阵乘上(C x N)矩阵得到了大小为N x N的像素间相似性矩阵。第二,对该相似性矩阵进行softmax操作,得到每个影响该像素的相对因子。第三,将经过softmax之后的相似性矩阵与V矩阵相乘,最终得到重新编码的特征表示,其大小也是C x N。原始矩阵乘上相似性矩阵的目的是放大与其相似的像素的影响,削减与其不相似的像素的影响,也可以称之为重新编码操作。第四,将最终得到的新的特征矩阵进行reshape操作,得到大小为C x H x W的重新编码的特征图。最后,将该特征图与上层网络中抽取出的特征相加得到最终Position Attention模块的输出,其大小依旧是C x H x W。
Channel Attention 模块如图6所示,通道注意力模块是用来挖掘图像特征图中每个通道之间的相似性关系,从而让每个通道都具有全局的语义特征。通道注意力模块的整体过程与位置注意力模块相似。输入也是大小为原始图像的1/8,具体表示为C x H x W的特征图。将C x H x W的张量reshape成C x N的矩阵,而N=H x W,因此每个通道都是由1 x N大小的向量表示的。
首先,计算像素间的相似性矩阵,其过程就是通过QT x K得到了大小为N x N的像素间相似性矩阵。第二,对该相似性矩阵进行softmax操作,得到每个影响该通道的相对因子。第三,将经过softmax之后的相似性矩阵与V矩阵相乘,得到重新编码的特征表示,其大小也是C x N。原始矩阵乘上相似性矩阵的目的是为了放大与其相似的通道的影响,削减与其不相似的通道的影响。第四,将最终得到的新的特征矩阵进行reshape操作,得到大小为C x H x W的重新编码的特征图。第五,将该特征图与上层网络中抽取出的特征相加得到最终Channel Attention模块的输出,其大小依旧是C x H x W。
最后,将两个注意力机制中提取的特征图相加,再输入到一个卷积层中,得到最终的图像分割结果。
当前SOTA!平台收录 DANet 共10个模型实现。
项目SOTA!平台项目详情页DANet前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/danet-13、FastFCN
为了替代以FCN为基础的语义分割方法中消耗时间和消耗内存的膨胀卷积,本文提出了一种新的联合上采样模块——联合金字塔上采样(joint Pyramid upsampling, JPU)。如图7所示,该方法的主干与原始FCN相同,其中5个feature maps (Conv1Conv5)的空间分辨率逐渐降低了2倍。引入JPU模块,该模块以后3个特征图(Conv3 ~ Conv5)为输入。然后使用多尺度上下文模块或全局上下文模块生成最终的预测结果。
图7 框架概述。本文的方法采用了与原始FCN相同的骨干网。在骨干网之后,提出了一个新颖的上采样模块,名为联合金字塔上采样(Joint Pyramid Upsampling,JPU),它将后三个特征图作为输入,生成一个高分辨率特征图。然后,采用多尺度/全局背景模块来生成最终的标签图作者将传统的FCN的最后三层输入JPU模块中,该模块的具体过程如图8所示。首先将FCN最后的三层特征图输入一个常规卷积块中,其主要目的是降低特征维度,使所有特征维度一致可以更好的融合信息并降低计算复杂度。随后将三个特征图进行上采样得到了一个联合上采样之后的特征表示,然后通过一个多尺度语义模块来捕捉不同尺度下的特征信息(四个具有不同扩展率的可分离卷积),将其拼接起来得到了多尺度特征表示,随后将其通过一个卷积层得到最终的分割结果。
图8JPU图示联合上采样
给定x_l和y_l,我们需要得到一个变换f(·)来近似f(·),其中f(·)的计算复杂度比f(·)低得多。例如,如果f(·)是一个多层感知器(MLP),那么f(·)可以被简化为一个线性变换。然后通过在高分辨率引导图像x_h上应用f(·)得到高分辨率目标图像y_h,即y_h = f(x_h)。给定x_l、y_l和x_h,联合上采样的定义如下:
扩张卷积图9a给出了一维扩张卷积的图示(扩张率=2),可分为以下三个步骤:(1) 根据索引的奇偶性,将输入的特征f_in分成两组(f_in)^0和(f_in)^1;(2)用相同的卷积层处理每个特征,以得到(f_out)^0和(f_out)^1;(3)将两个产生的特征交错合并,得到输出特征f_out。
带有stride的卷积
将输入特征转化为具有较低空间分辨率的输出特征,这相当于以下两个步骤,如图9b所示:(1)用常规卷积处理输入特征f_in,得到中间特征f_m;(2)去除具有奇数索引的元素,得到f_out。
图9 扩张卷积(扩张率=2)和跨度卷积(跨度=2)给定输入图像x,通过下述公式得到联合上采样的输出y_s:
给定x和y_s,可以得到近似于y_d的特征图y,如下所示:上式是一个优化问题,需要迭代梯度下降来收敛。作者提出用一个CNN模块来近似优化过程。每个输入的特征图首先由一个常规的卷积块处理(图8a),其目的是:(1)生成给定x的y_m,(2)将f_m转化为一个尺寸减小的嵌入空间。因此,将所有的输入特征映射到同一空间,这使得融合效果更好,并降低了计算复杂度。然后,对生成的特征图进行上采样和串联,得到y_c(图8b)。平行采用四个具有不同扩张率(1、2、4和8)的可分离卷积,以从y_c中提取特征,其中,不同的扩张率具有不同的功能。采用扩张率为1的卷积来捕捉(y_m)^0和y_m的其余部分之间的关系,如图33中的蓝色方框所示。另外,设计扩张率为2、4和8的卷积来学习映射h,将(y_m)^0转化为y_s,如图33中的绿色方框所示。因此,JPU可以从多级特征图中提取多尺度的上下文信息,从而确保更好的性能。图10扩张率1的卷积聚焦于(y_m)^0和y_m的其余部分,而扩张率2的卷积则聚焦于(y_m)^0和y_s当前SOTA!平台收录 FastFCN 共2个模型实现。
项目SOTA!平台项目详情页FastFCN
前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/fastfcn4、Gated-SCNN
Deep CNN能提取图像中的很多feature map,比如图像的纹理、颜色、形状特征。但对于分割任务来说,所需要的是根据边界和形状信息进行识别,如果信息流中包含了很多颜色、纹理,就可能会导致识别问题。针对上述问题,作者提出了双流CNN(two-stream CNN)结构,即将shape stream单独分离出来与常规的CNN进行并行操作,最后将两者学习到的特征通过ASPP进行融合处理,从而提高语义分割的性能。
如图11, 模型由三部分组成:常规流(Regular Stream)、形状流(Shape Stream)、Fusion Module。
图11 Gated-SCNN(GSCNN),这是一个用于语义分割的新的双流CNN架构,将形状信息作为一个单独的处理流。GSCNN使用一种新的门控机制来连接中间层。流之间的信息融合是通过融合模块在最后完成的。为了预测高质量的边界,利用了一个新的损失函数,以鼓励预测的语义分割掩码与ground truth边界保持一致Regular Stream
常规流可以是任何的前馈全卷积网络,如基于ResNet的或基于VGG的语义分割网络。作者实验中采用的骨干网是Resnet101 & WideResnet,输入大小为N x 3 x H x W,输出大小为N x 3 x H/m x W/m,其中,m表示步长。
Shape Stream
将常规流第一层卷积的输出作为输入,产生的语义边界作为输出。网络架构由一些残差块与门控卷积层(GCL)交错组成的。由于我们可以从GT(Groud Truth)语义分割掩码中获得GT二值边缘,因此在输出边界上使用有监督的二值交叉熵损失来监督形状流。整个Shape Stream的输出是N x 1 x H x W大小的边缘map。
Fusion Module
将区域特征和边界特征结合起来,输出一个细化的语义分割输出。对于K个语义类的分割预测,输出一个分类分布:
f 表示像素属于每一个K类的概率。具体来说,使用一个Atrous空间金字塔池化合并边界图s(Shape stream生成的图)和r(Regular stream生成的图)。这使得我们能够保存多尺度的上下文信息。
由于估计语义分割和语义边界的任务是密切相关的,作者还设计了一个新的GCL层,以促进信息从规则流到形状流的流动。GCL是架构的核心组件,它通过过滤其他信息来帮助shape stream只处理相关信息。形状流并不包含来自常规流的特性。相反,它使用GCL来停用自己的激活,这些激活被常规流中包含的高级信息认为是不相关的。这种处理方式可以看作是两个流之间的协作,其中更强大的一个流对场景形成了更高层次的语义理解,帮助另一个流从一开始就只关注相关的部分。这使得形状流能够采用一个有效的浅层架构,以非常高的分辨率处理图像。
首先通过连接r_t和s_t得到一个注意力图α_t∈R^H×W,然后是一个归一化的1×1卷积层C_1×1,再由一个sigmoid函数σ得到:
其中,||表示特征图串联。考虑到注意力图α_t,GCL应用于s_t,作为注意力图α的一个元素的乘积,然后是残差连接和核w_t的通道加权。在每个像素(i,j),GCL计算为:
然后,将st传递到形状流的下一层进行进一步处理。请注意,注意力图的计算和门控卷积都是可分的,因此可以进行端到端的反向传播。对预测的边界图s使用标准的二元交叉熵(BCE)损失,对预测的语义分割f使用标准交叉熵(CE)损失:
当前SOTA!平台收录 Gated-SCNN 共2个模型实现。项目SOTA!平台项目详情页Gated-SCNN前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/gated-scnn5、 OneFormer
本文提出一种通用图像分割框架 OneFormer ,将分割与多任务训练一次设计结合起来。该框架首次采用了一种以任务为条件的联合训练策略,可以在单个多任务训练过程中对每个领域(语义、实例和全景分割)的 ground truth 进行训练。OneFormer基于transformer,只需要训练一次、一个通用架构、一个模型、在一个数据集,就能够超越现有框架在语义、实例和全景分割任务中的表现,尽管后者需要单独训练在每个任务使用多次的资源。
如图12所示。OneFormer使用两个输入:示例图像和"the task is {task}"形式的任务输入。在论文的单个联合训练过程中,任务从每个图像的{panoptic、instance、semantic}中统一采样。首先使用骨干网和像素解码器从输入图像中提取多尺度特征。论文对任务输入进行标记,以获得一个一维任务标记,该标记用于调节object query,从而为每个输入建立任务模型。此外为GT(Ground truth)标签中的每个类别创建一个表示二进制mask数量的文本列表,并将其映射到文本query表示。文本列表取决于输入图像和{task}。为了监督模型的任务动态预测,论文从全景标注中生成相应的GT。由于GT是任务相关的,论文计算目标和文本query之间的query-text对比损失,以确保object query中存在任务可区分性。object query和多尺度特征被馈送到Transformer解码器以输出最终预测。
图12 OneFormer框架结构。(a) 使用一个骨干网提取输入图像的多尺度特征,然后是一个像素解码器。(b) 在任务标记(Qtask)的指导下,制定了一套统一的N-1个任务条件的对象查询,并在一个Transformer中对1/4比例的特征进行了flatten处理。接下来,将Qtask与来自Transformer的N-1个查询连接起来。在训练过程中对任务进行均匀(p=1/3)抽样,并使用文本映射器生成相应的文本查询(Qtext)。计算查询-文本对比损失来学习任务间的区别。我们可以在推理过程中放弃文本映射器,因此,使模型参数有效。(c) 使用multistage L-layer Transformer Decoder来获得任务-动态类别和掩码预测Task Conditioned联合训练
论文使用多任务条件联合训练策略来解决图像分割的多任务训练一次挑战。首先从GT标签的{panoptic、semantic、instance}中统一采样task。通过从全景标注中导出任务特定标签,仅使用一组标注就实现了全景标注的统一潜在信息。接下来,从任务特定的GT标签中提取图像中存在的每个类别的一组二值mask,即,语义任务保证图像中存在每个类别只有一个二值mask,而实例任务表示仅thing类的非重叠二值mask,忽略stuff区域。全景任务表示stuff类的单个不定形mask和thing类的非重叠mask,如图12所示。随后对mask集进行迭代,以创建一个文本列表(T_list),模板为"a photo with a {CLS}",其中,CLS是对应二值mask的类名。每个样本的二值mask数量随数据集的不同而不同。因此用"a/an {task} photo"条目填充T_test,以获得长度恒定的N_list的填充列表(T_pad),填充条目表示no-object masks。之后使用T_pad计算query-text对比损失。使用带有模板"the task is {task}"的任务输入(I_task)来调整任务的架构,该模板被标记化并映射到任务标记(Q_task)。即,使用Q_task在task上控制OneFormer。
图13 输入文本的形成。(a) 在训练期间对任务进行统一抽样。(b) 在任务选择之后,从相应的GT标签中提取每类要检测的不同二进制掩码的数量。(c) 用 "一张带有{CLS}的照片 "的模板为每个mask形成一个带有文字描述的列表,其中CLS代表object mask的相应类别名称。(d) 使用代表无物体检测的 "a/an {task} photo "条目,将文本列表填充为恒定长度的Ntext;其中,task∈{panoptic, instance, semantic}Query表示
在训练期间使用两组query:text queries(文本查询,Q_test)和object queries(目标查询,Q)。Q_test是图像中待分割目标的基于文本的表示,而Q是基于图像的表示。首先对文本条目T_pad进行标记化,并通过文本编码器传递标记化的表示,该编码器是一个6层transformer。编码的文本嵌入表示输入图像中的二值mask及其对应类的数量。进一步,将一组可学习文本上下文嵌入concat到编码文本嵌入,以获得最终的N个text queries,如图14所示。论文使用文本上下文嵌入的目的是学习样本图像的统一文本上下文。
图14 文本映射器。对输入的文本列表(T_pad)进行标记,然后用一个6层的Transformer文本编码器对其进行编码,得到一组N_text嵌入。将一组N_ctx可学习的嵌入与编码后的表示相连接,以获得最终的N个文本查询(Q_text)。这N个文本查询代表了图像中存在的物体的基于文本的表述为了获得Q,首先将object queries(Q")初始化为task-token的N-1次重复。然后使用来自2层transformer内部的flatten 1/4尺度特征的指导来更新Q"。来自transformer的更新后的Q"(富含图像上下文信息)与task token连接,以获得N个query的任务条件表示。任务引导的query初始化和与task token的连接对于模型学习多个分割任务至关重要。
任务导向对比Queries
文章采用的是集合的任务导向对比queries。使用Q和Q_test计算query-text对比损失。使用T_pad获得文本查询表示Q_test。可以使用基于GT的文本和目标查询之间的对比损失,成功地学习查询表示中的任务间差异。此外,对查询的对比学习使模型能够关注类间的差异并减少类别错误分类。
整体损失函数如下:总的来说,使用ImageNet预训练骨干网从输入图像中提取多尺度特征表示。像素解码器通过逐步上采样主干特征来辅助特征建模。受最近多尺度可变形注意力的成功启发,论文使用相同的基于多尺度可变形Transformer的架构作为像素解码器。当前SOTA!平台收录 OneFormer 共1个模型实现。
项目SOTA!平台项目详情页OneFormer前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/oneformer6、PSPNet-ResNet50_PSSL
虽然微调预训练网络已经成为训练图像分割模型的一种流行方式,但这种用于图像分割的骨干网络经常使用图像分类源数据集进行预训练,例如ImageNet。尽管图像分类数据集可以为骨干网络提供丰富的视觉特征和判别能力,但它们无法以端到端的方式完全预训练目标模型(即骨干网络+分割模块)。本文提出了一种利用伪语义分割标签(Pseudo Semantic Segmentation Labels ,PSSL)的方法,以实现基于分类数据集的图像分割模型的端到端预训练。通过对分类结果的解释,并将从多个分类器中查询到的解释集合起来,以降低单一模型造成的偏差,从而获得每幅图像的PSSL。通过对ImageNet的每幅图像的PSSL,所提出的方法利用加权分割学习程序对分割网络进行大规模的预训练。
图15 传统的(a)和本文提出的(b)预训练方法的说明Cross-Model Ensemble of Explanations
首先,回顾Consensus的方法,即跨模型的集合解释。如图16(a)所示,Consensus首先收集一些训练好的深度模型,然后采用解释算法对每个给定的图像单独解释这些深度模型,最后对各模型的解释结果进行平均。解释的集合与像素级的分割标签一致,而且比单个模型好得多。平均的集合体将模型的变量边缘化,减少了单个模型的偏差。在这里,我们概括了从解释中学习的想法,并利用解释的集合来加强图像分割的预训练。
图16(a)计算跨模型的解释集合,(b)将解释集合转换为十位数的图像,并对最高十位数进行二进制化的说明Construction of PSSL
与单独的解释相比,集合解释与图像分割标签的一致性要好得多。在这里,为了得到高分辨率的像素级解释,作者采用了事后解释算法SmoothGrad,而其他算法也可适用于此,如综合梯度、DeepLIFT等。建议集合的数字要大于15,以获得与分割的良好一致性。因此,构建PSSL的第一步是基于15个深度模型的SmoothGrad解释的集合,以获得ImageNet训练集中每幅图像的像素贡献分数:
带有浮点的PSSL在磁盘中占用很多空间,因此,构造的第二步是以减少文件大小而不损失很多信息为目标进行量化处理,将准连续的分数(浮点32位)转换为十等分(0-9)。具体来说,像素x的十等分等级D的计算方法是:最后一步是将分位数与类别标签相连。图像分类标签可以直接从ImageNet中加载,而且由于ImageNet中几乎每张图像都只包含一个主要对象,所以伪像素标签可以通过图像标签合理地分配。在本文设定中,标签T(D9)=T(I),其中,T(I)是图像I的ImageNet中的图像分类。完整流程如图9(b)。
PSSL生成的伪标签不能保证其准确性。准确地过滤掉噪声对于普遍提高数据集的质量和有效地提高PSSL的分割模型是至关重要的。作者考虑了两个方向来应对噪声。为了提高实际效率,我们选择对所有的伪标签采取一个恒定的分位数,即像素D9中最高的一个,作为预训练的分割(伪)ground truth。与使用更多的分位数相比,这个阈值在实践中效果不错。这可能是由于使用更多的分位数会给物体尺寸较小的图像的监督引入更多的噪声。
如前所述,为了减少噪声,对于每幅图像I,作者设定T(D9)=T(I),T(Di<9)=B,其中,B是背景类的索引。考虑到背景像素的比例很大,这个训练问题本质上是一个对像素进行分类的不平衡学习问题。在1000个平衡类别的情况下,背景的像素大约是任何其他类别的像素的9000倍。考虑加权交叉熵的目标函数如下:
当前SOTA!平台收录 PSPNet-ResNet50_PSSL 共1个模型实现。项目SOTA!平台项目详情页PSPNet-ResNet50_PSSL前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/pspnet-resnet50_pssl前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。
网页端访问:在浏览器地址栏输入新版站点地址sota.jiqizhixin.com,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。
移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。