zjumsj / GaussianBlendshapes

GNU General Public License v3.0
80 stars 7 forks source link

how to calculate mouth_offset #5

Open wang-yating opened 1 day ago

wang-yating commented 1 day ago

hi~ I'm wondering how to calculate offset.txt in the provided sample dataset for my own dataset and what's the meaning of mouth offset.

I didn't provide offset.txt and use default mouth_offset = np.array([3.3226e-4, 2.29566e-3, -1.21933e-3],dtype=np.float32) .But I found the code crashes with reporting "RuntimeError: CUDA error: an illegal memory access was encountered" when training with frames of extremely mouth opening. I guess default mouth_offset causes this error, but I'm not sure.

If convenient, could you please explain it?

thank you~

zjumsj commented 1 day ago

mouth_offset is used to adjust the initial position of the teeth billboards. I determined the offset based on each subject's lip position in neutral pose. However, the algorithm should not be sensitive to this parameter (e.g. subject1-4 use the same offset setting). I suspect that other factors may be causing the issue.

wang-yating commented 21 hours ago

Thank you for replying!

I'm trying to extend the code to reconstruct multi-view face view dataset nersemble by concating multi-view videos to a single viewo. This is the input image and tracked flame mesh which caused code crash. 00168 snapshot01

I checked again and I found the splats number of lower mouth_gaussian_model is decreasing as the iteration grows. Finally the splats number becomes 0 then code crashes. Do you have any suggestions about how to avoid decreasing splats number?

Thank you again~

zjumsj commented 21 hours ago

The most straightforward approach is to modify the threshold of densify_and_prune to change the speed of point deletion, or to simply comment it out to disable it. It's interesting that the number of points can reach zero. I haven't encountered this issue before.