Human3.6M (h36m) original data analysis

Human3.6M (h36m) original data analysis

Human3.6M에 part segmentation annotation이 있었다. 없는 줄 알고 예전에 densepose돌려서 얻었었는데... 퀄리티가 더 좋은지는 모르겠으나 괜찮아 보인다. 다만 README(로그인 안되어있으면 안 열릴수도)에도 part label에 대한 설명이 없어서 직접 분석함. 하는 김에 원본 데이터와 경식이형 parsing 데이터 관계도 조금 정리함.

원본 데이터와 경식이형 parsing 데이터 명칭 관계

Subject 1 여자의 Directions action 기준 설명. subject마다, action마다 조금 다를 수 있음.

카메라 (이건 subject, action과 상관없이 통일됨)

ca_01: 54138969

ca_02: 55011271

ca_03: 58860488

ca_04: 60457274 (실험할 때 정면 뷰라고 가정하고 쓰는 뷰. 사실 ca_01도 정면인 것 같은데... 이 캠이 좀 더 가까운 정면인듯. focal length가 다른건가? 이따 확인해봐야지)

action, subaction 명칭 (이건 action마다 다를듯...)

Directions1 -> subact_01

Directions -> subact_02

원본 데이터의 part segmentation annotation

원본 이미지와 part segmentation visualization

일단 .mat파일로 되어있는데, scipy.io의 loadmat으로 안 읽힌다. 삽질좀하다가 찾아보니 누가 귀찮은 과정 다 스킵할 수 있게 패키지를 만들어놨다.

출처: https://github.com/skjerns/mat7.3 pip install mat73 # 자기 환경에서 # python script import mat73 data_dict = mat73.loadmat('data.mat')

이런 식으로 http://vision.imar.ro/human3.6m/filebrowser.php의 Subject1 / Segments / PartLabels MAT에서 다운받은 Directions 1.54138969.mat 파일을 로드하면, sequence_length x height x width 의 nump array 의 list를 얻을 수 있다.

총 24개의 파트가 라벨링 되어있으며, densepose segment와 좀 다름...

원본 데이터의 .mat 파일에는 1,2,3,6,7,8,17,18,19,25,26,27,32,33,34,38,39,43,44,46,49,50,56,58 (0은 background)가 numpy array에 담겨있다. 내가 그린 그림의 숫자에서 5씩 나눠주면 1대1 대응 된다. 5를 곱한건, color picker로 하나하나 색깔을 확인해야 했기 때문...

참고: https://yacvid.hayko.at/task.php?did=472

from http://redstarhong.tistory.com/158 by ccl(A) rewrite - 2021-06-08 17:59:56