openpose实时多人2D姿态估计
openpose实时多人2D姿态估计源码
AI识人的五个层次:
- 有没有人? ——object detection(YOLO SSD FASTER-RCNN)
- 人在哪里?这里写链接内容
- 这个人是谁
- *处于什么状态
- 当前在做什么
什么是人体姿态估计?
通过将人体的关节(颈部,肩膀,肘部等)联系起来,而估计人体姿态。
通过对人体关键点在三维空间相对位置的计算,观察一段时间人体关键点的位置变化,可以更加准确的检测姿态,估计目标未来时刻姿态,比如判断一个人是否在打电话等。
openpose的原理
openpose是基于卷积神经网络和监督学习并以caffe为框架携程的开源库,可以实现人的面部表情、躯干和四肢甚至手指的跟踪,不仅适用于单人也适用于多人,同时具有较好的鲁棒性。其理论基础来自Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ,CVPR 2017的一篇论文,作者是来自CMU感知计算实验室的曹哲。
输入一张图片,经过一个backbone(比如vgg,resnet,mobilenet),再经过6个stage,每个stage有两个branch,一个用来检测heatmap,一个用来检测vectmap。有了heatmap和vectmap就可以知道图片中所有关键点,再通过PAFs把点对应到每个人身上。
主要流程
- 输入一幅图像,经过卷积网络提取特征,得到一组特征图,然后分成两个支路,分别使用CNN提取part confidence maps(图b)和part affinity fields(图c);
- 得到这两个信息后,我们使用图论中的bipartite matching(偶匹配)求出part association(图d),将同一个人的关节点连接起来,由于PAF自身的矢量性,使得生成的偶匹配很正确,最终合并为一个人的整体框架(图e)。
-
最后基于PAFs求multi-person parsing —把multi-person parsing问题转换成graphs问题—Hungarian algorithm(匈牙利算法)匈牙利算法
未完待续。。。。
本文参考了:知乎