Song-Hai Zhang, Ruilong Li, Xin Dong, Paul L. Rosin, Zixi Cai, Han Xi, Dingcheng Yang, Hao-Zhi Huang, Shi-Min Hu

CVPR 2019

[ProjectPage] [paper] [code]

Summary 参考:

  • https://blog.csdn.net/Kelly368/article/details/90609729
  • https://blog.csdn.net/weixin_42137700/article/details/95879135

背景

现有的大多数图像实例分割模型(如 Fast/Faster R-CNN, Mask R-CNN, YOLO 等)都是基于 proposal regions (bounding-boxes, bbox) 的,步骤如下:

  1. 对图片进行目标检测,生成大量的 bbox
  2. 应用非最大值抑制(Non-maximum Suppression, NMS)来消除冗余的 bbox
  3. 在检测框里进行实例分割

然而这种基于 bbox 的方法存在以下缺陷:

  • 两个同类对象可能有较大重叠面积的 bbox,但 NMS 会认为其中一个 bbox 是冗余的,并将其去掉。这意味着这种方法对具有大面积重叠的情况束手无策。
  • 即使模型成功地检测出两个对象,但由于 bbox 的大面积重叠,模型难以判断其中的像素属于哪个对象

但是在计算机视觉中“人”这个类别具有特殊性,可以很好地用骨架来定义。在多重遮挡的实例中,相比于 bbox,骨架可以提供更有区分度的信息(如位置、身体部位的可见性),更好地将人的不同实例区分出来。

文章的主要贡献:

  • 提出了 pose-based 的人物实例分割框架,能更好地解决遮挡重叠的问题
  • 提出了 pose-based 的对齐模块,Affine-Align
  • 用骨架特征指导分割(使用 concat)
  • 提出了 OCHuman 数据集,该数据集中的人物对象都有较大面积的重叠

模型结构

Summary - Pose2Seg: Detection Free Human Instance Segmentation

网络框架主要由 Affine-Align, Skeleton Features 和 SegModule 三部分组成。步骤如下:

  • 将有人体姿态标注的图像作为输入,用 backbone(如 resnet50FPN)提取特征
  • 应用 Affine-Align 模块,基于人体姿势将 RoIs 对齐为统一大小(文中为 64 x 64)。同时,为每个人体对象生成骨架特征。
  • 将上述两者 concat 之后传给 SegModule 对每个人体进行分割
  • 使用 Affine-Align 操作中的仿射变换矩阵 H,将每个对象反向对齐,得到最终分割结果

Affine-Align Operation

Affine-Align 的作用与 Faster RCNN 的 ROI Pooling 和 Mask RCNN 的 ROI Align 类似,都是将 ROI 对齐成特定大小。但是与它们不同的是,Affine-Align 是基于人物姿势对齐,而不是边界框。步骤如下:

  1. 用 K-means 聚类得到训练集中 K 个标准的 pose templates,文中的 K = 3。距离度量在文中有公式给出。

  2. 通过最优化公式 (4) ,计算最佳仿射变换矩阵 H,使输入的姿势与 templates 尽可能接近。因为templates 中有多个姿势,所以通过公式 (5) 找出得分最高的姿势,确定与之最接近的姿势。

Summary - Pose2Seg: Detection Free Human Instance Segmentation

其中 H 是 2 x 3 的矩阵,有 5 个独立的变量:旋转、缩放、x 轴平移、y 轴平移、左右翻转

  1. 将 H 应用于图像或特征图,并用双线性插值得到固定的大小

Summary - Pose2Seg: Detection Free Human Instance Segmentation

Skeleton Features

使用 Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields 中的 part affinity fields (PAFs) 方法提取骨架特征。使用 PAFs 生成人体关键点并将它们连接起来。

SegModule

SegModule 中需要有足够大的感受野来理解上述的人工特征,并且能够学习它们与 base network 提取出的图像特征的联系。故需要更多的 residual units 来提升学习能力。下图是 residual units 的数量对结果的影响:

Summary - Pose2Seg: Detection Free Human Instance Segmentation

Performance

  • 所有模型的训练数据:COCOPersons training split,包含 pose keypoints 和 segmentation masks

  • 验证数据:(1) OCHuman, (2) COCOPersons val split

(1)在人物重叠情况上的表现(OCHuman)

OCHuman 数据集有大面积人物对象重叠,Pose2Seg 模型比 Mask R-CNN 的性能高出非常多。

Summary - Pose2Seg: Detection Free Human Instance Segmentation

(2)在一般情况下的表现(COCOPersons val split)
Summary - Pose2Seg: Detection Free Human Instance Segmentation

Ablation Experiments

Summary - Pose2Seg: Detection Free Human Instance Segmentation

通过 Ablation Experiments,对比 Affine-Align 和 RoI-Align 的性能,并探究是否添加骨架特征对性能的影响。结果显示:

  • Affine-Align 模块表现得更好,因为它是基于人体姿势,并且允许旋转
  • 添加骨架特征能为网络提供更多有用的信息,得到更精确的结果

总结

考虑到人的特殊性,将人体姿势应用到实例分割中能提升不少性能,特别是在人物对象有大量重叠的情况下

相关文章:

  • 2021-12-28
  • 2021-03-28
  • 2021-09-22
  • 2021-07-18
  • 2021-11-22
  • 2021-11-09
  • 2021-04-07
猜你喜欢
  • 2021-07-13
  • 2021-05-25
  • 2021-10-31
  • 2021-09-02
  • 2021-06-14
  • 2021-07-22
相关资源
相似解决方案