论文笔记:OpenPose(Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields)

1、主要成果

提出将人体部位与个体联系起来的非参数化方法— P A F s PAFs PAFs,实现自底向上的实时多人姿态估计,在性能和效率上均实现当时最优的结果。


2、算法细节

2.1、算法原理

首先预测一组图像中人体部位位置的 2 D 2D 2D 置信图 S S S,以及一组表示部位相似性的 2 D 2D 2D 矢量场 L L L,它们表示部位之间的关联程度。集合 S = ( S 1 , S 2 , … , S J ) S=\left(\mathbf{S}_{1}, \mathbf{S}_{2}, \ldots, \mathbf{S}_{J}\right) S=(S1,S2,,SJ) S j ∈ R w × h \mathbf{S}_{j} \in \mathbb{R}^{w \times h} SjRw×h j ∈ { 1 … J } j \in\{1 \ldots J\} j{1J}。集合 L = ( L 1 , L 2 , … , L C ) \mathbf{L}=\left(\mathbf{L}_{1}, \mathbf{L}_{2}, \ldots, \mathbf{L}_{C}\right) L=(L1,L2,,LC) C C C 个矢量场,每个肢体一个。其中, L c ∈ R w × h × 2 \mathbf{L}_{c} \in \mathbb{R}^{w \times h \times 2} LcRw×h×2 c ∈ { 1 … C } c \in\{1 \ldots C\} c{1C} L c \mathbf{L}_c Lc 中的每个图像位置编码一个 2 D 2D 2D 向量。最后,通过贪婪推理解析置信度图和亲和场,以输出图像中所有人的 2 D 2D 2D 关键点。
在这里插入图片描述


2.2、实现细节

2.2.1、网络结构

在这里插入图片描述

  1. 使用 V G G − 19 VGG-19 VGG19 10 10 10 层提取图像特征 F \mathbf{F} F
  2. F \mathbf{F} F 输入到 s t a g e − 1 stage-1 stage1 置信图分支网络和亲和场分支网络,分别输出 S 1 = ρ 1 ( F ) \mathbf{S}^{1}=\rho^{1}(\mathbf{F}) S1=ρ1(F) L 1 = ϕ 1 ( F ) \mathbf{L}^{1}=\phi^{1}(\mathbf{F}) L1=ϕ1(F)
  3. 重复 s t a g e − 1 stage-1 stage1,输入为前一阶段的 S t \mathbf{S^t} St L t \mathbf{L^t} Lt 以及图像特征 F \mathbf{F} F C o n c a t e n a t e Concatenate Concatenate。即, S t = ρ t ( F , S t − 1 , L t − 1 ) , ∀ t ≥ 2 L t = ϕ t ( F , S t − 1 , L t − 1 ) , ∀ t ≥ 2 \begin{aligned} \mathbf{S}^{t} &=\rho^{t}\left(\mathbf{F}, \mathbf{S}^{t-1}, \mathbf{L}^{t-1}\right), \forall t \geq 2 \\ \mathbf{L}^{t} &=\phi^{t}\left(\mathbf{F}, \mathbf{S}^{t-1}, \mathbf{L}^{t-1}\right), \forall t \geq 2 \end{aligned} StLt=ρt(F,St1,Lt1),t2=ϕt(F,St1,Lt1),t2

2.2.2、损失函数

