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

Overview

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

This example implements the end-to-end MLOps process using Vertex AI platform and Smart Analytics technology capabilities

MLOps with Vertex AI This example implements the end-to-end MLOps process using Vertex AI platform and Smart Analytics technology capabilities. The ex

Google Cloud Platform 238 Dec 21, 2022
Raster Vision is an open source Python framework for building computer vision models on satellite, aerial, and other large imagery sets

Raster Vision is an open source Python framework for building computer vision models on satellite, aerial, and other large imagery sets (including obl

Azavea 1.7k Dec 22, 2022
tf2onnx - Convert TensorFlow, Keras and Tflite models to ONNX.

tf2onnx converts TensorFlow (tf-1.x or tf-2.x), tf.keras and tflite models to ONNX via command line or python api.

Open Neural Network Exchange 1.8k Jan 08, 2023
利用Tensorflow实现基于CNN的中文短文本分类

Text Classification with CNN 使用卷积神经网络进行中文文本分类 CNN做句子分类的论文可以参看: Convolutional Neural Networks for Sentence Classification 还可以去读dennybritz大牛的博客:Implemen

Jeremiah 4 Nov 08, 2022
An implementation of an abstract algebra for music tones (pitches).

nbdev template Use this template to more easily create your nbdev project. If you are using an older version of this template, and want to upgrade to

Open Music Kit 0 Oct 10, 2022
Implementation of the Triangle Multiplicative module, used in Alphafold2 as an efficient way to mix rows or columns of a 2d feature map, as a standalone package for Pytorch

Triangle Multiplicative Module - Pytorch Implementation of the Triangle Multiplicative module, used in Alphafold2 as an efficient way to mix rows or c

Phil Wang 22 Oct 28, 2022
SplineConv implementation for Paddle.

SplineConv implementation for Paddle This module implements the SplineConv operators from Matthias Fey, Jan Eric Lenssen, Frank Weichert, Heinrich Mül

北海若 3 Dec 29, 2021
Revisiting Global Statistics Aggregation for Improving Image Restoration

Revisiting Global Statistics Aggregation for Improving Image Restoration Xiaojie Chu, Liangyu Chen, Chengpeng Chen, Xin Lu Paper: https://arxiv.org/pd

MEGVII Research 128 Dec 24, 2022
VSR-Transformer - This paper proposes a new Transformer for video super-resolution (called VSR-Transformer).

VSR-Transformer By Jiezhang Cao, Yawei Li, Kai Zhang, Luc Van Gool This paper proposes a new Transformer for video super-resolution (called VSR-Transf

Jiezhang Cao 225 Nov 13, 2022
The official PyTorch implementation for the paper "sMGC: A Complex-Valued Graph Convolutional Network via Magnetic Laplacian for Directed Graphs".

Magnetic Graph Convolutional Networks About The official PyTorch implementation for the paper sMGC: A Complex-Valued Graph Convolutional Network via M

3 Feb 25, 2022
Robotics environments

Robotics environments Details and documentation on these robotics environments are available in OpenAI's blog post and the accompanying technical repo

Farama Foundation 121 Dec 28, 2022
This is an official implementation for "PlaneRecNet".

PlaneRecNet This is an official implementation for PlaneRecNet: A multi-task convolutional neural network provides instance segmentation for piece-wis

yaxu 50 Nov 17, 2022
Implicit Model Specialization through DAG-based Decentralized Federated Learning

Federated Learning DAG Experiments This repository contains software artifacts to reproduce the experiments presented in the Middleware '21 paper "Imp

Operating Systems and Middleware Group 5 Oct 16, 2022
Weighing Counts: Sequential Crowd Counting by Reinforcement Learning

LibraNet This repository includes the official implementation of LibraNet for crowd counting, presented in our paper: Weighing Counts: Sequential Crow

Hao Lu 18 Nov 05, 2022
A flexible tool for creating, organizing, and sharing visualizations of live, rich data. Supports Torch and Numpy.

Visdom A flexible tool for creating, organizing, and sharing visualizations of live, rich data. Supports Python. Overview Concepts Setup Usage API To

FOSSASIA 9.4k Jan 07, 2023
CVPR '21: In the light of feature distributions: Moment matching for Neural Style Transfer

In the light of feature distributions: Moment matching for Neural Style Transfer (CVPR 2021) This repository provides code to recreate results present

Nikolai Kalischek 49 Oct 13, 2022
Rethinking Transformer-based Set Prediction for Object Detection

Rethinking Transformer-based Set Prediction for Object Detection Here are the code for the ICCV paper. The code is adapted from Detectron2 and AdelaiD

Zhiqing Sun 62 Dec 03, 2022
Pytorch Implementation of paper "Noisy Natural Gradient as Variational Inference"

Noisy Natural Gradient as Variational Inference PyTorch implementation of Noisy Natural Gradient as Variational Inference. Requirements Python 3 Pytor

Tony JiHyun Kim 119 Dec 02, 2022
To propose and implement a multi-class classification approach to disaster assessment from the given data set of post-earthquake satellite imagery.

To propose and implement a multi-class classification approach to disaster assessment from the given data set of post-earthquake satellite imagery.

Kunal Wadhwa 2 Jan 05, 2022
Learning to Disambiguate Strongly Interacting Hands via Probabilistic Per-Pixel Part Segmentation [3DV 2021 Oral]

Learning to Disambiguate Strongly Interacting Hands via Probabilistic Per-Pixel Part Segmentation [3DV 2021 Oral] Learning to Disambiguate Strongly In

Zicong Fan 40 Dec 22, 2022