Download data_utils/face_tracking/convert_BFM.py from FredWe/ER-NeRF-models: direct link, hf CLI and curl.
- Browser
- Download file 1.19 kB
-
https://huggingface.co/FredWe/ER-NeRF-models/resolve/main/data_utils/face_tracking/convert_BFM.py
- Command line
-
hf download hf://FredWe/ER-NeRF-models/data_utils/face_tracking/convert_BFM.py
-
curl -L -o convert_BFM.py https://huggingface.co/FredWe/ER-NeRF-models/resolve/main/data_utils/face_tracking/convert_BFM.py
1.19 kB
| import numpy as np | |
| from scipy.io import loadmat | |
| original_BFM = loadmat("3DMM/01_MorphableModel.mat") | |
| sub_inds = np.load("3DMM/topology_info.npy", allow_pickle=True).item()["sub_inds"] | |
| shapePC = original_BFM["shapePC"] | |
| shapeEV = original_BFM["shapeEV"] | |
| shapeMU = original_BFM["shapeMU"] | |
| texPC = original_BFM["texPC"] | |
| texEV = original_BFM["texEV"] | |
| texMU = original_BFM["texMU"] | |
| b_shape = shapePC.reshape(-1, 199).transpose(1, 0).reshape(199, -1, 3) | |
| mu_shape = shapeMU.reshape(-1, 3) | |
| b_tex = texPC.reshape(-1, 199).transpose(1, 0).reshape(199, -1, 3) | |
| mu_tex = texMU.reshape(-1, 3) | |
| b_shape = b_shape[:, sub_inds, :].reshape(199, -1) | |
| mu_shape = mu_shape[sub_inds, :].reshape(-1) | |
| b_tex = b_tex[:, sub_inds, :].reshape(199, -1) | |
| mu_tex = mu_tex[sub_inds, :].reshape(-1) | |
| exp_info = np.load("3DMM/exp_info.npy", allow_pickle=True).item() | |
| np.save( | |
| "3DMM/3DMM_info.npy", | |
| { | |
| "mu_shape": mu_shape, | |
| "b_shape": b_shape, | |
| "sig_shape": shapeEV.reshape(-1), | |
| "mu_exp": exp_info["mu_exp"], | |
| "b_exp": exp_info["base_exp"], | |
| "sig_exp": exp_info["sig_exp"], | |
| "mu_tex": mu_tex, | |
| "b_tex": b_tex, | |
| "sig_tex": texEV.reshape(-1), | |
| }, | |
| ) | |