【Panoptic Feature Pyramid Networks】--- 阅读笔记.md

论文名称:Panoptic Feature Pyramid Networks
论文作者:Alexander Kirillov, Ross Girshick, Kaiming He, Piotr Dollár
发行时间:Submitted on 8 Jan 2019, last revised 10 Apr 2019
论文地址:https://arxiv.org/abs/1901.02446
代码开源:暂未开源


1. 概要

这篇paper更适合作为baseline, 将 Semantic Segmentation(语义分割) 和 Instance Segmentation(实例分割) 结合在了一个FPN + Mask R-CNN 的框架中,即Panoptic(全景分割). writers通过大量实验验证了有效性. 结构比较干净, 值得一看.

2. Panoptic Feature Pyramid Network

Panoptic FPN

从 Mask R-CNN with FPN 入手,增加了两个分支来处理语义分割和全景分割.

2.1. Feature Pyramid Network

简要对 FPN 结构进行介绍

FPN结构:

以标准的网络结构–ResNet作为骨架来生成多尺度的特征.

FPN

2.2. Instance Segmentation branch

writers直接在Mask R-CNN上增加了一个branch来输出 Instance Segmentation

IS branch

由于在特征金字塔中不同尺度的feature的channel的维度是相同的, 直接使用Faster R-CNN来对不同尺度的feature进行RoI Pooling, 然后利用共享的网络分支对每个区域预测得到 boxclass label.

2.3. Semantic Segmentation branch

writers在原Mask R-CNN上增加了一个branch来输出 Semantic Segmentation

SS bramch

该 branch 将 特征金字塔的各层通过不同次数的连续上采样来放到同一尺寸,其中上采样操作的组成有:

  • 3×33 \times 3 conv
  • GN
  • RELU
  • 2×2 \times 双线性插值

然后对这些各层的同一尺度的features按元素求和后, 再通过一个1×11 \times 1的conv和4×4 \times的双线性插值的上采样及softmax来生成为原始图片分辨率下的各个 class label.

3. Inference and Training

3.1. Panoptic inference

由于在Panoptic FPN中, 实例分割和语义分割的输出可能会有重叠, 故提出 post-processing 来解决之.

3.1.1. post-processing

该方法的思想类似NMS(Non-Maximum Supression):

  • 针对不同实例(instance)的置信度(confidence score)来解决重叠问题
  • 解决实例分割和语义分割之间的重叠问题来利于instance的区分(这句话笔者不是很理解,原文是"resolving overlaps between instance and semantic segmentation outputs in favor of instances")
  • 去除被标记为"other"或比给定的阈值低的stuff regions

3.2. Joint training

在联合训练的过程中:

  • 针对 Instance Segmentation:
    • LcL_c: classfication loss
    • LbL_b: bound-box loss
    • LmL_m: mask loss
    • 其中:
      • LcL_cLbL_b是由样本的RoI进行归一化得到的
      • LmL_m则是由前景(foreground)经过归一化得到的
    • LiL_i: instance loss, Li=Lc+Lb+LmL_i = L_c + L_b + L_m
  • 针对 Semantic Segmentation:
    • LsL_s: semantic loss, 是通过对每个像素上预测的 class label 和其对应的 Ground Truth labels之间的cross-entropy loss(交叉熵)并按照已经标注了的图像的像素数量进行归一化操作.

最终, 模型的loss为:
L=λi(Lc+Lb+Lm)+λsLsL=\lambda_i(L_c+L_b+L_m)+\lambda_s L_s
通过对λi\lambda_iλs\lambda_s进行tuning来训练模型.

4. 总结

writers提出在一个model中同时对语义分割和实例分割进行训练, 方法简介较干净. 并且做到了只训练一个model, 就做到了之前为这两个任务分别做一个模型的效果, 且节约了约一半的计算, 很适合作为baseline.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章