Giter Club home page Giter Club logo

symmetrynet's Introduction

SymmetryNet

SymmetryNet: Learning to Predict Reflectional and Rotational Symmetries of 3D Shapes from Single-View RGB-D Images

ACM Transactions on Graphics (Proceedings of SIGGRAPH Asia 2020)

Created by Yifei Shi, Junwen Huang, Hongjia Zhang, Xin Xu, Szymon Rusinkiewicz and Kai Xu

teaser

This repository includes:

  • tools: the training scripts and evaluation scripts
    • tools/train_shapenet.py: the training script for shapenet dataset
    • tools/train_ycb.py: the training script for ycb dataset
    • tools/train_scannet.py: the training script for scannet dataset
    • tools/evaluation: the evaluation scripts
      • evaluation/eval_ref_shapenet.py: the evaluation script for reflectional symmetry on shapenet dataset
      • evaluation/eval_ref_ycb.py: the evaluation script for reflectional symmetry on ycb dataset
      • evaluation/eval_ref_scannet.py: the evaluation script for reflectional symmetry on scannet dataset
      • evaluation/eval_rot_shapenet.py: the evaluation script for rotational symmetry on shapenet dataset
      • evaluation/eval_rot_ycb.py: the evaluation script for rotational symmetry on ycb dataset
      • evaluation/eval_rot_scannet.py: the evaluation script for rotational symmetry on scannet dataset
  • lib: the core Python library for networks and loss
    • lib/loss.py: symmetrynet loss caculation for both reflectional and rotational symmetries,the loss items are listed at the end of the text
    • lib/network.py: network architecture
    • lib/tools.py: functions for the operation of rotation and reflection
    • lib/verification.py: verification of the rotational and reflectional symmetries
  • datasets: the dataloader and training/testing lists
    • datasets/shapenet/dataset.py: the training dataloader for shapnet dataset
    • datasets/shapenet/dataset_eval.py: the evaluation dataloader for shapnet dataset
      • datasets/shapenet/dataset_config/*.txt: training and testing splits for shapenet dataset, the testing splits includ holdout view/instance/category
    • datasets/ycb/dataset.py: the training dataloader for ycb dataset
    • datasets/ycb/dataset_eval.py: the evaluation dataloader for ycb dataset
      • datasets/ycb/dataset_config/*.txt: training and testing splits for shapenet dataset,the training/testing splits fallow the ycb defult settings
    • datasets/shapenet/dataset.py: the training dataloader for scannet dataset
    • datasets/shapenet/dataset_eval.py: the evaluation dataloader for scannet dataset
      • datasets/scannet/dataset_config/*.txt: training and testing splits for scannet dataset,the testing splits includ holdout view/scene

Environments

pytorch>=0.4.1 python >=3.6

Datasets

  • ShapeNet dataset

    • shapenetcore: this folder saves the models and their ground truth symmetries for each instance
    • rendered_data: this folder saves the rgbd images that we rendered for each instance, including their ground truth pose and camera intrinsic matrix, etc.
    • name_list.txt: this file saves the correspondence between the name of instances and their ID in this project(the names are too long to identify)
  • YCB dataset

    • models: this folder saves the ground truth model symmetry for each instance
    • data: this folder saves the rgbd videos and the ground truth poses and camera information
    • classes.txt: this file saves the correspondence between the name of YCB objects and their *.xyz models
    • symmetries.txt: this file saves all the ground truth symmetries for ycb object models

Training

To train the network with the default parameter on shapenet dataset, run

python tools/train_shapenet.py --dataset_root= your/folder/to/shapnet/dataset

To train the network with the default parameter on ycb dataset, run

python tools/train_ycb.py --dataset_root= your/folder/to/ycb/dataset

To train the network with the default parameter on scannet dataset, run

python tools/train_scannet.py --dataset_root= your/folder/to/scannet/dataset

Evaluation

To evaluate the model with our metric on shapenet, for reflectional symmetry, run

python tools/evaluation/eval_ref_shapenet.py

for rotational symmetry, run

python tools/evaluation/eval_rot_shapenet.py

To evaluate the model with our metric on ycb, for reflectional symmetry, run

python tools/evaluation/eval_ref_ycb.py

for rotational symmetry, run

python tools/evaluation/eval_rot_ycb.py

To evaluate the model with our metric on scannet, for reflectional symmetry, run

python tools/evaluation/eval_ref_scannet.py

for rotational symmetry, run

python tools/evaluation/eval_rot_scannet.py

Pretrained model & data download

The pretrained models and data can be found at here (dropbox) and here (baidu yunpan, password: symm).

symmetrynet's People

Contributors

godzarathustra avatar yifeishi avatar

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.