FCPose

FCPose: Fully Convolutional Multi-Person Pose Estimation with Dynamic Instance-Aware Convolutions

​ 我们提出了一个基于动态实例感知卷积的全卷积多人姿态估计框架,称为FCPOSE。 不同于现有的方法,通常需要ROI(感兴趣区域)操作和/或分组后处理,FCAPE通过动态的实例感知关键点估计头消除了ROI和分组后处理。 动态关键点头以每个实例(人)为条件,可以将实例概念编码在其过滤器的动态生成的权重中。 此外,利用动态卷积的强大表示能力,将FCAPE中的关键点头设计得非常紧凑,从而提高了推理速度,使得FCAPE无论在IM年龄内有多少人,其推理时间几乎是恒定的。 例如,在COCO DataSet上,使用DLA-34主干的FCAPE实时版本的推断速度比掩码R-CNN(RESNET-101)快4.5倍(41.67 fps vs 9.26 fps),同时实现了更高的性能(64.8%APKP vs 64.3%APKP)。 FCAPE还提供了比其他最先进的方法更好的速度/精度权衡。

实验结果表明,FCAPE是一种简单有效的多人姿态估计框架。 代码可在以下网址获得:https://git.io/adelaidet

介绍

多人关键点检测的关键挑战是如何获取实例级关键点。换句话说,检测到的关键点需要根据它们所属的实例进行分组。

​ 目前,主流方法通过自下而上或自上而下的方法来应对这一挑战。

​ 自顶向下的方法 [8,27] 首先使用人物目标检测器检测每个单独的实例。这些检测到的框形成ROI(候选框),并且ROI操作用于从特征图或原始图像中裁剪人员。接下来,在每个人的ROI内单独地执行单人关键点检测。基于ROI的管道可能会带来一些缺点。首先,roi是单独转发的,因此卷积计算不能共享。结果,这些方法的推理时间在很大程度上取决于图像中实例的数量,这阻碍了这些方法的实时性,如我们的实验所示。其次,自顶向下的方法通常不是端到端训练的,因为roi通常是从孤立的人检测器 (例如更快的r-cnn) 获得的 [25]。而且,使用目标检测的方式还会导致明显更长的端到端推理时间 (即,从原始图像到最终关键点结果)。第三,这些基于ROI的方法还依赖于ROI的本地化质量。如果检测器产生不准确的框,这可能会损害关键点检测性能。

​ 另一方面,自下而上的方法 [2,20] 不依赖于roi。他们首先检测与实例无关的关键点,然后采用分组后处理来获得每个实例的全身结果。组装关键点的过程通常是启发式的,并且可能涉及许多超参数,使得这些方法变得复杂。

​ 在这项工作中,我们提出了一种新的关键点检测解决方案。 我们的解决方案简单而有效,并且能够避免之前基于 ROI 或基于分组的方法的缺点。 我们解决方案的想法是动态生成关键点头的卷积核。 更具体地说,对于每个实例,我们动态生成一个关键点头部。 生成的关键点头以完全卷积网络的方式应用于卷积特征图。

因此,我们能够仅获得特定目标实例的关键点检测结果,如图 3 所示。这是因为关键点头部可以在过滤器的权重中编码实例的特征。 因此,这个关键点头可以将实例的关键点与其他实例的关键点区分开来,因此是特定于实例的卷积过滤器。 如果我们认为自顶向下方法中的 ROI 操作是使模型关注实例的操作,那么在我们的方法中,动态实例感知关键点头也是如此。 这个想法消除了对 ROI 和分组后处理的需要,从而绕过了前面提到的缺点。 此外,动态生成的关键点头部非常紧凑,只有几千个系数。 因此,它可以非常快速地进行推理,无论测试图像中有多少人,总推理时间几乎保持不变。 这对于实时应用程序特别有价值。

每个实例都有自己的关键点头部。 f θ i f_{\theta_i} fθi是第 i 个人物实例的动态生成的关键点头部。

在这里插入图片描述

  • 我们提出了一个基于动态卷积核的高效准确的人体姿态估计框架,称为FCPOSE[13]。 我们首次证明了一个无ROI和无分组的端到端可训练的人体姿态估计器可以获得更好的精度和速度,与最近的自顶向下和自底向上的方法相比较。

  • ROI的消除使得FCAPE可以仅通过卷积操作来实现,从而使得在移动设备上的部署更加容易。 此外,不使用ROIS也避免了关键点预测被不准确的检测框截断,如在基于ROI的框架中,如掩码R-CNN[8](例如,参见图5)。

  • FCAPE的核心是在关键点头上使用动态滤波器。 动态生成的过滤器显示了强大的表示能力。 因此,我们只需要少量这样的卷积就可以获得最佳结果。 因此,无论图像中实例的数量如何,关键点头都非常紧凑,因此整个推理时间很快,并且几乎是恒定的。 我们还提出了一种具有竞争性能的实时端到端关键点检测模型。 速度与精度的权衡在图中表现出来 2. 我们相信FCAPE可以成为关键点检测的一个新的强基线,特别是在实时领域

方法

