You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.3 KiB
35 lines
1.3 KiB
# Copyright (c) OpenMMLab. All rights reserved.
|
|
import os
|
|
import pickle
|
|
|
|
import numpy as np
|
|
from scipy.sparse import csc_matrix
|
|
|
|
|
|
def generate_smpl_weight_file(output_dir):
|
|
"""Generate a SMPL model weight file to initialize SMPL model, and generate
|
|
a 3D joints regressor file."""
|
|
|
|
if not os.path.exists(output_dir):
|
|
os.makedirs(output_dir)
|
|
|
|
joint_regressor_file = os.path.join(output_dir, 'test_joint_regressor.npy')
|
|
np.save(joint_regressor_file, np.zeros([24, 6890]))
|
|
|
|
test_data = {}
|
|
test_data['f'] = np.zeros([1, 3], dtype=np.int32)
|
|
test_data['J_regressor'] = csc_matrix(np.zeros([24, 6890]))
|
|
test_data['kintree_table'] = np.zeros([2, 24], dtype=np.uint32)
|
|
test_data['J'] = np.zeros([24, 3])
|
|
test_data['weights'] = np.zeros([6890, 24])
|
|
test_data['posedirs'] = np.zeros([6890, 3, 207])
|
|
test_data['v_template'] = np.zeros([6890, 3])
|
|
test_data['shapedirs'] = np.zeros([6890, 3, 10])
|
|
|
|
with open(os.path.join(output_dir, 'SMPL_NEUTRAL.pkl'), 'wb') as out_file:
|
|
pickle.dump(test_data, out_file)
|
|
with open(os.path.join(output_dir, 'SMPL_MALE.pkl'), 'wb') as out_file:
|
|
pickle.dump(test_data, out_file)
|
|
with open(os.path.join(output_dir, 'SMPL_FEMALE.pkl'), 'wb') as out_file:
|
|
pickle.dump(test_data, out_file)
|
|
return
|
|
|