大家好,这是专栏《AI有识境》的第二篇文章,讲述如何掌握好图像分割算法。

进入到有识境界,可以大胆地说自己是一个非常合格的深度学习算法工程师了,能够敏锐地把握自己研究的领域,跟踪前沿和能落地的技术,对自己暂时不熟悉的领域也能快速地触类旁通。

本篇文章,我们讲解图像分割需要掌握的重要知识点。本文将带你走进图像分割的大门,着重关注该领域的研究方向以及重点难点,讲述如何学好图像分割算法。

作者&编辑 | 言有三

1 图像分割简介

图像分割,是指将图像分成若干语义目标的过程,可以细分为3个方向,见下图对比。

首先我们要把图像中的目标归为不可数目标(stuff类别,比如天空只有一个,不能数)和可数目标(things类别,比如人可以有多个),然后我们看3个方向的对比。

图1 图像分割3个研究方向

语义分割(semantic segmention),也就是通常理解的图像分割,它是一个逐像素的图像分类问题,每个像素预测类别唯一,可数目标与不可数目标都要分类。

实例分割(Instance Segmentation),不仅要预测可数目标的语义标签,还有区分个体的ID,语义标签指的是物体的类别,而实例ID则对应同类物体的不同编号,注意不可数目标不需要预测。

全景分割(Panoptic Segmentation),它要求图像中的每个像素点都必须被分配一个语义标签和一个实例id。

全景分割与语义分割的关系是:如果所有的类别都是stuff,那么全景分割除了度量与语义分割不同外,其它相同。与语义分割相比,全景分割的困难在于要使网络结构能够区分不同实例;

全景分割与实例分割的关系是:全景分割中不允许重叠,但实例分割可以;此外实例分割需要每个分割的置信概率,但全景分割不需要。

近些年来随着深度学习技术的发展,图像分割技术有了突飞猛进的进步,从研究方向上来说,存在以下几个大的方向:

(1) 语义分割;

(2) 实例分割;

(3) 全景分割;

(4) Image Matting;

(5) 弱监督与迁移学习;

对人类而言,由于有大量的先验知识和相关的学习经验,可以迅速识别图像的相关内容。然而对于计算机而言,对各类复杂形状和纹理的目标进行分割是有挑战的。

目前分割模型存在的主要挑战有:

(1) 多尺度:图像中目标尺寸的巨大差异,给分割模型构成挑战。

(2) 实例与全景分割:实例与全景分割不仅要分割出目标,还要识别不同的个体,图像中存在非常多的ID以及遮挡时,给分割模型构成挑战。

(3) 分割精度:分割需要进行像素级的分类,因此对分割精度要求很高,比如在边缘处的分割瑕疵容易被放大。

本文剩余部分将介绍基于深度学习的图像分割任务中各个研究方向的核心技术,并对重难点加以解读。

2 语义分割问题

语义分割属于图像分割的一个主要方向,自深度学习技术得到快速发展之后,这个任务已经得到较好的解决,我们公众号此前也写过不少语义分割模型的介绍文章,接下来我们介绍语义分割中的核心概念与技术。

2.1 语义分割基础

所谓语义分割,其实就是一个逐像素的图像分类问题,输出是一张与输入图大小相等的图,每一个像素值表示语义的类别。基本的原理如下图2所示,包括一个卷积特征提取模块和反卷积模块:

图2 语义分割原理示意图

图2左半部就是对空间分辨率降采样的卷积特征提取网络,右半部就是恢复分辨率的反卷积网络。这里的反卷积也被称为转置卷积,即Transposed Convolution,实际上它仍然是一个卷积操作,和卷积操作的对比如下。

卷积操作可以查看下图3,上方2×2是输出,下方的4×4是输入,卷积核大小为3×3,经过步长等于1的卷积后,得到了2×2的矩阵。

图3 卷积操作示意图

反卷积,则要实现从2×2的输入,得到4×4的输出,对应的就是下面的图4。

图4 反卷积操作示意图

当然反卷积模块也可以采用一些线性插值法来实现,比如双线性插值,如下图5。

图5 双线性插值示意图

假如我们已经知道4个点,Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1),Q22=(x2,y2),如果要知道任意点P的值P(x,y),可以采用插值法。

首先对x方向进行线性插值:

然后再对y方向也进行线性插值:

当然还有其他插值方法,我们不再一一讲述。

另一方面,语义分割模型需要进行评测,在这里简单介绍其中的损失目标和评估指标。

首先是损失目标,作为一个逐像素的分类问题,交叉熵损失函数是最常用的语义分割损失函数,令n对应于样本数量,m是类别数量,yij 表示第i个像素样本属于分类j的标签,它是0或者1,f(xij)是预测第i个像素样本属于分类j的概率,定义如下。

与图像分类相比,区别仅在于将对整个图像的预测,转换到逐个像素的预测,最后取均值。当然如果要对不同像素做不同加权,或者对不同的类别进行加权,则可以设定经验加权值。

另外还有一个很常用的二分类分割损失函数,称之为Dice距离,定义如下。

其中p,q分别是预测值,Dice距离相对于softmax loss可以更好地应对2分类目标的类别不平衡问题;

