This repository contains a PyTorch implementation of the algorithm for synchronizing probability measure on rotations using Optimal Transport and provides scripts to reproduce the results of the paper published at CVPR 2020 .
Tolga Birdal, Michael Arbel, Umut Şimşekli, Leonidas J. Guibas
This is a Pytorch implementation which requires the following packages:
python==3.6.2 or newer
torch==1.2.0 or newer
torchvision==0.4.0 or newer
numpy==1.17.2 or newer
geomloss==0.2.3 or newer
pandas==1.03 or newer
Main dependencies can be installed using:
pip install -r requirements.txt
The data directory contains the following datasets : 'CastleP19', 'CastleP30', 'EntyP10', 'FountainP11', 'HerzJesuP25', 'HerzJesuP8'
The config files to reproduce the main experiments in the paper are in core/configs/
. Note that there might be slight differences due to the tuning of the parameters.
To use a particular GPU, set —device=#gpu_id To use GPU without specifying a particular one, set —device=-1 To use CPU set —device=-2
Go to core
directory
cd core
Set a log directory and specify a config file. For instance:
CONFIG_FILE='configs/CastleP19.yaml'
LOG_DIR='../logs'
Run the following command
python train.py --config_data=$CONFIG_FILE --log_dir=$LOG_DIR
If using this code for research purposes, please cite:
[1] T. Birdal, M. Arbel 2 U. Simsekli, L. Guibas, CVPR 2020
Synchronizing Probability Measures on Rotations via Optimal Transport
@inproceedings{birdal2020synchronizing,
title={Synchronizing probability measures on rotations via optimal transport},
author={Birdal, Tolga and Arbel, Michael and Simsekli, Umut and Guibas, Leonidas J},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={1569--1579},
year={2020}
} }
This code is under a BSD license.