Home

Awesome

Emebedding 3D models with Quadric Loss

BMVC 2019 [Paper][Project Page]

We propose a new point-to-surface based loss function named Quadric Loss, which minimizes the quadric error between the reconstructed points and the input surface. Unlike Chamfers or L2 which are spherical losses (equidistant points have equal error), Quadric loss is a ellipsoidal loss, which penalizes displacements of points more in the normal direction thereby preserving sharp features and edges in the output reconstruction.

Getting Started

This implementation uses Pytorch.

Installation

## Clone the repository
git clone https://github.com/nitinagarwal/QuadricLoss
cd QuadricLoss

## create a virtual environment and install the required packages
virtualenv .quadricLoss
source .quadricLoss/bin/activate
pip install -r requirements.txt

## You are Done

The code has been tested with pytorch 1.0.0 and python 2.7.16

Data

Note we use 5000 meshes from the ABC dataset and process them to obtain approximately 8064 meshes each containing 2500 vertices (for details on processing please refer to the paper). When using this dataset make sure to respect the ABC dataset license.

Download the provided dataset.

bash ./scripts/download_data.sh

Training with Various Loss Functions

Launch the visdom server

python -m visdom.server -p 8888

Train with Quadric loss

export CUDA_VISIBLE_DEVICES=0  #whichever gpu you want to use
bash ./scripts/train.sh

Monitor your training on http://localhost:8888/

To train with other (or a combination of) loss functions add appropriate weights in ./scripts/train.sh.

Recontruct Meshes using Trained Models

Change the path for the pretrained model and the output folder in ./scripts/inference.sh.

bash ./scripts/inference.sh

The reconstructed point clouds and the meshes can be visualized using MeshLab

Citation

If you find this code useful, please consider citing our paper

@inproceedings{agarwal2019quadric,
    title={Learning Embedding of 3D models with Quadric Loss},
    author={Agarwal, Nitin and Yoon, Sung-eui and Gopi, M},
    booktitle={BMVC},
    year={2019}}

License

Our code is released under MIT license (see License file for details)

Contact

Please contact Nitin Agarwal if you have questions or comments