Issue with Rough Meshes in Reconstructed Shapes when Adding Simpler Geometries in Larger Dataset

Hi Shapeworks Community,

I’m encountering an issue with rough meshes when reconstructing target shapes using mode coefficients. Previously, I used 7 first metacarpal models to generate the mean shape and mode shapes in Shapeworks, and I was able to smoothly reconstruct target shapes using this setup (with the mode shape generated from app). However, after applying the same method to the dataset that contain 18 trapezium models (1 virtual anatomy model (less meshes) + 17 real case models) and following the same reconstruction approach, the virtual one appear much rougher, whereas others perform well. We have confirmed that all the shape is well-aligned, I’m considering a few possible reasons for this issue:

  1. Dataset Variation: The anatomy models in this dataset may have inconsistent mesh quality, with some models being rough and others smooth, which might affect the reconstruction quality, for example, we add the virtual anatomy model into analysis, which only consist of 300 faces (we resampled it to 9k), while the other 17 sample is the real case meshes from CT that contain over 10k faces.

  2. Increased Complexity: Adding more shapes to the dataset may inherently increase reconstruction complexity, impacting mesh smoothness.

  3. Optimization Parameters: Perhaps certain optimization parameters in Shapeworks need adjustment for the larger dataset.

Has anyone else experienced this when scaling up the dataset and add some simpler geometry, or does anyone have suggestions on adjustments I might try? Any insights would be greatly appreciated!

Thank you!

When using 7 case data to analysis SSM model:
Here is the reconstructed meshes by analyzing 7 models.

Here is the reconstructed meshes by analyzing 18 models.

Hi Shapeworks Community,

I wanted to share an update regarding the rough mesh issue I previously described. Interestingly, I managed to get much smoother reconstruction results by simply changing the order of the data (while still using the same 18 first metacarpal cases).

This raises a new question: Why does the order of the data affect the reconstruction results, even though the dataset remains unchanged? I’m curious if this could be related to how Shapeworks processes the input data during optimization or PCA computation.

If anyone has insights into why the order of data might impact the results or how to ensure consistent outcomes regardless of data order, I’d love to hear your thoughts!

Thank you for your help and suggestions!

Hi @Alexzeng, sorry for the late reply.

Mesh reconstruction in shapeworks is based on LibIGL biharmonic shape deformation:

To accomplish this, we must pick a template (reference) mesh from the data. We are currently using the median shape as determined by the shape model. So the reconstruction will tend to be influenced by the shape that is determined to be the median. Re-ordering the data could affect the initial alignment and change the model in such a way as to affect the median shape computation, resulting in a different template mesh.

We have not yet added a method of manually selecting a template mesh, but this is on our todo list:

Hi @amorris,

Thank you for your response! I now have a better understanding of the concept behind this analysis.

However, I still wonder why changing the data order, while using the same calculated coefficients to reconstruct the original sample meshes, causes some previously rough cases to become smoother and some previously smooth cases to appear rougher. Additionally, how does ShapeWorks determine which case is chosen as the median shape? And what case shape should I choose to be median one?

Thank you for your clarification!

ShapeWorks chooses the median shape by finding the shape that is closest to all other shapes (in the global space). This is done by adding up the particle-particle distance for each shape and finding the shape that has the minimum sum of particle-particle distances (L1 Norm).

When you are changing the data order, is this before or after grooming/optimization? If you are only changing it after the optimization, then I would expect it to still find the same median shape.

Is there a chance you can share the data with me? amorris@sci.utah.edu

I’ve had a chance to look at your data. I’m not seeing any particular difference between the two projects. In both cases, it has chosen mesh_3 as the median shape. The reconstructions for the mean and other shapes are poor because the correspondence has swapped particles. In both cases, the mean reconstruction looks roughly like this:

You can see in the samples view that mesh_3 is smooth because it is the reference template.

To examine the particle correspondence between shapes, we have a few options. The easiest is to look at how the particles move with the PCA animation. I can’t post a video easily, but if you play the animation, you will see that particles are crossing over each other in different directions. In a correct correspondence, they should stay in roughly the same relative position to each other and move smoothly.

You can examine particular correspondence points by pressing the ‘1’ and ‘2’ keys while hovering over them.

For example, here I have chosen adjacent particles on one shape and I can see that they are sometimes not neighbors on other shapes or have very different orientations.

Hi @amorris,

Thank you for your detailed response and for taking the time to check my dataset!

If the roughness of the mesh surfaces is caused by particles crossing over each other in different directions, is there a recommended solution to address this issue? Additionally, when performing statistical shape analysis, what steps can be taken to ensure smoother mesh surfaces?

I greatly appreciate your guidance and suggestions!

To perform the shape analysis properly, you will need a model with good correspondence. It can be challenging depending on the dataset. I recommend starting at a lower particle size (e.g. 128) and tweak parameters are you move to higher particle counts. If you aren’t getting a good model at 128, it’s likely to only get worse at higher particle counts.

Hi @amorris ,

Thank you for your response!
I have examined my dataset and analyzed it using 128 particles. Below is the result I obtained:

Upon reviewing specific correspondence points, I noticed that the particle positions for two of the datasets appear to be reversed. Could this issue be related to the original dataset, or is it caused by some parameter settings? What steps would you recommend to resolve this problem?

Thank you for your clarification!

I am not sure what optimization parameters you are using, but I would suggest boosting the number of iterations per split to at least 2000 or 3000. You might try increasing the initial relative weighting by 25-50%.

Hi @amorris ,

Thank you for your response!

I adjusted the parameters for the iterations per split and initial relative weighting, and the particle positions no longer seem to reverse.

However, I’m curious about the mesh flip issue that appears on the analyzed samples, as shown in the image below:

Is there a way to fix this situation?

For your reference, here are the optimization parameters I used:

Additionally, I’ve sent the project file to you via email for further investigation, if needed.
Thank you for taking the time to review this. I greatly appreciate your guidance and any suggestions you might have!

Best regards,
Alex