keras_Realtime_Multi-Person_Pose_Estimation 学习

论文地址:https://arxiv.org/abs/1611.08050
Github主页:https://github.com/ZheC/Realtime_Multi-Person_Pose_Estimation

网络架构

文章代码总共分为两条线

第一条线:求所有的关键点(头,肩膀,手肘,手腕 ... )

1)一共两个cnn,第一个cnn的输入是原图,输出是热图(每一个热图包含某一种关键点)

2)第二个cnn输入是上一个cnn得到的所有热图,和原图。输出还是热图。循环直至收敛
,共17个关键点,分别是:

Nose = 0            # 鼻子
Neck = 1            # 脖子
RShoulder = 2       # 右肩
RElbow = 3          # 右肘
RWrist = 4          # 右手腕
LShoulder = 5       # 左肩
LElbow = 6          # 左肘
LWrist = 7          # 左手腕
RHip = 8            # 右臀
RKnee = 9           # 右膝盖
RAnkle = 10         # 右脚踝
LHip = 11           # 左臀
LKnee = 12          # 左膝盖
LAnkle = 13         # 左脚踝
REye = 14           # 右眼
LEye = 15           # 左眼
REar = 16           # 右耳
LEar = 17           # 左耳
Background = 18

第二条线:求所有关节区域

1)一共两个cnn,第一个cnn的输入是原图,输出是热图(每一个热图包含某一种连接(可以简单理解为骨头)区域),其实它们是一整片区域,不过每个地方的概率大小不同。

2)第二个cnn输入是上一个cnn得到的所有热图,和原图。输出还是热图。循环直至收敛

根据前边两个阶段得到的两个热图,计算哪两个点连接比较好。这就要根据关节区域和点的位置来计算每个像素的小法向。生成一个法向图。

根据前边生成的法向图,第一条线中最后得到的各个点的连线,确定哪两个点的连线的概率最大,找到所有这样的线。找到一个线就可以开始用最小生成树算法来找下一条线,最终得到一个人的骨架,然后得到所有的骨架,如果有连接不完整的,那就残缺的存在就好了。

参考:https://blog.csdn.net/sun7_she/article/details/76259100

你可能感兴趣的:(keras_Realtime_Multi-Person_Pose_Estimation 学习)