NaughtyZZ / 3D_face_dense_registration

Towards Fine-Grained Optimal 3D Face Dense Registration: An Iterative Dividing and Diffusing Method (IJCV2023)
https://github.com/NaughtyZZ/3D_face_dense_registration/tree/main
52 stars 4 forks source link

Inquiry about Template and Weights for Geodesic Distances Calculation in scratch folder #9

Closed qaz8788817 closed 3 months ago

qaz8788817 commented 4 months ago

Hello, I have CT scan images at hand, and I use 3D Slicer to segment facial skin and bones. However, the 3D facial images I segmented have significant issues, including scattered vertices and uneven surfaces. Therefore, I want to use this registration method to remove and correct these problematic areas.

I'd like to ask if the template in your scratch folder is generated from an average of all FaceScape facial scans? Also, what is used as a reference to calculate geodesic distances in the template's weights.txt file?

I attempted to register my facial model using the template in your scratch folder, but the generated result doesn't resemble the original input facial shape. I understand that differences in data attributes can cause output errors, but I want to try modifying weights.txt or regenerating the template to see if it improves the result. Here is my target and output: image

Regenerating the template would likely be the best solution, but my current facial model doesn't provide a smooth, noise-free template.

Please correct me if my assumptions are wrong. Thank you.

NaughtyZZ commented 4 months ago

I am sorry that I cannot locate your problem. The template is not a problem, you can use any templates you want. You can also refer to another closed issue for the computation of weights.txt. You may output the intermediate results to locate the problem.

NaughtyZZ commented 4 months ago

The input data may also have irregular vertices, you may need to clean the original mesh to avoid these interferes. E.g. remove issolated and unreferenced vertices and triangles. Generally, this method can deform the template to match/adhere to the target to any desired extent while keeping exact landmark correspondences you marked. It also divides the surface uniformly referring to the template grid architectures. For data of different scale from mine, you may need to tune the stopping criterion (Mine is 0.001, and this value is influences by data scale. You may set the iteration times to fixed 100).

qaz8788817 commented 4 months ago

Hi, thank you for your response.

I apologize for not explaining the problem very precisely. My issue is that when I use my target for registration, the output generated is not similar to the face shape of the target (as shown in the image). I initially thought it was an issue with the template and weights.txt.

However, after your explanation, I think the problem lies in the need to tidy up and clean the coordinates of my target.ply, ensuring the positions of landmarks, and then proceeding with registration.

Thank you.