octiapp / KerasPersonLab

Keras-tensorflow implementation of PersonLab (https://arxiv.org/abs/1803.08225)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

If some keypoints of a single body are not detected, multiple skeletons for a single person will be generated?

yangsenius opened this issue · comments

def group_skeletons(keypoints, mid_offsets):

From my understanding,

this_skel[kp['id'], :2] = kp['xy']
this_skel[kp['id'], 2] = kp['conf']
path = iterative_bfs(skeleton_graph, kp['id'])[1:]
for edge in path:
      if this_skel[edge[0],2] == 0:
           continue

the order of the path will be uniquely determined by the start keypoint due to the tree-structure of person. So, if some keypoints in the path are not detected, multiple skeletons will be generated for a single body because of this snippet:

if this_skel[edge[0],2] == 0:
           continue

for example, let's assume that the start (the highest score) keypoint is Lwrist and all keypoints except L_elbow are detected for a single person, then this for edge in path: loop will always goto continue and this_skeleton will only contain the Lwrist keypoint location.

I don't know if I understand it correctly?

That's correct