shape model evaluations (generality, specificity, compactness, sufficiency)

241 views
Skip to first unread message

S Arbabi

unread,
Jan 31, 2022, 7:39:07 PM1/31/22
to scalismo
Dear Scalismoers,

I would be really thankful if you could have a look at the 4 attached figures (generality, specificity, compactness and sufficiency), and give your comment on the results I'm getting from evaluating the ssm that I generated using Scalismo. do you see that as acceptable results? I wanted to check it with you.
Any comment is highly appreciated.

p.s.1 in the sufficiency test by gradually increasing the training set size I create the ssm, and by projecting the generated ssm on a shape outside the training set I try to evaluate the effect of training set size.
p.s.2 the min-max lines for specificity and sufficiency are showing min and max of 20 repetition of experiment, and generality is based on a full cross-validation
p.s.3 the reconstruction error is calculated by average over euclidean distance between all corresponding point on two surfaces
p.s. the voxel size is 0.98x0.98x0.7

Best regards,
Saeed

specificity.jpg
sufficiency.jpg
generality.jpg
compactness.jpg

S Arbabi

unread,
Feb 2, 2022, 8:11:54 AM2/2/22
to scalismo
About the choice of distance function between surfaces, I was curious why in the definition of MeshMetrics.procrustesDistance alignment is done, but in MeshMetrics.avgDistance no alignment is performed prior to calculating the Cartesian distance.
Which one is a better measurement to report?
In specification test, any instance of the shape model is in correspondence with the (registered) training shapes. so is it better to use point to point distance or a point to surface? and is it needed to still do alignment? I believe when we do the shape model sampling, the sampled shape will be in alignment with the (registered) training shapes.

Best,
Saeed

Marcel Luethi

unread,
Feb 3, 2022, 3:35:40 AM2/3/22
to S Arbabi, scalismo
Dear Saeed

If you have correspondence, I find procrustes distance to be the better measure to report, because the alignment step comes for free and always improves the distance compared to the average distance. Hence I think there is no reason not to do it. But in other fitting applications, you simply do not have correspondence to the target shape and hence you need the average distance.

Regarding surface distance: I usually prefer the distance to the surface rather than the closest point. The reason is that the surface distance does not depend on the discretization. If you have a coarse discretization, you could end up with quite some error.

Best regards,
Marcel

--
You received this message because you are subscribed to the Google Groups "scalismo" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scalismo+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scalismo/786470c8-b568-44fd-b320-272c37ba36c5n%40googlegroups.com.
Message has been deleted

Gregory Lahman

unread,
Feb 11, 2023, 8:19:42 AM2/11/23
to scalismo
How do you calculate these types of graphs?

Marcel Luethi

unread,
Feb 13, 2023, 4:50:56 AM2/13/23
to Gregory Lahman, scalismo
Dear Gregory

You can create a ScalarMeshField, which has as a one of the two meshes and as values the distance to the closest point. The following function would compute such a field:
def distanceColoredMesh(mesh1 : TriangleMesh[_3D], mesh2 : TriangleMesh[_3D]) : ScalarMeshField[Double] =
{
val distances = mesh1.pointSet.points.map(point => mesh2.operations.closestPoint(point).distance)
ScalarMeshField(mesh1, distances.toIndexedSeq)
}
It can be visualized in ScalismoUI using the show function:
val ui = ScalismoUI()
val mesh1 : TriangleMesh[_3D] = ???
val mesh2 : TriangleMesh[_3D] = ???
ui.show(distanceColoredMesh(mesh1, mesh2), "distance")
Best regards,

Marcel


Gregory Lahman

unread,
Feb 17, 2023, 4:00:57 PM2/17/23
to scalismo
I meant how did the original author calculate the graphs they asked to be evaluated?

S Arbabi

unread,
Jun 3, 2023, 3:08:33 AM6/3/23
to scalismo
Hi,

all shape model evaluations are detailed as pseudo code and discussed in this paper:
https://onlinelibrary.wiley.com/doi/pdfdirect/10.1002/jor.25328

Kind regards,
Saeed
Reply all
Reply to author
Forward
0 new messages