-
Notifications
You must be signed in to change notification settings - Fork 319
MeshCNN for Regression
This code base supports the experiments from the MeshCNN paper, which performed discriminative tasks, such as classification and segmentation. But it is possible to modify MeshCNN to do regression tasks. Here are some tips and pointers:
We used MeshCNN for surface reconstruction in Point2Mesh. Check out our implementation.
There are many different options here, but the two most common are the bi-directional chamfer distance (requires sampling meshes and comparing the pointsets). Or simply the MSE between corresponding vertices (but this requires vertex correspondence for ground-truth).
You should add a function in mesh_prepare.py. For example:
def mid_point(mesh, features):
for edge_id, edge in enumerate(mesh.edges):
features[edge_id].extend(list((mesh.vs[edge[0]] + mesh.vs[edge[1]]) / 2))
Then also, you should add mid_point
to the list of feature extractors in this line:
so it would read:
for extractor in [dihedral_angle, symmetric_opposite_angles, symmetric_ratios, mid_point]