DeepLab、DeepLabv3、RefineNet、PSPNet…你都掌握了吗?一文总结图像分割必备经典模型(二)(2)

简介: DeepLab、DeepLabv3、RefineNet、PSPNet…你都掌握了吗?一文总结图像分割必备经典模型(二)



4、 PSPNet

PSPNet全称为Pyramid Scene Parseing Network,是采用金字塔池化模块搭建的场景分析网络,获得了当年ImageNet场景解析挑战赛的第一名。PSPNet通过对不同区域的上下文信息进行聚合,提升了网络利用全局上下文信息的能力。PSPNet使用的策略是:pooling-conv-upsample,拼接得到特征图后进行标签预测。


为了实现准确的场景感知,知识图依赖于场景上下文的先验信息。作者发现基于FCN的模型的主要问题是缺乏适当的策略来利用全局场景类别线索。为了减少不同子区域上下文信息的损失,该文提出将全局场景优先结构引入到CNN的最后一层feature map上,从而结合不同子区域及不同尺寸的语义信息。PSPNet的完整架构如图6所示。

图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残差块之后添加的

当前SOTA!平台收录PSPNet共5个模型实现。



项目 SOTA!平台项目详情页
PSPNet 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/pspnet


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 。

当前SOTA!平台收录Dense-Net共21个模型实现。


项目 SOTA!平台项目详情页
Dense-Net 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/densenet


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再次进行裁剪和调整大小


项目 SOTA!平台项目详情页
Mask-Lab 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/masklab


前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。

网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。

移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。

相关文章
|
4月前
|
机器学习/深度学习 算法 计算机视觉
【计算机视觉】图像分割中FCN、DeepLab、SegNet、U-Net、Mask R-CNN等算法的讲解(图文解释 超详细)
【计算机视觉】图像分割中FCN、DeepLab、SegNet、U-Net、Mask R-CNN等算法的讲解(图文解释 超详细)
58 0
|
4月前
|
机器学习/深度学习 算法 固态存储
【计算机视觉】目标检测中Faster R-CNN、R-FCN、YOLO、SSD等算法的讲解(图文解释 超详细必看)
【计算机视觉】目标检测中Faster R-CNN、R-FCN、YOLO、SSD等算法的讲解(图文解释 超详细必看)
121 0
|
11月前
|
机器学习/深度学习 编解码 算法
DeepLab、DeepLabv3、RefineNet、PSPNet…你都掌握了吗?一文总结图像分割必备经典模型(二)(1)
DeepLab、DeepLabv3、RefineNet、PSPNet…你都掌握了吗?一文总结图像分割必备经典模型(二)
116 0
|
11月前
|
机器学习/深度学习 编解码 文字识别
语义分割新SOTA | 当UNet与HRNet碰撞会产生怎样的火花?U-HRNet不做选择!!!
语义分割新SOTA | 当UNet与HRNet碰撞会产生怎样的火花?U-HRNet不做选择!!!
231 0
|
11月前
|
机器学习/深度学习 数据采集 编解码
R-FCN、Mask RCNN、YoLo、SSD、FPN、RetinaNet…你都掌握了吗?一文总结目标识别必备经典模型(1)
R-FCN、Mask RCNN、YoLo、SSD、FPN、RetinaNet…你都掌握了吗?一文总结目标识别必备经典模型
105 0
|
11月前
|
编解码 人工智能 固态存储
R-FCN、Mask RCNN、YoLo、SSD、FPN、RetinaNet…你都掌握了吗?一文总结目标识别必备经典模型(2)
R-FCN、Mask RCNN、YoLo、SSD、FPN、RetinaNet…你都掌握了吗?一文总结目标识别必备经典模型
190 0
|
11月前
|
机器学习/深度学习 编解码 自然语言处理
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(三)
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(三)
149 0
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(三)
|
11月前
|
机器学习/深度学习 编解码 算法
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(四)
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(三)
195 0
|
11月前
|
机器学习/深度学习 编解码 人工智能
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(五)
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型
310 0
|
11月前
|
机器学习/深度学习 人工智能 搜索推荐
DenseNet、MobileNet、DPN…你都掌握了吗?一文总结图像分类必备经典模型(四)
DenseNet、MobileNet、DPN…你都掌握了吗?一文总结图像分类必备经典模型
132 0