1.2 图像场景理解的发展历程
1.2.1 图像场景语义分割与标记
语义是图像场景理解的重要因素,它从不同角度连接起了图像场景理解的多个研究方向,是图像、语音、文字等多模态信息应用的纽带。
语义分割,又称为语义标记,是计算机视觉、图像处理、场景理解领域的基础性问题,许多学者致力于该方向的研究并取得了一定的进展。它的目标是对图像中的每一个像素赋予唯一的语义类别标记。图1-2所示为图像场景语义分割的目标,图1-2a为输入图像,图1-2b为输入图像对应的语义分割结果的可视化,其中不同的颜色代表不同的语义类别,如绿色代表草地,蓝色代表羊。
图1-2 图像场景语义分割目标
早期,学术界较多关注于底层图像分割,例如,美国加利福尼亚大学伯克利分校的计算机视觉研究小组一直关注于底层图像分割,并从2000年开始,取得了一系列的研究成果[2-6]。底层图像分割的目标是把图像划分成不同区域,虽然每个区域不具有对象和语义的信息,一个对象有可能被划分为多个区域,但是至少划分得到的每个区域内的像素属于同一个对象。以文献[3]为例,2003年,该研究小组的成员提出了一种基于分类模型的图像区域分割方法,该方法适用于二分类的问题。该研究小组成员认为:对于一张图像,人手标注的分割结果是这张图像分割结果的正样本,而另一张不相同的甚至差别很大的图像的人手标注分割结果对这张图像分割结果来说是负样本。基于这种假设,该方法根据信息学理论,分析轮廓、纹理、亮度等格式塔经典特征的作用。最后利用这些特征训练逻辑回归分类器,通过分类器求解图像的分割结果,部分结果如图1-3所示。可以看到,这种底层分割是区域的划分,不具有高层的语义信息和对象信息。
同时期,交互式的对象提取与分割成为一种热门的研究方法,有些学者在这方面进行了很多研究工作,得到的成果包括GrabCut[7]、Lazy Snapping[8]、Geodesic Matting[9]等。2004年,英国微软剑桥研究院的Rother等提出了GrabCut算法。用户只需用方框将前景对象框出,在方框以外的像素被默认为是背景区域,前景对象框即是用户给出的先验知识。该算法通过构建前景对象和背景区域的GMM模型,自动地将这个方框中的前景对象的区域分割出来,如图1-4中第一行所示。同年,微软剑桥研究院的Li等提出Lazy Snapping,即“懒汉抠图”方法[8]。如图1-4中第二行所示,在前景和背景上各自标记划线,这些划线离真正的边界有一定的距离。Lazy Snapping算法取样划线上的特征,构建前景/背景模型,自动求解前景/背景区域。用户还可以在此结果上增加交互,对区域边界进行细微调整,完善分割结果,甚至合成新的场景。类似的方法还有2007年美国明尼苏达大学Bai和Sapiro提出的基于测地线框架的前景对象提取方法[9]。另外,还有一些交互式的前/背景分割方法[10-12],也取得了较为快速、鲁棒的底层图像分割结果。
图1-3 底层图像分割结果[3]
图1-4 交互式对象提取与区域分割[7-9]
虽然底层图像分割没有识别出每个区域的语义信息,只是将具有某种共同属性的像素划分为同一个区域,但这为图像语义分割提供了基础。随着底层图像分割和模式识别技术的发展,这两者的结合成为一种趋势。图像场景语义分割和标记,即同时得到对象的语义和区域轮廓信息,成为计算机视觉热门的研究方向,并取得了广泛的关注。
2006年,英国微软剑桥研究院的Shotton等在ECCV会议(欧洲计算机视觉会议)上提出了一种自动识别并分割对象的方法[13]。该方法作为图像场景语义分割和标记的经典代表,为该研究方向的发展奠定了基础。该方法继承了传统模式识别的特点,开创性地提出了一种新颖的特征基元texton,并且提出了一种基于特征基元的滤波器texture-layout。特征基元texton包含了图像中的纹理特征和形状特征,滤波器texture-layout则隐性地构建了各特征基元texton之间的布局关系layout。利用模式识别的学习算法,分段学习每一部分特征所构建的模型,从而快速学习出每一种语义类别的判别式模型。该方法在训练的过程中能够随机选择合适的特征,并且分段学习快速得到模型,使得在类别繁多的数据集中求解场景对象分割和标记成为可能。部分结果如图1-5所示,其中第一行和第三行是输入图像,第二行和第四行是对应的语义分割和标记结果,不同颜色对应的语义信息显示在图中最下方的条形表中。
图1-5 Textonboost图像场景语义分割和标记[13,14]
随后有学者将这种基于模式识别的思路应用于街景图像的语义分割。2009年,香港科技大学的Jianxiong Xiao和Long Quan在ICCV会议(国际计算机视觉会议)上提出了一种简单有效的多视角下街景图像的语义分割方法[15]。该方法获取数据的方式是:将数据采集设备固定在汽车上,在汽车沿街行驶时采集街景的2D图像信息和3D深度信息。为了加速训练过程和提高识别的准确率,该方法自适应地为输入图像选择相似的街景图像序列作为训练数据集,这种提高准确率的训练方式具有一定的启发意义(图1-6)。另外,这种工作框架还能用于实现大数量级3D信息的语义标记。
图1-6 多视角下街景图像的语义分割[15]
随着互联网技术的发展,网络逐渐成为一种有效的沟通交流渠道。用户通过互联网可以在线共享海量的图像数据,例如在线下载LabelMe数据集[6]中的图像。大规模数据的获得越来越方便,为数据驱动下的非参数模型方法提供了可能性。这种非参数模型方法被应用到图像场景语义分割和标记中。
2009年,美国麻省理工学院的Liu等在CVPR会议(计算机视觉与图像识别会议)上提出了一种非参数的场景解析方法(Label Transfer)[17],用于处理场景对象语义识别,并第一次将这种非参数的语义分割方法定义为语义迁移方法。给定一幅输入图像,该方法首先利用GIST匹配算法从海量数据集里搜索得到输入图像的最相似图像,称之为最近邻图像;然后利用一种改进的、由粗到细的SIFT流匹配算法对这些最近邻图像进行匹配、评分,并根据分值重排序。选择重排序后的相似图像作为备选图像集合。这种SIFT流匹配算法能够实现两幅图像的结构对齐并建立对应关系。基于这种对应关系,将备选图像集合中相似图像的语义标记映射到给定的输入图像上并进行优化,得到图像场景语义标记迁移的最终解,即实现了输入图像的语义分割和标记。其过程如图1-7所示,图1-7a为输入图像,图1-7b为通过SIFT流匹配后的备选图像集合,图1-7c为相似图像的语义标记图,图1-7d为求解得到的语义标记结果,图1-7e为语义标记的groundtruth。Liu等开创性地提出了语义迁移的概念,为后来学者开辟了一条崭新的路径,后续有很多该领域的研究工作[18-20]。
2010年,美国麻省理工学院的Xiao和香港科技大学的Zhang等在ECCV会议上提出了一种针对街景图像的有监督的场景语义迁移方法[19]。该方法认为,对于一张输入图像,它不一定与数据集中的某一张图像非常相似,可能只是局部的相似。也就是说,输入图像的某些区域分别与数据集中不同图像的某些区域相似。基于这种假设,该方法认为应该根据数据集中多张不同的图像来进行语义迁移,而不是仅根据一张最相似的图像来进行语义迁移,这是该方法与Label Transfer的区别所在。如图1-8所示,给定一幅输入的街景图像,该方法首先从已经手动标好语义标记的数据集中搜索得到多个小型数据集,并且每个小型数据集中都涵盖了输入图像所包含的语义类别。利用该方法提出的KNN-MRF匹配机制,建立输入图像和每个小型数据集的对应关系。利用训练好的分类器对这些对应关系进行分类,舍弃不正确的对应关系。在对应关系分类之后,通过MRF模型优化得到输入图像的最终语义标记结果。该方法将监督学习机制和非参数的语义迁移方法相结合,具有一定的借鉴意义。
图1-7 Label Transfer图像场景语义迁移结果[17]
图1-8 街景图像的语义迁移结果[19]
当一些图像场景中存在相似的或相同的对象时,将多张图像中的相似对象同时分割出来成为一种需求和趋势。微软剑桥研究院的Rother等提出了对象共分割的概念[21],认为多张图像相似对象同时分割比单独一张图像对象分割时能够提高分割准确率。此后,许多学者在对象共分割的方向上进行了探索[22-24]。2012年,卡内基梅隆大学的Kim和Xing在CVPR大会上,提出一种多张图像前景对象共分割方法[25]。该方法针对的情况是,在一个图像集合中有一些重复多次出现的前景对象,但每一张图像中不一定包含所有这些前景对象,可能只包含一部分,甚至视角也不同。该方法利用图像集合中多个前景对象共存在的先验,通过交互在前景对象模型和区域分配模型之间灵活变化,在公共数据集上取得了不错的效果,如图1-9所示。虽然对象共分割取得了一定的发展,但是共分割方法还没有应用于图像对象语义分割。
图1-9 多张图像前景对象共分割结果[25]
2014年,美国加州大学默塞德分校的Yang等在CVPR会议上,提出一种关注于稀少类别的上下文驱动的场景解析方法[26]。场景中的稀少类别大多是在场景中所占比例较小或者较少的类别,同时这些稀少类别对场景理解的作用非常重要,而目前大多数场景解析的方法忽略了这些稀少类别的语义标记。该方法将语义迁移的方式和增强训练的方式相结合,如图1-10所示,根据检索得到输入图像的相似图像,并增加相似图像中稀少类别的样本。在超像素级别的匹配上,该方法利用上下文信息反馈机制增加匹配的准确度,构建MRF模型并求解最终语义标记结果。
卷积神经网络(Convolutional Neural Networks, CNN)是深度学习的代表算法,近年来广泛应用于目标检测、识别、图像分类方面,取得了突破性的进展,效果显著提升。卷积神经网络除了输入输出外通常包含卷积层(Convolutional layer)、线性整流层(ReLU layer)、池化层(Pooling layer)和全连接层(Fully-Connected layer)。卷积层的功能是对输入数据进行特征提取,在感受野区域利用卷积核操作提取局部特征。池化层通过降采样(downsamples)对卷积层的输出特征进行选择,减少模型参数训练的复杂度,提高所提取特征的鲁棒性。全连接层对提取的特征进行非线性组合,以得到回归分类输出。
图1-10 关注于稀少类别的上下文驱动的场景解析方法[26],蓝色矩形中为普通类别,黄色矩形中为稀少类别,在右边的条形类别分布图中可看到,增强后的稀少类别样本(黄色)比增强前(蓝色)分布更均衡
卷积神经网络的第一个成功应用是由Yann LeCun提出的LeNet结构[27],应用在手写字体识别上。此后,卷积神经网络的特征学习能力得到了关注,并伴随着庞大的标注数据集的出现以及计算机硬件性能的提高(如GPU),推动了深度学习的发展。ILSVRC(ImageNet Large Scale Visual Recognition Challenge)是近年来视觉领域权威学术竞赛之一,竞赛使用的数据集ImageNet是由斯坦福大学李飞飞教授等人于2009年提出的,随后从2010年开始每年举办一届比赛,直到2017年。历年来的ILSVRC挑战赛上,不断涌现出优秀的算法和模型,例如2012年的AlexNet[28]、2013年的ZF Net[29]、2014年的GoogLeNet[30]和VGGNet[31]、2015年的ResNet[32](残差神经网络)。
首次在计算机视觉中普及深层卷积网络的是AlexNet,该网络的基本架构与LeNet类似,但其网络结构更深、更大,并成功应用了ReLU、Dropout,取得了远超第二名的结果。ZF Net是对AlexNet的改进,它调整了结构的参数,通过可视化技术揭示了各层的作用,从而能够帮助选择好的网络结构,并迁移到其他数据集。GoogLeNet是2014年ILSVRC的冠军,它的主要贡献是提出了Inception架构,使用已有的稠密组件来近似卷积网络中的最优局部稀疏结构,大大减少了网络中的参数数量,更高效地利用计算资源。此外,架构在顶部使用平均池(average pooling)来代替全连接层,消除了大量似乎无关紧要的参数。VGGNet是2014年ILSVRC的亚军,它证明了通过增加网络的深度可实现对现有技术性能的显著改进。该网络包含16~19层,并且整个网络都使用了同样大小的3×3卷积核和2×2池化核。VGGNet迁移到其他数据上的泛化性也比较好,是当前提取图像特征常用的网络模型,并且在Caffe中可以下载使用预训练模型。它的缺点是参数量较多,需要较大的存储空间(140M)。由微软研究院Kaiming He等人开发的残差网络ResNet是ILSVRC 2015的获胜者,它的提出是为了简化深度模型的训练。它在架构上使用残差学习,使得网络深度增加时没有出现退化问题,让深度发挥出作用。
卷积神经网络在目标检测、识别、分类方面取得了突破性的进展,而语义分割可以认为是一种稠密的分类,即实现每一个像素所属类别的分类,因此基于卷积神经网络的语义分割成为自然而然的趋势。2015年,加州大学伯克利分校的研究人员将卷积神经网络引入语义分割的领域内,首次提出全卷积网络(FCN)[33],是语义分割进入深度学习时代的里程碑。FCN网络结构是不含全连接层的全卷积网络,把CNN网络中的全连接层都换成卷积层,这样就可以获得二维的特征图,再利用反卷积层对特征图进行上采样,使它恢复到与原图相同的尺寸进行分类,输出与原图大小相同的像素级分类结果,即dense prediction,如图1-11所示。FCN可以接受输入任意大小的图片,不再受限于CNN的区域输入。
图1-11 场景语义分割的全卷积网络FCN[33],将全连接层转换为卷积层使得分类网络能够输出与图像相同尺寸的热图
虽然FCN实现了基于卷积网络像素级语义分割的稠密预测,但得到的结果还不够精细,图像中的边缘细节部分比较模糊和平滑,缺少了空间关系的考虑。许多研究人员在CNN和FCN网络模型的基础上进行改进,陆续提出了一系列的基于卷积网络的语义分割算法。
例如,剑桥大学的SegNet网络[34],由编码器网络、相应的解码器网络以及像素级分类层组成。其编码器网络的结构与VGG16网络的13个卷积层相同,解码器网络的作用是将低分辨率的编码器特征映射到与输入相同分辨率的特征图,以便进行像素级分类,这种映射需要有助于精确边界定位的特征。SegNet的新颖之处在于,在编码时为最大池化计算池索引(pooling indices),在对应的解码时使用池索引来执行非线性上采样,这样就不需要训练学习上采样,同时改进了边界划分。韩国科研人员认为FCN网络中固定大小的感受野可能引起错误的标记,过大的对象可能会标记为不同类别,或者过小的对象被忽略或记为背景。再者,由于输入到反卷积层的标签图过于粗糙、反卷积过程过于简单,常常会丢失或平滑掉对象的结构细节。因此,他们提出一种多层的反卷积网络DeconvNet[35]。DeconvNet网络由卷积网络部分和反卷积网络部分组成,卷积网络部分使用了VGG16,反卷积网络部分由反卷积(deconvolution)层、上池化(unpooling)层和激活函数(rectifiedlinear unit, ReLU)层组成。训练好的网络可以得到实例级的分割结果,然后将这些分割结果进行合并,得到最终的语义分割结果。
DilatedNet[36]是在不丢失分辨率的情况下聚合多尺度上下文信息的卷积网络模块,由普林斯顿大学和英特尔实验室专门为稠密预测而设计。它是一个卷积层的矩形棱镜,没有池化或子采样。该模块基于扩展卷积,支持感受野的指数扩展,而不损失分辨率或覆盖范围,可以以任何分辨率插入现有网络体系结构。Deeplab[37]是谷歌团队结合了深度卷积神经网络(DCNNs)和概率图模型(DenseCRFs)两类方法而得到的系列网络模型,目前已更新4个版本。其主要创新之处在于:①对不同尺度大小的对象,提出多孔空间金字塔池化(ASPP)模块,在卷积之前以多种采样率在给定的特征层上进行重采样;②使用全连接条件随机场(CRF)来恢复局部结构的细节,将每个像素视为CRF节点,使用CRF推理优化,得到边缘轮廓更清晰的分割结果。
RefineNet[38]是由澳大利亚阿德莱德大学研究人员提出的一种基于FCN的多路径优化网络,他们认为各层的特征都有助于语义分析分割,高层的语义特征有助于图像区域的类别识别,而低层的视觉特征有助于生成清晰、细致的边界。因此,RefineNet利用了下采样过程中的所有可用信息,使用远程残差连接实现高分辨率预测,浅层卷积层获得的细颗粒度特征可以直接以递归的方式优化深层获得的高层语义特征。RefineNet中的所有组件都使用恒等映射的残差连接,这样梯度能够通过短距离和长距离的残差连接传播,从而实现高效的端到端训练。同时还提出了链式残差池化模块,使用多个窗口尺寸获得有效的池化特征,并使用残差连接和学习到的权重融合到一起,从而在较大的图像区域获得背景上下文。
通过分析国内外研究现状发现,在深度学习时代之前,图像场景语义分割的方法主要分为有参数解析方法和非参数解析方法,这两类方法基本上都是手工设定所需特征并进行处理,通过构建CRF或者MRF模型来进行优化求解。而前/背景分割方法一般不需要构建CRF或者MRF模型,因此能够快速得到分割结果,但是这类方法只能处理二类对象的分割问题。因此如何将前两类方法与后一类方法的优势相结合,应用到图像场景语义分割上,成为一个值得考虑的问题。在深度学习时代,卷积神经网络在特征提取和计算能力上具有显著的优势,包括上述典型网络模型在内的许多基于卷积神经网络的方法,基本处理方式都是前端使用CNN/FCN进行特征粗提取,后端使用CRF/MRF场结构模型优化前端的输出,改善前端边缘细节的划分,最后得到分割图。