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

本文涉及的产品
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,分割抠图1万点
简介: DeepLab、DeepLabv3、RefineNet、PSPNet…你都掌握了吗?一文总结图像分割必备经典模型(二)


本文将分 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


您正在阅读的是其中的第 2 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。

第 1 期回顾:FCN、ReSeg、U-Net、ParseNet、DeepMask…你都掌握了吗?一文总结图像分割必备经典模型(一)RCNN、DRCN、FSRCNN、ESPCN、SRGAN、RED…你都掌握了吗?



本期收录模型速览

模型 SOTA!模型资源站收录情况 模型来源论文
DeepLab https://sota.jiqizhixin.com/project/deeplab
收录实现数量:7
支持框架:TensorFlow、PyTorch
Semantic image segmentation with deep convolutional nets and fully connected crfs
DeepLabv3 https://sota.jiqizhixin.com/project/deeplabv3-2
收录实现数量:9
支持框架:PyTorch、TensorFlow等
Rethinking atrous convolution for semantic image segmentation
RefineNet https://sota.jiqizhixin.com/project/refinenet
收录实现数量:5
支持框架:MindSpore、PyTorch
RefineNet: Multi-path Refinement Networks for High-Resolution Semantic Segmentation
PSPNet https://sota.jiqizhixin.com/project/pspnet
收录实现数量:5
支持框架:PaddlePaddle、PyTorch等
Pyramid Scene Parsing Network
Dense-Net https://sota.jiqizhixin.com/project/densenet
收录实现数量:21
支持框架:PaddlePaddle、PyTorch等
Densely connected convolutional networks
Mask-Lab https://sota.jiqizhixin.com/project/masklab MaskLab: Instance Segmentation by Refining Object Detection with Semantic and Direction Features


图像分割是计算机视觉中的一项基本任务,其应用领域包括场景理解、医学图像分析、机器人感知、视频监控、增强现实和图像压缩等。图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。相比图像分类和检测,分割是一项更精细的工作,因为需要对每个像素点分类。

图像分割可以表示为带有语义标签的像素分类问题(语义分割,Semantic Segmentation)或单个对象的分割问题(实例分割,Instance Segmentation)。语义分割是对所有图像像素进行一组对象类别(如人、车、树、天空)的像素级标记,即简单地对图像中各个像素点分类。实例分割进一步扩展了语义分割的范围,需要检测和描绘图像中每个感兴趣的对象(例如,对个人的分割),即区分开不同的物体。从一定意义上来说,实例分割可以看作是语义分割加检测。

此外,还有全景分割(Panoramic segmentation),全景分割是语义分割和实例分割的结合。跟实例分割不同的是:实例分割只对图像中的object进行检测,并对检测到的object进行分割,而全景分割是对图中的所有物体(包括背景)都要进行检测和分割。本文不涉及全景分割的方法。

随着深度学习技术的应用,已经产生了新一代的图像分割模型,其性能有了显著的提高——通常在流行的基准测试中获得了最高的准确率——致使许多研究人员认为该领域发生了范式转变。

本文聚焦于深度学习技术,回顾图像分割中必备的TOP模型,包括语义分割模型和实例分割模型。





1、 DeepLab


深度卷积网络(DCNNs)在high level视觉任务中表现突出,比如图像分类和目标检测。本文结合DCNNs和概率图模型,提出了DeepLab以解决像素级图像分割任务(semantic image segmentation)。本文在一开始就提出了将DCNN应用在语义分割任务上所不得不解决的两个困难:1. 信号的多次下采样,导致分辨率的降低;2. CNN本身对于空间位置的不敏感。这两个问题导致DCNN在用于逐pixel的分割任务时,在细节的保持上不准确,空间准确率降低。为了解决第一个问题,即max pooling导致的分辨率降低,DeepLab引入空洞卷积(atrous conv)来代替pooling扩充感受野。为了解决第二个问题,作者引入了全连接CRF(fully-connected CRF)。因此,DeepLab结构实际上就是一个带atrous conv的DCNN和一个CRF结构的两阶段的结合。

空洞卷积,如图1,在文章中也被称作“洞算法(hole algorithm)”,被应用在VGG的后面几层,用于提高分辨率(将原本stride=32的VGG模型变成了stride=8)。



图1  一维洞算法示意,内核大小=3,输入跨度=2,输出跨度=1

CRF的作用是对最终产生的score map进行精细化处理,以得到物体的边缘和细节。本文采用了fully-connected CRF。其能量函数(相当于惩罚函数)基本形式如下:



惩罚函数分为两部分,其一是每个像素点自己的能力函数,其二是像素点之间的能量函数(pairwise potential)。