FCNs全卷积网络可用来做语义级别的图像分割以及对象检测,由encoder(vgg,resnet,预训练模型提取特征),decoder(实现每个像素的分割或预测)组成

由于普通的FCN无法生成实例感知的关键点,这对多人关键点检测提出了关键挑战。

一些方法使用 ROI 来裁剪有关的人,然后将多人关键点检测转变为单人关键点检测。

G ∈ R h × w × c G ∈ R^{h×w×c} GRh×w×c 为 ROI 的特征, f θ f_{\theta} fθ 为关键点头,其中 θ θ θ 是可学习的网络权重。预测的热图 H ∈ R h × w × K H ∈ R^{h×w×K} HRh×w×K
H = f θ ( G ) H=f_\theta(G) H=fθ(G)
K 为 COCO数据集上的17 个关键点数。然后,可以通过在热图的每个通道上找到峰值来获得最终的关键点坐标。 ROI操作是使模型关注实例的核心操作。在这项工作中,我们建议使用实例感知关键点头来使模型关注一个实例。对于每个实例 i,将生成一组新的关键点头部权重$ θ_i$。权重为 $ θ_i$ 的关键点头部应用于全图像特征图。

形式上,让 H ∈ R H × W × 32 H ∈ R^{H×W×32} HRH×W×32 是一个层级的特征图,它是通过应用几个卷积层生成的。层到 FPN 输出特征图 [16] 并且在 FPN 中具有相同的 P3 分辨率,如图 4 所示。对于实例 i,预测的热图 H ∈ R H × W × K H ∈ R^{H×W×K} HRH×W×K
H = f θ ( F ) H=f_\theta(F) H=fθ(F)
F是没有任何裁剪操作的全图像特征映射。滤波器的权值 θ i \theta_i θi取决于实例 i i i的特征,从而可以对目标实例的特征进行编码。

在这里插入图片描述

我们使用FCOS[29]为每个实例生成动态权值θ。 Fcos中,特征映射上的每个位置都与一个实例相关联。

如果位置与实例 i i i相关联,控制器可以生成用于检测实例 i i i的关键点的权重 θ i \theta_{i} θi

本文中控制器为1×1的单层卷积核。

该层的输出个数等于关键点头部的权值个数(即θi的基数)。 本文的关键点头具有3×conv。

  • 层的通道为32
  • 内核大小为1×1
  • 其次是RELU
  • 以及一个k通道最终预测层(一个关键点一个通道)
  • 总共有2737个权重

因此,控制器的最终预测层有2737个输出通道。 值得注意的是,我们的Keypoint Head比其他自上而下的方法紧凑得多,比如掩码R-CNN有8×conv。 具有通道512和内核大小3×3以及deconv的层。

关键点头部的层。 非常紧凑的关键点头使得我们的方法在关键点头上的推理时间可以忽略不计,因此无论图像中实例的数量如何,总的推理时间几乎是恒定的,如图所示 6.

在这里插入图片描述

如前所述,FPN特征映射P3用于生成热映射,因此热映射的分辨率是输入图像的1/8分辨率。 由于关键点检测对定位精度要求很高,1/8的分辨率不足以进行关键点检测。 在以前的大多数方法中,通常使用反卷积等上采样操作来对热图进行上采样。 然而,在FCAPE中,上采样HeatMaps会带来很高的计算开销。 具体地说,在FCPOSE中,对于一幅图像,我们输出n个Heatmaps,通道k,高度h,宽度w,其中k是一个实例的关键点数,n是图像中的实例数。 这些热图将占用N×K×H×W内存空间。 如果我们将HeatMaps的采样值提高8倍,内存占用量将增加64倍。 此外,这将导致更长的计算时间。

这里,我们通过引入一个基于回归的关键点求精模块来解决这个问题。 如图所示 4、将关键点求精模块应用到FPN层P3中,这是一个单一的conv。 输出通道为2K的层(即COCO上的34)。 设 O ∈ R H × W × 2 K O∈R^{H×W×2K} ORH×W×2K为该模的输出特征映射。 O i , j = ( Δ x , Δ y ) O_{i,j}=(Δx,Δy) Oi,j=(ΔxΔy)预测从位置 ( i , j ) (i,j) i,j到最近的地真值关键点的偏移量。 因此,对于一个关键点,如果它的热图峰值在 ( i , j ) (i,j) i,j处,则关键点的最终坐标将是 ( i + ® x , j + ® y ) (i+️x,j+️y) (i+Rx,j+Ry)。 实验表明,该精化模块可以在计算开销可以忽略不计的情况下,大大提高关键点检测性能。 注意,在我们的实验中,所有实例共享相同的关键点细化模块。 虽然可以动态生成模块并使每个实例都有自己的一个,但我们经验发现使用一个共享的关键点细化模块就足够了。

