本文主要是介绍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
这篇关于Openpose 学习总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!