iMoonLab / MeshNet

MeshNet: Mesh Neural Network for 3D Shape Representation (AAAI 2019)
MIT License
333 stars 58 forks source link

simplifying the mesh data to 1024 #6

Open tranduytrung opened 5 years ago

tranduytrung commented 5 years ago

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.

thss15fyt commented 5 years ago

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 :)

JsBlueCat commented 5 years ago

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 ?

martinmCGG commented 3 years ago

@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:

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?

thss15fyt commented 3 years ago

@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

ss892714028 commented 2 years ago

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.

thss15fyt commented 2 years ago

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.