Hi Jodri,
Ideally, it would be a shape close to the average shape. But this can of course be difficult to exactly determine since the shapes are still not in correspondence.
I usually choose one by visualizing a larger set of shapes.
Then for better and faster registrations, I also tend to do some manual cleanup of the shape:
- Remesh the mesh to have the desired distribution of points. This can be done in e.g. meshlab. Scalismo also has a very simple way to decimate meshes with:
val mesh: TriangleMesh[_3D] = ???
mesh.operations.decimate(NUM_OF_VETICES)
If your original mesh has millions of vertices, but you might only need a few thousand, this will dramatically speed up the computation of GPMMs and later on registration with the model.
- Depending on the shape, I often also do some smoothing - either automatic in meshlab or manually in meshmixer. This is mainly to remove small biases from the reference shape. Spending just a little extra time on designing the reference shape will usually also help you in the registration process.
I would also love to hear if anyone else has a better workflow for choosing the reference shape.
Best
Dennis