ranahanocka / MeshCNN

Convolutional Neural Network for 3D meshes in PyTorch
MIT License
1.56k stars 314 forks source link

Evaluating segmentation accuracy #72

Closed jsll closed 4 years ago

jsll commented 4 years ago

Hi,

I have a question regarding how you calculate the segmentation accuracy at test time in your code. So the function that is being called is this https://github.com/ranahanocka/MeshCNN/blob/15b83cc6a4db968baf6cf595df78995a9c2dcee3/util/util.py#L24-L32. In that function, you weight the correct segmentations with the area of the edge as correct += (correct_vec.float() * edge_areas).sum(). Why do you do this? Shouldn't a correctly segmented edge be as good as any other edge no matter the area it covers?

ranahanocka commented 4 years ago

Hi @jsll ,

We care about how much of the surface we correctly segmented. Typically, segmentation is computed per-face, and so faces with a larger area are weighted more than faces with a smaller one. Here, since we are segmenting edges, we should give more weight to classifying one very long edge correctly vs. one very small one incorrectly.

jsll commented 4 years ago

Thanks for the answer.