Rahul Sajnani, Adrien Poulenard, Jivitesh Jain, Radhika Dua, Leonidas J. Guibas, Srinath Sridhar
This is the official TensorFlow and PyTorch implementation for training and testing canonicalization results presented in ConDor. The PyTorch version does not support partial shape canonicalization yet.
Progress in 3D object understanding has relied on manually canonicalized shape datasets that contain instances with consistent position and orientation (3D pose). This has made it hard to generalize these methods to in-the-wild shapes, eg., from internet model collections or depth sensors. ConDor is a self-supervised method that learns to Canonicalize the 3D orientation and position for full and partial 3D point clouds. We build on top of Tensor Field Networks (TFNs), a class of permutation- and rotation-equivariant, and translation-invariant 3D networks. During inference, our method takes an unseen full or partial 3D point cloud at an arbitrary pose and outputs an equivariant canonical pose. During training, this network uses self-supervision losses to learn the canonical pose from an un-canonicalized collection of full and partial 3D point clouds. ConDor can also learn to consistently co-segment object parts without any supervision. Extensive quantitative results on four new metrics show that our approach outperforms existing methods while enabling new applications such as operation on depth images and annotation transfer.
Download the AtlasNetH5 dataset here.
# Create dataset directory
mkdir dataset
# Change directory
cd dataset
# Download the dataset (AtlasNet)
wget https://condor-datasets.s3.us-east-2.amazonaws.com/dataset/ShapeNetAtlasNetH5_1024.zip
# Unzip the dataset
unzip ShapeNetAtlasNetH5_1024.zip
Please find the pretrained are uploaded to the following links (For TensorFlow version only):
Model | Pretrained weights |
---|---|
ConDor (F+P) | ConDor (F+P) weights |
ConDor (F) | ConDor (F) weights |
Please find the TensorFlow implementation of ConDor and its instructions in the ConDor folder.
Please find the PyTorch implementation of ConDor and its instructions in the ConDor_pytorch folder. This implementation is still under development. This version does not support partial shape canonicalization yet.
If you find this work helpful, please cite this
@InProceedings{sajnani2022_condor,
author = {Rahul Sajnani and
Adrien Poulenard and
Jivitesh Jain and
Radhika Dua and
Leonidas J. Guibas and
Srinath Sridhar},
title = {ConDor: Self-Supervised Canonicalization of 3D Pose for Partial Shapes},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2022}
}