From dd425a66d3704e46db5d779e010ac3c8de8e7efe Mon Sep 17 00:00:00 2001 From: Iridoudou <2534936416@qq.com> Date: Wed, 11 Aug 2021 12:12:31 +0800 Subject: [PATCH] support CMU Mocap --- .gitignore | 3 +- 01_01_params.pkl | 0 README.md | 1 + fit/configs/CMU_Mocap.json | 89 +++ fit/configs/Human3.6M.json | 83 +++ fit/configs/HumanAct12.json | 4 +- fit/configs/UTD_MHAD.json | 4 +- fit/tools/label.py | 1096 ++++++++++++++++++++++++++++++++++- fit/tools/load.py | 3 + fit/tools/save.py | 20 +- fit/tools/train.py | 13 +- fit/tools/transform.py | 30 +- make_gif.py | 6 +- 13 files changed, 1311 insertions(+), 41 deletions(-) create mode 100644 01_01_params.pkl create mode 100644 fit/configs/CMU_Mocap.json create mode 100644 fit/configs/Human3.6M.json diff --git a/.gitignore b/.gitignore index 6aac4b0..b72f241 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ image.png smplpytorch/native/models/*.pkl exp/ -output/ \ No newline at end of file +output/ +make_gif.py \ No newline at end of file diff --git a/01_01_params.pkl b/01_01_params.pkl new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index a0b437c..41ed84c 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ The SMPL human body layer for Pytorch is from the [smplpytorch](https://github.c currently supported datasets: - [HumanAct12](https://ericguo5513.github.io/action-to-motion/) + - [CMU Mocap](https://ericguo5513.github.io/action-to-motion/) - [UTD-MHAD](https://personal.utdallas.edu/~kehtar/UTD-MHAD.html) - Set the **DATASET.PATH** in the corresponding configuration file to the location of dataset. diff --git a/fit/configs/CMU_Mocap.json b/fit/configs/CMU_Mocap.json new file mode 100644 index 0000000..a8ec081 --- /dev/null +++ b/fit/configs/CMU_Mocap.json @@ -0,0 +1,89 @@ +{ + "MODEL": { + "GENDER": "neutral" + }, + "TRAIN": { + "LEARNING_RATE": 2e-2, + "MAX_EPOCH": 1000, + "WRITE": 1, + "OPTIMIZE_SCALE":1, + "OPTIMIZE_SHAPE":0 + }, + "USE_GPU": 1, + "DATASET": { + "NAME": "UTD-MHAD", + "PATH": "../Action2Motion/CMU Mocap/mocap/mocap_3djoints/", + "TARGET_PATH": "", + "DATA_MAP": [ + [ + 0, + 0 + ], + [ + 9, + 1 + ], + [ + 12, + 2 + ], + [ + 13, + 4 + ], + [ + 18, + 6 + ], + [ + 20, + 7 + ], + [ + 14, + 8 + ], + [ + 19, + 10 + ], + [ + 21, + 11 + ], + [ + 1, + 12 + ], + [ + 4, + 13 + ], + [ + 7, + 14 + ], + [ + 10, + 15 + ], + [ + 2, + 16 + ], + [ + 5, + 17 + ], + [ + 8, + 18 + ], + [ + 11, + 19 + ] + ] + }, + "DEBUG": 0 +} \ No newline at end of file diff --git a/fit/configs/Human3.6M.json b/fit/configs/Human3.6M.json new file mode 100644 index 0000000..a6f51c1 --- /dev/null +++ b/fit/configs/Human3.6M.json @@ -0,0 +1,83 @@ +{ + "MODEL": { + "GENDER": "neutral" + }, + "TRAIN": { + "LEARNING_RATE": 2e-2, + "MAX_EPOCH": 1000, + "WRITE": 1 + }, + "USE_GPU": 1, + "DATASET": { + "NAME": "UTD-MHAD", + "PATH": "../UTD-MHAD/Skeleton/Skeleton/", + "TARGET_PATH": "", + "DATA_MAP": [ + [ + 12, + 1 + ], + [ + 0, + 3 + ], + [ + 16, + 4 + ], + [ + 18, + 5 + ], + [ + 20, + 6 + ], + [ + 22, + 7 + ], + [ + 17, + 8 + ], + [ + 19, + 9 + ], + [ + 21, + 10 + ], + [ + 23, + 11 + ], + [ + 1, + 12 + ], + [ + 4, + 13 + ], + [ + 7, + 14 + ], + [ + 2, + 16 + ], + [ + 5, + 17 + ], + [ + 8, + 18 + ] + ] + }, + "DEBUG": 0 +} \ No newline at end of file diff --git a/fit/configs/HumanAct12.json b/fit/configs/HumanAct12.json index 2e3774b..fae1840 100644 --- a/fit/configs/HumanAct12.json +++ b/fit/configs/HumanAct12.json @@ -5,7 +5,9 @@ "TRAIN": { "LEARNING_RATE": 2e-2, "MAX_EPOCH": 1000, - "WRITE": 1 + "WRITE": 1, + "OPTIMIZE_SCALE":0, + "OPTIMIZE_SHAPE":1 }, "USE_GPU": 1, "DATASET": { diff --git a/fit/configs/UTD_MHAD.json b/fit/configs/UTD_MHAD.json index a6f51c1..0dfeba3 100644 --- a/fit/configs/UTD_MHAD.json +++ b/fit/configs/UTD_MHAD.json @@ -5,7 +5,9 @@ "TRAIN": { "LEARNING_RATE": 2e-2, "MAX_EPOCH": 1000, - "WRITE": 1 + "WRITE": 1, + "OPTIMIZE_SCALE":0, + "OPTIMIZE_SHAPE":1 }, "USE_GPU": 1, "DATASET": { diff --git a/fit/tools/label.py b/fit/tools/label.py index 08920bb..0c40021 100644 --- a/fit/tools/label.py +++ b/fit/tools/label.py @@ -65,6 +65,1097 @@ UTD_MHAD = { "27": " squat(squat)" } +CMU_Mocap = { + "02_01": "Walk", + "02_02": "Walk", + "03_01": "Walk", + "03_02": "Walk", + "03_03": "Walk", + "03_04": "Walk", + "05_01": "Walk", + "06_01": "Walk", + "07_01": "Walk", + "07_02": "Walk", + "07_03": "Walk", + "07_04": "Walk", + "07_05": "Walk", + "07_06": "Walk", + "07_07": "Walk", + "07_08": "Walk", + "07_09": "Walk", + "07_10": "Walk", + "07_11": "Walk", + "07_12": "Walk", + "08_01": "Walk", + "08_02": "Walk", + "08_03": "Walk", + "08_04": "Walk", + "08_05": "Walk", + "08_06": "Walk", + "08_07": "Walk", + "08_08": "Walk", + "08_09": "Walk", + "08_10": "Walk", + "08_11": "Walk", + "10_04": "Walk", + "12_01": "Walk", + "12_02": "Walk", + "12_03": "Walk", + "15_01": "Walk", + "15_03": "Walk", + "15_09": "Walk", + "15_14": "Walk", + "16_11": "Walk", + "16_12": "Walk", + "16_13": "Walk", + "16_14": "Walk", + "16_15": "Walk", + "16_16": "Walk", + "16_17": "Walk", + "16_18": "Walk", + "16_19": "Walk", + "16_20": "Walk", + "16_21": "Walk", + "16_22": "Walk", + "16_23": "Walk", + "16_24": "Walk", + "16_25": "Walk", + "16_26": "Walk", + "16_27": "Walk", + "16_28": "Walk", + "16_29": "Walk", + "16_30": "Walk", + "16_31": "Walk", + "16_32": "Walk", + "16_33": "Walk", + "16_34": "Walk", + "16_47": "Walk", + "16_58": "Walk", + "17_01": "Walk", + "17_02": "Walk", + "17_03": "Walk", + "17_04": "Walk", + "17_05": "Walk", + "17_06": "Walk", + "17_07": "Walk", + "17_08": "Walk", + "17_09": "Walk", + "26_01": "Walk", + "27_01": "Walk", + "29_01": "Walk", + "32_01": "Walk", + "32_02": "Walk", + "35_01": "Walk", + "35_02": "Walk", + "35_03": "Walk", + "35_04": "Walk", + "35_05": "Walk", + "35_06": "Walk", + "35_07": "Walk", + "35_08": "Walk", + "35_09": "Walk", + "35_10": "Walk", + "35_11": "Walk", + "35_12": "Walk", + "35_13": "Walk", + "35_14": "Walk", + "35_15": "Walk", + "35_16": "Walk", + "35_28": "Walk", + "35_29": "Walk", + "35_30": "Walk", + "35_31": "Walk", + "35_32": "Walk", + "35_33": "Walk", + "35_34": "Walk", + "36_01": "Walk", + "36_02": "Walk", + "36_03": "Walk", + "36_04": "Walk", + "36_05": "Walk", + "36_06": "Walk", + "36_07": "Walk", + "36_08": "Walk", + "36_09": "Walk", + "36_10": "Walk", + "36_11": "Walk", + "36_12": "Walk", + "36_13": "Walk", + "36_14": "Walk", + "36_15": "Walk", + "36_16": "Walk", + "36_17": "Walk", + "36_18": "Walk", + "36_19": "Walk", + "36_20": "Walk", + "36_21": "Walk", + "36_22": "Walk", + "36_23": "Walk", + "36_24": "Walk", + "36_25": "Walk", + "36_26": "Walk", + "36_27": "Walk", + "36_28": "Walk", + "36_29": "Walk", + "36_30": "Walk", + "36_31": "Walk", + "36_32": "Walk", + "36_33": "Walk", + "36_34": "Walk", + "36_35": "Walk", + "36_36": "Walk", + "37_01": "Walk", + "38_01": "Walk", + "38_02": "Walk", + "38_04": "Walk", + "39_01": "Walk", + "39_02": "Walk", + "39_03": "Walk", + "39_04": "Walk", + "39_05": "Walk", + "39_06": "Walk", + "39_07": "Walk", + "39_08": "Walk", + "39_09": "Walk", + "39_10": "Walk", + "39_11": "Walk", + "39_12": "Walk", + "39_13": "Walk", + "39_14": "Walk", + "40_02": "Walk", + "40_03": "Walk", + "40_04": "Walk", + "40_05": "Walk", + "41_02": "Walk", + "41_03": "Walk", + "41_04": "Walk", + "41_05": "Walk", + "41_06": "Walk", + "43_01": "Walk", + "45_01": "Walk", + "46_01": "Walk", + "47_01": "Walk", + "49_01": "Walk", + "55_04": "Walk", + "56_01": "Walk", + "69_01": "Walk", + "69_02": "Walk", + "69_03": "Walk", + "69_04": "Walk", + "69_05": "Walk", + "69_06": "Walk", + "69_07": "Walk", + "69_08": "Walk", + "69_09": "Walk", + "69_10": "Walk", + "69_11": "Walk", + "69_12": "Walk", + "69_13": "Walk", + "69_14": "Walk", + "69_15": "Walk", + "69_16": "Walk", + "69_17": "Walk", + "69_18": "Walk", + "69_19": "Walk", + "69_20": "Walk", + "69_21": "Walk", + "69_22": "Walk", + "69_23": "Walk", + "69_24": "Walk", + "69_25": "Walk", + "69_26": "Walk", + "69_27": "Walk", + "69_28": "Walk", + "69_29": "Walk", + "69_30": "Walk", + "69_31": "Walk", + "69_32": "Walk", + "69_33": "Walk", + "69_34": "Walk", + "69_35": "Walk", + "69_36": "Walk", + "69_37": "Walk", + "69_38": "Walk", + "69_39": "Walk", + "69_40": "Walk", + "69_41": "Walk", + "69_42": "Walk", + "69_43": "Walk", + "69_44": "Walk", + "69_45": "Walk", + "69_46": "Walk", + "69_47": "Walk", + "69_48": "Walk", + "69_49": "Walk", + "69_50": "Walk", + "69_51": "Walk", + "69_52": "Walk", + "69_53": "Walk", + "69_54": "Walk", + "69_55": "Walk", + "69_56": "Walk", + "69_57": "Walk", + "69_58": "Walk", + "69_59": "Walk", + "69_60": "Walk", + "69_61": "Walk", + "69_62": "Walk", + "69_63": "Walk", + "69_64": "Walk", + "69_65": "Walk", + "69_66": "Walk", + "69_67": "Walk", + "69_68": "Walk", + "69_69": "Walk", + "69_70": "Walk", + "69_71": "Walk", + "69_72": "Walk", + "69_73": "Walk", + "69_74": "Walk", + "69_75": "Walk", + "74_01": "Walk", + "74_02": "Walk", + "74_14": "Walk", + "74_15": "Walk", + "74_16": "Walk", + "74_17": "Walk", + "74_18": "Walk", + "74_19": "Walk", + "74_20": "Walk", + "86_02": "Walk", + "86_03": "Walk", + "86_04": "Walk", + "86_05": "Walk", + "86_06": "Walk", + "86_07": "Walk", + "86_08": "Walk", + "86_09": "Walk", + "86_10": "Walk", + "86_11": "Walk", + "86_12": "Walk", + "86_13": "Walk", + "86_14": "Walk", + "86_15": "Walk", + "91_01": "Walk", + "91_02": "Walk", + "91_03": "Walk", + "91_04": "Walk", + "91_05": "Walk", + "91_06": "Walk", + "91_07": "Walk", + "91_08": "Walk", + "91_09": "Walk", + "91_10": "Walk", + "91_11": "Walk", + "91_12": "Walk", + "91_13": "Walk", + "91_14": "Walk", + "91_15": "Walk", + "91_16": "Walk", + "91_17": "Walk", + "91_18": "Walk", + "91_19": "Walk", + "91_20": "Walk", + "91_21": "Walk", + "91_22": "Walk", + "91_23": "Walk", + "91_24": "Walk", + "91_25": "Walk", + "91_26": "Walk", + "91_27": "Walk", + "91_28": "Walk", + "91_29": "Walk", + "91_30": "Walk", + "91_31": "Walk", + "91_32": "Walk", + "91_33": "Walk", + "91_34": "Walk", + "91_35": "Walk", + "91_36": "Walk", + "91_37": "Walk", + "91_38": "Walk", + "104_02": "Walk", + "104_03": "Walk", + "104_11": "Walk", + "104_12": "Walk", + "104_13": "Walk", + "104_14": "Walk", + "104_16": "Walk", + "104_19": "Walk", + "104_22": "Walk", + "104_27": "Walk", + "104_28": "Walk", + "104_29": "Walk", + "104_30": "Walk", + "104_32": "Walk", + "104_35": "Walk", + "104_36": "Walk", + "104_39": "Walk", + "104_41": "Walk", + "104_42": "Walk", + "104_43": "Walk", + "104_44": "Walk", + "104_45": "Walk", + "104_46": "Walk", + "105_01": "Walk", + "105_02": "Walk", + "105_03": "Walk", + "105_04": "Walk", + "105_05": "Walk", + "105_06": "Walk", + "105_07": "Walk", + "105_08": "Walk", + "105_09": "Walk", + "105_10": "Walk", + "105_11": "Walk", + "105_12": "Walk", + "105_13": "Walk", + "105_14": "Walk", + "105_15": "Walk", + "105_16": "Walk", + "105_17": "Walk", + "105_18": "Walk", + "105_19": "Walk", + "105_20": "Walk", + "105_21": "Walk", + "105_22": "Walk", + "105_23": "Walk", + "105_24": "Walk", + "105_25": "Walk", + "105_26": "Walk", + "105_27": "Walk", + "105_28": "Walk", + "105_29": "Walk", + "105_30": "Walk", + "105_31": "Walk", + "105_32": "Walk", + "105_33": "Walk", + "105_34": "Walk", + "105_35": "Walk", + "105_36": "Walk", + "105_37": "Walk", + "105_38": "Walk", + "105_57": "Walk", + "132_01": "Walk", + "132_02": "Walk", + "132_03": "Walk", + "132_04": "Walk", + "132_05": "Walk", + "132_06": "Walk", + "132_07": "Walk", + "132_08": "Walk", + "132_09": "Walk", + "132_10": "Walk", + "132_11": "Walk", + "132_12": "Walk", + "132_13": "Walk", + "132_14": "Walk", + "132_15": "Walk", + "132_16": "Walk", + "132_17": "Walk", + "132_18": "Walk", + "132_19": "Walk", + "132_20": "Walk", + "132_21": "Walk", + "132_22": "Walk", + "132_29": "Walk", + "132_30": "Walk", + "132_31": "Walk", + "132_32": "Walk", + "132_33": "Walk", + "132_34": "Walk", + "132_35": "Walk", + "132_36": "Walk", + "132_40": "Walk", + "132_41": "Walk", + "132_42": "Walk", + "132_43": "Walk", + "132_44": "Walk", + "132_45": "Walk", + "132_46": "Walk", + "132_47": "Walk", + "132_48": "Walk", + "132_49": "Walk", + "132_50": "Walk", + "132_53": "Walk", + "132_54": "Walk", + "132_55": "Walk", + "132_56": "Walk", + "133_01": "Walk", + "133_02": "Walk", + "133_03": "Walk", + "133_04": "Walk", + "133_05": "Walk", + "133_06": "Walk", + "133_07": "Walk", + "133_08": "Walk", + "133_09": "Walk", + "133_10": "Walk", + "133_11": "Walk", + "133_12": "Walk", + "133_13": "Walk", + "133_14": "Walk", + "133_15": "Walk", + "133_16": "Walk", + "133_17": "Walk", + "133_18": "Walk", + "133_19": "Walk", + "133_20": "Walk", + "133_21": "Walk", + "133_22": "Walk", + "133_23": "Walk", + "133_24": "Walk", + "133_25": "Walk", + "133_26": "Walk", + "136_01": "Walk", + "136_02": "Walk", + "136_03": "Walk", + "136_04": "Walk", + "136_05": "Walk", + "136_06": "Walk", + "136_07": "Walk", + "136_08": "Walk", + "136_09": "Walk", + "136_10": "Walk", + "136_11": "Walk", + "136_12": "Walk", + "136_13": "Walk", + "136_14": "Walk", + "136_15": "Walk", + "136_16": "Walk", + "136_17": "Walk", + "136_18": "Walk", + "136_19": "Walk", + "136_20": "Walk", + "136_21": "Walk", + "136_22": "Walk", + "136_23": "Walk", + "136_24": "Walk", + "136_25": "Walk", + "136_26": "Walk", + "136_27": "Walk", + "136_28": "Walk", + "136_29": "Walk", + "136_30": "Walk", + "136_31": "Walk", + "136_32": "Walk", + "136_33": "Walk", + "13_20": "Wash", + "13_21": "Wash", + "13_22": "Wash", + "13_23": "Wash", + "13_24": "Wash", + "13_25": "Wash", + "14_10": "Wash", + "14_11": "Wash", + "14_12": "Wash", + "14_13": "Wash", + "14_15": "Wash", + "14_16": "Wash", + "15_04": "Wash", + "15_05": "Wash", + "15_11": "Wash", + "15_12": "Wash", + "106_01": "Wash", + "106_02": "Wash", + "106_03": "Wash", + "106_04": "Wash", + "106_05": "Wash", + "106_06": "Wash", + "106_07": "Wash", + "106_08": "Wash", + "106_09": "Wash", + "106_10": "Wash", + "106_11": "Wash", + "106_12": "Wash", + "106_13": "Wash", + "106_14": "Wash", + "106_15": "Wash", + "106_16": "Wash", + "106_17": "Wash", + "106_18": "Wash", + "106_19": "Wash", + "106_20": "Wash", + "106_21": "Wash", + "106_22": "Wash", + "106_23": "Wash", + "106_24": "Wash", + "106_25": "Wash", + "106_26": "Wash", + "106_27": "Wash", + "106_28": "Wash", + "106_29": "Wash", + "106_30": "Wash", + "106_31": "Wash", + "106_32": "Wash", + "106_33": "Wash", + "106_34": "Wash", + "122_01": "Wash", + "122_02": "Wash", + "122_03": "Wash", + "122_04": "Wash", + "122_05": "Wash", + "122_06": "Wash", + "122_07": "Wash", + "122_08": "Wash", + "122_09": "Wash", + "122_10": "Wash", + "122_11": "Wash", + "122_12": "Wash", + "122_13": "Wash", + "122_14": "Wash", + "122_15": "Wash", + "122_16": "Wash", + "122_17": "Wash", + "122_18": "Wash", + "122_19": "Wash", + "122_20": "Wash", + "122_21": "Wash", + "122_22": "Wash", + "122_23": "Wash", + "122_24": "Wash", + "122_25": "Wash", + "122_26": "Wash", + "122_27": "Wash", + "122_28": "Wash", + "122_29": "Wash", + "122_30": "Wash", + "122_31": "Wash", + "122_32": "Wash", + "122_33": "Wash", + "122_34": "Wash", + "122_35": "Wash", + "122_36": "Wash", + "122_37": "Wash", + "122_38": "Wash", + "122_39": "Wash", + "122_40": "Wash", + "122_41": "Wash", + "122_42": "Wash", + "122_43": "Wash", + "122_44": "Wash", + "122_45": "Wash", + "122_46": "Wash", + "122_47": "Wash", + "122_48": "Wash", + "122_49": "Wash", + "122_50": "Wash", + "122_51": "Wash", + "122_52": "Wash", + "122_53": "Wash", + "122_54": "Wash", + "122_55": "Wash", + "122_56": "Wash", + "122_57": "Wash", + "122_58": "Wash", + "122_59": "Wash", + "122_60": "Wash", + "122_61": "Wash", + "122_62": "Wash", + "122_63": "Wash", + "122_64": "Wash", + "122_65": "Wash", + "122_66": "Wash", + "122_67": "Wash", + "122_68": "Wash", + "02_03": "Run", + "09_01": "Run", + "09_02": "Run", + "09_03": "Run", + "09_04": "Run", + "09_05": "Run", + "09_06": "Run", + "09_07": "Run", + "09_08": "Run", + "09_09": "Run", + "09_10": "Run", + "09_11": "Run", + "09_12": "Run", + "16_08": "Run", + "16_35": "Run", + "16_36": "Run", + "16_37": "Run", + "16_38": "Run", + "16_39": "Run", + "16_40": "Run", + "16_41": "Run", + "16_42": "Run", + "16_43": "Run", + "16_44": "Run", + "16_45": "Run", + "16_46": "Run", + "16_48": "Run", + "16_49": "Run", + "16_50": "Run", + "16_51": "Run", + "16_52": "Run", + "16_53": "Run", + "16_54": "Run", + "16_55": "Run", + "16_56": "Run", + "16_57": "Run", + "35_17": "Run", + "35_18": "Run", + "35_19": "Run", + "35_20": "Run", + "35_21": "Run", + "35_22": "Run", + "35_23": "Run", + "35_24": "Run", + "35_25": "Run", + "35_26": "Run", + "38_03": "Run", + "49_04": "Run", + "49_05": "Run", + "104_01": "Run", + "104_04": "Run", + "104_06": "Run", + "104_08": "Run", + "104_09": "Run", + "104_10": "Run", + "104_37": "Run", + "104_48": "Run", + "104_53": "Run", + "104_54": "Run", + "104_55": "Run", + "104_56": "Run", + "104_57": "Run", + "127_03": "Run", + "127_04": "Run", + "127_05": "Run", + "127_06": "Run", + "127_07": "Run", + "127_08": "Run", + "127_09": "Run", + "127_10": "Run", + "127_11": "Run", + "127_12": "Run", + "127_13": "Run", + "127_14": "Run", + "127_15": "Run", + "127_16": "Run", + "127_17": "Run", + "127_18": "Run", + "127_19": "Run", + "127_20": "Run", + "127_21": "Run", + "127_22": "Run", + "127_23": "Run", + "127_24": "Run", + "127_25": "Run", + "127_26": "Run", + "127_27": "Run", + "127_28": "Run", + "127_29": "Run", + "127_30": "Run", + "127_31": "Run", + "127_32": "Run", + "127_33": "Run", + "127_34": "Run", + "127_35": "Run", + "127_36": "Run", + "127_37": "Run", + "127_38": "Run", + "128_01": "Run", + "128_02": "Run", + "128_03": "Run", + "128_04": "Run", + "128_05": "Run", + "128_06": "Run", + "128_07": "Run", + "128_08": "Run", + "128_09": "Run", + "128_10": "Run", + "128_11": "Run", + "01_01": "Jump", + "02_04": "Jump", + "13_19": "Jump", + "13_29": "Jump", + "13_30": "Jump", + "13_31": "Jump", + "13_32": "Jump", + "13_39": "Jump", + "13_40": "Jump", + "13_41": "Jump", + "13_42": "Jump", + "14_06": "Jump", + "14_07": "Jump", + "14_08": "Jump", + "14_09": "Jump", + "14_14": "Jump", + "14_20": "Jump", + "16_01": "Jump", + "16_02": "Jump", + "16_03": "Jump", + "16_04": "Jump", + "16_05": "Jump", + "16_06": "Jump", + "16_07": "Jump", + "16_09": "Jump", + "16_10": "Jump", + "36_37": "Jump", + "49_02": "Jump", + "49_03": "Jump", + "75_01": "Jump", + "75_02": "Jump", + "75_03": "Jump", + "75_04": "Jump", + "75_05": "Jump", + "75_06": "Jump", + "75_07": "Jump", + "75_08": "Jump", + "75_09": "Jump", + "75_10": "Jump", + "75_11": "Jump", + "75_12": "Jump", + "75_13": "Jump", + "75_14": "Jump", + "75_15": "Jump", + "75_16": "Jump", + "86_01": "Jump", + "90_05": "Jump", + "90_06": "Jump", + "90_07": "Jump", + "91_39": "Jump", + "91_40": "Jump", + "91_41": "Jump", + "91_42": "Jump", + "91_43": "Jump", + "91_44": "Jump", + "91_45": "Jump", + "91_46": "Jump", + "91_47": "Jump", + "91_48": "Jump", + "91_49": "Jump", + "91_50": "Jump", + "91_51": "Jump", + "91_52": "Jump", + "91_53": "Jump", + "105_39": "Jump", + "105_40": "Jump", + "105_41": "Jump", + "105_42": "Jump", + "105_43": "Jump", + "105_44": "Jump", + "105_45": "Jump", + "105_46": "Jump", + "105_47": "Jump", + "105_48": "Jump", + "105_49": "Jump", + "105_50": "Jump", + "105_51": "Jump", + "105_52": "Jump", + "118_01": "Jump", + "118_02": "Jump", + "118_03": "Jump", + "118_04": "Jump", + "118_05": "Jump", + "118_06": "Jump", + "118_07": "Jump", + "118_08": "Jump", + "118_09": "Jump", + "118_10": "Jump", + "118_11": "Jump", + "118_12": "Jump", + "118_13": "Jump", + "118_14": "Jump", + "118_15": "Jump", + "118_16": "Jump", + "118_17": "Jump", + "118_18": "Jump", + "118_19": "Jump", + "118_20": "Jump", + "118_21": "Jump", + "118_22": "Jump", + "118_23": "Jump", + "118_24": "Jump", + "118_25": "Jump", + "118_26": "Jump", + "118_27": "Jump", + "118_28": "Jump", + "118_29": "Jump", + "118_30": "Jump", + "28_09": "Animal Behavior", + "28_10": "Animal Behavior", + "28_11": "Animal Behavior", + "28_12": "Animal Behavior", + "28_13": "Animal Behavior", + "28_14": "Animal Behavior", + "28_15": "Animal Behavior", + "28_16": "Animal Behavior", + "28_17": "Animal Behavior", + "28_18": "Animal Behavior", + "28_19": "Animal Behavior", + "29_14": "Animal Behavior", + "29_15": "Animal Behavior", + "29_16": "Animal Behavior", + "29_17": "Animal Behavior", + "29_18": "Animal Behavior", + "29_19": "Animal Behavior", + "29_20": "Animal Behavior", + "29_21": "Animal Behavior", + "29_22": "Animal Behavior", + "29_23": "Animal Behavior", + "29_24": "Animal Behavior", + "29_25": "Animal Behavior", + "30_13": "Animal Behavior", + "30_14": "Animal Behavior", + "30_15": "Animal Behavior", + "30_16": "Animal Behavior", + "30_17": "Animal Behavior", + "30_18": "Animal Behavior", + "30_19": "Animal Behavior", + "30_20": "Animal Behavior", + "30_21": "Animal Behavior", + "30_22": "Animal Behavior", + "30_23": "Animal Behavior", + "31_11": "Animal Behavior", + "31_12": "Animal Behavior", + "31_13": "Animal Behavior", + "31_14": "Animal Behavior", + "31_15": "Animal Behavior", + "31_16": "Animal Behavior", + "31_17": "Animal Behavior", + "31_18": "Animal Behavior", + "31_19": "Animal Behavior", + "31_20": "Animal Behavior", + "31_21": "Animal Behavior", + "32_13": "Animal Behavior", + "32_14": "Animal Behavior", + "32_15": "Animal Behavior", + "32_16": "Animal Behavior", + "32_17": "Animal Behavior", + "32_18": "Animal Behavior", + "32_19": "Animal Behavior", + "32_20": "Animal Behavior", + "32_21": "Animal Behavior", + "32_22": "Animal Behavior", + "54_01": "Animal Behavior", + "54_02": "Animal Behavior", + "54_03": "Animal Behavior", + "54_04": "Animal Behavior", + "54_05": "Animal Behavior", + "54_06": "Animal Behavior", + "54_07": "Animal Behavior", + "54_08": "Animal Behavior", + "54_09": "Animal Behavior", + "54_10": "Animal Behavior", + "54_11": "Animal Behavior", + "54_12": "Animal Behavior", + "54_13": "Animal Behavior", + "54_14": "Animal Behavior", + "54_15": "Animal Behavior", + "54_17": "Animal Behavior", + "54_18": "Animal Behavior", + "54_19": "Animal Behavior", + "54_23": "Animal Behavior", + "54_24": "Animal Behavior", + "54_25": "Animal Behavior", + "54_26": "Animal Behavior", + "54_27": "Animal Behavior", + "55_03": "Animal Behavior", + "55_05": "Animal Behavior", + "55_06": "Animal Behavior", + "55_07": "Animal Behavior", + "55_08": "Animal Behavior", + "55_09": "Animal Behavior", + "55_10": "Animal Behavior", + "55_11": "Animal Behavior", + "55_12": "Animal Behavior", + "55_13": "Animal Behavior", + "55_14": "Animal Behavior", + "55_15": "Animal Behavior", + "55_16": "Animal Behavior", + "55_17": "Animal Behavior", + "55_18": "Animal Behavior", + "55_19": "Animal Behavior", + "55_20": "Animal Behavior", + "55_21": "Animal Behavior", + "55_24": "Animal Behavior", + "55_25": "Animal Behavior", + "55_26": "Animal Behavior", + "55_27": "Animal Behavior", + "55_28": "Animal Behavior", + "05_02": "Dance", + "05_03": "Dance", + "05_04": "Dance", + "05_05": "Dance", + "05_06": "Dance", + "05_07": "Dance", + "05_08": "Dance", + "05_09": "Dance", + "05_10": "Dance", + "05_11": "Dance", + "05_12": "Dance", + "05_13": "Dance", + "05_14": "Dance", + "05_15": "Dance", + "05_16": "Dance", + "05_17": "Dance", + "05_18": "Dance", + "05_19": "Dance", + "05_20": "Dance", + "49_09": "Dance", + "49_10": "Dance", + "49_11": "Dance", + "49_12": "Dance", + "49_13": "Dance", + "49_14": "Dance", + "49_15": "Dance", + "49_16": "Dance", + "49_17": "Dance", + "49_22": "Dance", + "55_01": "Dance", + "55_02": "Dance", + "60_01": "Dance", + "60_02": "Dance", + "60_03": "Dance", + "60_04": "Dance", + "60_05": "Dance", + "60_06": "Dance", + "60_07": "Dance", + "60_08": "Dance", + "60_09": "Dance", + "60_10": "Dance", + "60_11": "Dance", + "60_12": "Dance", + "60_13": "Dance", + "60_14": "Dance", + "60_15": "Dance", + "61_01": "Dance", + "61_02": "Dance", + "61_03": "Dance", + "61_04": "Dance", + "61_05": "Dance", + "61_06": "Dance", + "61_07": "Dance", + "61_08": "Dance", + "61_09": "Dance", + "61_10": "Dance", + "61_11": "Dance", + "61_12": "Dance", + "61_13": "Dance", + "61_14": "Dance", + "61_15": "Dance", + "93_01": "Dance", + "93_02": "Dance", + "93_03": "Dance", + "93_04": "Dance", + "93_05": "Dance", + "93_06": "Dance", + "93_07": "Dance", + "93_08": "Dance", + "103_01": "Dance", + "103_02": "Dance", + "103_03": "Dance", + "103_04": "Dance", + "103_05": "Dance", + "103_06": "Dance", + "103_07": "Dance", + "103_08": "Dance", + "83_01": "Step", + "83_02": "Step", + "83_03": "Step", + "83_04": "Step", + "83_05": "Step", + "83_06": "Step", + "83_07": "Step", + "83_08": "Step", + "83_09": "Step", + "83_10": "Step", + "83_11": "Step", + "83_12": "Step", + "83_13": "Step", + "83_14": "Step", + "83_15": "Step", + "83_16": "Step", + "83_17": "Step", + "83_18": "Step", + "83_19": "Step", + "83_20": "Step", + "83_21": "Step", + "83_22": "Step", + "83_23": "Step", + "83_24": "Step", + "83_25": "Step", + "83_26": "Step", + "83_27": "Step", + "83_28": "Step", + "83_29": "Step", + "83_30": "Step", + "83_31": "Step", + "83_32": "Step", + "83_33": "Step", + "83_34": "Step", + "83_35": "Step", + "83_36": "Step", + "83_37": "Step", + "83_38": "Step", + "83_39": "Step", + "83_40": "Step", + "83_41": "Step", + "83_42": "Step", + "83_43": "Step", + "83_44": "Step", + "83_45": "Step", + "83_46": "Step", + "83_47": "Step", + "83_48": "Step", + "83_49": "Step", + "83_50": "Step", + "83_51": "Step", + "83_52": "Step", + "83_53": "Step", + "83_54": "Step", + "83_55": "Step", + "83_56": "Step", + "83_57": "Step", + "83_58": "Step", + "83_59": "Step", + "83_60": "Step", + "83_61": "Step", + "83_62": "Step", + "83_63": "Step", + "83_64": "Step", + "83_65": "Step", + "83_66": "Step", + "83_67": "Step", + "83_68": "Step", + "01_02": "Climb", + "01_03": "Climb", + "01_04": "Climb", + "01_05": "Climb", + "01_06": "Climb", + "01_07": "Climb", + "01_08": "Climb", + "01_09": "Climb", + "01_10": "Climb", + "01_11": "Climb", + "01_12": "Climb", + "01_13": "Climb", + "01_14": "Climb", + "13_33": "Climb", + "13_34": "Climb", + "13_35": "Climb", + "13_36": "Climb", + "13_37": "Climb", + "13_38": "Climb", + "14_21": "Climb", + "14_22": "Climb", + "14_23": "Climb", + "14_33": "Climb", + "14_34": "Climb", + "14_35": "Climb", + "15_02": "Climb", + "40_06": "Climb", + "40_07": "Climb", + "40_08": "Climb", + "40_09": "Climb", + "41_07": "Climb", + "41_08": "Climb", + "41_09": "Climb" +} + def get_label(file_name, dataset_name): if dataset_name == 'HumanAct12': @@ -72,4 +1163,7 @@ def get_label(file_name, dataset_name): return HumanAct12[key] elif dataset_name == 'UTD_MHAD': key = file_name.split('_')[0][1:] - return UTD_MHAD[key] \ No newline at end of file + return UTD_MHAD[key] + elif dataset_name == 'CMU_Mocap': + key = file_name.split('.')[0] + return CMU_Mocap[key] diff --git a/fit/tools/load.py b/fit/tools/load.py index 91889c3..422c161 100644 --- a/fit/tools/load.py +++ b/fit/tools/load.py @@ -14,3 +14,6 @@ def load(name, path): return new_arr elif name == 'HumanAct12': return np.load(path,allow_pickle=True) + elif name == "CMU_Mocap": + return np.load(path,allow_pickle=True) + diff --git a/fit/tools/save.py b/fit/tools/save.py index d622c60..e8fd9fe 100644 --- a/fit/tools/save.py +++ b/fit/tools/save.py @@ -33,17 +33,17 @@ def save_pic(res, smpl_layer, file, logger, dataset_name,target): savepath=os.path.join(fit_path+"/frame_{}".format(i)), batch_idx=i, show=False, - only_joint=False) - display_model( - {'verts': verts.cpu().detach(), - 'joints': target.cpu().detach()}, - model_faces=smpl_layer.th_faces, - with_joints=True, - kintree_table=smpl_layer.kintree_table, - savepath=os.path.join(gt_path+"/frame_{}".format(i)), - batch_idx=i, - show=False, only_joint=True) + # display_model( + # {'verts': verts.cpu().detach(), + # 'joints': target.cpu().detach()}, + # model_faces=smpl_layer.th_faces, + # with_joints=True, + # kintree_table=smpl_layer.kintree_table, + # savepath=os.path.join(gt_path+"/frame_{}".format(i)), + # batch_idx=i, + # show=False, + # only_joint=True) logger.info('Pictures saved') diff --git a/fit/tools/train.py b/fit/tools/train.py index 844520b..954b08f 100644 --- a/fit/tools/train.py +++ b/fit/tools/train.py @@ -42,10 +42,10 @@ def init(smpl_layer, target, device, cfg): params["scale"] = params["scale"].to(device) params["pose_params"].requires_grad = True - params["shape_params"].requires_grad = True - params["scale"].requires_grad = False + params["shape_params"].requires_grad = bool(cfg.TRAIN.OPTIMIZE_SHAPE) + params["scale"].requires_grad = bool(cfg.TRAIN.OPTIMIZE_SCALE) - optimizer = optim.Adam([params["pose_params"], params["shape_params"]], + optimizer = optim.Adam([params["pose_params"], params["shape_params"], params["scale"]], lr=cfg.TRAIN.LEARNING_RATE) index={} @@ -73,8 +73,9 @@ def train(smpl_layer, target, early_stop = Early_Stop() for epoch in tqdm(range(cfg.TRAIN.MAX_EPOCH)): + # for epoch in range(cfg.TRAIN.MAX_EPOCH): verts, Jtr = smpl_layer(pose_params, th_betas=shape_params) - loss = F.smooth_l1_loss(Jtr.index_select(1, index["smpl_index"]) * 100, + loss = F.smooth_l1_loss(Jtr.index_select(1, index["smpl_index"]) * 100 * scale, target.index_select(1, index["dataset_index"]) * 100) optimizer.zero_grad() loss.backward() @@ -88,8 +89,8 @@ def train(smpl_layer, target, break if epoch % cfg.TRAIN.WRITE == 0: - # logger.info("Epoch {}, lossPerBatch={:.6f}, EarlyStopSatis: {}".format( - # epoch, float(loss), early_stop.satis_num)) + # logger.info("Epoch {}, lossPerBatch={:.6f}, scale={:.4f} EarlyStopSatis: {}".format( + # epoch, float(loss),float(scale), early_stop.satis_num)) writer.add_scalar('loss', float(loss), epoch) writer.add_scalar('learning_rate', float( optimizer.state_dict()['param_groups'][0]['lr']), epoch) diff --git a/fit/tools/transform.py b/fit/tools/transform.py index f062f94..7a94078 100644 --- a/fit/tools/transform.py +++ b/fit/tools/transform.py @@ -1,23 +1,17 @@ import numpy as np +rotate = { + 'HumanAct12': [1., -1., -1.], + 'CMU_Mocap': [0.05, 0.05, 0.05], + 'UTD_MHAD': [-1., 1., -1.] +} + def transform(name, arr: np.ndarray): - if name == 'HumanAct12': - rotate = [1., -1., -1.] - for i in range(arr.shape[0]): - origin = arr[i][0].copy() - for j in range(arr.shape[1]): - arr[i][j] -= origin - for k in range(3): - arr[i][j][k] *= rotate[k] - arr[i][0] = [0.0, 0.0, 0.0] - elif name == 'UTD_MHAD': - rotate = [-1., 1.,-1.] - for i in range(arr.shape[0]): - origin = arr[i][3].copy() - for j in range(arr.shape[1]): - arr[i][j] -= origin - for k in range(3): - arr[i][j][k] *= rotate[k] - arr[i][3] = [0.0, 0.0, 0.0] + for i in range(arr.shape[0]): + origin = arr[i][0].copy() + for j in range(arr.shape[1]): + arr[i][j] -= origin + for k in range(3): + arr[i][j][k] *= rotate[name][k] return arr diff --git a/make_gif.py b/make_gif.py index 6d03e05..1bfe009 100644 --- a/make_gif.py +++ b/make_gif.py @@ -1,7 +1,7 @@ import matplotlib.pyplot as plt import imageio, os images = [] -filenames = sorted(fn for fn in os.listdir('./fit/output/HumanAct12/picture/fit/P01G01R01F0001T0064A0101') ) +filenames = sorted(fn for fn in os.listdir('./fit/output/CMU_Mocap/picture/fit/01_01') ) for filename in filenames: - images.append(imageio.imread('./fit/output/HumanAct12/picture/fit/P01G01R01F0001T0064A0101/'+filename)) -imageio.mimsave('./assets/fit.gif', images, duration=0.25) \ No newline at end of file + images.append(imageio.imread('./fit/output/CMU_Mocap/picture/fit/01_01/'+filename)) +imageio.mimsave('fit.gif', images, duration=0.2) \ No newline at end of file