ranahanocka / MeshCNN

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

Regression #12

Closed aykroyd-id closed 5 years ago

aykroyd-id commented 5 years ago

Hi,

I was wondering how hard it would be to adapt the code to work with regression (reconstructing input meshes, with e.g. an Autoencoder framework).

Have you tried this before?

I didn't delve too deep before being certain this could be done, but I suppose the main thing to alter would be the optimization error. Any hints on how I could tackle this? Should I start from a "segmentation" type dataset and compute .eseg files as the edge features instead of using a per vertex L2 error?

Thanks a lot

ranahanocka commented 5 years ago

Hi @aykroyd-id ,

Thanks for letting me know. It's a great idea, and I am trying something similar for my next project. I don't know if you should try to solve a segmentation like problem (you should not need the .eseg files, I don't think...), rather look into some reconstruction loss. Well I'll let you know when I figured out exactly how to do that, as it doesn't seem as trivial as I initially thought it would be :)

-Rana

aykroyd-id commented 5 years ago

Thanks @ranahanocka, please let me know if you have any progress! :) And what I simply meant was to compute the ground truth as edge features (from the vertex positions) to directly compare with the output of the network. But yeah, I think you're right in that trying to adapt the framework from segmentation might not help much. I was just hopeful in that it already used an Encoder-Decoder framework :)

ranahanocka commented 5 years ago

No problem. Sure, will do :+1:

ismaelGomez87 commented 4 years ago

Hi,

did you make any progress on this? I am currently working on a project where having an autoencoder for triangular meshes would be very useful. I've been digging into your code for the past few weeks and I also thought that the encoder-decoder architecture could help to construct an autoencoder (just removing the dependency on seg/sseg files and redefining loss function). But I can see there are some problems to it.

Thanks, Ismael.

ranahanocka commented 3 years ago

Hi @ismaelGomez87 ,

We have a couple follow-up works which are solving some regression tasks using MeshCNN. In Point2Mesh we used MeshCNN for surface reconstruction. There we used a chamfer loss function, which might be what you are looking for. You can also look at Deep Geometric Texture Synthesis, which is a type of generative MeshCNN for geometric textures. But, there we built vertex-to-vertex correspondences using an offline optimization procedure, so the loss is just MSE.