最后我们简单说一下语义分割任务的评测指标,常见的评测指标是逐像素分类精度,类别分类精度,以及IoU。

图6 语义分割评测指标IoU

通过计算两个区域的交并比,就可以获得0~1的IoU指标,该指标相对于像素分类精度更敏感,更适合用于评估语义分割模型。根据类别还可以设置不同的权重进行加权,得到不同的mIoU值,可以参考各类benchmark。

语义分割还有许多核心技术,包括编解码模型设计,多尺度特征融合,膨胀卷积与可变形卷积,注意力模型等,接下来进行介绍。

2.2 编解码模型

上面介绍的语义分割原理示意图就是一个编解码模型,卷积为编码部分,编码器(encoder)的任务是在给定输入图像后,通过网络学习得到输入图像的特征图;反卷积为解码部分,它在编码器提供特征图后,逐步实现每个像素的类别标注。除此之外,还有若干被广泛验证有效的编解码模型经典模型,包括SegNet[1],FCN[2],U-Net[3],它们都在同一时期被提出。

SegNet中的编码器结构与解码器结构是一一对应的,即一个解码器具有与其对应的编码器相同的空间尺寸和通道数,如下图7所示。

图7 SegNet框架

对于基础SegNet结构,二者各有13个卷积层,其中编码器的卷积层对应了VGG16网络结构中的前13个卷积层。SegNet记录下池化过程中的位置信息来替代反卷积操作,其基本原理如下图8,即使用卷积过程中记录好的最大池化位置信息从低分辨率的特征图恢复高分辨率的稀疏特征图。

图8 SegNet记录池化

Fully connected Network(FCN)也使用了跳层连接的方案,将不同全局步长下的层进行连接,如下图9。

图9 FCN框架

卷积conv7对应全局步长为32,直接对其上采样得到结果的模型为FCN32s。如果将步长为16的pool4的结果经过卷积变换后和conv7的上采样结果进行融合,则模型为FCN16s。随着pool4细节信息的加入,FCN16s比FCN32s的分割结果更好,以此类推。

UNet则将各级具有相同分辨率的卷积特征图和反卷积特征图进行了一一对应融合。

图10 UNet框架

相比于SegNet和FCN,U-Net是一种更为常见的图像分割模型,它充分利用了卷积和反卷积层的特征融合,结构简单,性能鲁棒。

这三个模型结构代表了最经典的分割编解码模型架构,其核心为跳层连接,实现卷积核和反卷积核的信息融合。

2.3 多尺度特征融合

为了对多尺度的目标进行分割,各种尺度的特征融合对于模型来说是有益的,上一节介绍的基于跳层连接的编解码模型就实现了卷积和反卷积过程中不同抽象层级的特征融合,除此之外还有一些有代表性的技术。

如ParseNet[4]将基于池化的全局特征与局部特征进行了融合。全局特征拥有更好的抽象层级和全局感受野,局部特征则拥有更多的细节,两者融合理论上可以提升模型的性能,原理如下图11。

图11 ParseNet框架

PSPNet[5]则在ParseNet的基础上进一步改进,提出了金字塔池化模块Pyramid Pooling Module,如图12。它与目标检测中的SPPNet结构类似,在使用CNN进行特征提取后,对特征图使用了多个不同尺度的池化,从而得到了不同级别的池化后的特征图。随后对这些特征图分别进行特征学习,上采样,然后串接成最终的特征向量,其中相邻的池化采样层采样倍率为1/2。

图12 PSPNet框架

对于图像分割任务,全局特征通常是与整体轮廓相关的信息,而局部特征则是图像的细节纹理,要想对多尺度的目标很好的完成分割,这两部分信息都是必须的。多尺度特征融合的模型变种再多,本质上都是类似的思想。

2.4 膨胀卷积和注意力机制

膨胀卷积由Google的研究人员在文章[6]中提出,也被称为带孔卷积或者空洞卷积,这是一个在不增加计算量的情况可以增加卷积核感受野的卷积操作。它的原理就是原始卷积核相邻元素之间的距离不是1,而是根据膨胀系数的大小而不同,如下图3所示就是膨胀系数为2的带孔卷积,它的感受野是原始的3×3卷积的两倍。

图13 膨胀卷积

通过控制膨胀系数(即相邻卷积元素的距离),就可以控制卷积核的感受野,如下图14展示膨胀系数分别是1,2,4的对比。

图14 不同膨胀系数的膨胀卷积

感受野越大,越有利于综合上下文信息,这对于图像分割任务非常有效。在膨胀卷积被提出以前,大部分的空间尺寸恢复工作都是由上采样或反卷积实现的。前者通常是通过线性或双线性变换进行插值,虽然计算量小,但是效果有时不能满足要求;后者则是通过卷积实现,虽然精度高,但是参数计算量增加了。如果使用膨胀卷积,可以在不控制特征分辨率下降的情况下,继续扩大感受野抽象特征,如下图15实现stride=16的卷积特征提取模块。

图15 基于膨胀卷积的特征提取

另外,基于膨胀卷积结构,研究者们提出了ASPP(Atrous Spatial Pyramid Pooling)[7],这种结构使用了并联的膨胀卷积,在同一级特征图上提取了多尺度的特征。

