I have a segmented mesh of an object as ground truth. I have another mesh that is taken from the camera that is further processed and segmented. I want to find the similarity of the current mesh with its ground truth.
I have tried to sample points from two meshes and computed the fitness after the registration. But my goal is to find the percentage of similarity by analyzing the shape of the mesh.
Let's say I have a ground truth mesh of an apple, I have another mesh2 of an apple and I want to find the similarity of mesh2 with my ground truth mesh
Assuming the mesh is already rigidly registered to the ground truth, one of the first approaches that comes to my mind is to use MeshLab. MeshLab offers the Distance from Reference Mesh tool which allows you to compute the signed/unsigned per vertex distance between a mesh/point cloud and a reference mesh/point cloud and then to visualize the results.
Here is a nice video that explains in details how to use the above tool. You will get a distance map like the one shown at the end of this answer (taken from the video).
If you need to automate this process, you can use
pymeshlab
, a Python library that interfaces with MeshLab.Another approach that is commonly used to evaluate the accuracy of a segmentation algorithm (you mentioned segmentation in your question) is to compute the Dice similarity coefficient. Based on the details of the application of yours you can then pick the most appropriate tool.