新闻  |   论坛  |   博客  |   在线研讨会
DeepLab、DeepLabv3、RefineNet、PSPNet…你都掌握了吗?一文总结图像分割必备经典模型(2)
CV研究院 | 2023-05-20 18:00:36    阅读:355   发布文章

图片

图片

图片

图6 PSPNet概述。给定一个输入图像(a),首先使用CNN来获得最后一个卷积层的特征图(b),然后,应用一个金字塔解析模块以生成不同的子区域表征,接着是上采样和连接层,以形成最终的特征表征,其中包含了(c)中的局部和全局上下文信息。最后,将该表征送入卷积层以获得最终的每像素预测(d)

PSPNet用带有空洞卷积的预训练的ResNet作为backbone,最后一层提取的feature map大小为输入图像的1/8。PSPNet为四级模块,其二进制大小分别为1×1、2×2、3×3和6×6。因此,通过融合四个不同金字塔尺寸的特征,将输入的feature map分为不同的子区域并生成不同位置的池化表示,从而产生不同尺寸的输出,为了强化全局特征的权重,在金字塔层数为N的情况下,利用一个1x1的卷积将上下文表示的维度降到1/N。然后将得到的特征通过双线性插值上采样至相同尺寸,进行拼接后作为最终的全局金字塔池化特征。

经过深度预训练的神经网络能够改进性能,然而深度的增加也可能会带来额外的优化困难。ResNet通过在每个块中使用skip connection来解决这个问题。本文在原始残差网络的基础之上做了一些改进,提出通过另外的损失函数来产生初始结果,然后通过最终的损失函数来学习残差。图17展示了PSPNet输入图像后的预训练ResNet网络,改进点在下图中的“loss2”,作者将这个损失作为辅助优化的损失,即auxiliary loss,简称AR,主损失为下图中“loss1”的分类损失。

图片图7 ResNet101中辅助损失的说明。每个蓝框表示一个残差块。辅助损失是在res4b22残差块之后添加的

5、 Dense-Net

随着CNN的层数不断加深,信息(输入信息或者梯度信息)容易出现弥散现象。一些研究专门针对此问题展开,比如ResNets、Stochastic depth和FractalNets。本文引入了密集卷积网络(DenseNet),以前馈方式将每一层连接到另一层。具有L层的传统卷积网络有L个连接,每个层与其后续层之间有一个连接,本文网络则具有L(L+1)/2 个直接连接。对于每个层,所有前面层的特征图用作输入,其自身的特征图被用作所有后续层的输入。

图片

图8 一个5层的密集块,增长率为k=4。每层将所有前面的特征图作为输入

将图像定义为x_0 ,模型有L层,每一层为一个非线性转换Hl(·) ,这里 l 表示第 l 层。Hl(·)可以由以下操作组成,例如,Batch Normalization (BN) 、rectified linear units (ReLU)、 Pooling、 Convolution (Conv)。我们定义第 l 层的输出为 x_l 。传统的卷积前馈网络将第 l 层的输出作为第 l+1 层的输入。即:

图片

而ResNets定义如下:

图片

ResNets的一个缺点是:ResNets使用的是sum操作,这可能会阻碍信息在网络的流动。为了进一步提高两层之间信息的流动,作者提出了一个不同的连接方式,即第 l 层接收前面所有层的feature maps[ x_0,...,x_l−1]作为输入:

图片

其中,[x_0, x_1, ... , x_l-1]是指各层产生的特征图的连接。由于其密集的连接性,作者将这种网络结构称为密集卷积网络(DenseNet)。为了便于实施,作者将Hl(·)的多个输入串联成一个单一的张量。作者将Hl(·)定义为三个连续操作的复合函数:批归一化(BN)、ReLU和3×3卷积(Conv)。

卷积网络的一个必需操作就是下采样,而这会改变feature maps的大小。但是当feature maps的大小发生改变时,上式不可用。因此,为了能够在网络结构中进行下采样,作者将网络划分成多个密集块,如下图所示:


图片图9 有三个密集块的深度密集网。两个相邻块之间的层被称为过渡层,通过卷积和池化改变特征图的大小

作者定义两个blocks之间的层为过渡层,其包含一个batch normalization、一个1x1卷积层和一个2x2平均池化层。尽管每一层仅仅产生k个feature maps, 但是每一层的输入依然会很多。因此,作者在3x3卷积前面增加一个1x1卷积(称为 bottleneck layer),用于减少每一层feature map输入的数目。作者将增加了bottleneck layer的Densenet称为DenseNet-B。

为了进一步提高模型的紧凑性,作者减少过渡层的feature maps的数量。如果一个dense block包含m个feature maps, 令后面的过渡层产生 [θxm] 个输出feature maps,这里 0≤θ≤1 , 表示压缩因子。作者将使用了θ<1 的网络称为DenseNet-C,本实验中定义θ=0.5 。