图16 ASPP结构

如果将感受野的控制扩展到全图,则可以采用自注意力机制,其中非局部卷积[8]以自注意的方式可以获得全局的感受野,如图17。

图17 非局部卷积结构

图17中输入与输出都是T×H×W×1024的4维张量,输入block首先使用1×1×1卷积进行降维,得到三个T×H×W×512的数据块。它们各自进行维度变换,其中两个变换为THW×512,另一个变换为512×THW。一个THW×512和512×THW的矩阵相乘得到THW×THW的矩阵,并经过Softmax函数,得到权重函数。所以f(.)的操作就是每个通道上每个点的特征向量进行内积,空间信息得到了保留。权重向量与另一路经过维度变换的THW×512的数据进行计算,然后进行维度变换,得到输出结果。下图16便是一个基于自注意力机制的分割模型[9]。

图18 注意力分割模型

另外图像金字塔[10]也是一种简单的多尺度技术,但是因为导致计算量的快速增加而不是很流行。

2.5 边缘后处理技术

由于经典的CNN感受野是局部而不是整个图像,并且具有一定的空间变换不变性,这降低了分割的边缘定位精度。因此图像分割常常使用一些后处理技术,这里我们主要介绍CRF技术。

CRF(Conditional random field)即条件概率随机场,它是一种非局部的方法,可以融合场景信息。Google的语义分割模型Deeplab系列前几篇[6,7]文章就使用了CNN加上全连接的CRF的设计。目前,全连接的CRF(DenseCRF)[11]是其中最好的方法,该方法中每一个图像像素都跟其他所有像素相连。

为了能够优化如此海量的连接图,研究者们采用了在特征空间使用高斯滤波的方法完成。这个方法的思路是通过采用高效的近似高维滤波来减少图中消息传递,从而将消息传递的二次复杂度降低为线性复杂度。目前在主流的CPU和500×500尺度上,全连接CRF的速度在100ms左右,可以近似达到实时。

将CRF与CNN进行融合也有两种思路,一种是直接分步后处理,如Google的Deeplab系列文章的研究,将其用于处理CNN网络的输出;另一种就是直接融合进CNN框架,以同样的方式进行反向传播,典型如牛津大学的Torr-Vision研究组提出的《CRF as RNN》[12]。它用一个FCN模型完成第一阶段的分割任务,用RNN形式的CRF完成第二阶段的后处理。

图19 CRF as RNN框架

融合了CRF方法的CNN在边缘的定位精度上通常都取得了很大的提升。

2.6 Image Matting技术

语义分割的应用往往是为了做背景替换,而上面介绍的语义分割技术无法做好这件事,简单的替换会导致出现很假的效果图,比如下面的效果图20。

图20 直接背景替换

另一方面,也很难仅仅通过二分类的分割模型对非常复杂的结构进行分割,比如人的发丝(如图21)。要想获得更好的结果,需要用到软分割,即Image Matting技术,Image Matting能预测出前景,背景,以及它们融合的透明度系数。

图21 Image Matting问题

image matting问题可以用一个简单的数学表达式表达,I = aF + (1-a)B,其中F是前景,B是背景,a是透明度,一张图可以看作是在透明度图像的控制下,前景和背景的线性融合。比如上图左下角就是 Image Matting得到的透明度通道,右下角就是基于透明度通道的背景替换,得到比较自然的结果图。

要解Image Matting问题有点病态,对于三通道的RGB图像,只有3个方程,却需要解出7个变量(前景与背景颜色以及透明度通道),所以许多传统方法如closed form matting都要做局部区域颜色不变的约束才能求出解析解。

Image Matting方法从传统方法发展到了深度学习,

www.alphamatting.com这里有主流方法的比较,传统的Image Matting方法都基于trimap进行求解。

所谓trimap,就是包含3种区域的图,分别为确定性前景,确定性前景,不确定性区域。如下图22中间图的红色,蓝色,绿色部分;对trimap求解,就是要优化不确定性区域,得到0~1的概率,即最右边图。

图22 基于Trimap的Matting方案

当前基于深度学习的Image Matting方法主要归为两类,基于Trimap和不基于Trimap的模型,这里我们不对整个领域的内容进行总结,而是各自介绍一个典型模型。

Adobe提出的Deep image matting[13]是早期基于深度学习的Image Matting模型。

图23 Deep image matting框架

输入RGB图与Trimap,然后采用标准的语义分割模型预测最终的结果,主要区别在于优化目标上增加了透明度通道的回归损失。Deep image matting虽然简单,但不是一个端到端的模型,因此使用起来不是那么简洁。

如果能够摆脱trimap的约束,Image Matting模型就可以获得end-to-end的解法,而且可以摆脱对需要非常精确的matting标注数据集的依赖,这才是更好的方案,也是当前Image Matting的研究重点,这里我们简单介绍一个框架代表,即Boost Matting[14]。

图24 Boost Matting框架

