课程

应用

  • 人像分割
  • 自动驾驶
  • 医疗影像
  • 智能遥感:河流、田地等

思路

  • 先验知识:颜色相近,物体交界颜色变化
    • 先验知识不完全准确
  • 逐像素分类:滑窗,逐个滑动预测类别
    • 需重复计算卷积
  • 复用卷积:直接在feature map上预测
    • 需要全连接层的卷积化:每个全连接层神经元用一个卷积核替换(Fully Convolutional Network)
    • 预测图上采样:双线性插值或转置卷积

双线性插值可以用对应卷积核代替:先进行零插值,再使用设计好的卷积核卷积

转置卷积

也称升卷积Upconvolution或反卷积Deconvolution,但不建议使用反卷积,其在数学上与卷积不互逆。转置卷积Transposed Convolution名称来源于卷积对应的矩阵运算。

对于卷积运算

O=Ih=CIO = I * h = CI

其中hh为卷积核,OO为输出(小图),II为输入(大图),CC为卷积运算的等价矩阵乘法项。可以发现其转置卷积有

I=Oh=CTOI' = O'*h' = C^TO'

最终我们逐像素计算交叉熵损失并求和。

结合浅层特征图可以使用FCN更精确。最典型的为UNet。

此外周围内容也提供上下文信息。这需要大感受野。

  • PSPNet:多尺度池化 + 特征拼接

空洞卷积与DeepLab

  • 空洞卷积解决下采样问题:提高感受野,不增加参数
    • 池化层和步长剔除,代价为增大参数量
    • 下采样 + 卷积 = 空洞卷积
    • 去除分类模型后半部分下采样,改为膨胀卷积,逐步增加rate维持感受野
  • 条件随机场CRF后处理,精细化分割图
    • 结合原图颜色信息和神经网络预测类别后处理,最小化能量函数
    • 本身是概率模型,用能量函数表示分割结果优劣,最小化能量函数获得更好分割结果

给定能量函数

E(x)=iθi(xi)+ijθij(xi,xj)E(\boldsymbol{x})=\sum_i\theta_i(x_i)+\sum_{ij}\theta_{ij}(x_i, x_j)

其中x\boldsymbol{x}为全部像素预测结果,xi,xjx_i, x_j为特定像素预测结果(向量化后仅有1维坐标),θi(xj)\theta_i(x_j)是单个预测对能量函数的贡献,θij(xj,xj)\theta_{ij}(x_j, x_j)是一对预测对能量函数的贡献。

θi(xi)=logP(xi)θij(xi,xj)=μ(xi,xj)[w1exp(pipj22σα2IiIj22σβ2)+w2exp(pi0pj22σγ2)]μ(xi,xj)=[xixj]\theta_i(x_i) = -\log P(x_i)\\ \theta_{ij}(x_i, x_j) = \mu(x_i, x_j)\left[w_1\exp\left(-\frac{||p_i-p_j||^2}{2\sigma_\alpha^2}-\frac{||I_i-I_j||^2}{2\sigma_\beta^2}\right) + w_2\exp\left(-\frac{||p_i0p_j||^2}{2\sigma_\gamma^2}\right)\right]\\ \mu(x_i, x_j) = [x_i \ne x_j]

μ\mu表示仅在类别不同时产生惩罚,括号内前一项表示颜色相近且位置相近时产生的惩罚(鼓励颜色边界处产生类别变化),后一项表示位置相近时产生的惩罚(鼓励平滑结果)

  • 多尺度空洞卷积Atrous Spatial Pyramid Pooling ASPP模块捕捉上下文信息
    • 改用空洞卷积替代多尺度池化
  • DeepLabV3:借鉴Encoder/Decoder结构,在原有结构上增加了简单的decoder结构

总结

  • 降采样问题:双线性插值、转置卷积(FCN、UNet)、空洞卷积(DeepLab)
  • 恢复细节:分别基于高低层特征预测(FCN)、融合高低层特征再预测(UNet、DeepLabV3)、CRF后处理(DeepLab V1/V2)
  • 上下文信息:池化金字塔(PSPNet)、多尺度空洞卷积ASPP(DeepLabV3/V3+)

评估

  • Accuracy:交集/GT面积,类似Recall
  • IoU:交集/GT和预测并集,类似Precision
  • Dice:GT与预测的调和平均(2x交集面积/GT与预测的面积和),类似F1 Score
  • m前缀:每类分别计算指标再按类别平均
  • 混淆矩阵:不常用

问题

  • Matting问题使用mmedicing,更底层,更细节,适用于微距摄影等