为每一阶段的两个分支网络分别设计损失函数,对损失进行空间加权,来解决一些数据集不能完全标记所有人的问题。
f S t = ∑ j = 1 J ∑ p W ( p ) ⋅ ∥ S j t ( p ) − S j ∗ ( p ) ∥ 2 2 f L t = ∑ c = 1 C ∑ p W ( p ) ⋅ ∥ L c t ( p ) − L c ∗ ( p ) ∥ 2 2 \begin{aligned} f_{\mathrm{S}}^{t} &=\sum_{j=1}^{J} \sum_{\mathrm{p}} \mathbf{W}(\mathbf{p}) \cdot\left\|\mathbf{S}_{j}^{t}(\mathbf{p})-\mathbf{S}_{j}^{*}(\mathbf{p})\right\|_{2}^{2} \\ f_{\mathrm{L}}^{t} &=\sum_{c=1}^{C} \sum_{\mathbf{p}} \mathbf{W}(\mathbf{p}) \cdot\left\|\mathbf{L}_{c}^{t}(\mathbf{p})-\mathbf{L}_{c}^{*}(\mathbf{p})\right\|_{2}^{2} \end{aligned} fStfLt=j=1JpW(p)Sjt(p)Sj(p)22=c=1CpW(p)Lct(p)Lc(p)22
其中, W \mathbf{W} W 为二进制 m a s k mask mask,当图像位置 p p p 没有注释时, W ( p ) = 0 \mathbf{W(p)=0} W(p)=0,避免训练时惩罚 T P \mathbf{TP} TP 预测。每个阶段的中间监督通过定期补充梯度来解决梯度消失问题。总损失为:
f = ∑ t = 1 T ( f S t + f L t ) f=\sum_{t=1}^{T}\left(f_{\mathrm{S}}^{t}+f_{\mathrm{L}}^{t}\right) f=t=1T(fSt+fLt)


2.2.3、GT 置信图生成

G T GT GT 置信图根据标注的人体关键点位置生成,以多人为例,第 k k k 个人的第 j j j 个可见部位的置信图表示为 S j , k ∗ \mathbf{S}_{j, k}^{*} Sj,k
S j , k ∗ ( p ) = exp ⁡ ( − ∥ p − x j , k ∥ 2 2 σ 2 ) \mathbf{S}_{j, k}^{*}(\mathbf{p})=\exp \left(-\frac{\left\|\mathbf{p}-\mathbf{x}_{j, k}\right\|_{2}^{2}}{\sigma^{2}}\right) Sj,k(p)=exp(σ2pxj,k22)
其中, p ∈ R 2 \mathbf{p} \in \mathbb{R}^{2} pR2 x j , k \mathbf{x}_{j, k} xj,k 为关键点标注位置。则,
S j ∗ ( p ) = max ⁡ k S j , k ∗ ( p ) \mathbf{S}_{j}^{*}(\mathbf{p})=\max _{k} \mathbf{S}_{j, k}^{*}(\mathbf{p}) Sj(p)=kmaxSj,k(p)


2.2.4、PAFs 生成

