OpenMMLab实战营第六课 语义分割算法基础

什么是语义分割

任务: 将图像按照物体的类别分割成不同的区域
等价于: 对每个像素进行分类

应用:

  • 无人驾驶汽车 自动驾驶车辆,会将行人,其他车辆,行车道,人行道、交通标志、房屋、草地与树木等等按照类别在图像中分割出来,从而辅助车辆对道路的情况进行识别与认知。

  • 人像分割 实时替换视频的背景 在智慧互娱和智能会议场景中,可以通过这种方法增加交互的多样性

  • 智能遥感 通过智能遥感能够监测不同季节地表水域的变化,从而辅助农业生产,以及旱灾洪灾的预测等等。

    语义分割 实例分割 全景分割
    仅考虑像素的类别不分割同一类的不同实体 分割不同的实体 仅考虑前景物体 背景仅考虑类别前景需要区分实体

    一些以前的思路

    • 按颜色分割

      • 先验知识 物体内部颜色相近,物体交界颜色变化
      • 问题
      • 先验知识不完全准确:不同物体颜色可能相近,物体内也会包含多种颜色
    • 逐像素分类 搞很多滑窗

      • 优势:可以充分利用已有的图像分类模型

      • 问题:效率低下,重叠区域重复计算卷积

现在的方法

全卷积网络 Fully Convolutional Network 2015

复用卷积计算 直接对全图进行卷积 得到特征图

全连接层的卷积化(不在固定特征图大小 原来全连接层多少个神经元 变成多少个卷积核)

预测图的升采样

问题:

图像分类模型使用降采样层(步长卷积或池化)获得高层次特征,导致全卷积网络输出尺寸小于原图,而分割要求同尺寸输出

解决方法:
对预测的分割图升采样,恢复原图分辨率,升采样方案:
1. 双线性插值 Bilinear Interpolation 等效于把特征图零插值 在用一个固定参数卷积核 作用它

  1. 转置卷积Transposed Convolution:可学习的升采样层

UNet 2015

基于多层级特征的上采样
问题:基于顶层特征预测,再升采样32 倍得到的预测图较为粗糙。
分析:高层特征经过多次降采样,细节丢失严重。
解决思路:结合低层次和高层次特征图。
解决方案FCN:
基于低层次和高层次特征图分别产生类别预测,升采样到原图大小,再平均得到最终结果

PSPNet 2016

图像周围的内容(也称上下文)可以帮助我们做出更准确的判断。
方案:增加感受野更大的网络分支,将上下文信息导入局部预测中
PSPNet 2016
(a) 对特征图进行不同尺度的池化,得到不同尺度的上下文特征
(b) 上下文特征经过通道压缩和空间上采样之后拼接回原特征图→ 同时包含局部和上下文特征
(c) 基于融合的特征产生预测图
### DeepLab 系列
DeepLab 是语义分割的又一系列工作,其主要贡献为:
• 使用空洞卷积解决网络中的下采样问题(减少下采样保留空间分辨率)

  • 图像分类模型中的下采样层使输出尺寸变小

    • 如果将池化层和卷积中的步长去掉:
      • 可以减少下采样的次数;
      • 特征图就会变大,需要对应增大卷积核,以维持相同的感受野,但会增加大量参数
      • 使用空洞卷积(Dilated Convolution/Atrous Convolution),在不增加参数的情况下增大感受野
  • 使用条件随机场CRF 作为后处理手段,精细化分割图

    • 条件随机场Conditional Random Field, CRF

      模型直接输出的分割图较为粗糙,尤其在物体边界处不能产生很好的分割结果。
      DeepLab v1&v2 使用条件随机场(CRF) 作为后处理手段,结合原图颜色信息和神经网络预测的类
      别得到精细化分割结果。

      CRF 是一种概率模型。DeepLab 使用CRF 对分割结果进行建模,用能量函数用来表示分割结果优劣,通过最小化能量函数获得更好的分割结果。

      \[E(\boldsymbol{x})=\sum_i \theta_i\left(x_i\right)+\sum_{i, j} \theta_{i j}\left(x_i, x_j\right)\]

      \[\theta_i\left(x_i\right)=-log P\left(x_i\right)\]

      \(x_i\),\(x_j\) 特定像素的预测结果(向量化后只有1维坐标)

      x 全部像素的预测结果

      \(\theta_i(x_i)\) 单个预测对能量函数的贡献

      \(\theta_{i,j}(x_i,x_j)\) 一对预测对能量函数的贡献

  • 使用多尺度的空洞卷积(ASPP 模块)捕捉上下文信息
    DeepLab v1 发表于2014 年,后于2016、2017、2018 年提出v2、v3、v3+ 版本。

语义分割算法总结

来自同济自豪兄OpenMMlab AI 实训营课件

语义分割模型的评估

基于交并集给出评估指标

图片出处 https://www.jeremyjordan.me/evaluating-image-segmentation-models/

Accuracy =GT∩Pred/GT

IoU =GT∩Pred/GT∪Pred

Dice =2 × GT∩Pred/(GT+Pred)

对每类计算指标再按类别平均

问题与回答