Openpose 学习总结

这里提出几个问题,以及整个论文流程:

Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields(Openpose)

1. https://blog.csdn.net/weixin_41441682/article/details/81357369

2. https://github.com/assmdx/ComputerVisionDoc/blob/master/openpose/openpose.md,中文论文网站,也就是翻译

3. https://blog.csdn.net/htt789/article/details/80283370,这篇文章分析很透彻,能抓住问题的核心

4. http://jacobkong.github.io/posts/3799204522/ 姿势识别论文总结

openpose的前身就是CPM算法,相比较与CPM算法识别单人,openpose可以识别多人,虽然这么说不太严格,因为CPM算法也是可以通过center map识别出多人的,但openpose提出了PAFs,更加优雅的解决了多人的问题。

 

这里简单介绍一下网络的流程,首先是输入一张原始图片,经过基础网络VGG进行简单的特征提取,得到一个Feature map,然后在stage1,经过两个分支分别预测。第一个分支为关键点的分支,这个分支也为CPM的经典方法,此外在这个分支的基础之上增加了PAF骨骼点走向的分支。之后的阶段与上面的类似,最终得到网络的输出S,L

损失函数的计算,两种loss求和。

       

损失函数为每一层循环网络的损失函数之和,接下来说一下两个步骤吧:

第一个就是关键点检测,用的CPM方法。关键点检测,通过图像中标注的2D点Xj,k计算S的groundtruth(S*),其中X (j,k)表示图片中第k个人的第 j 种关节 计算方法:Sj*符合正态分布,当像素点P接近注释点Xj,k时,达到正态曲线的峰值,则每张图像中第j种关节的S,为图像中k个人的正态分布峰值。

                 

第二个步骤为PAF的检测:

其中像素P是否落在肢体上需要满足两个条件 
 
每张图像中第c中肢体的Lc*,为k个人在位置p的向量平均值 


评估两个关键点之间的相关性:
关键点dj1,dj2和PAF已知之后,计算两个关键点连线向量和两关键点连线上各像素的PAF向量之间的点积的积分作为两个关键点之间的相关性。 
 
像素p进行采样


接下来就需要通过PAF计算出来的图的关系来得到一个匹配,最大匹配:匹配边数最多 
完美匹配:所有点都是匹配点 
最大权重匹配:所有匹配边权重之和最大 
最大匹配:匹配边数最多 
完美匹配:所有点都是匹配点 
最大权重匹配:所有匹配边权重之和最大 
求解最大匹配方法:匈牙利算法匈牙利算法
https://blog.csdn.net/nineship/article/details/82797557

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OpenPose是一种用于实时多人姿势估计的库,它可以用于计算机视觉和人机交互等领域。下面是使用OpenPose的简单教程: 1. 安装所需的软件和库:在使用OpenPose之前,您需要安装CMake(用于构建OpenPose)和OpenCV(用于图像处理)。您可以根据您的操作系统和喜好选择适当的版本。 2. 下载OpenPose:您可以从OpenPose的官方GitHub仓库中下载源代码并解压缩到本地文件夹。 3. 构建OpenPose:使用CMake构建OpenPose库。打开命令行终端并导航到您解压缩的OpenPose文件夹。然后创建一个新的文件夹(例如"build"),并在此文件夹中运行CMake命令。CMake将根据您的系统配置构建OpenPose。 4. 打开命令终端:使用命令行终端导航到OpenPose文件夹中的build目录。 5. 运行OpenPose:在命令行中,输入以下命令以运行OpenPose: ./openpose.bin --image_path <your_image_path> 替换<your_image_path>为您要检测人体姿势的图像路径。OpenPose将分析图像并在图像中标记出人体的关节位置。 6. 更多选项:OpenPose还提供其他参数和选项,以便更好地适应您的需求。您可以在运行OpenPose时使用--help命令查看所有可用的选项和其含义。 以上是使用OpenPose的基本教程。如果您想要进一步了解如何配置和使用OpenPose,可以参考OpenPose的官方文档和示例代码。 ### 回答2: OpenPose是一个开源的人体姿态估计库,它可以通过分析图像或视频来检测和估计人体的关节点和姿态。 使用OpenPose进行人体姿态估计有几个关键的步骤。首先,我们需要准备一些输入数据,可以是图像或视频。然后,我们需要配置OpenPose的参数,例如选择人体姿态的模型(正常模型或小型模型)以及设置输出结果的详细程度等。 接下来,我们可以调用OpenPose的API来进行人体姿态估计。对于每一帧图像或视频,OpenPose会检测人体的关节点(例如鼻子、眼睛、手臂等)并估计它们之间的关系,以获得一个完整的人体姿态。这些关节点的坐标信息可以用来进一步分析和应用,例如人体行为分析、动作识别等。 在使用OpenPose时,我们还可以通过设置一些参数来优化姿态估计的结果。例如,我们可以调整最小置信度阈值以过滤掉一些不可靠的关节点检测结果,或者设置人体检测的尺度参数以应对不同尺寸的输入数据。 最后,在使用OpenPose之后,我们可以根据需要进行后处理,例如绘制图像中的人体关节点和骨骼连线,或者根据关节点的位置进行进一步的计算和分析。 总的来说,OpenPose是一个强大的人体姿态估计库,可以应用于各种领域,例如人机交互、运动分析等。使用OpenPose进行人体姿态估计的主要步骤包括准备数据、配置参数、调用API进行姿态估计、优化结果以及后处理等。 ### 回答3: OpenPose是一种用于姿势估计和多人关键点检测的开源框架。下面是OpenPose的简单使用教程。 1. 安装环境:首先,我们需要安装OpenPose以及其所需的依赖项。可以直接从OpenPose的官方GitHub页面下载源代码和相关文件,并按照说明进行安装。 2. 配置参数:在运行OpenPose之前,需要配置一些参数。这些参数包括输入图像路径、模型选择、输出文件路径等。可以通过修改配置文件进行参数配置。 3. 运行OpenPose:使用命令行工具,导航到OpenPose的安装目录,并使用命令行启动OpenPose。根据你的操作系统,可能需要提供一个图像或视频作为输入。 4. 检测结果:一旦运行OpenPose,它将开始对输入图像进行姿势估计和多人关键点检测。检测完成后,结果将保存在指定的输出文件中。 5. 后续处理:根据需要,可以使用其他工具或库对OpenPose的输出结果进行后续处理。例如,可以使用OpenCV来显示和处理姿势估计结果。 OpenPose是一个功能强大且灵活的框架,可以用于各种应用,包括人体动作识别、手势识别、虚拟现实等。但是对于OpenPose的深入使用和高级功能,可能需要更多的学习和理解,例如自定义模型、数据集训练等。 总结而言,OpenPose是一个强大的开源框架,它通过姿势估计和多人关键点检测为我们提供了丰富的人体动作信息。使用OpenPose可以为人工智能和计算机视觉应用提供强大的功能和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值