这样的框架包括3部分:Mask Prediction Network:就是普通的分割网络,所以采用了编解码结构,同时可以使用高质量精细标注数据集和低粗标注数据集进行训练。Quality Unification Network:它是一个对Mask Prediction Network结果进行归一化的网络,即降低精细标注数据集的预测结果,提高粗标注数据集的预测结果。Matting Refinement Network:基于输入图和Quality Unification Network结果预测输出RGB和Alpha通道。

Image Matting问题既是一个非常经典的图像处理问题,也作为语义分割的一个延伸问题,这一个子领域由于落地商业价值比较大,仍然在吸引一些研究人员改进相关模型。

那么时至今日,语义分割还有哪些研究点呢?可以关注以下方向。

(1) 语义分割剩余难点,包括因为样本数量或者样本尺度带来的各类别不平衡的问题,更高效的感受野与上下文信息控制机制,更简洁有效的Image Matting框架,更好的优化目标。

(2) 新的模型架构的尝试,如基于图神经网络的分割[15]。

(3) 弱监督分割,如何在少量标注样本的基础上,实现高精度模型的训练与数据的自动标注迭代[16-17]。

(4) 迁移学习,如何基于数据集更好地泛化到相似但分布差异较大的场景,典型如自动驾驶的各种天气环境与不同路面情况[18]。

(5) 3D图像与视频分割,这既是二维图像分割的延伸,也可以看作是新的研究方向[19-20]。

3 实例分割与全景分割

实例分割是另一个重要方向,它不仅要预测目标的语义标签,还要区分个体的ID,相比于语义分割任务更加复杂。

3.1  实例分割基础

因为实例分割框架很多都基于目标检测分支,所以从优化目标上来看,实例分割至少包含3个优化目标:

(1) 一个是像素类别分类损失,这与语义分割相同;

(2) 一个是目标检测损失,这就是目标检测框架里的回归损失。

(3) 一个是实例分类损失,指目标框里的前景与背景二分类损失。

当然,最新的许多实例分割模型也不需要基于候选框,各自的优化目标也有所不同,可参考具体的工作。

对于实例分割模型的评测,则主要参考目标检测中的AP(Average Precision)指标,只是计算IoU重叠度的区域不是框,而是不规则的掩膜,其计算方法请参考本系列的往期文章【AI初识境】深度学习模型评估,从图像分类到生成模型。

3.2  有候选框的多阶段实例分割框架

这一类方法,即首先通过目标检测的方法找出实例所在的区域(bounding box),再在检测框内进行语义分割,每个分割结果都作为不同的实例输出。

实例分割中最核心的问题在于区分个体ID,按照人类的思维习惯,可以采用遍历的方法在图像中进行扫描,早期的DeepMask网络[21]就是这样的一个实例分割框架,如下图25。它给定一个图像块作为输入,输出一个与类别无关的mask和一个取值为0或者1的score,来估计这个图像块完全包含一个物体的概率。score=1需要满足两个条件:一是这个图像块中间位置包含一个物体,二是物体在一定尺度范围内是全部被包含在这个图像块中,只有score=1的时候,mask才有效。

图25 Deepmask框架

图25中输入原图其实有多个目标,但是模型只预测该图的中心位置是否有目标,那如何能够预测出所有目标呢?在预测的时候,采用多尺度的滑动窗口对图像进行滑动窗口预测,最后再把相同的目标合并掉,不同的目标则标记为不同ID。DeepMask由于是早期框架,过于复杂,不仅采用全连接层预测mask,还采用低效率的滑动窗口重复计算各个图像块的特征,所以没有实用价值。

后来的InstanceFCN[22]虽然也采用滑动窗口的方式来寻找目标,但它共享了卷积特征,并且是在特征图上进行滑动,是更加高效的方式,如下图26所示。

图26 InstanceFCN框架

我们知道实例分割的结果是可以重叠的,就是说在不同的候选框内,同一个像素可能有不同的预测结果,可以同时属于A目标的左上角和B目标的右下角,那怎么样才能对同一个像素预测出不同标签呢?InstanceFCN提出了一个位置敏感图(position-sensitive score maps)的概念,用于预测一个像素属于某个物体的相对位置的得分。比如上图26中间有9个图,就是将相对位置分为了9种,从左上到右下,每个图不是直接预测属于某个目标的概率,而是预测其属于某个目标相对位置的概率,最后进行合并推断,理论上一个点最多可以预测出9个ID。

InstanceFCN需要单独的分类分支来进行类别分类,后面的FCIS[23]综合了Faster RCNN框架中的RPN和InstanceFCN的思想,提出了同时做检测与分割的框架。由于本文篇幅问题,我们不细讲,请读者阅读拓展资料。

Mask-RCNN[24]是一个随后被提出的更加简单的框架,把实例区分的问题直接交给Faster RCNN框架,而对RPN输出的每一个RoI预测分割掩膜,即像素类别。训练时Mask RCNN的参数设置也与Faster RCNN一致。

图27 MaskRCNN框架

对于每一个RoI,如果类别为k,则产生k个掩膜,即每一个类别都输出一个掩膜。这样的好处在于,各个类别之间不产生竞争,对于实例分割来说这很重要,因为实例分割可以重叠,故损失的定义也只在对应的通道。

3.3  无候选框的一阶段实例分割框架

