Create the module for sampling vertices from input meshes.
After reviewing the paper and current implementation, here are the key elements missing from the current PointSampler class to align it with the approach described in the paper:
DevConv layers: The paper describes using three stacked DevConv layers.
ReLU activation: Applied after the DevConv layers.
Latent space: The paper mentions using a 64-dimensional hidden dimension.
Inclusion score assignment: The PointSampler should assign an inclusion score to each point.
Multinomial distribution sampling: Points should be sampled based on the learned multinomial distribution.
Graph structure: The DevConv layer operates on a graph structure of the mesh.
To implement these missing elements, we can follow these steps:
[x] Define the DevConv layer as a separate class - done in 2d5dc70c2860f097b491d5fa4310afcd54ca6285.
[x] Create the PointSampler architecture with stacked DevConv layers and ReLU activations - done in 276b5a1eaf1d701ac3454c60576d0ccf17393216.
[x] Implement the forward pass to generate inclusion scores for each vertex - done in 276b5a1eaf1d701ac3454c60576d0ccf17393216.
[x] Modify the sampling process to use the learned multinomial distribution - done in 276b5a1eaf1d701ac3454c60576d0ccf17393216.
[x] Implement a method to create a graph structure from the mesh - done in 42470f5e95da1a0bf2add4cbb5ed09964276e588.
Here's a step-by-step plan to implement these changes:
Implement the DevConv layer
Modify the PointSampler class initialization
Implement graph creation from mesh
Update the forward method to use DevConv layers and generate inclusion scores
Modify the sampling method to use the learned distribution
Create the module for sampling vertices from input meshes.
After reviewing the paper and current implementation, here are the key elements missing from the current
PointSampler
class to align it with the approach described in the paper:To implement these missing elements, we can follow these steps:
Here's a step-by-step plan to implement these changes: