语义分割小综述
课程
应用
- 人像分割
- 自动驾驶
- 医疗影像
- 智能遥感:河流、田地等
思路
- 先验知识:颜色相近,物体交界颜色变化
- 先验知识不完全准确
- 逐像素分类:滑窗,逐个滑动预测类别
- 需重复计算卷积
- 复用卷积:直接在feature map上预测
- 需要全连接层的卷积化:每个全连接层神经元用一个卷积核替换(Fully Convolutional Network)
- 预测图上采样:双线性插值或转置卷积
双线性插值可以用对应卷积核代替:先进行零插值,再使用设计好的卷积核卷积
转置卷积
也称升卷积Upconvolution或反卷积Deconvolution,但不建议使用反卷积,其在数学上与卷积不互逆。转置卷积Transposed Convolution名称来源于卷积对应的矩阵运算。
对于卷积运算
其中为卷积核,为输出(小图),为输入(大图),为卷积运算的等价矩阵乘法项。可以发现其转置卷积有
最终我们逐像素计算交叉熵损失并求和。
结合浅层特征图可以使用FCN更精确。最典型的为UNet。
此外周围内容也提供上下文信息。这需要大感受野。
- PSPNet:多尺度池化 + 特征拼接
空洞卷积与DeepLab
- 空洞卷积解决下采样问题:提高感受野,不增加参数
- 池化层和步长剔除,代价为增大参数量
- 下采样 + 卷积 = 空洞卷积
- 去除分类模型后半部分下采样,改为膨胀卷积,逐步增加rate维持感受野
- 条件随机场CRF后处理,精细化分割图
- 结合原图颜色信息和神经网络预测类别后处理,最小化能量函数
- 本身是概率模型,用能量函数表示分割结果优劣,最小化能量函数获得更好分割结果
给定能量函数
其中为全部像素预测结果,为特定像素预测结果(向量化后仅有1维坐标),是单个预测对能量函数的贡献,是一对预测对能量函数的贡献。
表示仅在类别不同时产生惩罚,括号内前一项表示颜色相近且位置相近时产生的惩罚(鼓励颜色边界处产生类别变化),后一项表示位置相近时产生的惩罚(鼓励平滑结果)
- 多尺度空洞卷积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,更底层,更细节,适用于微距摄影等