目标检测模型从多阶段发展到了一阶段,从基于候选框的框架发展到了anchor free框架,实例分割模型也是如此。

YOLACT[25]是一个实时的实例分割框架,它通过将掩模分支添加到现有的一阶段(one-stage)目标检测模型来实现实例分割,如图28。

图28 YOLACT框架

YOLACT实际上是对每个实例预测分割候选集中k个分割的线性组合系数(Mask Coefficients),最后通过线性组合来生成实例mask。

SOLO(Segmenting Objects by Locations)[26]则是另一个非常简洁的实例分割框架,它通过提出实例类别概念(Instance Category)来表示量化后的物体中心位置和物体的尺寸,从而区分不同的实例。SOLO认为由目标的中心位置和尺寸就可以区分不同的实体,因此将图片划分成S×S的网格,如果物体的中心落在了某个网格中,那么该网格就有了两个任务,预测类别和实例掩膜,如图29。

图29 SOLO框架

PolarMask则是一个anchor-box[27]的实例分割框架,它通过预测实例的轮廓而不是二值掩膜来实现分割,将实例分割问题转化为实例中心点分类(instance center classification)问题和密集距离回归(dense distance regression)问题,这也是将目标检测最新研究迁移到实例分割中。

图30 PolarMask框架

另外还有一些自下而上的方法,即先对语义目标进行分割,再对实例进行聚类,如SGN[28],但是对密集分割的质量要求很高,后处理方法繁琐,并不是好的方法,这里就不再展开介绍。

3.4  全景分割

全景分割任务(Panoptic Segmentation)[29]要求图像中的每个像素点都必须被分配给一个语义标签和一个实例id,全景分割的具体分割形式有以下两点要求:

(1) 图像中的每个像素点都有一个对应的语义类别和一个实例id,如果无法确定可以给予空标注。

(2) 所有语义类别要么属于stuff,要么属于things,不能同时属于二者;且stuff类别没有实例id。

一个典型的全景分割框架[30]包括语义分割预测和实例分割预测分支,最后对其进行合并处理。实例标签可以从实例分割分支给出,而类别则可以综合两个分支的结果,详情可以阅读该文了解。

图31 统一全景分割框架

全景分割的评估指标也有所不同,下图32分别展示了全景分割中的true positives、false positives和false negative ,对应配对的实例分割、不配对的错误分割和未召回的分割。

图32 全景分割度量

基于此定义全景分割质量的度量:

其中分子是对所有匹配上的分割求平均IoU;分母后两项是惩罚匹配错误的像素。

时至今日,实例分割和全景分割的研究点在哪里呢?可以关注以下方向。

(1) 现有检测模块的优化。

(2) Anchor free框架,如基于轮廓的分割预测。

(3) 弱监督实例分割与全景分割。

4 图像分割的数据集与评测

研究图像分割问题需要标准数据集来横向比较模型,我们简单介绍几个常见的数据集与评测指标。

4.1 PASCAL VOC 

数据集地址:http://host.robots.ox.ac.uk/pascal/VOC/,初始发布于2005年,至2012年止。The PASCAL Visual Object Classes(VOC)项目是由Mark Everingham等人牵头举办的比赛,这是一个时间跨度很大的比赛,从2005年开始到2012年结束。它起初主要用于object detection(目标检测),最后包含了5个比赛,classification,detection,segmentation,action classification,person layout。

分割标注包含了20类,语义分割和实例分割两个任务,VOC2012包含了6929张图。

图33 PASCAL样图

4.2 COCO

数据集地址:http://cocodataset.org/,发布于2014年,由微软亚洲研究院整理。Microsoft COCO数据集,是对标PASCAL VOC,ImageNet数据集而诞生的,同样可以用于图像分类,分割,目标检测等任务,共30多万的数据。

从COCO的全称Common Objects in Context可以看出,这个数据集以场景理解为目标,特别选取比较复杂的日常场景,相比于PASCAL VOC的建立是为了推进目标检测任务,COCO的建立则是为了推进自然背景下的定位与分割任务,所以图像中的目标通过非常精确的分割掩模进行位置的标定。

COCO数据集有91类,以人类4岁小孩能够辨识为基准。其中82个类有超过5000个instance。

图34 COCO样图

数据集的建立动机是研究3个问题:

(1) non-iconic views。要求数据集中的图像,尽量不要只是包括一个大的目标或者一个空的场景的图像,而是两者都有,保证场景的复杂性。

(2) contextual reasoning between objects,即场景的覆盖性,需要广而且足够复杂。数据集总共有328000个图像和2500000个标注。与ImageNet和SUN数据集(另一个场景分类数据集)相比,类别数目更少,但是每一个类别的instance更多,这其实是有利于目标定位任务的,因为多样性更好。对比PASCAL VOC,COCO数据集则要大的多,有更多类和instance。

(3) precise 2D localization。即精确定位,要求分割的标注结果非常精确,定位的边框也是从分割掩膜生成而不是直接画框标注,保证了极高的精度。

4.3 Cityscape

数据集地址:https://www.cityscapes-dataset.com/Cityscapes,发布于2016年,这是由奔驰采集的面向城市道路街景语义理解的数据集。Cityscapes包含50个城市在春夏秋三个季节不同时间段不同场景、背景的街景图。

