如何掌握好图像分割算法?值得你看的技术综述

来源 | 有三AI


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


1 图像分割简介


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

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

如何掌握好图像分割算法?值得你看的技术综述的图1
图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 语义分割原理示意图

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

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

如何掌握好图像分割算法?值得你看的技术综述的图3
图3 卷积操作示意图

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

如何掌握好图像分割算法?值得你看的技术综述的图4
图4 反卷积操作示意图

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

如何掌握好图像分割算法?值得你看的技术综述的图5
图5 双线性插值示意图

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

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

如何掌握好图像分割算法?值得你看的技术综述的图6

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

如何掌握好图像分割算法?值得你看的技术综述的图7

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

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

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

如何掌握好图像分割算法?值得你看的技术综述的图8

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

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

如何掌握好图像分割算法?值得你看的技术综述的图9
如何掌握好图像分割算法?值得你看的技术综述的图10

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

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

如何掌握好图像分割算法?值得你看的技术综述的图11
图6 语义分割评测指标IoU

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

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

2.2 编解码模型

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

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

如何掌握好图像分割算法?值得你看的技术综述的图12
图7 SegNet框架

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

如何掌握好图像分割算法?值得你看的技术综述的图13
图8 SegNet记录池化

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

如何掌握好图像分割算法?值得你看的技术综述的图14
图9 FCN框架

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

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

如何掌握好图像分割算法?值得你看的技术综述的图15
图10 UNet框架

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

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

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

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

如何掌握好图像分割算法?值得你看的技术综述的图16
图11 ParseNet框架

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

如何掌握好图像分割算法?值得你看的技术综述的图17
图12 PSPNet框架

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

2.4 膨胀卷积和注意力机制

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

如何掌握好图像分割算法?值得你看的技术综述的图18
图13 膨胀卷积

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

如何掌握好图像分割算法?值得你看的技术综述的图19
图14 不同膨胀系数的膨胀卷积

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

如何掌握好图像分割算法?值得你看的技术综述的图20
图15 基于膨胀卷积的特征提取

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

如何掌握好图像分割算法?值得你看的技术综述的图21
图16 ASPP结构

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

如何掌握好图像分割算法?值得你看的技术综述的图22
图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]。

如何掌握好图像分割算法?值得你看的技术综述的图23
图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完成第二阶段的后处理。

如何掌握好图像分割算法?值得你看的技术综述的图24
图19 CRF as RNN框架

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

2.6 Image Matting技术

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

如何掌握好图像分割算法?值得你看的技术综述的图25
图20 直接背景替换

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

如何掌握好图像分割算法?值得你看的技术综述的图26
图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的概率,即最右边图。

如何掌握好图像分割算法?值得你看的技术综述的图27
图22 基于Trimap的Matting方案

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

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

如何掌握好图像分割算法?值得你看的技术综述的图28
图23 Deep image matting框架

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

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

如何掌握好图像分割算法?值得你看的技术综述的图29
图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才有效。

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

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

如何掌握好图像分割算法?值得你看的技术综述的图31
图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一致。

如何掌握好图像分割算法?值得你看的技术综述的图32
图27 MaskRCNN框架

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

目标检测模型从多阶段发展到了一阶段,从基于候选框的框架发展到了anchor free框架,实例分割模型也是如此。
YOLACT[25]是一个实时的实例分割框架,它通过将掩模分支添加到现有的一阶段(one-stage)目标检测模型来实现实例分割,如图28。

如何掌握好图像分割算法?值得你看的技术综述的图33
图28 YOLACT框架
YOLACT实际上是对每个实例预测分割候选集中k个分割的线性组合系数(Mask Coefficients),最后通过线性组合来生成实例mask。
SOLO(Segmenting Objects by Locations)[26]则是另一个非常简洁的实例分割框架,它通过提出实例类别概念(Instance Category)来表示量化后的物体中心位置和物体的尺寸,从而区分不同的实例。SOLO认为由目标的中心位置和尺寸就可以区分不同的实体,因此将图片划分成S×S的网格,如果物体的中心落在了某个网格中,那么该网格就有了两个任务,预测类别和实例掩膜,如图29。

如何掌握好图像分割算法?值得你看的技术综述的图34
图29 SOLO框架

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

如何掌握好图像分割算法?值得你看的技术综述的图35
图30 PolarMask框架
另外还有一些自下而上的方法,即先对语义目标进行分割,再对实例进行聚类,如SGN[28],但是对密集分割的质量要求很高,后处理方法繁琐,并不是好的方法,这里就不再展开介绍。
3.4  全景分割

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

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

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

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

如何掌握好图像分割算法?值得你看的技术综述的图36
图31 统一全景分割框架

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

如何掌握好图像分割算法?值得你看的技术综述的图37
图32 全景分割度量

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

如何掌握好图像分割算法?值得你看的技术综述的图38

其中分子是对所有匹配上的分割求平均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张图。

如何掌握好图像分割算法?值得你看的技术综述的图39
图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。

如何掌握好图像分割算法?值得你看的技术综述的图40
图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张粗略标注的图像。

如何掌握好图像分割算法?值得你看的技术综述的图41
图35 Cityscape样图

4.4 ADE 20k

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

如何掌握好图像分割算法?值得你看的技术综述的图42
图36 ADE20k样图

总结

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


默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏
关注