0

From the MPII Dataset Download page we can see that keypoints have a visibility flag called is_visible. This flag indicates if the joint is visible (ocluded) or not. It can take values 0 (not visible) or 1 (visible). However, while exploring the dataset I have found two other scenarios for the state of a keypoint:

  • Keypoint not in the list: It seems that this means the keypoint is not in the image (not ocluded, but outside of the image).

  • Not present: the is_visible flag is just not there, but just an empty array. If I print the point object's __dict__ attribute I get:

    {'_fieldnames': ['id', 'x', 'y', 'is_visible'],
     'id': array([[8]], dtype=uint8),
     'x': array([[682]], dtype=uint16),
     'y': array([[256]], dtype=uint16),
     'is_visible': array([], shape=(0, 0), dtype=uint8)}

My question is: Can I safely assume that a not present is_visible flag means the same as a False Flag?

cduguet
  • 442
  • 3
  • 21

1 Answers1

1

Well, it seems like empty is_visible flags are refering to visible, head points instead. I've plotted here these points in green, while visible and not visible are in red and black, respectively. I don't know the reason behind it though.

enter image description here enter image description here enter image description here

cduguet
  • 442
  • 3
  • 21
  • this is very useful. so to sum it up, if the joint is missing from the joint list, it's invisible. if is_visible is empty or 1, then it's visible. if it's 0, then it's just occluded. – Ethan Yanjia Li Apr 07 '20 at 00:06