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:
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.
Increased Complexity: Adding more shapes to the dataset may inherently increase reconstruction complexity, impacting mesh smoothness.
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.
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!
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:
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?
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:
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.
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.
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?
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%.
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!