OpenPose是一种基于深度学习的人体姿态估计与关键点检测框架,它在动作识别领域有着重要的应用。与传统的多人人体姿态估计方法相比,OpenPose采用了自下而上的策略(Down-top Approach),这与传统的自上而下(Top-down Approach)方法不同,后者依赖于精确的人体检测结果,且算法速度随人头数量增加而线性增长,效率较低。
OpenPose的网络结构主要包括以下几个核心组件:
1. Confidence Maps for Part Detection:这部分通过高斯函数处理真实标注,用于检测人体各部分的置信度,有助于定位关键点。然而,OpenPose的一个局限性在于仅考虑了肢体位置信息,忽略了方向或旋转信息,这是通过Part Affinity Fields来弥补的。
2. Part Affinity Field (PAF) and Midpoint Score Map:PAF用来表示肢体之间的关联,如关节到身体其他部分的连接,而Midpoint Score Map则用于处理肢体之间的关系。OpenPose通过集成PAF的得分,形成一个权重,评估连接的可靠性。然而,PAF并非手工标注,而是通过预测关键点后自动计算得出。
3. Multi-Person Parsing using PAFs:OpenPose通过选择最少的边构建人体姿态的生成树,而不是使用完整图形,这样可以减少计算复杂度。它将匹配问题分解为一系列二分图匹配的小问题,逐个确定相邻关键点之间的连接。
4. VGG基础网络的输入输出:OpenPose基于VGG12网络进行特征提取,前10层(实际代码中使用12层)的输出被用于后续处理。输出维度为128,这个基础特征对于后续的PAF和部位热图生成至关重要。
5. 后续Stage的分支结构:论文将网络分为几个阶段,每个阶段有特定的输入输出。第一阶段输出PAF和部位热图,维度分别为38和19;后面的阶段可能具有更深的分支结构,进一步细化特征处理。
6. 最后的输出维度:OpenPose的输出通常包括关键点位置、PAF以及最终的人体分割,这些信息用于生成精确的人体姿态估计。
OpenPose通过其独特的自下而上的设计和多分支网络结构,实现了高效且精确的人体姿态估计和关键点检测,尤其是在多人场景中具有优势。同时,它的局限性也促使后续研究者继续探索如何更好地处理方向信息和优化匹配算法。