Question
Asked 10th Dec, 2013

What kind of metrics can I use to compare two 3D surfaces?

Let's say I want to compare an algorithm-generated surface to a ground truth surface. So far, I am using overlapping metrics (Dice similarity coefficient), volume and surface distance metrics (maximum and mean distance errors). However, I need to perform further evaluations of morphology, smoothness, and topological measures of the surface etc. Is there an existing software package which computes such metrics?

30th Mar, 2020
Rance Tino
Peter MacCallum Cancer Centre
Naveen Jafer Nizar You can use Meshlab's alignment module and further use hausdorff distance as a comparison metric (Under Filters> Sampling > Hausdorff Distance).
Best of luck!
1 Recommendation

12th Dec, 2013
Edward J Ciaccio
Columbia University
You could build models of the surface features based on a syntax, and then detect and compare their dimensions. For example -
Use of shape-from-shading to estimate three-dimensional architecture in the small intestinal lumen of celiac and control patients.
Ciaccio EJ, Tennyson CA, Bhagat G, Lewis SK, Green PH.
Comput Methods Programs Biomed. 2013;111:676-684.
13th Dec, 2013
Patrice J. Delmas
University of Auckland
These are 2 different questions.
For the 2nd one I would look into the countless packages available with imageJ. Worse case scenario you can reuse existing codes from various plugins to solve your problem.
13th Dec, 2013
Christos Stentoumis
National Technical University of Athens
You can try out meshlab. It incorporates many functions to compute different distances between surfaces. You can also use ICP algorithm to calculate an rms for matching the two surfaces.
1 Recommendation
13th Dec, 2013
Sergio Vera
without seeing your surfaces (are they closed surfaces?) is hard to tell. We've done a couple of works where surface distances are a key metric in the evaluation: http://link.springer.com/article/10.1007%2Fs00138-013-0490-4
look for Symmetric Surface Distance. It's implementation it's straighforward in matlab for instance.
Regards
1 Recommendation
13th Dec, 2013
Jesus Cortes-Rodicio
OSI Araba, Osakidetza
Did you try the package CloudCompare?
I think it could be useful, although you should convert the 3D surfaces into point-clouds.
Regards
13th Dec, 2013
Eranga Ukwatta
University of Guelph
Thanks for your useful answers. In particular, my problem is to compare 3D cardiac scar tissue surfaces generated using different reconstruction/interpolation methods to a ground truth surface. I would like not to use point-wise distance based metrics because scar tissues surface can comprise of many isolated sub-regions and surfaces, thus correspondence using automated techniques will lead to large distance errors.
It looks like Meshlab has answer to some of my requirements. For example, I would like to colormap the Gaussian curvature into the surface.
16th Dec, 2013
Kristopher Sheets
United States Naval Oceanographic Office
Not sure if these will help, but I have previously published an ImageJ/Fiji plugin Shape3D (formerly 3D Convex Hull) to calculate morphologic measures of 3D image data. Thomas Boudier incorporated some of this into his more advanced plugin, 3D ImageJ Suite.
18th Dec, 2013
Stefano Ricciardi
Università degli Studi del Molise
Your problem seems to me very similar to 3D mesh comparison for biometric purposes (e.g. face recognition algorithms). You could easily find a big corpus of knowledge in this field where there is a need for accurate metrics to match irregular surfaces coming from 3D scan of actual subjects or 3D reconstruction from multiple photos. Methods range from Iterative Closest Point to Isogeodesical Paths, just to name a few. My suggestion: try searching for "3D face recognition"
20th Dec, 2013
Ricardo Uribe Lobello
Aix-Marseille Université
I think that is you are just trying to compare two surfaces you can use a very well recognized library proposed by Paolo Cignone. You can get it from the web site:
It allows you to measure distances between set of points in two surfaces or generate sampling points over the faces and edges of the mesh in order to improve the error estimation. It can also generate ply files containing a color map of the distance or error (Hausdorff, RMS, etc) between the meshes.
22nd Feb, 2016
Mehran Maghoumi
University of Central Frlorida
@Eranga I'm trying to do the exact thing: compare a mesh with a ground truth and use a metric to compute their difference! What method did you use in the end? I couldn't find anything in MeshLab...
Also, do the meshes have to be aligned or is there an algorithm to align them?
11th May, 2016
Eranga Ukwatta
University of Guelph
I am sorry that my researchgate account was associated with an discontinued email, so I didn't receive any notifications on new updates.
@Mehran I ended up using distance metrics such as mean absolute distance (you need to setup a kd tree) and Euler characteristic. The following is the resulting publication.
Ukwatta, Eranga, et al. "Image-based reconstruction of three-dimensional myocardial infarct geometry for patient-specific modeling of cardiac electrophysiology." Medical physics 42.8 (2015): 4579-4590.
2 Recommendations
5th Apr, 2017
Naveen Jafer Nizar
BITS
@Mehran "Also, do the meshes have to be aligned or is there an algorithm to align them?" did you get any further information on this?
23rd Apr, 2017
Mehran Maghoumi
University of Central Frlorida
@Eranga: Oh my apologies now. It's been almost a year since you replied, and the notification to must've got lost. We happened to move to a different problem so it was put on hold. Now we are back in the same spot for comparing mesh similarity and I remembered that I had asked a question here!! Thanks for linking to you paper, I will read over it and bug you in case I have any questions! : )
@Naveen: Yes, there are methods for aligning two meshes. Off the top of my head, one method I can think of is to sample points, uniformly on both meshes, then performing a RANSAC-based alignment (to get a rough alignment of the two meshes), then performing ICP to refine the alignment further. The drawback of this approach is (obviously) speed, and also the fact that the alignment will only account for rigid transformations (so no scaling can happen).
PCL already provides a lot of these stuff for you. Take a look here: http://pointclouds.org/documentation/tutorials/template_alignment.php
Hope this helps!
6th Jun, 2018
David Wiley
Stratovan Corporation
You can use our software Checkpoint (below) to collect 3D landmark points on surface and perform some 3D shape analysis. For example, you could collect a large set of points covering the surfaces and compare (and/or average) them across specimen.

Related Publications

Thesis
Die Analyse medizinischer Bilddatensätze spielt in der täglichen klinischen Routine eine immer wichtigere Rolle. Bildgebende Systeme unterschiedlichster Modalitäten erzeugen Datensätze, die immer neue klinische Einsatzgebiete eröffnen. Postprocessing-Applikationen stellen kontinuierlich neue Funktionalitäten und Algorithmen zur Verfügung, um die er...
Article
Medizinische Bilddaten beinhalten häufig ein hohes Maß an Variabilität. Dieses ist durch unterschiedliche Ursachen gegeben. Speziell auch die interindividuelle Variabilität (also die Variabilität zwischen unterschiedlichen Personen) ist hier zu nennen. Die Arbeit beschäftigt sich deshalb vorwiegend mit der Untersuchung, inwieweit sich unterschiedl...
Got a technical question?
Get high-quality answers from experts.