该论文发表于CVPR2022

Abstract

拥挤场景使得定位不同人体关键点具有挑战性。本文提出了一种上下文实例解耦(CID,Contextual Instance Decoupling)的新多人姿态估计管道(pipeline)。CID不再依赖于人的边界框去空间上区分人。CID将图像中的人体解耦到多个实例感知的特征图中,每个特征图都用来为具体的人体实例推断关键点。 与包含边界框检测的方法对比,CID具有可微性和对检测错误具有鲁棒性。将各人体实例解耦到不同的特征图可以隔离各人体实例之间的干扰,并且能够在大于边界框范围的尺度上获取上下文线索。实验证明CID能够在拥挤数据集上达到非常出色的效果。

Background

目前的多人姿态估计方法可以总结分为三种:自顶向下方法:检测人体框后对单个人体进行关键点检测;自底向上方法:先检测人体关键点,并将他们组合到对应实例;单阶段方法:根据人体特征直接回归关节坐标点及实例标签。自顶向下方法受限于人体检测框裁剪、ROI align等操作,这些操作会损失掉检测框以外的上下文信息。而自底向上的关键点组合方法是网络训练后的后处理单独操作,不能和关键点检测阶段一起训练,该阶段也会损失一些上下文信息。单阶段人体姿态估计方法虽然能够有比较高的效率,但是其因全连接层容易过拟合的问题很难学习到复杂的人体姿态。自顶向下和自底向上两种二阶段方法依赖于热图检测,也就意味着在网络检测到热图之后还需要使用argmax的算法定位关键点。分析上述方法的不足之处,作者考虑到是否可以研究一个新的多人姿态估计pipeline,这种方法能够最大程度地保留必要空间信息。对此,作者提出了一种新的解耦操作,对图像中的各个人体实例进行解耦,对于每个人体实例来说都学习一个特定的特征图,每张特征图学习到的都是对应于该单个人体实例的特征映射。相对于之前的二阶段方法该方法能够囊括到更多人体特征、获取更重要的空间信息。并且,对于不同人体实例进行分开检测,能够应对更多的人体尺度变化。(CVPR2021DEKR是通过解耦关节点来达到与两阶段方法差不多的性能)

上图展现了目前各多人姿态估计方法的弊端。(a)自顶向下方法会因为人体检测框裁剪损失部分信息。(b)自底向上方法会依赖关键点检测准确度,分组方法对检测错误不具有鲁棒性。(c)单阶段方法提取图像特征后直接回归人体坐标点,因缺乏空间泛化能力,学习不到长距离依赖关系,无法拟合复杂人体姿态。(d)本文方法可以有效捕获到人体特征而不受检测框约束,同时不损失空间信息。且关键点检测和分组一起训练。

Method

对于单张多人图像I来说,多人姿态估计的目标是估计每个人的姿态关键点的位置。

{Kj(i)}j=1,⋯,ni=1,⋯,m=MPPE(I)\ { \{K_{j}^{(i)}}\}_{j=1,\cdots,n}^{i=1,\cdots,m}=MPPE(I) {Kj(i)​}j=1,⋯,ni=1,⋯,m​=MPPE(I)(对于第i个人体实例的第j个关键点)

该网络结构使用热图来进行关键点定位,对于热图模块来说,图像I进行一系列卷积操作之后,将得到的特征进行热图生成,得到一个n通道的热图,通道数n对应了关键点的数目。
{Hj}j=1n=HM(F),F=Φ(i)\ \{H_{j}\}^{n}_{j=1}=HM(F),F=\Phi(i) {Hj​}j=1n​=HM(F),F=Φ(i)

最后关键点通过求极大值的操作进行解码:
{Kj(i)}i=1m=rank(Hj,m)\ { \{K_{j}^{(i)}}\}_{i=1}^{m}=rank(H_{j},m) {Kj(i)​}i=1m​=rank(Hj​,m)

对于多人姿态估计网络来说,实际上网络先是提取图像中的各层信息,再使用一些额外的操作(人体检测框、关键点分组操作)区分这些不同人体实例不同关键点的特征。与以前的策略不同的是,该CID(上下文实例解耦)网络将多人特征映射解耦为一组用实例划分的特征映射。
CID网络模块主要分为两大部分:

  • 实例信息抽象模块(Information Abstraction (IIA) module)
    用于将特征F进行抽象,生成对应人体实例的鉴别特征。