还有一些自上而下的方法,如HRNET[27],它们首先使用一个孤立的对象检测器来检测人框,然后在原始图像上裁剪ROI。 这些ROI的特征由另一个网络分别计算。 这些方法通常具有很高的性能,但如果我们测量端到端的推理时间(即从输入图像到关键点结果),则非常慢。 如表6所示,与自顶向下的方法HRNET相比,FCAPE可以显著地将每幅图像的端到端推理时间从337ms减少到68ms(RESNET-50)或488ms减少到93ms(RESNET-101),使得关键点检测接近实时。 此外,由于这些基于ROI的方法使用相对繁琐的网络来分别获得每个ROI的热图,因此它们的总推断时间严重依赖于实例的数量。 例如,如图所示 HRNET-W48模型的推理时间随实例数的增加而显著增加。 与之形成鲜明对比的是,FCAPE保持几乎恒定的推理时间。 FCAPE的这一优点对于实时应用具有重要意义。

训练目标与损失函数

因此,对于每一批,我们最多只采样m=50个正位置来生成过滤器。

M个位置在所有地面真值实例上平均。 对于每个实例,选择置信度高的正位置,在关键点损失计算中丢弃其余正位置。

FCAPE的损失函数由三部分组成。

第一部分是FCOS的原始损失,保持原状。 我们请读者参考FCOS[29]的论文了解详细情况。

第二部分是热图学习的损失函数。 如前所述,一个HeatMap只预测一个关键点。 因此,我们可以使用一个热训练目标作为热图,并使用Softmax的交叉熵(CE)损失作为损失函数。 具体地说,假设一个地面真值关键点的坐标是(x*,y*),并且HeatMap的分辨率是输入图像的1/8分辨率。 然后,对于这个关键点,其地面真值热图上的位置(x-4-8,y-4-8)将被设置为1,其他位置将为0。 设H_i∈RH×W为关键点的地真热图。 损失函数可表述为
L heatmap  = C E ( softmax ⁡ ( H i ) , H ∗ ) L_{\text {heatmap }}=\mathrm{CE}\left(\operatorname{softmax}\left(H_i\right), H^*\right) Lheatmap =CE(softmax(Hi),H)
其中Hi∈Rh×w是由动态关键点头预测的该关键点的热图。 在这里,将HI和H*I都平化为一个向量,并将交叉熵和Softmax应用于每个向量。 最后,对于关键点偏移距回归,采用均方误差(MSE)计算预测偏移距与实测偏移距之间的差值。 总损失函数是这些损失函数的总和。 形式上,我们有
L overall  = L f cos ⁡ + α L heatmap  + β L reg  L_{\text {overall }}=L_{f \cos }+\alpha L_{\text {heatmap }}+\beta L_{\text {reg }} Loverall =Lfcos+αLheatmap +βLreg 
其中α和β分别为损失权重。

推理

给定输入图像I,FCPOSE首先通过网络转发图像并获得网络输出。 在FCOS之后,分类得分大于0.05的位置被选为阳性位置。

一个正位置对应于一个预测实例。 接下来,对于每个位置,我们计算生成的过滤器,并将过滤器应用于特征映射F(如图4所示),以获得与位置相关联的实例的KeyPoint HeatMaps。 对于每个热图,我们找到其峰值的坐标。 然后,利用关键点回归模块的偏移量对峰值坐标进行细化,得到关键点坐标。 最后,采用非最大值抑制(NMS)方法去除重复项。

实验

我们在COCO 2017 Keypoint Detection Benchmark[17]上训练和评估FCPE,该基准有57K图像用于训练,5K图像用于验证,20K图像用于测试。 该数据集包括超过250k个Person实例,每个人有17个注释的关键点。 采用基于对象关键点相似度(OKS)的平均精度(AP)作为评价指标。 消融研究在VAL2017分裂上进行评估。 我们的主要结果是在测试-开发拆分上报告的。
在这里插入图片描述

实施细节

我们使用Detecton2[30]实现FCAPE。

模型采用8 GPU以上的随机梯度下降(SGD)训练。

除非指定,所有实验都使用以下训练细节。 在FCOS[29]之后,有FPNS[16] 的Resnet-50[10]被用作特征提取器。

在ImageNet上预先训练的权重用于初始化主干resnet-50。 新添加的层用[9]中的方法初始化。 学习速率初始设置为0.01,在1×训练计划(即90K迭代)的迭代60K和80K时,或在3×训练计划(即270K迭代)的迭代180K和240K时,学习速率降低10倍。 重量衰减、批量大小和动量分别设置为0.0001、16和0.9。 对于数据增强,我们应用随机裁剪[0.4,1.0](相对范围)、随机翻转和随机调整大小(图像的短尺寸从[320,800]采样)。

对于推断,我们只使用图像的单尺度。 图像的短边的大小调整为800,长边的大小调整为小于或等于1333。 所有的推理时间都是在一个1080 ti的GPU上测量的。

结论

我们提出了一种新的关键点检测框架FCAPE。 它可以消除自顶向下方法中的ROI操作和自底向上方法中的分组后处理,以全卷积的方式解决关键点检测问题。 FCAPE的核心思想是用动态关键点头代替ROIS使模型关注实例。 大量的实验表明,FCAPE提供了一个简单、快速、有效的关键点检测框架。 此外,我们还提出了一种实时FCAPE,它可以在一个1080Ti的GPU上以大约42 fps的速度执行,在COCO数据集上具有64.8%的APKP,大大优于以前的强实时基线CMU-POSE[2]。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值