Summary - Pose2Seg: Detection Free Human Instance Segmentation

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 数据集,该数据集中的人物对象都有较大面积的重叠

模型结构

在这里插入图片描述

网络框架主要由 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) 找出得分最高的姿势,确定与之最接近的姿势。

在这里插入图片描述

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

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

在这里插入图片描述

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 的数量对结果的影响:

在这里插入图片描述

Performance

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

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

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

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

在这里插入图片描述

(2)在一般情况下的表现(COCOPersons val split)
在这里插入图片描述

Ablation Experiments

在这里插入图片描述

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

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

总结

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
检查错误原因 creating directory /data/primary/gpseg0 ... ok creating subdirectories ... ok selecting default max_connections ... 750 selecting default shared_buffers ... 125MB selecting default timezone ... Asia/Shanghai selecting dynamic shared memory implementation ... posix creating configuration files ... ok creating template1 database in /data/primary/gpseg0/base/1 ... child process was terminated by signal 9: Killed initdb: removing data directory "/data/primary/gpseg0" 2023-06-08 08:53:53.568563 GMT,,,p22007,th-604637056,,,,0,,,seg-10000,,,,,"LOG","00000","skipping missing configuration file ""/data/primary/gpseg0/postgresql.auto.conf""",,,,,,,,"ParseConfigFile","guc-file.l",563, 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[INFO]:-Start Function BACKOUT_COMMAND 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[INFO]:-End Function BACKOUT_COMMAND 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[INFO]:-Start Function BACKOUT_COMMAND 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[INFO]:-End Function BACKOUT_COMMAND 20230608:16:54:12:021728 gpcreateseg.sh:VM-0-5-centos:gpadmin-[FATAL][0]:-Failed to start segment instance database VM-0-5-centos /data/primary/gpseg0 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-End Function PARALLEL_WAIT 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-End Function PARALLEL_COUNT 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-Start Function PARALLEL_SUMMARY_STATUS_REPORT 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:------------------------------------------------ 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-Parallel process exit status 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:------------------------------------------------ 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-Total processes marked as completed = 0 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-Total processes marked as killed = 0 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[WARN]:-Total processes marked as failed = 1 <<<<< 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:------------------------------------------------ 20230608:16:54:12:019435 gpinitsystem:VM-0-5-centos:gpadmin-[INFO]:-End Function PARALLEL_SUMMARY_STATUS_REPORT FAILED:VM-0-5-centos~6000~/data/primary/gpseg0~2~0
06-09
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值