在这里插入图片描述
在这里插入图片描述
L c , k ∗ ( p ) = { v  if  p  on limb  c , k 0  otherwise  \mathbf{L}_{c, k}^{*}(\mathbf{p})=\left\{\begin{array}{ll}{\mathbf{v}} & {\text { if } \mathbf{p} \text { on limb } c, k} \\ {0} & {\text { otherwise }}\end{array}\right. Lc,k(p)={v0 if p on limb c,k otherwise 
当点 p p p k k k 的肢体 c c c 上时, L c , k ∗ ( p ) \mathbf{L}_{c, k}^{*}(\mathbf{p}) Lc,k(p) 等于从关键点 j 1 j_1 j1 指向关键点 j 2 j_2 j2 的单位向量。否则为零向量。肢体上的点必须满足以下条件:
0 ≤ v ⋅ ( p − x j 1 , k ) ≤ l c , k  and  ∣ v ⊥ ⋅ ( p − x j 1 , k ) ∣ ≤ σ l 0 \leq \mathbf{v} \cdot\left(\mathbf{p}-\mathbf{x}_{j_{1}, k}\right) \leq l_{c, k} \text { and }\left|\mathbf{v}_{\perp} \cdot\left(\mathbf{p}-\mathbf{x}_{j_{1}, k}\right)\right| \leq \sigma_{l} 0v(pxj1,k)lc,k and v(pxj1,k)σl
其中肢体长度: l c , k = ∥ x j 2 , k − x j 1 , k ∥ 2 l_{c, k}=\left\|\mathbf{x}_{j_{2}, k}-\mathbf{x}_{j_{1}, k}\right\|_{2} lc,k=xj2,kxj1,k2
肢体宽度: σ l \sigma_{l} σl 为像素距离
最终 P A F s PAFs PAFs 为图像中所有人的平均亲和场:
L c ∗ ( p ) = 1 n c ( p ) ∑ k L c , k ∗ ( p ) \mathbf{L}_{c}^{*}(\mathbf{p})=\frac{1}{n_{c}(\mathbf{p})} \sum_{k} \mathbf{L}_{c, k}^{*}(\mathbf{p}) Lc(p)=nc(p)1kLc,k(p)
其中, n c ( p ) n_c(\mathbf{p}) nc(p) 为点 p \mathbf{p} p 处所有人产生的非零向量个数。

测试阶段,通过沿着连接候选部位位置的线段,计算相应 P A F PAF PAF 上的线积分来测量候选部位检测之间的关联。
E = ∫ u = 0 u = 1 L c ( p ( u ) ) ⋅ d j 2 − d j 1 ∥ d j 2 − d j 1 ∥ 2 d u E=\int_{u=0}^{u=1} \mathbf{L}_{c}(\mathbf{p}(u)) \cdot \frac{\mathbf{d}_{j_{2}}-\mathbf{d}_{j_{1}}}{\left\|\mathbf{d}_{j_{2}}-\mathbf{d}_{j_{1}}\right\|_{2}} d u E=u=0u=1Lc(p(u))dj2dj12dj2dj1du
p ( u ) \mathbf{p}(u) p(u) 为两个人体部位 d j 1 d_{j1} dj1 d j 2 d_{j2} dj2 的位置插值。
p ( u ) = ( 1 − u ) d j 1 + u d j 2 \mathbf{p}(u)=(1-u) \mathbf{d}_{j_{1}}+u \mathbf{d}_{j_{2}} p(u)=(1u)dj1+udj2
实际中通过对 u u u 均匀采样,然后求和来近似积分


2.2.5、PAFs 多人分析

通过对检测置信度图执行非最大值抑制,以获得一组离散的部位候选位置。每个部位可能生成多个候选,经过组合生成大量的候选肢体。通过在 P A F PAF PAF 上计算线积分来对每个候选肢体打分。找到最优解的问题对应于一个已知为 N P NP NP 难的 K K K 维匹配问题。
在这里插入图片描述
在这篇文章中,作者提出了一种贪婪的简化方法,能够始终产生高质量的匹配。推测原因是成对关联分数隐含地编码了全局上下文,这是由于 P A F PAF PAF 网络的感受野很大。
D J = { d j m : j ∈ { 1 … J } , m ∈ { 1 … N j } } \mathcal{D}_{\mathcal{J}}=\left\{\mathbf{d}_{j}^{m} :\right.j \in\{1 \ldots J\}, m \in\left\{1 \ldots N_{j}\right\} \} DJ={djm:j{1J},m{1Nj}}
d j m \mathbf{d}_{j}^{m} djm 表示部位 j j j 的第 m m m 个候选。接下来需要确定部位对构成的肢体。 z j 1 j 2 m n ∈ { 0 , 1 } z_{j_{1} j_{2}}^{m n} \in\{0,1\} zj1j2mn{0,1}表示 d j 1 m \mathbf{d}_{j1}^{m} dj1m d j 2 n \mathbf{d}_{j2}^{n} dj2n 是否相连。目标是找到最优分配方案:
Z = { z j 1 j 2 m n : j 1 , j 2 ∈ { 1 … J } , m ∈ { 1 … N j 1 } , n ∈ { 1 … N j 2 } } \mathcal{Z}=\left\{z_{j_{1} j_{2}}^{m n} :\right.j_{1}, j_{2} \in\{1 \ldots J\}, m \in\left\{1 \ldots N_{j_{1}}\right\}, n \in\left\{1 \ldots N_{j_{2}}\right\} \} Z={zj1j2mn:j1,j2{1J},m{1Nj1},n{1Nj2}}
寻找最佳关联简化为最大权重二部图匹配问题。该问题中,结点为 D j 1 D_{j1} Dj1 D j 2 D_{j2} Dj2,边是两组结点间所有可能的连接。每条边的权重为之前计算的线积分 E E E二部图中的匹配是以没有两条边共享一个结点的方式选择的边的子集优化的目标是为选定的边找到最大权重的匹配
max ⁡ Z c E c = max ⁡ Z c ∑ m ∈ D j 1 ∑ n ∈ D j 2 E m n ⋅ z j 1 j 2 m n \max _{\mathcal{Z}_{c}} E_{c}=\max _{\mathcal{Z}_{c}} \sum_{m \in \mathcal{D}_{j_{1}}} \sum_{n \in \mathcal{D}_{j_{2}}} E_{m n} \cdot z_{j_{1} j_{2}}^{m n} ZcmaxEc=ZcmaxmDj1nDj2Emnzj1j2mn
 s.t.  ∀ m ∈ D j 1 , ∑ n ∈ D j 2 z j 1 j 2 m n ≤ 1 ∀ n ∈ D j 2 , ∑ m ∈ D j 1 z j 1 j 2 m n ≤ 1 \begin{aligned} {\text { s.t. } \quad \forall m \in \mathcal{D}_{j_{1}}, \sum_{n \in \mathcal{D}_{j_{2}}} z_{j_{1} j_{2}}^{m n} \leq 1} \\ {\forall n \in \mathcal{D}_{j_{2}}, \sum_{m \in \mathcal{D}_{j_{1}}} z_{j_{1} j_{2}}^{m n} \leq 1} \end{aligned}  s.t. mDj1,nDj2zj1j2mn1nDj2,mDj1zj1j2mn1
通过 H u n g a r i a n Hungarian Hungarian 算法获取最优匹配。

当涉及到寻找多人的全身姿态时,确定 Z Z Z 是一个 K K K 维匹配问题。这个问题是 N P NP NP 难并且有许多松弛存在。作者为优化添加两个松弛。

  1. 选择最小数量的边来获得人体姿态的生成树骨架,而不是使用完整的图,如图 6 c 6c 6c 所示。
  2. 进一步将匹配问题分解成一组二部匹配子问题,并独立地确定相邻树节点中的匹配,如图 6 d 6d 6d 所示。

结果表明最小贪婪推理很好地近似了全局解,只需要计算成本的一小部分。原因是相邻树节点之间的关系是由 P A F s PAFs PAFs 显式建模的,但在内部,不相邻树节点之间的关系是由 C N N CNN CNN 隐式建模的。这一特性的出现是因为 C N N CNN CNN 有一个大的感受野,并且来自非相邻树节点的 P A F s PAFs PAFs 也影响预测的 P A F PAF PAF 。因此,优化可以被简化为:
max ⁡ Z E = ∑ c = 1 C max ⁡ Z c E c \max _{\mathcal{Z}} E=\sum_{c=1}^{C} \max _{\mathcal{Z}_{c}} E_{c} ZmaxE=c=1CZcmaxEc
因此,可以独立地获得每种肢体类型的肢体连接候选对于所有肢体连接候选,可以将共享相同部位检测候选的连接,组合成多人的全身姿势在树结构上的优化方案比在全连接图上的优化快几个数量级


2.2.6、结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、总结

主要贡献—— P A F s PAFs PAFs:

  1. 部位置信图生成对图像中所有人的同一类部位的高斯分布置信图取上限得到
  2. 亲和场生成对图像中所有人的同一类肢体的亲和场求平均得到
  3. 预测结果生成
    1. 将所有部位全连接图简化为树状图(类似传统方法的姿态树)
    2. 树形图也嫌麻烦,再拆分为二部图优化,每次解决一类肢体的生成问题
    3. 通过匈牙利算法求解,获得最大权重匹配的节点分配策略
  4. 边权重的确定沿着部位位置连接成的线段,计算 P A F PAF PAF 上的线积分即为权重

4、感想

主要是贡献— P A F s PAFs PAFs,论文中涉及的具体的深度学习的实现细节不多,感觉这一块有一些提升的空间,可以尝试结合深度学习网络设计、损失函数设计方面的一些新的方法。

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 实时多人二维姿态估计使用的是部件关联场技术。该技术利用深度学习网络对图像中的人体关键点进行检测和定位,并通过学习人体部位之间的关联性来提高姿态估计的准确性。在实时性方面,该技术利用高效的网络结构和并行计算技术,能够在处理多人图像时保持较高的处理速度和较低的延迟。 ### 回答2: 实时多人2D姿态估计是指在照片或视频中同时检测多个人的姿态并实时反馈结果。这个任务主要是依赖计算机视觉领域的人体关键点检测技术。而Part Affinity Fields(PAF)是现在最常用的一种检测方法。 PAF可以理解为是人体姿态中的“骨架”,它在这里指的是需要将骨骼节点间的关系一同考虑进去来提高精度的设计。每个PAF都对应着一对关联的节点,例如手臂这一关节对应的PAF就是肩膀和手腕两个关键点中间的向量场。PAF能够将关键点之间的联系编码为一个向量场,并将它们的图像位置和方向作为通道特征,这样就可以通过深度卷积网络获得节点的连接信息。 对于多人2D姿态估计任务,PAF可以自动推断出人体的椭圆形状,使得不同人的节点互相不干扰,能够高效地分离不同人体之间的关键点信息,保证检测精度。 总体而言,实时多人2D姿态估计技术是计算机视觉研究领域中一个非常重要的方向。通过Part Affinity Fields技术,可以实现对人体姿态的快速准确检测和分析,并具有广泛的应用前景,比如拍摄跳舞类视频、体育比赛等。未来,该领域还将会不断提高研究和开发技术,提高其在实际场景中的使用效果,为人们的生产和生活提供更多更好的便利。 ### 回答3: 在计算机视觉领域,人体姿态估计一直是一个十分重要的研究方向。现在,研究者们正在致力于开发实时多人二维姿态估计方法,本文将介绍一种方法——part affinity fields。 Part affinity fields是指身体部位之间存在的空间关系矩阵。多人姿态估计就是先将图像中的每一个像素与人体相关的身体部件联系起来,然后再利用network output将这些点连接起来形成人体姿态。part affinity fields的基本思想是采用CNN对每一个像素做预测,以定位人体骨架上的每一个连接点。 主要步骤: 1.生成部件置信图:对于输入的图像,通过CNN估计每个像素是否为其中每个身体部位的一部分,这个图叫做部件置信图(Part Confidence Maps),可以通过训练数据集来检测出身体部位的位置。 2.生成连接部件映射图:对于预测出来的部件置信图,我们可以通过预测到的部件之间的关系来学习生成连接映射图(Part Affinity Fields),即学习两个不同身体部件之间的关系(connectivity),这个关系是一个形状为“c×2×h×w”的4维张量。在测试阶段,对于输入图像中的每个像素,都会有其对应到一个连接部件映射图的位置。 3.生成姿态结果:最后,我们将生成的部件置信图和连接部件映射图进行联合,把已确定的部件通过连接映射图装配起来并组合成人体的姿态结果。 这种方法最大的好处就是实现实时多人姿态估计,不需要预设一个特定数量的人数。同时,在处理不同人的关键点时,以前的方法通常是对每个人都单独进行估计,而这个方法则对所有人的关键点一起进行估计,能够更好地处理人际交互。 总之,通过深度学习和部件置信图与连接映射图等技术手段的利用,Part Affinity Fields在解决实时多人二维姿态估计时具有很大的潜力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值