除此之外,DeepLab还用了多尺度预测的trick,即将输入图像以及前面的四个max pooling的输出结果通过128x3x3和128x1x1两次卷积后,concat主网络的输出的feature map。通过整个方法,feature map的通道数增加了5x128个,对于定位的效果也有一定提升。


当前SOTA!平台收录 DeepLab 共7个模型实现。


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


2、 DeepLabv3

该文重新探讨空洞卷积的意义,在语义分割领域,空洞卷积是调整卷积核感受野和DCNN feature map分辨率的有力工具。该文应用不同sample rate的空洞卷积以级联或者平行的方式来处理分割任务中的多尺寸问题。另外,增强了ASPP(Atrus spatial pyramid pooling)使其在图像级编码全局上下文信息来生成卷积特征。此外,移除了CRF,但取得的效果更好。

考虑二维数据,对于输出y上的每个位置i和一个滤波器w,在输入特征映射x上应用空洞卷积:


其中,空洞率 r对应于样本的步幅的输入信号,这相当于卷积输入x的filter中两个空间上相邻的weight值间插入r-1个0。标准卷积是空洞率 r=1的一种特殊情况,空洞卷积允许我们通过改变速率值来自适应地修改滤波器的感受野,具体见图2。


图2 内核大小为3×3和不同速率的Atrous卷积。标准卷积对应于速率=1的Atrous卷积。采用大数值的Atrous率扩大了模型的感受野,使物体能够在多种尺度上进行编码

对于用于图像分类任务的DCNNs,最终的特征响应比输入的图像维度小32倍,因此输出步幅为32。如果想要将DCNN中计算出的特征响应的空间密度增加一倍,则将降低分辨率的最后一个池化或卷积层的步幅设置为1,以避免信号抽取。然后,将所有后续的卷积层替换为速率为r=2的空洞卷积。这允许我们提取更密集的特征响应,而不需要学习任何额外的参数。

作者首先探索设计在级联架构下的空洞卷积模块。具体来说,复制最后一个ResNet块的几个副本,并将它们排列为级联。在这些块中有三个3×3卷积,最后一个卷积的步长为2,除了最后一个block,类似于原始的ResNet。使用特定空洞率的空洞卷积来控制输出步幅,如图3(b)。


图3 没有和有无序卷积的级联模块

ASPP的灵感来自于空间金字塔池的成功,这表明在不同尺度上重新采样特征是有效的,可以对任意尺度的区域进行准确、有效的分类,本文在ASPP中引入了批归一化。具体来说,在模型的最后一个特征图上应用全局平均池化,将得到的多尺度特征与256个滤波器进行1×1卷积(批归一化),然后将特征双向上采样到所需的空间维度。最后,改进的ASPP包括1个1×1卷积和3个3×3卷积,输出步幅为16时r=(6,12,18)(都有256个滤波器和批归一化)以及多尺度特征,如图14所示。当输出步幅为8时,速率是两倍。连接来自所有分支的结果特征并通过另一个1×1卷积,然后在最后面的1×1卷积生成最终的结果。

图4 带有非线性卷积的平行模块(ASPP),用图像级别的特征进行增强

当前SOTA!平台收录 DeepLabv3 共9个模型实现。


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


3、RefineNet

RefineNet是一个多路改进网络,能够显式地利用下采样过程中所有可用的信息,使用long-range残差连接实现高分辨率预测。RefineNet能够混合粗粒度的高维语义特征和细粒度的低维特征,生成高分辨率的语义特征图。这样保证了网络能够通过long-range残差连接反向传播到较早的低维层。RefineNet整体架构如图15。RefineNet利用了ResNet网络,在四种不同的下采样阶段将特征图输入到RefineNet模块中,得到融合后的特征图。除了RefineNet4之外,每一个RefineNet模块都有两个输入,一个是本阶段的特征图,另一个是低层产生的经过处理的特征图,这样随着下采样的进行,语义信息也逐渐丰富,最终得到的得分图经过上采样操作恢复原有图像大小。

图5 RefineNet各组件图示

每一个RefineNet模块都由四部分组成:第一个是残差卷积单元(Residual Conv Unit),用来调整预训练的权重;第二个是多分辨率融合单元(Multi-Resolution fuse),实现不同分辨率特征图的融合;第三部分是链式残差池化(Chained Residual Pooling),用来捕获背景上下文信息;最后一个是输出卷积单元,处理结果用于最终的预测。具体来说,残差卷积单元包含激活(ReLU)和卷积(Conv 3x3)操作,然后使用加法将前后的特征图融合,这在设计上与ResNet思想相同。多分辨率融合单元将前面多种分辨率的特征图输入到融合模块内后,首先采用卷积层获得尺寸不变的特征图。然后使用上采样操作将所有特征图扩展为尺寸相同的新特征图。最后,使用Sum操作融合所有的特征图。链式残差池化单元的目的是从大的背景区域中捕获上下文信息,多个池化窗口能获得有效的特征,并使用学习到的权重进行融合。

