Spaces:
Runtime error
Runtime error
from analysis.pymo.parsers import BVHParser | |
from analysis.pymo.data import Joint, MocapData | |
from analysis.pymo.preprocessing import * | |
from analysis.pymo.viz_tools import * | |
from analysis.pymo.writers import * | |
import analysis.pymo | |
import imp;imp.reload(analysis.pymo) | |
import imp;imp.reload(analysis.pymo.preprocessing) | |
from sklearn.pipeline import Pipeline | |
from analysis.pymo.rotation_tools import euler2expmap | |
import matplotlib.pyplot as plt | |
#%% | |
p = BVHParser() | |
# f="data/dance_full/aistpp_bvh/bvh/gWA_sFM_cAll_d26_mWA4_ch12.bvh" | |
# f="data/dance_full/shadermotion_data2_retarget/bvh/VRChat_Dance_2.bvh" | |
# f="data/dance_full/shadermotion_data2_retarget/bvh/VRChat_Dance_8.bvh" | |
# f="data/dance_full/kth_streetdance_data/bvh/Streetdance_001.bvh" | |
# f="data/dance_full/shadermotion_justdance/bvh/justdance_0.bvh" | |
# f="data/dance_full/vibe_dance/bvh/Take1.bvh" | |
# f="data/dance_full/shadermotion_data2_retarget/bvh/VRChat_Dance_0.bvh" | |
f1="data/dance_full/kth_streetdance_data/bvh/Streetdance_001.bvh" | |
f2="data/dance_full/shadermotion_justdance/bvh/justdance_0.bvh" | |
# f2="data/dance_full/shadermotion_justdance/bvh/justdance_1.bvh" | |
f1="/media/guillefix/SAMSUNG/mt-lightning-stuff/dance_full/shadermotion_justdance/bvh/justdance_1.bvh" | |
# f="data/dance_full/tmp/bvh/VRChat_Dance_0.bvh" | |
# f="data/dance_full/testing/VRChat_Dance_0.bvh" | |
# f="data/dance_full/tmp/bvh/VRChat_Dance_0.bvh" | |
# f="data/dance_full/testing/VRChat_Dance_0.bvh" | |
data = p.parse(f1) | |
# data2 = p.parse(f2) | |
len(data.skeleton.items()) | |
#%% | |
# print_skel(data) | |
# f="analysis/mixamo.bvh" | |
# | |
# data = p.parse(f) | |
# | |
# print_skel(data) | |
data.values["LeftFoot_Zrotation"][2] | |
data2.values["LeftFoot_Zrotation"][2] | |
data2.values["LeftFoot_Zrotation"] = data.values["LeftFoot_Zrotation"].values[:13250] | |
data2.values["LeftFoot_Xrotation"] = data.values["LeftFoot_Xrotation"].values[:13250] | |
data2.values["LeftFoot_Yrotation"] = data.values["LeftFoot_Yrotation"].values[:13250] | |
euler2expmap((data.values["LeftFoot_Zrotation"][1], data.values["LeftFoot_Xrotation"][1], data.values["LeftFoot_Yrotation"][1]), 'ZXY', True) | |
e1=euler2expmap((data2.values["LeftFoot_Zrotation"][0], data2.values["LeftFoot_Xrotation"][0], data2.values["LeftFoot_Yrotation"][0]), 'ZXY', True) | |
e2=euler2expmap((data2.values["LeftFoot_Zrotation"][1], data2.values["LeftFoot_Xrotation"][1], data2.values["LeftFoot_Yrotation"][1]), 'ZXY', True) | |
e3=euler2expmap((data2.values["LeftFoot_Zrotation"][2], data2.values["LeftFoot_Xrotation"][2], data2.values["LeftFoot_Yrotation"][2]), 'ZXY', True) | |
np.linalg.norm(e1) - np.linalg.norm(e2) | |
np.linalg.norm(e2) - np.linalg.norm(e3) | |
(2*np.pi - np.linalg.norm(e2)) - (np.linalg.norm(e3)) | |
data.values["LeftFoot_Zrotation"].mean() | |
data2.values["LeftFoot_Zrotation"].mean() | |
list(data2.values.std()) | |
list(data2.values.mean()) | |
list(data.values.mean()) | |
data.values | |
data.skeleton | |
#%% | |
# fps=60 | |
# p = BVHParser() | |
data_pipe = Pipeline([ | |
# ('dwnsampl', DownSampler(tgt_fps=fps, keep_all=False)), | |
('mir', Mirror(axis='X', append=True)), | |
('root', RootTransformer('pos_rot_deltas')), | |
('jtsel', JointSelector(['Spine', 'Spine1', 'Neck', 'Head', 'RightShoulder', 'RightArm', 'RightForeArm', 'RightHand', 'LeftShoulder', 'LeftArm', 'LeftForeArm', 'LeftHand', 'RightUpLeg', 'RightLeg', 'RightFoot', 'RightToeBase', 'LeftUpLeg', 'LeftLeg', 'LeftFoot', 'LeftToeBase'], include_root=True)), | |
# ('jtsel', JointSelector(['Spine1', 'Spine', 'Neck', 'Head', 'RightShoulder', 'RightArm', 'RightForeArm', 'RightHand', 'LeftShoulder', 'LeftArm', 'LeftForeArm', 'LeftHand', 'RightUpLeg', 'RightLeg', 'RightFoot', 'RightToeBase', 'LeftUpLeg', 'LeftLeg', 'LeftFoot', 'LeftToeBase'], include_root=True)), | |
# ('exp', MocapParameterizer('position')), | |
('exp', MocapParameterizer('expmap')), | |
('cnst', ConstantsRemover(only_cols=["Hips_Xposition", "Hips_Zposition"])), | |
# ('np', Numpyfier()) | |
]) | |
out_data = data_pipe.fit_transform([data]) | |
out_data2 = data_pipe.fit_transform([data2]) | |
out_data[0].values.columns.size | |
out_data2[0].values.columns.size | |
out_data[0].values.columns[17] | |
out_data[0].values | |
out_data2[0].values | |
out_data2[0].values["LeftFoot_beta"].std() | |
out_data2[0].values["LeftFoot_beta"].max() | |
out_data2[0].values["LeftFoot_beta"].mean() | |
out_data[0].values["LeftFoot_beta"].std() | |
out_data[0].values["LeftFoot_beta"].max() | |
out_data[0].values["LeftFoot_beta"].mean() | |
(out_data[0].values["LeftFoot_alpha"]**2 + out_data[0].values["LeftFoot_beta"]**2 + out_data[0].values["LeftFoot_gamma"]**2).mean() | |
(out_data2[0].values["LeftFoot_alpha"]**2 + out_data2[0].values["LeftFoot_beta"]**2 + out_data2[0].values["LeftFoot_gamma"]**2).mean() | |
out_data[0].values["LeftFoot_gamma"][1] | |
out_data2[0].values["LeftFoot_gamma"][3] | |
(out_data[0].values["RightFoot_alpha"]**2 + out_data[0].values["RightFoot_beta"]**2 + out_data[0].values["RightFoot_gamma"]**2).mean() | |
(out_data2[0].values["RightFoot_alpha"][10:]**2 + out_data2[0].values["RightFoot_beta"][10:]**2 + out_data2[0].values["RightFoot_gamma"][10:]**2).mean() | |
(out_data2[0].values["RightFoot_alpha"][10:]**2 + out_data2[0].values["RightFoot_beta"][10:]**2 + out_data2[0].values["RightFoot_gamma"][10:]**2).diff().max() | |
np.diff(out_data2[0].values["LeftFoot_beta"]).max() | |
np.diff(out_data[0].values["LeftFoot_beta"]).max() | |
out_data[0].shape | |
inv_data = data_pipe.inverse_transform(out_data) | |
inv_data[0] == data | |
data.values | |
inv_data[0].values | |
# out_data[0][0] | |
# out_data[0].values.columns | |
# video_file = "analysis/tmp/Streetdance_001.mp4" | |
# video_file = "analysis/tmp/sm01.mp4" | |
video_file = "analysis/tmp/sm01b.mp4" | |
render_mp4(out_data[0], video_file, axis_scale=3, elev=45, azim=45) | |
# render_mp4(out_data[0], video_file, axis_scale=100, elev=45, azim=45) | |
# audio_file = "data/dance_full/kth_streetdance_data/music/Streetdance_001.wav" | |
# audio_file = "data/dance_full/vibe_dance/audio/audio_001.wav" | |
# audio_file = "data/dance_full/shadermotion_data2_retarget/audio/VRChat\ Dance_0.wav" | |
audio_file = "data/dance_full/testing/VRChat_Dance_0.mp3" | |
# audio_file = "data/dance_full/tmp/audio/VRChat\ Dance_0.wav" | |
from analysis.visualization.utils import generate_video_from_images, join_video_and_audio | |
join_video_and_audio(video_file, audio_file, 0) | |
yposs = list(filter(lambda x: x.split("_")[1]=="Yposition", out_data[0].values.columns)) | |
out_data[0].values[yposs].iloc[100:].min().min() | |
out_data[0].values[yposs].min() | |
out_data[0].values[yposs].iloc[10:] | |
out_data[0].values["Hips_Yposition"].iloc[52] | |
# out_data[0].values | |
out_data.shape | |
out_data[0,:10,-1] | |
bvh_data=data_pipe.inverse_transform(out_data) | |
writer = BVHWriter() | |
with open('analysis/tmp/test.bvh','w') as f: | |
writer.write(bvh_data[0], f) | |
#### | |
last_index = data.values[(data.values["Hips_Xposition"] > 100000) | (data.values["Hips_Xposition"] < -100000)].index[-1] | |
data.values.loc[last_index:].iloc[1:] | |
################## | |
import numpy as np | |
a = np.load("inference/generated_1/transflower_expmap_finetune2/predicted_mods/aistpp_gBR_sBM_cAll_d04_mBR0_ch10.expmap_scaled_20.generated.npy") | |
a[:2,0,-9:] | |
######################## | |
#%% | |
# import pickle | |
import joblib as jl | |
data_pipe = jl.load(open("data/dance_combined/motion_expmap_cr_scaled_20_data_pipe.sav", "rb")) | |
data = np.load("data/dance_combined/justdance_0_mirrored.bvh_expmap_cr.npy") | |
data = np.load("data/dance_combined/justdance_0.bvh_expmap_cr.npy") | |
bvh_data=data_pipe.inverse_transform([data]) | |
writer = BVHWriter() | |
with open('analysis/tmp/test.bvh','w') as f: | |
writer.write(bvh_data[0], f) | |