{f(i),I(i)}i=1m=IIA(F)\ \{ f^{(i)},I^{(i)}\}^{m}_{i=1} = IIA(F) {f(i),I(i)}i=1m​=IIA(F)

具体实现步骤如下:

  • 对于图片中的每个人体实例生成相应的人体中心点热图:
    C=HMcenter(F)\ C=HM_{center}(F) C=HMcenter​(F)
    对中心点热图C进行解码,解码后得到I(i)=(xi,yi)表征第i个人体实例的中心点位置。
  • 根据中心点位置生成每个人体实例的代表特征f(i),该代表特征用于识别和解耦各个人体实例,期望网络可以学习到有较强鉴别能力的代表特征用于区分各个人。
    f(i)=F(I(i))\ f^{(i)}=F(I^{(i)}) f(i)=F(I(i))
  • 考虑到图片中特征相似的人体,需要增强特征的一个鉴别能力,因此,作者设计了一个损失函数,该损失函数包括了对不同特征相似度的一个度量,用于区分相似特征。
  • 全局特征解耦模块(Global Feature Decoupling (GFD)):
    • 使用鉴别特征f(i)将原始特征F进行解耦,这部分既考虑了空间层面的解耦,又考虑了通道层面的解耦,使得人体实例能够解耦到特征图的不同空间位置和通道中。
      {F(i)}i=1m=GFD(F,{f(i),I(i)}i=1m)\ \{ F^{(i)} \}^{m}_{i=1} = GFD(F,\{f^{(i)},I^{(i)}\}^{m}_{i=1}) {F(i)}i=1m​=GFD(F,{f(i),I(i)}i=1m​)
    • 对于空间上的解耦,目的是为了突出单个人体实例在特征图空间上的位置,实际上就是增加对应人体实例在对应空间上的权重,并降低其他背景的权重:
      Fs(i)=M(i)⋅F^\ F^{(i)}_{s} = M ^{(i)}\cdot \hat{F} Fs(i)​=M(i)⋅F^
    • 该mask通过卷积中心点mask和由f(i)与对应特征生成的mask得到:
      M(i)=Sigmoid(Conv([O(i);Msim(i)]))\ M^{(i)} = Sigmoid(Conv([O^{(i)};M_{sim}^{(i)}])) M(i)=Sigmoid(Conv([O(i);Msim(i)​]))
    • 对于通道上的解耦,每个通道实际上都是一个特征检测器,对于人特征较多的通道进行重新加权。
      Fc(i)=F^⊗f(i)\ F_{c}^{(i)}=\hat{F} \otimes f^{(i)} Fc(i)​=F^⊗f(i)
    • 对解耦后的特征进行融合:
      F(i)=ReLU(Conv([Fc(i);Fs(i)]))\ F^{(i)} = ReLU(Conv([F_{c}^{(i)};F_{s}^{(i)}])) F(i)=ReLU(Conv([Fc(i)​;Fs(i)​]))

Thought

不同于去年的关键点解耦思路,本文又提出了一种人体实例解耦的单阶段人体姿态估计新方法,这种方法既结合了自顶向下的人体分开进行关键点检测的思路,又减少了裁剪带来的内容损失,并且将通道注意力和空间注意力应用在实例解耦上,使得网络模型能够更加灵活地为各个人体实例分配合理的特征信息,编码更多的上下文信息使得网络能够更多的应对各个人体的尺度变化。

实际上是有点偏向于自顶向下方法的优化。将ROI操作换成使用鉴别特征解耦的方式划分人体。

Result


该方法在COCO数据集上取得了目前单阶段方法的最好结果,且超越了自底向上方法。因为该方法能够对比于两阶段方法捕获更多全局信息。且作者使用了对比损失加强了实例解耦,该方法在拥挤、遮挡场景中效果更为显著。在Crowdpose和OCHuman数据集当中都取得了非常大的提升。

