1. 定义
语义指具有人们可用语言探讨的意义,分割指图像分割。
语义分割(semantic segmentation)能够将整张图的每个部分分割开 ,使每个部分都有一定类别意义(语义) ,让计算机可以理解图像。
语义分割是以描边的形式 ,将整张图不留缝隙地分割成每个区域,每个区域是一个类别 ,没有类别的默认为背景background 。
此外,有两个与语义分割类似的说法,但不是同一个概念:
- 实例分割: 实例分割会对同一类的不同对象 进行分割。比如说,语义分割会将车分为一类,人分为另一类。而实例分割会将车继续进行分类 ,每一辆车都是一个实例类别。
- 全局分割: 简单地来讲,全景分割是实例分割与语义分割的结合 。全景分割中的每一个像素点都会分成对应的语义标签和实例标签。如果一种类别里有多个实例,会用不同的颜色进行区分
2 常用的数据集
2.1 PASCAL VOC
使用一系列PNG图片,图片中的每个像素都记录了所属的类别索引 ,也就是像素值,不同的像素值代表不同的类别。
注意,这些PNG是使用调色板 的方式进行存储,通过像素值来表示颜色 ,如像素1对应(127,0,0)。因此这些图片是单通道的图片。
由下图可知,对于边缘与不确定的像素 会使用特殊的颜色 来标记,使用了像素值为255 进行填充。而背景则使用像素值0来填充。
2.2 MS COCO
使用该数据集进行语法分割时,会针对图像中的每个目标都记录了一个多边形的坐标 ,这个多边形框柱了目标 。
这个数据可以用于语义分割与实例分割。
3. 结果的表现形式
不同像素值代表不同的类别,属于同一类别的像素有相同的像素值 。利用像素值来代表各个类别
在这种形式中使用了调色板,也就是每个像素值都对应着一个颜色。
4. 评价指标
首先是一些标识:
- n i j n_{ij} nij:类别 i i i被预测为类别 j j j的像素个数
- n c l s n_{cls} ncls:类别的个数,包含背景
- t i = ∑ j n j i t_i=\textstyle \sum_{j}^{}n_{ji} ti=∑jnji:类别 i i i有多少个像素(真实标签)
4.1 Pixel Accuracy (Global Acc)
正确预测的像素个数 / 总像素个数
4.2 mean Accuracy
- 先求出每个类别的得分:对于当前类别,预测正确的个数/当前类别的总个数。
- 然后将这些得分求和。
- 最后除于类别的个数
4.3 IoU
分母为真实类型为 i i i的像素 和 被预测类型为 i i i的像素的并集 。
分子为预测正确的像素个数,两者消除得到类别 i i i的IoU得分
4.4 mean IoU
对全部类别的IoU得分求和,然取平均值。
4.5 例子
真实标签与预测标签的分布情况如图所示,并且结合两个情况得到预测正确与错误的情况,这里用一个矩阵表示,对象线上的总和为预测正确的个数,其余为预测错误的。
通过上述数据,可以计算出性能评分:
① global accuracy :
② mean accuracy :
这里计算了每个类别的得分
③ IoU
5. 标注工具
① Labelme
② EISeg