mocap_dataset.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # Copyright (c) 2018-present, Facebook, Inc.
  2. # All rights reserved.
  3. #
  4. # This source code is licensed under the license found in the
  5. # LICENSE file in the root directory of this source tree.
  6. #
  7. import numpy as np
  8. from video_pose.common.skeleton import Skeleton
  9. class MocapDataset:
  10. def __init__(self, fps, skeleton):
  11. self._skeleton = skeleton
  12. self._fps = fps
  13. self._data = None # Must be filled by subclass
  14. self._cameras = None # Must be filled by subclass
  15. def remove_joints(self, joints_to_remove):
  16. kept_joints = self._skeleton.remove_joints(joints_to_remove)
  17. for subject in self._data.keys():
  18. for action in self._data[subject].keys():
  19. s = self._data[subject][action]
  20. if 'positions' in s:
  21. s['positions'] = s['positions'][:, kept_joints]
  22. def __getitem__(self, key):
  23. return self._data[key]
  24. def subjects(self):
  25. return self._data.keys()
  26. def fps(self):
  27. return self._fps
  28. def skeleton(self):
  29. return self._skeleton
  30. def cameras(self):
  31. return self._cameras
  32. def supports_semi_supervised(self):
  33. # This method can be overridden
  34. return False