概述

语义分割(semantic segmentation)是计算机视觉中的另一项基本任务。 这项任务的目标是标记图中每一个像素所属的物体的类别,从而可以将图像分割成不同的区域。

下图给出了一个语义分割的例子,左图为原始图像,右图为分割的结果,包含三个区域,黑色为背景区域,即不包含关注物体的区域,另外两个区域分别为人和马所占据的图像区域。 每个区域中的每个像素都被标记为对应的类别。

语义分割

图片来源

具体而言,对于给定的图像 XRH×W×CX \in \mathbb{R}^{H\times W\times C} 和一个我们关注的物体类别集合 C\mathcal{C},我们需要给出一个相同分辨率的像素掩码 YRH×WY \in \mathbb{R}^{H\times W} ,其中每一个像素 yijCy_{ij} \in \mathcal{C} 标示图中对应位置的像素 xijx_{ij} 所属的物体的类别。

图像分割在自动驾驶等场景中有着非常重要的应用。 在自动驾驶系统中,我们可以借助语义分割技术识别出车道,还可以进一步根据视野中的其他交通物体确定车辆的可行驶区域,如下图所示。

分割在自动驾驶中的应用

需要注意的是,语义分割只关注物体的类别,不关注同一类别的不同实体(instance)。 即便同类别的不同实体在图像上连接在一起,我们也不需要将它们“分开”。 这与实例分割或全景分割有所不同。

下图很好地展示了语义分割和实例分割的区别。 语义分割将图中五个人占据的区域划分为同一个类别,而实例分割将五个人“分开”。 从数值的角度讲,语义分割只需要给出一个像素掩码,而实例分割需要针对每一个物体给出一个掩码(mask)。

语义分割和实例分割的区别

图片来源

但事实上,语义分割和实例分割在技术上也有诸多相通之处。 例如,实力分割算法 Mask RCNN 就是用了语义分割算法 FCN 提出的模块。

Last updated

Was this helpful?