A PyTorch reimplementation of the Omnidepth paper from Zioulis et al., ECCV 2018:
- PyTorch 1.0+ (choose the right install command here)
- numpy (
pip install numpy
orconda install -c anaconda numpy
) - scikit-image (
pip install scikit-image
orconda install -c conda-forge scikit-image
) - OpenEXR (
pip install openexr
, don't use the conda one, it never works. See note below if you have trouble.) - visdom (
pip install visdom
)
The easiest way to get set up is to just set up a conda environment using the omnidepth.yml file in this repository.
Note: The OpenEXR dependency can be problematic to get set up. I've found that if the pip
version isn't working right away, you should try installing the OpenEXR dev library first:
sudo apt install libopenexr-dev
pip install openexr
Once you've installed and activated the conda environment, you should clone the network. You can do that with:
git clone https://github.com/meder411/OmniDepth-PyTorch.git
To get the OmniDepth dataset, please file a request with the authors here.
Run python train_omnidepth.py
to run the training routine. Run python test_omnidepth.py
to run the evaluation routine. You can edit the parameters in those files.
Included is rectnet.pth
, a PyTorch model converted from the released Caffe model for the top RectNet model from the original paper. If you have set everything up correctly, running test_omnidepth.py
will run the evaluation script on this model and output the following results:
Avg. Abs. Rel. Error: 0.0641
Avg. Sq. Rel. Error: 0.0197
Avg. Lin. RMS Error: 0.2297
Avg. Log RMS Error: 0.0993
Inlier D1: 0.9663
Inlier D2: 0.9951
Inlier D3: 0.9984
During training, you first need to start the visdom server in order to visualize training. It's best to do this in a screen
. To start the visdom server just call visdom
.
The visualizations can be viewed at localhost:8097
. If running visdom and the network on a server, you will need to tunnel to the server to view it locally. For example:
ssh -N -L 8888:localhost:8097 <username>@<server-ip>
allows you to view the training visualizations at localhost:8888 on your machine.
Notable difference with the paper: PyTorch's weight decay for the Adam solver does not seem to function the same way as Caffe's. Hence, I do not use weight decay in training. Instead, I use a learning rate schedule, but I have not been able to match the Caffe results.
If you do use this repository, please make sure to cite the authors' original paper:
Zioulis, Nikolaos, et al. "OmniDepth: Dense Depth Estimation for Indoors Spherical Panoramas."
Proceedings of the European Conference on Computer Vision (ECCV). 2018.