iMoonLab/MeshNet

simplifying the mesh data to 1024

tranduytrung opened this issue ยท 6 comments

Could you please tell me which method you used for simplifying the mesh data to exact 1024 faces? I cannot find a tool or library to reduce the number of face to exact number like this.

Currently, we use a modified version of Fast-Quadric-Mesh-Simplification to do this work. But the results is not satisfying. Except the bad cases you mentioned in #3 , there are also some holes and isolated edges in the result models. Recently, we tried the method in Manifold to fix bad cases, but it is a re-construction method and the number of elements can not be restricted.
So if you find a better way to do this work, please let us know to update the dataset, thanks :)

Could you please tell me which method you used for simplifying the mesh data to exact 1024 faces? I cannot find a tool or library to reduce the number of face to exact number like this.

do you try using a mlp to extact mesh ?

@thss15fyt:

Currently, we use a modified version of Fast-Quadric-Mesh-Simplification to do this work.

I tried implementing two obvious/straightforward modifications on top of Fast-Quadric-Mesh-Simplification:

  • using absolute number of output faces rather than a fraction of original faces count
  • support of reading .off files

but I can't match your conversion result present in the reorganized ModelNet40 dataset linked from your project readme.
Specifically, the simplification algorithm seems to break some objects from ModelNet40 with non-uniform triangle density, e.g. in chair_0451 the overall chair shape disappears, keeping only the seat and its nearby parts connecting it to (now non-existent) legs, so that it looks more like a table... When "simplifying less" (targeting more faces/triangles than 1024, e.g. about 7000), the backrest is preserved but legs are partially missing. It appears the importance of faces (or the error introduced by potential edge contraction) is computed differently in your ".off โ€“> .npy" conversion code as the same model in your reorganized ModelNet40 dataset dataset seems to preserve the overall shape of the chair even with just 1024 faces.

Could you please provide more details about how you modified it further, or provide the modified code you used to convert/reorganize the dataset?

@martinmCGG We now recommend you to use the toolbox from MeshLab and here is an example that simplifies a model with 3180 faces to 1024 faces, using the implemented "Simplification: Quadric Edges Collapse". And a python API library (https://github.com/3DLIRIOUS/MeshLabXML) might be used for batch preprocessing.

image
image

Use PyMeshlab's 'simplification_quadric_edge_collapse_decimation', with this I can replicate the recall numbers in the paper.
Hope it's not too late.

We have updated a version based on the better simplifed Manifold40 (watertight mesh with 500 faces of ModelNet40), which helps us to achieve better performance. I will leave this issue open for further discussion of mesh simplification.