Semantic Segmentation

持续更新

Posted by GY on September 10, 2018

图像分割

  • 定义:  目标是对图像的每个像素点进行分类,将图像分割为若干个视觉上有意义的或感兴趣的区域.

语义分割

  图像语义分割融合了传统的图像分割和目标识别两个任务,将图像分割成一组具有一定语义含义的块,并识别出每个分割块的类别,最终得到一幅具有逐像素语义标注的图像。

  简单地说,我们的目标是要用RGB图(高x宽x3)或灰度图(高x宽x1)为输入,并输出一个分割图,在分割图中每个像素都包括一个用整数表示的类别标签(高 x 宽 x1).

  语义分割面临的主要是语义和位置之间的紧张关系:全局信息解决语义问题,而局部信息解决位置问题……将精细层和粗略层结合 使模型做出不违背全局结构的局部预测。

应用

  • 地理信息系统

  可以通过训练神经网络让机器输入卫星遥感影像,自动识别道路,河流,庄稼,建筑物等,并且对图像中每个像素进行标注。

Figure . Semantic Segmentation
  • 无人车驾驶

  语义分割也是无人车驾驶的核心算法技术,车载摄像头,或者激光雷达探查到图像后输入到神经网络中,后台计算机可以自动将图像分割归类,以避让行人和车辆等障碍。

  • 医疗影像分析

  在智能医疗领域,语义分割主要应用有肿瘤图像分割,龋齿诊断等。

  • 室内导航

  • 虚拟现实与增强现实

  • 场景理解

  • 人机交互(Hand Pose Estimation.etc)

  • 计算摄影学[5]

  • 图像搜索引擎[6]

    传统的图像分割算法

  • 阈值法(图像中像素的颜色或灰度值的不同)

  • 边缘检测法( 如Canny 算子,常常被用作图像分割的预处理算法。先对图像进行大致检测,然后用后续方法再对图像进行处理)

  • 主动轮廓模型(Snake 模型)

  • 分水岭算法:其基本思想是将梯度图像看成是假想的地形表面,每个像素的梯度值表示该点的海拔高度。

  • 区域生长法:该方法的关键在于种子点的位置、生长准则和生长顺序。

  • 随机决策森林:在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。

  • 基于图论的图像分割:将图像映射为带权无向图,把像素视作节点,节点之间的边的权重对应于两个像素间的不相似性度量,割的容量对应能量函数。运用最大流/最小流算法对图进行切割,得到的最小割对应于待提取的目标边界。

  • 马尔可夫随机场与条件随机场

  马尔可夫随机场(Markov Random Fields) 是无向的概率图论模型,是计算机视觉中广泛使用的一种模型。思路是对像素赋予一个随机的值,然后通过概率的方式进行计算和分类。

   条件随机场模型(Conditional Random Fields) 是Lafferty于2001年,在最大熵模型和隐马尔科夫模型的基础上,提出的一种判别式概率无向图学习模型,是一种用于标注和切分有序数据的条件概率模型。

  一些传统算法常被用作图像预处理或后处理,与神经网络配合使用。


基于深度学习的分割算法

  • 全卷积神经网络(Fully Convolutional Networks)+CRF/MRF

  深度卷积网络,前期的卷积层更倾向于学习低级概念,而后期的卷积层则会产生更高级(且专一)的特征图。为了保持表达性,一般而言,当我们到达更深层的网络时,需要增加特征图(通道)的数量。

  • 生成对抗网络(Generative Adversarial Networks)及其他监督、无监督学习方法。

原理与架构

  常用的图像分割模型的方法遵循编码器/解码器结构,在这个结构中,我们对输入的空间分辨率下采样,产生分辨率更低的特征图,通过学习这些特征图可以更高效地分辨类别,还可以将这些特征表征上采样至完整分辨率的分割图。

用卷积神经网络分类

  语义分割架构一般都用卷积神经网络**CNN)为每个像素分配一个初始类别标签**。卷积层可以有效地捕捉图像中的局部特征,并以层级的方式将许多这样的模块嵌套在一起,这样CNN就可以试着提取更大的结构了。通过一系列卷积捕捉图像的复杂特征,CNN 可以将一张图的内容编码为紧凑表征。

  **编码器-解码器架构**。在这个架构中,编码器使用卷积层和池化层将特征图尺寸缩小,使其成为更低维的表征。解码器接收到这一表征,用通过转置卷积执行上采样而「恢复」空间维度,这样每一个转置卷积都能扩展特征图尺寸。在某些情况下,编码器的中间步骤可用于调优解码器。最终,解码器生成一个表示原始图像标签的数组。

Yasrab 等人文章(2016)中 SCNet 的编码器-解码器架构。

  在许多语义分割架构中,CNN旨在最小化的损失函数是交叉熵损失。该目标函数度量的是预测像素概率分布(在所有类上)和实际的概率分布的差异。

  然而,对语义分割来说,交叉熵损失并不理想。因为对一张图来说,交叉熵损失是每一个像素损失的和,它并不鼓励邻近像素保持一致。因为交叉熵损失无法在像素间采用更高级的结构,所以交叉熵最小化的标签预测一般都是不完整或者是模糊的,它们都需要进行后续处理。