[论文阅读]Contextual Instance Decoupling for Robust Multi-Person Pose Estimation相关推荐

  1. 论文笔记1:Fast and Robust Multi-Person 3D Pose Estimation from Multiple Views

    快速且鲁棒的多视角下多人三维姿态估计 作者讲解:https://www.bilibili.com/video/BV1K441157Xf?from=search&seid=52494766343 ...

  2. [论文阅读:姿态识别Transformer] POET: End-to-End Trainable Multi-Instance Pose Estimation with Transformers

    [论文阅读:姿态识别&Transformer] 2103 POET: End-to-End Trainable Multi-Instance Pose Estimation with Tran ...

  3. 【论文阅读笔记】Occlusion-Aware Siamese Network for Human Pose Estimation

    论文地址:Occlusion-Aware Siamese Network for Human Pose Estimation 论文总结   本文的网络名,作者命名为OASNet.本文的出发点就如名字所 ...

  4. 【论文阅读5】BoT-SORT:Robust Associations Multi-Pedestrian Tracking

    [论文阅读5]BoT-SORT:Robust Associations Multi-Pedestrian Tracking 和OC-SORT类似,BoT-SORT也是对Kalman滤波进行改进.OCS ...

  5. 2020.10.03读 Robust 6D Object Pose Estimation by Learning RGB_D Features

    Robust 6D Object Pose Estimation by Learning RGB_D Features 1. 背景信息 2.方法 2.1旋转 2.2平移 3. 实验 3.1评估指标 3 ...

  6. 【2019-CVPR-3D人体姿态估计】Fast and Robust Multi-Person 3D Pose Estimation from Multiple Views

    Fast and Robust Multi-Person 3D Pose Estimation from Multiple Views 题目:<快速鲁棒性多视图多人3D姿态估计> 作者: ...

  7. 论文阅读:FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks

    文章目录 1. 论文总述 2. 利用CNN预测光流的另一种思路 3. 通过堆叠网络来进行光流估计优化的idea来源 4. FlyingThings3D (Things3D) dataset 5. Th ...

  8. 论文阅读 Semantic Graph Convolutional Networks for 3D Human Pose Regression

    Semantic Graph Convolutional Networks for 3D Human Pose Regression 使用语义图卷积网络对三维人体姿态进行回归 Abstract ​ 在 ...

  9. 定位系列论文阅读-RoNIN(二)-Robust Neural Inertial Navigation in the Wild: Benchmark, Evaluations

    这里写目录标题 0.Abstract 0.1逐句翻译 0.2总结 1. Introduction 1.1逐句翻译 第一段(就是说惯性传感器十分重要有研究的必要) 第二段(惯性导航是非常理想的一个导航方 ...

最新文章

  1. 开源工具之valgrind
  2. 2010.4.18 OA 项目组一周工作报告
  3. php内置函数和扩展,PHP 内置函数strlen 和mbstring扩展函数mb_strlen的区别
  4. python程序打完后怎么保存_如何保存要在之后使用的值应用程序执行()在python中退出?...
  5. java面向对象-------类属性和方法,不同类之间调用
  6. 批量改变文件夹和子文件夹中图片格式的两种方法
  7. java压缩成.tar_java压缩tar.gz | 学步园
  8. 自定义报错返回_MybatisPlus基础篇学习笔记(五)------自定义sql及分页查询
  9. Oracle数据库php短连接,PHP 连接 Oracle
  10. auth php rbac,php中比rbac更好的权限认证的方式auth认证类
  11. 20170826滴滴算法工程师笔试
  12. 纯css+js打造返回顶部代码
  13. 很棒的VC界面库 - GuiToolkit
  14. 神舟七号飞船应用计算机进行飞行状态属于,“神舟七号”飞船应用计算机进行飞行状态调整属于()。...
  15. 已解决Mixly与STM32单片机下载成功后无法运行问题
  16. Java基础恶补系列
  17. 矩阵键盘控制拉闭幕式流水灯
  18. 移动端实时视频直播技术实践:如何做到实时秒开、流畅不卡
  19. 塑胶材料的各种特性,热塑性塑料详解
  20. lepus安装部署详解

热门文章

  1. 【NISP一级】2.2 身份鉴别与访问控制
  2. 使用vmdk文件创建虚拟机
  3. 嵌入式系统设计师学习笔记二十八:嵌入式程序设计③——高级程序设计语言
  4. 特斯拉充电电流设置多大_特斯拉再次升级Model S 充电状况不稳时自动降低电流...
  5. 《Windows 8 权威指南》——1.2 Windows 8平板模式下IE浏览器网页
  6. wamp mysql 没有启动,WAMP中mysql服务突然无法启动 解决方法
  7. Mixly 数码管时钟实验
  8. ORACLE违反协议异常
  9. filterConfig
  10. 电脑游戏怎么转移新电脑,换新电脑如何迁移游戏