图像分割算法入门:从基础到FCN
本文围绕 图像分割 展开,介绍了基于 深度学习 的 图像分割算法 分类,包括 语义分割 和 实例分割。深入分析传统基于 CNN 分割方法的缺点,并简要讲解 全卷积网络(FCN) 的原理、结构及相关概念。帮助读者了解 图像分割 基础算法,掌握 FCN 关键要点。
关键词:图像分割;语义分割;实例分割;FCN
一、图像分割算法分类
图像分割 旨在预测图像中每个像素所属的类别或物体。基于 深度学习 的 图像分割算法 主要分为 语义分割 和 实例分割 两类。
语义分割 为图像中的每个像素分配一个类别,例如能指出画面中所有物体各自的类别,就像为画面中的每个像素贴上类别标签一样,如下图所示:
实例分割 则只对特定物体进行类别分配,但 目标检测 输出的是边界框和类别,而 实例分割 输出的是 掩膜(mask) 和类别,示例图如下:
二、传统的基于CNN的分割方法缺点
传统基于 CNN 的分割方法,是使用像素周围的图像块作为 CNN 的输入进行训练与预测。这种方法存在明显缺点:
- 存储开销大:若对每个像素使用 15 × 15 15 \times 15 15×15 的图像块,并不断滑动窗口输入到 CNN 中进行类别判断,所需存储空间会随滑动窗口的次数和大小急剧上升。
- 效率低下:相邻像素块存在大量重复,针对每个像素块逐个计算卷积,会造成大量重复计算。
- 分类性能受限:像素块的大小限制了感受区域的大小,通常像素块远小于整幅图像,只能提取局部特征,导致分类性能受到影响。
三、FCN——全卷积网络
FCN 的出现改变了传统 CNN 在 图像分割 上的局限。一般的分类 CNN 网络,如 VGG 和 Resnet,会在网络最后加入 全连接层,经过 softmax 后得到的是只能标识整个图片类别的 1 维概率信息,不适用于 图像分割。而 FCN 把后面的 全连接层 换成 卷积层,可获得 2 维的 feature map,后接 softmax 层就能得到每个像素点的分类信息,从而解决了分割问题,如下图所示:
FCN 网络结构可以接受任意尺寸的输入图像,它采用 反卷积层 对最后一个 卷积层 的 feature map 进行上采样,使其恢复到输入图像相同的尺寸,从而对每个像素进行预测,同时保留原始输入图像的空间信息,最后在上采样的特征图上进行逐像素分类。其结构示意图如下:
总之,FCN 在 图像分割 领域迈出了重要一步,为后续的 图像分割算法 发展奠定了基础。