分割标注包含了30类,语义分割和实例分割两个任务,提供5000张精细标注的图像、20000张粗略标注的图像。

图35 Cityscape样图

4.4 ADE 20k

数据集地址:http://groups.csail.mit.edu/vision/datasets/ADE20K/,发布于 2017年,有2万张图片150种目标的场景数据集,可用于场景感知、解析、分割、多物体识别和语义理解。

图36 ADE20k样图

更多数据集与评测基准,请大家阅读相关资料。

5 参考资料

最后,我们来汇总一下有三AI生态中掌握好图像分割任务可以使用的相关资源。

(1) 图像分割专栏,公众号写过许多图像分割相关的技术文章,大家可以去阅读。

【技术综述】闲聊图像分割这件事儿

【完结】12篇文章带你逛遍主流分割网络

【技术综述】基于弱监督深度学习的图像分割方法综述

(2) 书籍《深度学习之图像识别:核心技术和与案例实战》和《深度学习之人脸图像:核心算法与案例实践》,前者介绍了图像分割中的核心算法,后者详解了主流的语义分割模型。

言有三新书来袭,业界首次深入全面讲解深度学习人脸图像算法

言有三新书再印,从理论到实践系统性学习计算机视觉

(3) 视频课程《深度学习之图像分割:理论与实践》,从理论和Pytorch实践来详细教大家学好图像分割算法,是更新的内容,详情可以阅读。

【视频课】一课掌握图像分割核心理论与实战技巧

(4) 知识星球。知识星球是有三AI的付费内容社区,里面包括各领域的模型学习,数据集下载,公众号的付费图文原稿,技术总结PPT和视频,知识问答,书籍下载,项目推荐,线下活动等资源,了解详细请阅读以下文章:

【杂谈】有三AI知识星球一周年了!为什么公众号+星球才是完整的?

【杂谈】万万没想到,有三还有个保密的‘朋友圈’,那里面都在弄啥!

最后是本文的参考文章:

[1] Badrinarayanan V, Handa A, Cipolla R. Segnet: A deep convolutional encoder-decoder architecture for robust semantic pixel-wise labelling[J]. arXiv preprint arXiv:1505.07293, 2015.

[2] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 3431-3440.

[3] Ronneberger O, Fischer P, Brox T. U-net: Convolutional networks for biomedical image segmentation[C]//International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, 2015: 234-241.

[4] Liu W, Rabinovich A, Berg A C. Parsenet: Looking wider to see better[J]. arXiv preprint arXiv:1506.04579, 2015.

