explore tailornet dataset
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import os
|
||||
import numpy as np
|
||||
import plotly.express as ex
|
||||
from simpleicp import PointCloud, SimpleICP
|
||||
from scipy.spatial.distance import cdist
|
||||
|
||||
folder = '/home/workspace/data/dataset/tailornet'
|
||||
|
||||
def get_data_split():
|
||||
data = np.load(os.path.join(folder, 'split_static_pose_shape.npz'))
|
||||
return data['train'], data['test']
|
||||
|
||||
|
||||
def get_garment_info(garment_class):
|
||||
data = np.load(os.path.join(folder, 'garment_class_info.pkl'), allow_pickle=True)
|
||||
return data[garment_class]
|
||||
|
||||
|
||||
def get_smpl():
|
||||
data = np.load(os.path.join('TailorNet_dataset/smpl/smpl_female.npz'), allow_pickle=True)
|
||||
data_high_res = np.load(os.path.join('TailorNet_dataset/smpl/smpl_hres_female.npz'), allow_pickle=True)
|
||||
supersmpl = np.load(os.path.join('custom_utils/super_model_f.pkl'), allow_pickle=True)
|
||||
|
||||
return data_high_res['v_template'], supersmpl['v_template']
|
||||
|
||||
print()
|
||||
|
||||
|
||||
def register_smpl(verts_1, verts_2):
|
||||
|
||||
# Create point cloud objects
|
||||
pc_fix = PointCloud(verts_1, columns=["x", "y", "z"])
|
||||
pc_mov = PointCloud(verts_2, columns=["x", "y", "z"])
|
||||
|
||||
# Create simpleICP object, add point clouds, and run algorithm!
|
||||
icp = SimpleICP()
|
||||
icp.add_point_clouds(pc_fix, pc_mov)
|
||||
H, X_mov_transformed, rigid_body_transformation_params = icp.run(correspondences=10000, min_change=0.01, neighbors=25)
|
||||
|
||||
dist = cdist(verts_1, X_mov_transformed)
|
||||
matching_dist = np.min(dist, axis=1)
|
||||
matching = np.argmin(dist, axis=1)
|
||||
|
||||
|
||||
print()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
train_split, test_split = get_data_split()
|
||||
garment_info = get_garment_info('old-t-shirt')
|
||||
smpl = get_smpl()
|
||||
tailornet_smpl, super_smpl = get_smpl()
|
||||
# registration = register_smpl(super_smpl, tailornet_smpl)
|
||||
|
||||
print()
|
||||
Reference in New Issue
Block a user