티스토리 뷰

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

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

cam_name_mapper = {'01': '54138969', '02': '55011271', '03': '58860488', '04': '60457274'}

action_name_mapper = {
    '01': {'act_02_subact_01': 'Directions 1', 'act_02_subact_02': 'Directions', 'act_03_subact_01': 'Discussion 1', 'act_03_subact_02': 'Discussion', 'act_04_subact_01': 'Eating 2', 'act_04_subact_02': 'Eating', 'act_05_subact_01': 'Greeting 1', 'act_05_subact_02': 'Greeting', 'act_06_subact_01': 'Phoning 1', 'act_06_subact_02': 'Phoning', 'act_07_subact_01': 'Posing 1', 'act_07_subact_02': 'Posing', 'act_08_subact_01': 'Purchases 1', 'act_08_subact_02': 'Purchases', 'act_09_subact_01': 'Sitting 1', 'act_09_subact_02': 'Sitting 2', 'act_10_subact_00': 'SittingDown 2', 'act_10_subact_01': 'SittingDown', 'act_11_subact_01': 'Smoking 1', 'act_11_subact_02': 'Smoking', 'act_12_subact_01': 'TakingPhoto 1', 'act_12_subact_02': 'TakingPhoto', 'act_13_subact_01': 'Waiting 1', 'act_13_subact_02': 'Waiting', 'act_14_subact_01': 'WalkTogether 1', 'act_14_subact_02': 'WalkTogether', 'act_15_subact_01': 'Walking 1', 'act_15_subact_02': 'Walking', 'act_16_subact_01': 'WalkingDog 1', 'act_16_subact_02': 'WalkingDog'},
    '05': {'act_02_subact_01': 'Directions 1', 'act_02_subact_02': 'Directions 2', 'act_03_subact_00': 'Discussion 2', 'act_03_subact_01': 'Discussion 3', 'act_04_subact_01': 'Eating 1', 'act_04_subact_02': 'Eating', 'act_05_subact_01': 'Greeting 1', 'act_05_subact_02': 'Greeting 2', 'act_06_subact_01': 'Phoning 1', 'act_06_subact_02': 'Phoning', 'act_07_subact_01': 'Photo 2', 'act_07_subact_02': 'Photo', 'act_08_subact_01': 'Posing 1', 'act_08_subact_02': 'Posing', 'act_09_subact_01': 'Purchases 1', 'act_09_subact_02': 'Purchases', 'act_10_subact_01': 'Sitting 1', 'act_10_subact_02': 'Sitting', 'act_11_subact_01': 'SittingDown 1', 'act_11_subact_02': 'SittingDown', 'act_12_subact_01': 'Smoking 1', 'act_12_subact_02': 'Smoking', 'act_13_subact_01': 'Waiting 1', 'act_13_subact_02': 'Waiting 2', 'act_14_subact_01': 'WalkDog 1', 'act_14_subact_02': 'WalkDog', 'act_15_subact_01': 'WalkTogether 1', 'act_15_subact_02': 'WalkTogether', 'act_16_subact_01': 'Walking 1', 'act_16_subact_02': 'Walking'},
    '06': {'act_02_subact_01': 'Directions 1', 'act_02_subact_02': 'Directions', 'act_03_subact_01': 'Discussion 1', 'act_03_subact_02': 'Discussion', 'act_04_subact_01': 'Eating 1', 'act_04_subact_02': 'Eating 2', 'act_05_subact_01': 'Greeting 1', 'act_05_subact_02': 'Greeting', 'act_06_subact_01': 'Phoning 1', 'act_06_subact_02': 'Phoning', 'act_07_subact_01': 'Photo 1', 'act_07_subact_02': 'Photo', 'act_08_subact_01': 'Posing 2', 'act_08_subact_02': 'Posing', 'act_09_subact_01': 'Purchases 1', 'act_09_subact_02': 'Purchases', 'act_10_subact_01': 'Sitting 1', 'act_10_subact_02': 'Sitting 2', 'act_11_subact_01': 'SittingDown 1', 'act_11_subact_02': 'SittingDown', 'act_12_subact_01': 'Smoking 1', 'act_12_subact_02': 'Smoking', 'act_13_subact_01': 'Waiting 3', 'act_13_subact_02': 'Waiting', 'act_14_subact_01': 'WalkDog 1', 'act_14_subact_02': 'WalkDog', 'act_15_subact_01': 'WalkTogether 1', 'act_15_subact_02': 'WalkTogether', 'act_16_subact_01': 'Walking 1', 'act_16_subact_02': 'Walking'},
    '07': {'act_02_subact_01': 'Directions 1', 'act_02_subact_02': 'Directions', 'act_03_subact_01': 'Discussion 1', 'act_03_subact_02': 'Discussion', 'act_04_subact_01': 'Eating 1', 'act_04_subact_02': 'Eating', 'act_05_subact_01': 'Greeting 1', 'act_05_subact_02': 'Greeting', 'act_06_subact_01': 'Phoning 2', 'act_06_subact_02': 'Phoning', 'act_07_subact_01': 'Photo 1', 'act_07_subact_02': 'Photo', 'act_08_subact_01': 'Posing 1', 'act_08_subact_02': 'Posing', 'act_09_subact_01': 'Purchases 1', 'act_09_subact_02': 'Purchases', 'act_10_subact_01': 'Sitting 1', 'act_10_subact_02': 'Sitting', 'act_11_subact_01': 'SittingDown 1', 'act_11_subact_02': 'SittingDown', 'act_12_subact_01': 'Smoking 1', 'act_12_subact_02': 'Smoking', 'act_13_subact_01': 'Waiting 1', 'act_13_subact_02': 'Waiting 2', 'act_14_subact_01': 'WalkDog 1', 'act_14_subact_02': 'WalkDog', 'act_15_subact_01': 'WalkTogether 1', 'act_15_subact_02': 'WalkTogether', 'act_16_subact_01': 'Walking 1', 'act_16_subact_02': 'Walking 2'},
    '08': {'act_02_subact_01': 'Directions 1', 'act_02_subact_02': 'Directions', 'act_03_subact_01': 'Discussion 1', 'act_03_subact_02': 'Discussion', 'act_04_subact_01': 'Eating 1', 'act_04_subact_02': 'Eating', 'act_05_subact_01': 'Greeting 1', 'act_05_subact_02': 'Greeting', 'act_06_subact_01': 'Phoning 1', 'act_06_subact_02': 'Phoning', 'act_07_subact_01': 'Photo 1', 'act_07_subact_02': 'Photo', 'act_08_subact_01': 'Posing 1', 'act_08_subact_02': 'Posing', 'act_09_subact_01': 'Purchases 1', 'act_09_subact_02': 'Purchases', 'act_10_subact_01': 'Sitting 1', 'act_10_subact_02': 'Sitting', 'act_11_subact_01': 'SittingDown 1', 'act_11_subact_02': 'SittingDown', 'act_12_subact_01': 'Smoking 1', 'act_12_subact_02': 'Smoking', 'act_13_subact_01': 'Waiting 1', 'act_13_subact_02': 'Waiting', 'act_14_subact_01': 'WalkDog 1', 'act_14_subact_02': 'WalkDog', 'act_15_subact_01': 'WalkTogether 1', 'act_15_subact_02': 'WalkTogether 2', 'act_16_subact_01': 'Walking 1', 'act_16_subact_02': 'Walking'},
    '09': {'act_02_subact_01': 'Directions 1', 'act_02_subact_02': 'Directions', 'act_03_subact_01': 'Discussion 1', 'act_03_subact_02': 'Discussion 2', 'act_04_subact_01': 'Eating 1', 'act_04_subact_02': 'Eating', 'act_05_subact_01': 'Greeting 1', 'act_05_subact_02': 'Greeting', 'act_06_subact_01': 'Phoning 1', 'act_06_subact_02': 'Phoning', 'act_07_subact_01': 'Photo 1', 'act_07_subact_02': 'Photo', 'act_08_subact_01': 'Posing 1', 'act_08_subact_02': 'Posing', 'act_09_subact_01': 'Purchases 1', 'act_09_subact_02': 'Purchases', 'act_10_subact_01': 'Sitting 1', 'act_10_subact_02': 'Sitting', 'act_11_subact_01': 'SittingDown 1', 'act_11_subact_02': 'SittingDown', 'act_12_subact_01': 'Smoking 1', 'act_12_subact_02': 'Smoking', 'act_13_subact_01': 'Waiting 1', 'act_13_subact_02': 'Waiting', 'act_14_subact_01': 'WalkDog 1', 'act_14_subact_02': 'WalkDog', 'act_15_subact_01': 'WalkTogether 1', 'act_15_subact_02': 'WalkTogether', 'act_16_subact_01': 'Walking 1', 'act_16_subact_02': 'Walking'},
    '11': {'act_02_subact_01': 'Directions 1', 'act_02_subact_02': 'Directions', 'act_03_subact_01': 'Discussion 1', 'act_03_subact_02': 'Discussion 2', 'act_04_subact_01': 'Eating 1', 'act_04_subact_02': 'Eating', 'act_05_subact_01': 'Greeting 1', 'act_05_subact_02': 'Greeting', 'act_06_subact_01': 'Phoning 1', 'act_06_subact_02': 'Phoning', 'act_07_subact_01': 'Photo 1', 'act_07_subact_02': 'Photo', 'act_08_subact_01': 'Posing 1', 'act_08_subact_02': 'Posing', 'act_09_subact_01': 'Purchases 1', 'act_09_subact_02': 'Purchases', 'act_10_subact_01': 'Sitting 1', 'act_10_subact_02': 'Sitting', 'act_11_subact_01': 'SittingDown 1', 'act_11_subact_02': 'SittingDown', 'act_12_subact_01': 'Smoking 1', 'act_12_subact_02': 'Smoking', 'act_13_subact_01': 'Waiting 1', 'act_13_subact_02': 'Waiting', 'act_14_subact_01': 'WalkDog 1', 'act_14_subact_02': 'WalkDog', 'act_15_subact_01': 'WalkTogether 1', 'act_15_subact_02': 'WalkTogether', 'act_16_subact_01': 'Walking 1', 'act_16_subact_02': 'Walking'}

}

ex) Directions1 -> subact_01, Directions -> subact_02

update: action mapper는 틀린듯. 다시확인하고있음(2021.7.31)

원본 데이터의 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')
part_mask_list = data_dict['Feat']

이런 식으로 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

'Research (연구 관련)' 카테고리의 다른 글

erosion, dilation  (0) 2021.08.01
flops  (0) 2021.07.20
우분투 무선랜카드  (0) 2021.05.28
double ssh without passwd  (0) 2021.05.24
NeuralBody setting  (0) 2021.05.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함