一、图像分割基础
如果说图像分类是识别出物体种类,目标检测是在图像中框选出物体,那图像分割则是将图像按物体类别分割成不同的区域,属于像素粒度级别的分类。在无人驾驶、人像抠图、智能遥感以及医疗影像分析中拥有广阔前景
目前图像分割主要分为以下三类:
- 语义分割: 仅考虑像素类别,对于同类目标的不同实体不进行区分
- 实例分割: 仅考虑前景物体类别,对同类目标的不同实体可以完成区分
- 全景分割: 将背景也作为类别考虑,同时对前景实体也进行区分
二、语义分割的基本思路
按颜色分割:基于先验知识
早期语义分割的基本思路是按颜色进行分割,以物体内部颜色相近,交界处颜色变化作为先验知识,有点类似于边缘检测的思路。
这种方法按图像处理方法进行颜色分割后,需要依赖额外手段对物体类别进行确认,且由于物体内也可能包含多种颜色,因此这种方法效果并不可靠。
逐像素分类:滑动窗口
伴随卷积神经网络的发展,研究人员尝试将像素及周边感受区域作为一个单独的图像输入到分类模型中,将其结果作为该滑窗以及中间像素点类别结果,以此实现通过滑动窗口进行逐像素的分类,这种方法可以充分利用已有的分类模型,但由于要滑动遍历全部像素,且由于感受区域重叠会导致重复计算卷积,使得效率非常低下。
卷积运算复用
与之前目标检测中提到的方法类似,后续为了优化滑动窗口带来的低效率问题,研究人员尝试将整个图像输入到卷积层中,待获取到特征图后,在特征图上应用滑窗进行逐像素分类。这种方法相较于上述滑动窗口,采用了同样的卷积核进行计算复用,具有相同的结果和更高的效率。
全卷积网络
早期卷积神经网络中,由于全连接层的存在,需要对前一层卷积层的输出进行flatten操作,即展开矩阵为一维向量,以此作为全连接层的输入来与全连接层进行矩阵乘法。此时为保证输出,flatten后作为全连接层输入的X第一维和全连接层的参数矩阵W的第二维必须相同,且由于而网络结构(卷积层,池化层等)是固定的,输入图像的尺寸会经过一个固定的变换。因此,输入图像的大小必须是固定的,这样才能与全连接层进行矩阵乘运算。
为了解决该问题,将全连接层进行卷积化:
在全连接层中,第一层每个神经元对最后一个特征图flatten后的每个像素都有一个权重,该权重与特征图中像素进行一一对应的逐像素相乘后再累加的过程,本质就是一个卷积操作,即全连接层实际就是卷积核大小为上层特征大小的卷积运算,一个卷积核卷积后的结果为一个节点,就对应全连接层的一个神经元。
假设: 最后一个卷积层的输出为7×7×