def __init__()

in empose/helpers/configuration.py [0:0]


        def __init__(self):
            # Environment setup.
            self.DEVICE = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
            self.DTYPE = torch.float32
            self.DATA_DIR = os.environ['EM_DATA_SYNTH']
            self.EXPERIMENT_DIR = os.environ['EM_EXPERIMENTS']
            self.SMPL_MODELS_DIR = os.environ['SMPL_MODELS']
            self.DATA_DIR_TEST = os.environ['EM_DATA_REAL']
            self.FPS = 60.0

            # Virtual tracker vertex IDs.
            self.VERTEX_IDS = [3027, 3748,
                               5430, 5178, 5006, 4447, 4559,
                               1961, 1391, 1535, 959, 1072]

            # Virtual tracker names and configuration.
            self.T_ROOT = 'root_0'
            self.T_HEAD = 'head_1'
            self.T_BACK = 'back_8'
            self.T_RLA = 'r_wrist_3'
            self.T_RUA = 'r_arm_5'
            self.T_RSH = 'r_shoulder_7'
            self.T_RUL = 'r_leg_9'
            self.T_RLL = 'r_low_leg_11'
            self.T_LLA = 'l_wrist_2'
            self.T_LUA = 'l_arm_4'
            self.T_LSH = 'l_shoulder_6'
            self.T_LUL = 'l_leg_10'
            self.T_LLL = 'l_low_leg_12'

            self.T_ORDER = [self.T_ROOT, self.T_BACK, self.T_HEAD,
                            self.T_RLA, self.T_RUA, self.T_RSH, self.T_RUL, self.T_RLL,
                            self.T_LLA, self.T_LUA, self.T_LSH, self.T_LUL, self.T_LLL]
            self.T_TO_IDX = {k: i for i, k in enumerate(self.T_ORDER)}
            self.T_TO_IDX_WO_ROOT = {k: i - 1 for i, k in enumerate(self.T_ORDER)}
            self.N_TRACKERS_WO_ROOT = len(self.T_ORDER) - 1  # The root is not a tracker

            self.T_SKELETON_W_ROOT = [[self.T_TO_IDX[self.T_ROOT], self.T_TO_IDX[self.T_BACK]],
                                      [self.T_TO_IDX[self.T_ROOT], self.T_TO_IDX[self.T_RUL]],
                                      [self.T_TO_IDX[self.T_ROOT], self.T_TO_IDX[self.T_LUL]],
                                      [self.T_TO_IDX[self.T_BACK], self.T_TO_IDX[self.T_HEAD]],
                                      [self.T_TO_IDX[self.T_BACK], self.T_TO_IDX[self.T_RSH]],
                                      [self.T_TO_IDX[self.T_BACK], self.T_TO_IDX[self.T_LSH]],
                                      [self.T_TO_IDX[self.T_RSH], self.T_TO_IDX[self.T_RUA]],
                                      [self.T_TO_IDX[self.T_RUA], self.T_TO_IDX[self.T_RLA]],
                                      [self.T_TO_IDX[self.T_LSH], self.T_TO_IDX[self.T_LUA]],
                                      [self.T_TO_IDX[self.T_LUA], self.T_TO_IDX[self.T_LLA]],
                                      [self.T_TO_IDX[self.T_RUL], self.T_TO_IDX[self.T_RLL]],
                                      [self.T_TO_IDX[self.T_LUL], self.T_TO_IDX[self.T_LLL]]]

            # Real tracker (sensor) names and configuration.
            self.S_HEAD = 'ID113.Set7.Num1'
            self.S_BACK = 'ID120.Set7.Num8'
            self.S_RLA = 'ID115.Set7.Num3'
            self.S_RUA = 'ID117.Set7.Num5'
            self.S_RSH = 'ID119.Set7.Num7'
            self.S_RUL = 'ID121.Set7.Num9'
            self.S_RLL = 'ID123.Set7.Num11'
            self.S_LLA = 'ID114.Set7.Num2'
            self.S_LUA = 'ID116.Set7.Num4'
            self.S_LSH = 'ID118.Set7.Num6'
            self.S_LUL = 'ID122.Set7.Num10'
            self.S_LLL = 'ID124.Set7.Num12'

            # This is the sensor order how the neural network expects it.
            self.S_ORDER = [self.S_BACK, self.S_HEAD,
                            self.S_RLA, self.S_RUA, self.S_RSH, self.S_RUL, self.S_RLL,
                            self.S_LLA, self.S_LUA, self.S_LSH, self.S_LUL, self.S_LLL]
            self.S_CONFIG_6 = [0, 1, 2, 6, 7, 11]
            self.S_TO_IDX_WO_ROOT = {k: i for i, k in enumerate(self.S_ORDER)}
            self.S_SKELETON_WO_ROOT = [[self.S_TO_IDX_WO_ROOT[self.S_BACK], self.S_TO_IDX_WO_ROOT[self.S_HEAD]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_BACK], self.S_TO_IDX_WO_ROOT[self.S_RSH]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_BACK], self.S_TO_IDX_WO_ROOT[self.S_LSH]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_BACK], self.S_TO_IDX_WO_ROOT[self.S_LUL]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_BACK], self.S_TO_IDX_WO_ROOT[self.S_RUL]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_RSH], self.S_TO_IDX_WO_ROOT[self.S_RUA]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_RUA], self.S_TO_IDX_WO_ROOT[self.S_RLA]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_LSH], self.S_TO_IDX_WO_ROOT[self.S_LUA]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_LUA], self.S_TO_IDX_WO_ROOT[self.S_LLA]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_RUL], self.S_TO_IDX_WO_ROOT[self.S_RLL]],
                                       [self.S_TO_IDX_WO_ROOT[self.S_LUL], self.S_TO_IDX_WO_ROOT[self.S_LLL]]]

            # SMPL constants
            self.N_JOINTS = 21  # not counting root
            self.MAX_INDEX_ROOT_AND_BODY = 66  # including root and assuming angle-axis
            self.N_JOINTS_HAND = 15
            self.N_SHAPE_PARAMS = 10

            # VISUALIZATION
            self.COLOR_PRED = (184 / 255, 130 / 255, 0 / 255, 1.0)
            self.COLOR_GT = (15 / 255, 127 / 255, 174 / 255, 1.0)
            self.COLOR_PRED_12 = (3 / 255, 180 / 255, 138 / 255, 1.0)
            self.COLOR_BIRNN = (116 / 255, 109 / 255, 144 / 255, 1.0)

            self.SMPL_JOINTS = ['root', 'l_hip', 'r_hip', 'spine1', 'l_knee', 'r_knee', 'spine2', 'l_ankle', 'r_ankle',
                                'spine3', 'l_foot', 'r_foot', 'neck', 'l_collar', 'r_collar', 'head', 'l_shoulder',
                                'r_shoulder', 'l_elbow', 'r_elbow', 'l_wrist', 'r_wrist']
            self.SMPL_PARENTS = [-1, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 12, 13, 14, 16, 17, 18, 19]