46 语义分割和数据集【动手学深度学习v2】

语义分割( semantic segmentation )
- 在图片分类中,其主要任务是给定一张图片,识别图片中主体物体
- 目标检测,也叫物体检测,其主要任务是找出图片中多个感兴趣的物体,并且找到每个物体的具体位置(使用方形边界框来标注和预测图像中的目标),问题是这些框很多时候比较粗糙,只能标注出大致的位置,但是无法标注出物体各部分的具体位置以及物体与背景之间的分割线(物体的具体轮廓)
- 语义分割可以识别并理解图像中每一个像素的内容(将图片中的每个像素分类到对应的类别),其语义区域的标注和预测是像素级的
图像分割( image segmentation )与实例分割( instance segmentation )
图像分割
- 分割在计算机视觉中应用的时间比较长,最早是进行图片分割,给定一张图片,通过聚类或者其他方法,将语义上比较像的像素放在一起,可能不会明确某一块像素到底是什么,而只是像素在颜色或者像素上比较相似,然后进行聚类
- 图像分割将图像划分为若干组成区域,这类问题的方法通常利用图像中像素之间的相关性。它在训练时不需要有关图像像素的标签信息,在预测时也无法保证分割出的区域具有所希望得到的语义
实例分割
- 实例分割也叫同时检测并分割( simultaneous detection and segmentation ),它研究如何识别图像中各个目标实例的像素级区域
- 实例分割与语义分割的不同之处在于:实例分割不仅需要区分语义,还要区分不同的目标实例
语义分割
- 语义分割和一般分割的不同之处在于它就明确每一个像素的标号( label )到底是什么,它属于是有监督的学习,而一般的分割可以通过聚类来实现无监督的学习
- 相比于图片分类和目标检测,语义分割更加精细,因为需要对每一个像素的类别进行判断,对每一个像素生成一个标号
应用
背景虚化

路面分割

实例分割
- 实例分割与语义分割最大的不同在于:语义分割只关心像素所属的类别,实例分割会将类别中具体的实例进行区分(实例分割可以认为是真正意义上的目标检测的进化版本,实例分割不仅能够将感兴趣的物体检测出来,还能将物体的边缘描绘出来)

语义分割和数据集
最重要的语义分割数据集之一是 Pascal VOC 2012
- Pascal 是一个组织
- VOC 是一个竞赛
- 2012 年的竞赛,之后的竞赛主要是在 2012 的基础上做了一些修改
- 这个数据集有自己的格式 -- VOC格式,它是一个使用非常广泛的格式(VOC、COCO 都是比较有名的数据集)
VOC 2012 数据集组件
- ImageSets/Segmentation:该路径下包含用于训练和测试样本的文本文件
- JPEGImages:该路径下存储着每个实例的输入图像
- SegmentationClass:该路径下存储着每个实例的标签(此处的标签也采用图像格式,其尺寸和它所标注的输入图像的尺寸相同;标签中颜色相同的像素属于同一个语义类别)
预处理数据
- 在之前的任务中,使用再缩放图像使其符合模型的输入形状,而在语义分割中,这样做需要将预测的像素类别重新映射回原始尺寸的输入图像,这样的映射可能不够精确,尤其是在不同语义的分割区域
- 为避免这个问题,将图像裁剪为固定尺寸,而不再是缩放:使用图像增广中的随机裁剪,裁剪输入图像和标签的相同区域
总结
- 语义分割通过将图像划分为属于不同语义类别的区域,来识别并理解图像中像素级别的内容
- 由于语义分割的输入图像和标签在像素上一一对应,输入图像会被随机裁剪为固定尺寸而不是缩放
Q&A
- 1、能否做更细的语义分割,例如一个狗的头、身体、腿进行语义分割?QA P3 - 00:00
- 2、B 没有乘 256 ?QA P3 - 02:26
- 3、目标检测中如果也做图像增广,目标框也会做同样的变换,如果是做图像的倾斜、旋转这样的操作,目标框的形状可能就不是矩形了,这种情况怎么解决?QA P3 - 02:55
- 4、如何把人像的语义分割做成老师课上用的这个效果这么好,大概需要多少训练集?QA P3 - 04:24
- 5、老师,三维语义分割标注应该怎样去做,是不是和二维图像差别很大?QA P3 - 06:44
- 6、老师,自动驾驶用语义分割,实例分割还是目标检测更合适?QA P3 - 08:14
- 7、计算机视觉和机器视觉的区别是什么?QA P3 - 10:36
- 8、语义分割的标注工具是什么?QA P3 - 10:44
- 9、摄像头怕过曝、逆光,是不是采集数据的时候包含进去训练好或者数据增广成带逆光之类,推理的时候即使有过曝和逆光,也能正确语义分割吗?QA P3 - 11:44
- 10、请问,自动驾驶用纯视觉方案能不能做到很可靠?存疑QA P3 - 14:59
----end----
其他参考
1、https://zh-v2.d2l.ai/chapter_computer-vision/semantic-segmentation-and-dataset.html