引入具有身份映射的残差连接,允许梯度从一个区块直接传播到任何其他区块。这个概念鼓励为shortcut连接保持一个干净的信息路径,这样这些连接就不会被任何非线性层或组件 "阻断"。相反,将非线性操作放在主要信息路径的分支上。作者遵循这一准则来开发RefineNet中的各个组件,包括所有卷积单元。利用这种特殊的策略有效训练多级联的RefineNet。链式残差池化块中包括一个非线性激活层(ReLU)。作者观察到,这个ReLU对于后续池化操作的有效性非常重要,它也使得模型对学习率的变化不敏感。每个RefineNet块中的一个ReLU不会明显降低梯度流的有效性。RefineNet中有短程和长程的残差连接。短程残差连接是指一个RCU或残差池组件中的局部short-cut连接,而长程残差连接是指RefineNet模块和ResNet块之间的连接。通过长程残差连接,梯度可以直接传播到ResNet的早期卷积层,从而实现所有网络组件的端到端训练。

融合块融合了多条short-cut的信息,这可以看作是对具有必要维度或分辨率适应性的多条残差连接进行求和融合。这里的多分辨率融合块的作用类似于ResNet中传统残差卷积单元中的 "求和 "融合的作用。在RefineNet中,特别是在融合块中,存在一些层专门进行线性特征转换操作,如线性特征降维或双线性上采样。将这些层放置在short-cut路径上,这与ResNet的情况类似。在ResNet中,当short-cut连接跨越两个区块时,它将在short-cut路径中引入一个卷积层用于线性特征维度的适应,这将确保特征维度与下一个区块中的后续求和相匹配。由于这些层中只采用了线性变换,梯度仍然可以通过这些层有效地传播。

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



项目 SOTA!平台项目详情页

RefineNet

前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/refinenet
相关文章
|
5月前
|
机器学习/深度学习 算法 固态存储
【计算机视觉】目标检测中Faster R-CNN、R-FCN、YOLO、SSD等算法的讲解(图文解释 超详细必看)
【计算机视觉】目标检测中Faster R-CNN、R-FCN、YOLO、SSD等算法的讲解(图文解释 超详细必看)
369 0
|
5月前
|
机器学习/深度学习 算法 计算机视觉
【计算机视觉】图像分割中FCN、DeepLab、SegNet、U-Net、Mask R-CNN等算法的讲解(图文解释 超详细)
【计算机视觉】图像分割中FCN、DeepLab、SegNet、U-Net、Mask R-CNN等算法的讲解(图文解释 超详细)
144 0
|
机器学习/深度学习 编解码 算法
论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)
论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)
687 0
论文阅读笔记 | 目标检测算法——DCN(可变形卷积网络)
|
机器学习/深度学习 编解码 自然语言处理
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(三)
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(三)
192 0
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(三)
|
机器学习/深度学习 人工智能 搜索推荐
DeepLab、DeepLabv3、RefineNet、PSPNet…你都掌握了吗?一文总结图像分割必备经典模型(二)(2)
DeepLab、DeepLabv3、RefineNet、PSPNet…你都掌握了吗?一文总结图像分割必备经典模型(二)
350 0
|
机器学习/深度学习 编解码 文字识别
语义分割新SOTA | 当UNet与HRNet碰撞会产生怎样的火花?U-HRNet不做选择!!!
语义分割新SOTA | 当UNet与HRNet碰撞会产生怎样的火花?U-HRNet不做选择!!!
276 0
|
机器学习/深度学习 数据采集 编解码
R-FCN、Mask RCNN、YoLo、SSD、FPN、RetinaNet…你都掌握了吗?一文总结目标识别必备经典模型(1)
R-FCN、Mask RCNN、YoLo、SSD、FPN、RetinaNet…你都掌握了吗?一文总结目标识别必备经典模型
156 0
|
编解码 人工智能 固态存储
R-FCN、Mask RCNN、YoLo、SSD、FPN、RetinaNet…你都掌握了吗?一文总结目标识别必备经典模型(2)
R-FCN、Mask RCNN、YoLo、SSD、FPN、RetinaNet…你都掌握了吗?一文总结目标识别必备经典模型
244 0
|
机器学习/深度学习 编解码 算法
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(四)
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(三)
303 0
|
机器学习/深度学习 编解码 人工智能
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型(五)
EfficientNet、ShuffleNet、NFNet…你都掌握了吗?一文总结图像分类必备经典模型
547 0

热门文章

最新文章

下一篇
无影云桌面