Skip to content

code to train a neural network to align pairs of shapes without needing ground truth warps for supervision

License

Notifications You must be signed in to change notification settings

ranahanocka/ALIGNet

Repository files navigation

ALIGNet in Torch

[Project] [Arxiv]
ALIGNet is a network trained to register pairs of shapes using a learned data-driven prior, and doesn't need ground-truth warp fields for supervision.

Key Idea

If I asked you to deform the blue "H" to the the orange "H", you will be able to perform the deformation even where the "H" has a missing piece due to your prior knowledge about the letter H

ALIGNet learns a data-driven prior which guides the alignment both in the missing and complete regions of the shape. Some results:

where the pink region is a visualization of the missing piece in the target shape. The estimated alignments are oblivious to missing pieces in the partial shape.

The code was written by Rana Hanocka with support from Noa Fish and Zhenhua Wang.

This repo is still under active development

Setup

Prerequisites

  • Linux (tested on Ubuntu 16.04, 14.04 and Linux Mint)
  • NVIDIA GPU + CUDA (tested on cuda8 and cuda7.5) should also work on CPU

Getting Started

  • Clone this repo:
git clone https://github.com/ranahanocka/ALIGNet.git
cd ALIGNet
sudo ls
chmod +x install.sh
./install.sh

Training

  • download the data
chmod +x download_data.sh
./download_data.sh
  • run training
th main.lua -data /path/to/data

Citation

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

@article{hanocka2018alignet,
 author = {Hanocka, Rana and Fish, Noa and Wang, Zhenhua and Giryes, Raja and Fleishman, Shachar and Cohen-Or, Daniel},
 title = {ALIGNet: Partial-Shape Agnostic Alignment via Unsupervised Learning},
 journal = {ACM Trans. Graph.},
 year = {2018}}

Contributing

Contributions to this repository are very welcome. Open an issue if you: have problems running the code, want to suggest improvements, or want to submit a pull request.

Acknowledgments

The code design and multithreading data loading capabilities used in this code were adopted from imagenet-multiGPU.torch.