6、 Mask-Lab

本文解决的是实例分割的问题,即同时解决对象检测和语义分割的任务。论文提出了一个名为MaskLab的模型,它可以产生三个输出:box检测、语义分割和方向预测。MaskLab建立在Faster-RCNN对象检测器之上,预测框提供了对象实例的准确定位。在每个感兴趣区域内,MaskLab通过组合语义和方向预测来执行前景/背景分割。语义分割有助于模型区分包括背景在内的不同语义类的对象,而方向预测估计每个像素朝向其相应中心的方向,实现分离同一语义类的实例。



图片

图10 MaskLab产生三种输出,包括box预测(来自Faster-RCNN)、语义分割logits(用于像素分类的logits)和方向预测logits(用于预测每个像素对其相应实例中心的方向的logits)。对于每个感兴趣的区域,通过利用语义分割和方向logits进行前景/背景分割。对于语义分割逻辑,根据预测的box标签挑选通道,并根据预测的box来裁剪区域。对于方向预测Logits,进行方向汇集,从每个通道集合区域Logits。串联这两个裁剪后的特征,并通过另一个1×1卷积进行前景/背景分割


如图10,MaskLab采用ResNet-101作为特征提取器。它由三个部分组成,所有的特征共享到conv4(或res4x)块,还有一个额外的重复conv5(或res5x)块用于Faster-RCNN中的box分类器。原始的conv5块在语义分割和方向预测中都是共享的。建立在Faster-RCNN之上的MaskLab生成了box预测、语义分割逻辑(用于像素级分类的逻辑)和方向预测逻辑(用于预测每个像素对其相应实例中心的方向的逻辑)。语义分割Logits和方向预测Logits是通过在ResNet-101的conv5块的最后一个特征图之后添加的另一个1×1卷积来计算的。鉴于每个预测的方框(或感兴趣的区域),我们通过利用这两个逻辑值来进行前景/背景分割。具体的,对来自Faster-RCN预测的语义通道的裁剪过的语义Logits和经过方向汇集后的裁剪过的方向Logits的串联进行1×1卷积。

语义和方向特征。MaskLab为一幅图像生成语义分割日志和方向预测日志。语义分割逻辑用于预测像素级的语义标签,它能够分离不同语义标签的实例,包括背景类。方向预测Logits用于预测每个像素对其相应实例中心的方向,因此它们对进一步分离相同语义标签的实例很有用。

考虑到来自box预测分支的预测box和标签,我们首先从语义分割逻辑中选择与预测标签相关的通道(例如,人物通道),并根据预测的box裁剪区域。为了利用方向信息,我们进行同样的组合操作,从每个方向通道收集区域日志(由方向指定)。然后,经过裁剪的语义分割逻辑图和汇集的方向逻辑图被用于前景/背景分割。图18给出了具体细节,图中显示 "人 "的分割Logits可以清楚地将人与背景和领带分开,而方向Logits能够预测像素对其实例中心的方向。在集合了方向逻辑后,该模型能够在指定的box区域内进一步分离两个人。作者提出的方向预测逻辑是与类别无关的。具体来说,对于有K个类别的mask分割,模型需要(K+32)个通道(K个用于语义分割,32个用于方向汇集),而输出2×(K+1)×49个通道。


图片图11 语义分割逻辑和方向预测逻辑被用来在每个预测的方框内进行前景/背景分割。特别是,分割逻辑能够区分不同语义类别的实例(例如,人和背景),而方向逻辑(方向是用颜色编码的)进一步区分同一语义类别的实例(例如,预测的蓝色方框中的两个人)。在assembling操作中,区域Logits(彩色三角形区域)从每个方向通道复制。例如,由红色三角形指定的区域从红色方向通道编码实例方向的0度到45度复制Logits。粉色通道编码实例方向从180度到225度的弱激活

Mask细化:作者通过利用HyperColumn特征进一步细化预测的粗略mask。如图12所示,生成的粗mask逻辑(仅利用语义和方向特征)与ResNet-101低层的特征相连接,然后由三个额外的卷积层处理,以预测最终mask。


图片图12 mask细化。hypercolumn特征与粗预测的mask相连接,然后送入另一个小的ConvNet,产生最终的精mask预测


“裁剪和调整大小”首先从特征映射中裁剪指定的边界框区域,然后将它们双线性地调整为指定大小(例如,4×4)。进一步将区域划分为若干子框(例如,4个子框,每个子框具有2×2的大小),并使用另一个小网络来学习每个子框的偏移。最后,依据每个变形的子框再次执行“裁剪并调整大小”操作。


图片

图13 可变形裁剪和调整大小。(a) 裁剪和调整大小的操作是在一个边界框区域内裁剪特征,并将其调整到指定的4×4大小。(b) 然后将4×4区域分为4个小的子框,每个子框的大小为2×2。然后,对变形的sub-boxes再次进行裁剪和调整大小


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客