Spaces:
Sleeping
Sleeping
import os | |
from yacs.config import CfgNode as CN | |
class config_base(): | |
def __init__(self): | |
self.cfg = CN() | |
def get_cfg(self): | |
return self.cfg.clone() | |
def load(self,config_file): | |
self.cfg.defrost() | |
self.cfg.merge_from_file(config_file) | |
def freeze(self): | |
self.cfg.freeze() | |
class config_train(config_base): | |
def __init__(self): | |
super(config_train, self).__init__() | |
self.cfg.gpu_id = 0 # which gpu is used | |
self.cfg.load_meshhead_checkpoint = '' # checkpoint path of mesh head | |
self.cfg.load_gaussianhead_checkpoint = '' # checkpoint path of gaussian head | |
self.cfg.load_supres_checkpoint = '' # checkpoint path of super resolution network | |
self.cfg.load_delta_poses_checkpoint = '' # checkpoint path of per-frame offset of head pose | |
self.cfg.lr_net = 0.0 # learning rate for models and networks | |
self.cfg.lr_lmk = 0.0 # learning rate for 3D landmarks | |
self.cfg.lr_pose = 0.0 # learning rate for delta_poses | |
self.cfg.batch_size = 1 # recommend batch_size = 1 | |
self.cfg.optimize_pose = False # optimize delta_poses or not | |
self.cfg.dataset = CN() | |
self.cfg.dataset.dataroot = '' # root of the dataset | |
self.cfg.dataset.camera_ids = [] # which cameras are used | |
self.cfg.dataset.original_resolution = 2048 # original image resolution, should match the intrinsic | |
self.cfg.dataset.resolution = 512 # image resolution for rendering | |
self.cfg.dataset.num_sample_view = 8 # number of sampled images from different views during mesh head training | |
self.cfg.meshheadmodule = CN() | |
self.cfg.meshheadmodule.geo_mlp = [] # dimensions of geometry MLP | |
self.cfg.meshheadmodule.exp_color_mlp = [] # dimensions of expression color MLP | |
self.cfg.meshheadmodule.pose_color_mlp = [] # dimensions of pose color MLP | |
self.cfg.meshheadmodule.exp_deform_mlp = [] # dimensions of expression deformation MLP | |
self.cfg.meshheadmodule.pose_deform_mlp = [] # dimensions of pose deformation MLP | |
self.cfg.meshheadmodule.pos_freq = 4 # frequency of positional encoding | |
self.cfg.meshheadmodule.model_bbox = [] # bounding box of the head model | |
self.cfg.meshheadmodule.dist_threshold_near = 0.1 # threshold t1 | |
self.cfg.meshheadmodule.dist_threshold_far = 0.2 # thresgold t2 | |
self.cfg.meshheadmodule.deform_scale = 0.3 # scale factor for deformation | |
self.cfg.meshheadmodule.subdivide = False # subdivide the tetmesh (resolution: 128 --> 256) or not | |
self.cfg.supresmodule = CN() | |
self.cfg.supresmodule.input_dim = 32 # input dim, equal to the channel number of the multi-channel color | |
self.cfg.supresmodule.output_dim = 3 # output dim, euqal to the channel number of the final image | |
self.cfg.supresmodule.network_capacity = 64 # dimension of the network's last conv layer | |
self.cfg.gaussianheadmodule = CN() | |
self.cfg.gaussianheadmodule.num_add_mouth_points = 0 # number of the points added around mouth landmarks while initialization | |
self.cfg.gaussianheadmodule.exp_color_mlp = [] # dimensions of expression color MLP | |
self.cfg.gaussianheadmodule.pose_color_mlp = [] # dimensions of pose color MLP | |
self.cfg.gaussianheadmodule.exp_attributes_mlp = [] # dimensions of expression attribute MLP | |
self.cfg.gaussianheadmodule.pose_attributes_mlp = [] # dimensions of pose attribute MLP | |
self.cfg.gaussianheadmodule.exp_deform_mlp = [] # dimensions of expression deformation MLP | |
self.cfg.gaussianheadmodule.pose_deform_mlp = [] # dimensions of pose deformation MLP | |
self.cfg.gaussianheadmodule.exp_coeffs_dim = 64 # dimension of the expression coefficients | |
self.cfg.gaussianheadmodule.pos_freq = 4 # frequency of positional encoding | |
self.cfg.gaussianheadmodule.dist_threshold_near = 0.1 # threshold t1 | |
self.cfg.gaussianheadmodule.dist_threshold_far = 0.2 # thresgold t2 | |
self.cfg.gaussianheadmodule.deform_scale = 0.3 # scale factor for deformation | |
self.cfg.gaussianheadmodule.attributes_scale = 0.05 # scale factor for attribute offset | |
self.cfg.recorder = CN() | |
self.cfg.recorder.name = '' # name of the avatar | |
self.cfg.recorder.logdir = '' # directory of the tensorboard log | |
self.cfg.recorder.checkpoint_path = '' # path to the saved checkpoints | |
self.cfg.recorder.result_path = '' # path to the visualization results | |
self.cfg.recorder.save_freq = 1 # how often the checkpoints are saved | |
self.cfg.recorder.show_freq = 1 # how often the visualization results are saved | |
class config_reenactment(config_base): | |
def __init__(self): | |
super(config_reenactment, self).__init__() | |
self.cfg.gpu_id = 0 # which gpu is used | |
self.cfg.load_gaussianhead_checkpoint = '' # checkpoint path of gaussian head | |
self.cfg.load_supres_checkpoint = '' # checkpoint path of super resolution network | |
self.cfg.dataset = CN() | |
self.cfg.dataset.dataroot = '' # root of the dataset | |
self.cfg.dataset.image_files = '' # file names of input images | |
self.cfg.dataset.param_files = '' # file names of BFM parameters (head pose and expression coefficients) | |
self.cfg.dataset.camera_path = '' # path of a specific camera | |
self.cfg.dataset.pose_code_path = '' # path of a specific pose code (as network input) | |
self.cfg.dataset.exp_path = '' # path of a specific expression code (as network input) | |
self.cfg.dataset.freeview = False # freeview rendering or using the specific camera | |
self.cfg.dataset.original_resolution = 2048 # original image resolution, should match the intrinsic | |
self.cfg.dataset.resolution = 512 # image resolution for rendering | |
self.cfg.supresmodule = CN() | |
self.cfg.supresmodule.input_dim = 32 # input dim, equal to the channel number of the multi-channel color | |
self.cfg.supresmodule.output_dim = 3 # output dim, euqal to the channel number of the final image | |
self.cfg.supresmodule.network_capacity = 64 # dimension of the network's last conv layer | |
self.cfg.gaussianheadmodule = CN() | |
self.cfg.gaussianheadmodule.num_add_mouth_points = 0 # number of the points added around mouth landmarks while initialization | |
self.cfg.gaussianheadmodule.exp_color_mlp = [] # dimensions of expression color MLP | |
self.cfg.gaussianheadmodule.pose_color_mlp = [] # dimensions of pose color MLP | |
self.cfg.gaussianheadmodule.exp_attributes_mlp = [] # dimensions of expression attribute MLP | |
self.cfg.gaussianheadmodule.pose_attributes_mlp = [] # dimensions of pose attribute MLP | |
self.cfg.gaussianheadmodule.exp_deform_mlp = [] # dimensions of expression deformation MLP | |
self.cfg.gaussianheadmodule.pose_deform_mlp = [] # dimensions of pose deformation MLP | |
self.cfg.gaussianheadmodule.exp_coeffs_dim = 64 # dimension of the expression coefficients | |
self.cfg.gaussianheadmodule.pos_freq = 4 # frequency of positional encoding | |
self.cfg.gaussianheadmodule.dist_threshold_near = 0.1 # threshold t1 | |
self.cfg.gaussianheadmodule.dist_threshold_far = 0.2 # thresgold t2 | |
self.cfg.gaussianheadmodule.deform_scale = 0.3 # scale factor for deformation | |
self.cfg.gaussianheadmodule.attributes_scale = 0.05 # scale factor for attribute offset | |
self.cfg.recorder = CN() | |
self.cfg.recorder.name = '' # name of the avatar | |
self.cfg.recorder.result_path = '' # path to the visualization results |