用条件随机场优化

  来自 CNN 的原始标签一般都是「缺失(patchy)」图像,在图像中有一些小区域的标签可能不正确,因此无法匹配其周围的像素标签。为了解决这种不连续性,我们可以用一种平滑的形式。我们需要确保目标占据图片中的连续区域,这样给定的像素和其周围像素的标签就是一样的。为了解决这个问题,有一些架构使用了条件随机场(CRF),使用原始图像中像素的相似性重新精炼 CNN 的标签。

分类器架构

  通过产生原始训练数据的扭曲版而增加训练数据。这一步使 CNN 编码器-解码器变得更加鲁棒以抵抗这些形变,并能从更少的训练图像中进行学习。当它在少于 40 张图的生物医学数据集上训练时,IOU 值仍能达到 92%。

  将 CNN 编码器-解码器和 CRF 精炼过程相结合以产生目标标签(如前文所述,作者强调了解码器的上采样)。空洞卷积(也称扩张卷积)在每一层都使用大小不同的卷积核,使每一层都能捕获各种比例的特征。在 Pascal VOC 2012 测试集中,这个架构的平均 IOU 达到了 70.3%。

  是一种扩张卷积的替代方法。完整流程是将扩张卷积的「前端模块」连接到内容模块上,再用 CRF-RNN 进行下一步处理。通过这样的构造,Dilation10 在 Pascal VOC 2012 测试集上的平均 IOU 值达到了 75.3%。


语义分割常用技巧

  • 条件随机场(conditional random field, CRF)

  • 利用低层信息:综合利用低层结果可以弥补随着网络加深丢失的细节和边缘信息。

  • 上采样方法

  池化操作通过汇总局部区域的单个值(平均池化或最大池化)下采样分辨率,「上池化」操作通过将单个值分配给更高的分辨率对分辨率进行上采样。

  • 反卷积(deconvolution)/转置卷积(transpose convolution)

  • 添加跳过连接

  • 扩张卷积(空洞卷积

  扩张卷积提供了另一种在保留完整空间维度的同时还能获得广泛视野的方法。如下图所示,扩张卷积根据指定的扩张率(dilation rate)用值将空间间隔开。

  有一些架构将最后几个池化层替换为具有连续增大扩张率的扩张卷积,这样可以在防止空间细节的丢失的同时保持相同的感受野。然而,要用扩张卷积完全替换池化层,计算成本还是很高。

  • 损失加权方案

  由于密集预测的本质,我们在衡量损失加权时有很大的灵活性。

评价机制

  • IOU: 平均 IOU(Intersection Over Union,交并比)

  这样的评价指标可以判断目标的捕获程度(使预测标签与标注尽可能重合),也可以判断模型的精确程度(使并集尽可能重合)。

语义分割常用数据集

  • PASCAL VOC 2012

  1.5k训练图像,1.5k验证图像,20个类别(包含背景)。PASCAL VOC属于多标签数据库,每张图片中包含了一个或多个物体。物体的尺度变化很大、图片的背景复杂,且同一图片内的不同物体之间往往存在遮挡现象,因此图像语义分割的难度较大。

  • MS COCO COCO

  比VOC更困难。有83k训练图像,41k验证图像,80k测试图像,80个类别。

  • MSRCv2

  微软研究推出的包含 591 张带有像素级别标注的照片。有 21 个类:aeroplane,bike, bird, boat, body, book, building, car, cat, chair, cow, dog, face, flower, grass, road,sheep, sign, sky, tree, water。并且,该数据集还带有空类别标记.

  • CITYSCAPES

  该数据库主要应用于都市街道场景的语义分割,通常采用的语义类别包含19种.该数据库中用于训练和校验的精细标注的图片数量为 3475,同时也包含了2万张粗糙的标记图片。该数据库面临的难点主要包括两点。一方面,街道场景的背景通常比较复杂且大量远端的物体尺度较小。另一方面,图像的尺度很大(2048×1024),而该数据库的应用场景通常又要求语义分割算法能够快速预测出区域的语义内容.

  • Pascal Context:有 400 多类的室内和室外场景

  • Stanford Background Dataset:至少有一个前景物体的一组户外场景。



学习资源

论文(时间流)

  • FCN(CVPR2015)
  1. 普及了端到端的神经网络在语义分割上的应用
  2. 重用imagenet预训练网络,使其可以用于分割任务
  3. 采用反卷积层来上采样
  4. 介绍跳跃层来改进上采样的失真问题

  扩展网络解码模块的容量改进「全卷积」结构 。

  引入了短程跳过连接

  提出使用密集。他们认为DenseNets的特征使它们非常适合语义分割,因为它们可以自然地产生跳过连接和多级监督。这些密集块很有用,因为它们在前面的层传递低级特征,直接与更高层的更高级特征并行,从而实现高效的特征重用

个人感兴趣

综述

推荐团队

国内

  • 港中文

  • 上交

  • 南开大学 南开大学媒体计算实验室::mmcheng.net/zh/code-dat… (解压密码:mmcheng.net)

  • Facebook AI实验室科学家&香港中文大学博士:何凯明

  • 中山大学

国外

  • 斯坦福人工智能研究院:李飞飞

推荐博客

国内

国外

学习