[5] Zhao H, Shi J, Qi X, et al. Pyramid scene parsing network[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 2881-2890.

[6] Chen L C, Papandreou G, Kokkinos I, et al. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 40(4): 834-848.

[7] Chen L C, Papandreou G, Schroff F, et al. Rethinking atrous convolution for semantic image segmentation[J]. arXiv preprint arXiv:1706.05587, 2017.

[8] Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7794-7803.

[9] Fu J, Liu J, Tian H, et al. Dual attention network for scene segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 3146-3154.

[10] Chen L C ,  Yi Y ,  Jiang W , et al. Attention to Scale: Scale-Aware Semantic Image Segmentation[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2016.

[11] Krähenbühl P, Koltun V. Efficient inference in fully connected crfs with gaussian edge potentials[C]//Advances in neural information processing systems. 2011: 109-117.

[12] Zheng S, Jayasumana S, Romera-Paredes B, et al. Conditional random fields as recurrent neural networks[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1529-1537.

[13] Xu N, Price B, Cohen S, et al. Deep image matting[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 2970-2979.

[14] Liu J , Yao Y , Hou W , et al. Boosting Semantic Human Matting with Coarse Annotations[J]. 2020.

[15] Qi X ,  Liao R ,  Jia J , et al. 3D Graph Neural Networks for RGBD Semantic Segmentation[J]. IEEE, 2017.

[16] Huang Z, Wang X, Wang J, et al. Weakly-supervised semantic segmentation network with deep seeded region growing[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 7014-7023.

[17] Dai J, He K, Sun J. Boxsup: Exploiting bounding boxes to supervise convolutional networks for semantic segmentation[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 1635-1643.

[18] Huang J ,  Lu S ,  Guan D , et al. Contextual-Relation Consistent Domain Adaptation for Semantic Segmentation[C]// ECCV 2020. 2020.

[19] Shelhamer E, Rakelly K, Hoffman J, et al. Clockwork convnets for video semantic segmentation[C]//European Conference on Computer Vision. Springer, Cham, 2016: 852-868.

[20] Tran D, Bourdev L, Fergus R, et al. Deep end2end voxel2voxel prediction[C]//Proceedings of the IEEE conference on computer vision and pattern recognition workshops. 2016: 17-24.

[21] Pinheiro P O O, Collobert R, Dollár P. Learning to segment object candidates[C]//Advances in Neural Information Processing Systems. 2015: 1990-1998.

[22] Dai J ,  He K ,  Li Y , et al. Instance-sensitive Fully Convolutional Networks[J]. Springer, Cham, 2016.

[23]  Li Y ,  Qi H ,  Dai J , et al. Fully Convolutional Instance-Aware Semantic Segmentation[C]// Computer Vision & Pattern Recognition. IEEE, 2017.

[24] He K ,  Gkioxari G , P Dollár, et al. Mask R-CNN[C]// IEEE. IEEE, 2017.

[25] Bolya D ,  Zhou C ,  Xiao F , et al. YOLACT: Real-time Instance Segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, PP(99):1-1.

[26] Wang X ,  Kong T ,  Shen C , et al. SOLO: Segmenting Objects by Locations[C]// 2020.

[27] Xie E ,  Sun P ,  Song X , et al. PolarMask: Single Shot Instance Segmentation With Polar Representation[C]// 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2020.

[28] Shu L ,  Jia J ,  Fidler S , et al. SGN: Sequential Grouping Networks for Instance Segmentation[C]// 2017 IEEE International Conference on Computer Vision (ICCV). IEEE, 2017.

[29] Kirillov A, He K, Girshick R, et al. Panoptic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2019: 9404-9413.

[30] Xiong Y ,  Liao R ,  Zhao H , et al. UPSNet: A Unified Panoptic Segmentation Network[C]// 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2019.

总结

图像分割是计算机视觉领域的基础任务之一,是从事计算机视觉必须掌握的方向。本文主要介绍图像分割任务的全貌,许多细节并非全面,但仍希望能在你初学的道路上给予一定的帮助!

有三AI计算机视觉学习季划

有三AI季划是我们推出的终身计算机视觉培养计划,有三作为主要导师直接带领,囊括答疑,微信群交流,线下活动,多本自写的书籍,图文课件与代码,直播与直播,知识星球社区,内容组与研发组权限,了解详细请阅读以下文章:

【CV春季划】2021年有三AI-CV春季划出炉,最后一届言有三手把手从零带学

【CV夏季划】告别入门,提升眼界,从掌握最有价值的那些CV方向开始

【CV秋季划】人脸算法那么多,如何循序渐进地学习好?

【CV秋季划】模型优化很重要,如何循序渐进地学习好?

【CV秋季划】图像质量提升与编辑有哪些研究和应用,如何循序渐进地学习好?

【CV秋季划】生成对抗网络GAN有哪些研究和应用,如何循序渐进地学习好

转载文章请后台联系

侵权必究

往期精选

  • 【AI白身境】深度学习从弃用windows开始

  • 【AI白身境】Linux干活三板斧,shell、vim和git

  • 【AI白身境】学AI必备的python基础

  • 【AI白身境】深度学习必备图像基础

  • 【AI白身境】搞计算机视觉必备的OpenCV入门基础

  • 【AI白身境】只会用Python?g++,CMake和Makefile了解一下

  • 【AI白身境】学深度学习你不得不知的爬虫基础

  • 【AI白身境】深度学习中的数据可视化

  • 【AI白身境】入行AI需要什么数学基础:左手矩阵论,右手微积分

  • 【AI白身境】一文览尽计算机视觉研究方向

  • 【AI白身境】AI+,都加在哪些应用领域了

  • 【AI白身境】究竟谁是paper之王,全球前10的计算机科学家

  • 【AI初识境】从3次人工智能潮起潮落说起

  • 【AI初识境】从头理解神经网络-内行与外行的分水岭

  • 【AI初识境】近20年深度学习在图像领域的重要进展节点

  • 【AI初识境】激活函数:从人工设计到自动搜索

  • 【AI初识境】什么是深度学习成功的开始?参数初始化

  • 【AI初识境】深度学习模型中的Normalization,你懂了多少?

  • 【AI初识境】为了围剿SGD大家这些年想过的那十几招

  • 【AI初识境】被Hinton,DeepMind和斯坦福嫌弃的池化,到底是什么?

  • 【AI初识境】如何增加深度学习模型的泛化能力

  • 【AI初识境】深度学习模型评估,从图像分类到生成模型

  • 【AI初识境】深度学习中常用的损失函数有哪些?

  • 【AI初识境】给深度学习新手做项目的10个建议

  • 【AI不惑境】数据压榨有多狠,人工智能就有多成功

  • 【AI不惑境】网络深度对深度学习模型性能有什么影响?

  • 【AI不惑境】网络的宽度如何影响深度学习模型的性能?

  • 【AI不惑境】学习率和batchsize如何影响模型的性能?

  • 【AI不惑境】残差网络的前世今生与原理

  • 【AI不惑境】移动端高效网络,卷积拆分和分组的精髓

  • 【AI不惑境】深度学习中的多尺度模型设计

  • 【AI不惑境】计算机视觉中注意力机制原理及其模型发展和应用

  • 【AI不惑境】模型剪枝技术原理及其发展现状和展望

  • 【AI不惑境】模型量化技术原理及其发展现状和展望

  • 【AI不惑境】AutoML在深度学习模型设计和优化中有哪些用

  • 【AI有识境】如何掌握好图像分类算法?

【AI有识境】如何掌握好图像分割算法?值得你看的技术综述相关推荐

  1. 【杂谈】篇篇精华,有三AI不得不看的技术综述(超过100篇核心干货)

    文/编辑 | 言有三 有三AI很少写零散的报导,因为我们的文章通常都是提炼与总结,一般遇到一个新方向,找技术综述读一读是最合适的开始,大家也可以拓展一下自己的知识边界,今天总结一下有三AI迄今为止发过 ...

  2. 【杂谈】循序渐进,有三AI不得不看的技术综述(超过100篇核心干货)

    文/编辑 | 言有三 有三AI很少写零散的报导,因为我们的文章通常都是提炼与总结,一般遇到一个新方向,找技术综述读一读是最合适的开始,大家也可以拓展一下自己的知识边界,今天总结一下有三AI迄今为止发过 ...

  3. 「技术综述」有三AI不得不看的技术综述

    https://www.toutiao.com/i6715153780863664653/ 文/编辑 | 言有三 最近遇到了很多新手来交流,网上资料甚多,筛选有时候是个大问题,一般遇到一个新方向,找技 ...

  4. 【总结】循序渐进,有三AI不得不看的技术综述(超过100篇核心干货)

    文/编辑 | 言有三 有三AI很少写零散的报导,因为我们的文章通常都是提炼与总结,一般遇到一个新方向,找技术综述读一读是最合适的开始,大家也可以拓展一下自己的知识边界,今天总结一下有三AI迄今为止发过 ...

  5. 【杂谈】有三AI不得不看的技术综述(超过100篇核心干货)

    文/编辑 | 言有三 有三AI很少写零散的报导,因为我们的文章通常都是提炼与总结,一般遇到一个新方向,找技术综述读一读是最合适的开始,大家也可以拓展一下自己的知识边界,今天总结一下有三AI迄今为止发过 ...

  6. 【技术综述】有三AI不得不看的技术综述

    文/编辑 | 言有三 最近遇到了很多新手来交流,网上资料甚多,筛选有时候是个大问题,一般遇到一个新方向,找技术综述读一读是最合适的开始,今天总结一下有三AI发过的技术综述. 25篇CV工程师进阶文章 ...

  7. 【AI白身境】搞计算机视觉必备的OpenCV入门基础

    文章首发于微信公众号<有三AI> [AI白身境]搞计算机视觉必备的OpenCV入门基础 今天是新专栏<AI白身境>的第五篇. 曾经看过一个视频,树莓派自平衡机器人自动追着小球跑 ...

  8. 【AI白身境】一文览尽计算机视觉研究方向

    今天是新专栏<AI白身境>的第10篇,所谓白身,就是什么都不会,还没有进入角色. 相信看了前面的几篇文章后很多朋友已经等不及快速入行了,今天就来介绍一下计算机视觉的各大研究方向及其特点. ...

  9. 「AI白身境」一文览尽计算机视觉研究方向

    https://www.toutiao.com/a6694019704190665219/ 今天是新专栏<AI白身境>的第10篇,所谓白身,就是什么都不会,还没有进入角色. 相信看了前面的 ...

最新文章

  1. 通知提示SCPromptView
  2. Hadoop集群搭建(五:Hadoop HA集群模式的安装)
  3. SQL 数据完整性 基础知识
  4. 将SQL Server查询导出本地excel(mail发送)
  5. kafka技术内幕(一)
  6. Spark在Ambari集群环境的使用
  7. 阿里云发布vSphere虚拟机备份服务 ,网络带宽有限条件下依然能有效保护数据
  8. Qt下libusb-win32的使用(一)打印设备描述符
  9. python apriori算法 sklearn_R 和 Python (numpy scipy pandas) 用于统计学分析,哪个更好?...
  10. opencvpython图像代码_PythonOpenCV各种图像库的图像读写 增强 方式的简单介绍(附代码)...
  11. java反射创建带参数对象_反射 Java反射对象创建 - 闪电教程JSRUN
  12. Python终端显示彩色字符(封装了Colored类)
  13. 曲速未来 揭示:发现假EOS钱包窃取用户资金
  14. 如何下载收费歌曲(不用任何软件插件,安全无毒)
  15. 使用函数判断完全平方数
  16. java夏令时问题呈现
  17. 测试开发,测试架构师为什么能拿50 60k呢需要掌握哪些技能呢
  18. LED通信的ID识别报告
  19. python计算等额本金_等额本金-逆推 - tedzheng的个人空间 - OSCHINA - 中文开源技术交流社区...
  20. ReferenceError: primordials is not defined错误解决

热门文章

  1. 如何把本地idea上的项目上传到github上以及出现invalid authentication data问题的解决措施
  2. 47K Star 的SpringBoot+MyBatis+docker电商项目,附带超详细的文档!
  3. 后端程序员必备:书写高质量SQL的30条建议
  4. Android基于回调的事件处理
  5. Java之【线程通信】--标志位练习2
  6. xgboost算法_陈天奇做的XGBoost为什么能横扫机器学习竞赛平台?
  7. QT:触摸屏支持手指触摸,增加touch事件touchevent,记录前后touch坐标并处理
  8. 网络爬虫:分离生产者和消费者来优化爬虫程序
  9. 数据结构 二叉树的遍历
  10. 阿里天气数据接口调用实现(Java和JS)