Code Monkey home page Code Monkey logo

invariantrepresentation's Introduction

Invariant Representations of Embedded Simplicial Complexes

This repository contains the code used to implement the approach proposed in the paper "Invariant Representations of Embedded Simplicial Complexes". The approach aims to provide a more robust and invariant method for analyzing geometric objects such as triangular meshes and graphs.

Abstract

Analyzing embedded simplicial complexes, such as meshes and graphs, is an important problem in many fields. We propose a new approach for analyzing embedded simplicial complexes in a subdivision-invariant and isometry-invariant way using only topological information. Our approach is based on creating and analyzing sufficient statistics and based on a graph neural network. We demonstrate the effectiveness of our approach using a synthetic mesh dataset.

Getting Started

To get started, clone this repository to your local machine. Here, we specify the versions of the important Python packages we used:

  • Python 3.9.0
  • NumPy 1.23.5
  • SciPy 1.9.3
  • tqdm 4.64.1
  • Matplotlib 3.6.2
  • PyTorch 1.13.1
  • PyTorch Geometric 2.2.0
  • PyTorch3D 0.7.2

We recommend creating a virtual environment to manage your dependencies.

Data

The synthetic mesh data set used in the experiments is not included in this repository due to its size. Instead, it can be downloaded from this link and via download.sh file.

Running the code

Once you have the repository and dependencies set up, you can run the code to reproduce the results from the paper.

Download the data:

bash download.sh

This generate models folder containing raw mesh data.

Preprocess the raw data:

mkdir preprocessed
python preprocessing.py

The preprocessed data that has undergone a random O(3)-transformation and the raw data are saved in the folder preprocessed.
The script preprocessing.py contains many hyperparameters, including N_BINS, SUBDIVISION_LEVEL. It also generates a file anim.pth containing mesh data.

Train a model:

mkdir results
python training.py --subdivision_level=7 --n_bins=512 --random_times=1 --training_times=1 

It trains a model and save the result in the folder results.

Results:

You can run the file evaluation_single.py to see the results.

For the paper, I conducted the experiment using varied configurations and performed it 10 times by setting RANDOM_TIMES=10. To produce the results in the paper, I use the file evaluation.py.

References

Paik, T. (2023). Invariant Representations of Embedded Simplicial Complexes. arXiv preprint arXiv:2302.13565. https://arxiv.org/abs/2302.13565

@article{paik2023invariant,
  title={Invariant Representations of Embedded Simplicial Complexes},
  author={Paik, Taejin},
  journal={arXiv preprint arXiv:2302.13565},
  year={2023}
}

License

This repository is licensed under the GNU Lesser General Public License v2.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.