philgras / neural-head-avatars

Official PyTorch implementation of "Neural Head Avatars from Monocular RGB Videos"
538 stars 74 forks source link

optimize_tracking.py error #22

Open Chromer163 opened 2 years ago

Chromer163 commented 2 years ago

hello, thanks for your contribution! I met a problem when I run python deps/video-head-tracker/vht/optimize_tracking.py --config configs/tracking.ini, the log is as below: Traceback (most recent call last): File "/data/yango/code/neural-head-avatars/deps/video-head-tracker/vht/optimize_tracking.py", line 59, in <module> main() File "/data/yango/code/neural-head-avatars/deps/video-head-tracker/vht/optimize_tracking.py", line 55, in main tracker.optimize() File "/data/yango/code/neural-head-avatars/deps/video-head-tracker/vht/model/tracking.py", line 294, in optimize E_total, log_dict, verts, lmks, albedos = self._compute_energy( File "/data/yango/code/neural-head-avatars/deps/video-head-tracker/vht/model/tracking.py", line 831, in _compute_energy rasterization_results = self._rasterize_flame( File "/data/yango/code/neural-head-avatars/deps/video-head-tracker/vht/model/tracking.py", line 656, in _rasterize_flame render_result = self._render.rasterize(flame_meshes, cameras, (H, W), use_cache) File "/data/yango/code/neural-head-avatars/deps/video-head-tracker/vht/util/render.py", line 160, in rasterize cameras.get_ndc_camera_transform() File "/data/yango/code/neural-head-avatars/pytorch3d/pytorch3d/renderer/cameras.py", line 1198, in get_ndc_camera_transform screen_to_ndc_transform = get_screen_to_ndc_transform( File "/data/yango/code/neural-head-avatars/pytorch3d/pytorch3d/renderer/cameras.py", line 1824, in get_screen_to_ndc_transform transform = get_ndc_to_screen_transform( File "/data/yango/code/neural-head-avatars/pytorch3d/pytorch3d/transforms/transform3d.py", line 277, in inverse i_matrix = self._get_matrix_inverse() File "/data/yango/code/neural-head-avatars/pytorch3d/pytorch3d/transforms/transform3d.py", line 247, in _get_matrix_inverse return torch.inverse(self._matrix) torch._C._LinAlgError: cusolver error: CUSOLVER_STATUS_EXECUTION_FAILED, when callingcusolverDnSgetrf( handle, m, n, dA, ldda, static_cast<float*>(dataPtr.get()), ipiv, info). This error may appear if the input matrix contains NaN.

in which I create my own dataset from a self-made video, and when I run optimize_tracking I met this problem~ Any suggestions, thanks~

Chromer163 commented 2 years ago

BTW, the tracking.ini is as below: `[dataset] data_path = 'linwei/'

[model] n_shape = 300 n_expr = 100 n_tex = 100 tex_res = 512

[training] device = cuda output_path = output calibrated = false ignore_lower_neck = true img_log_freq = 50 energy_log_freq = 5 ; keyframes = [0, 110, 150, 200, 265, 300, 380, 500, 640, 735, 812, 875, 917] keyframes =[200] [hyper params] init_steps = 400 steps_per_frame = 10 sub_steps = 5 lr = 0.005 pos_lr = 0.001 light_lr = 0.005 cam_lr = 0.005

blur_sigma = [10, 1e-4] sampling_scale = 4

w_lmk = 5 w_eyes_sym = 10 w_eyes_lmk = 2 w_photo = 30

w_expr_reg = 1e-3 w_shape_reg = 1e-3 w_tex_reg = 1e-3

w_pos_glob = 1e-2 w_pos_neck = 1e-2 w_pos_jaw = 1e-4 w_pos_eyes = 1e-4 w_pos_trans = 10 `