Code Monkey home page Code Monkey logo

packnet-sfm's Introduction

This repository contains code for the following papers:

3D Packing for Self-Supervised Monocular Depth Estimation

Vitor Guizilini, Rares Ambrus, Sudeep Pillai, Allan Raventos and Adrien Gaidon

[Full paper] [YouTube]

Robust Semi-Supervised Monocular Depth Estimation with Reprojected Distances

Vitor Guizilini, Jie Li, Rares Ambrus, Sudeep Pillai and Adrien Gaidon

[Full paper] [YouTube]

Two Stream Networks for Self-Supervised Ego-Motion Estimation

Rares Ambrus, Vitor Guizilini, Jie Li, Sudeep Pillai and Adrien Gaidon

[Full paper]

Semantically-Guided Representation Learning for Self-Supervised Monocular Depth

Vitor Guizilini, Rui Hou, Jie Li, Rares Ambrus and Adrien Gaidon

[Full paper]

SuperDepth: Self-Supervised, Super-Resolved Monocular Depth Estimation

Sudeep Pillai, Rares Ambrus and Adrien Gaidon

[Full paper] [YouTube]

Contributions

  • PackNet: A new convolutional network architecture for high-resolution self-supervised monocular depth estimation. We propose new packing and unpacking blocks that jointly leverage 3D convolutions to learn representations that maximally propagate dense appearance and geometric information while still being able to run in real time.

  • Weak Velocity Supervision: A novel optional loss that can leverage the camera’s velocity when available (e.g. from cars, robots, mobile phones) to solve the inherent scale ambiguity in monocular vision.

  • Dense Depth for Automated Driving (DDAD): A new dataset that leverages diverse logs from a fleet of well-calibrated self-driving cars equipped with cameras and high-accuracy long-range LiDARs. Compared toexisting benchmarks, DDAD enables much more accurate depth evaluation at range, which is key for high resolution monocular depth estimation methods.

Qualitative Results

Self-Supervised - KITTI

Self-Supervised - DDAD

Semi-Supervised - KITTI

Semantically-Guided Self-Supervised Depth - KITTI

>

Solving the Infinite Depth Problem

How to Use

Step 1: Clone this repository

git clone https://github.com/vguizilini/packnet-sfm.git

Step 2: Create symbolic link to data folder

sudo ln -s path/to/data /data

Step 3: Download datasets into /data/datasets

  • For convenience, we also provide the pre-computed depth maps used in our papers (unzip into the same root folder)
    wget https://tri-ml-public.s3.amazonaws.com/github/packnet-sfm/depth_maps/KITTI_raw_velodyne.tar.gz
    wget https://tri-ml-public.s3.amazonaws.com/github/packnet-sfm/depth_maps/KITTI_raw_groundtruth.tar.gz
    

Step 4: Download pre-trained models into /data/models

KITTI

  • Self-Supervised (192x640, K)
    wget https://tri-ml-public.s3.amazonaws.com/github/packnet-sfm/models/PackNet_MR_selfsup_K.pth.tar
    
  • Self-Supervised (192x640, CS)
    wget https://tri-ml-public.s3.amazonaws.com/github/packnet-sfm/models/PackNet_MR_selfsup_CS.pth.tar
    
  • Self-Supervised Scale-Aware (192x640, CS → K)
    wget https://tri-ml-public.s3.amazonaws.com/github/packnet-sfm/models/PackNet_MR_velsup_CStoK.pth.tar
    
  • Semi-Supervised (Annotated depth maps) (192x640, CS → K)
    wget https://tri-ml-public.s3.amazonaws.com/github/packnet-sfm/models/PackNet_MR_semisup_CStoK.pth.tar
    

Step 5: Inference

bash evaluate_kitti.sh

License

The source code is released under the MIT license.

Citations

Depending on the application, please use the following citations when referencing our work:

@misc{packnet-sfm-selfsup,
  author = {Vitor Guizilini and Rares Ambrus and Sudeep Pillai and Allan Raventos and Adrien Gaidon},
  title = {3D Packing for Self-Supervised Monocular Depth Estimation},
  archivePrefix = {arXiv:1905.02693},
  primaryClass = {cs.CV}
  year = {2019},
}
@proceedings{packnet-sfm-semisup,
  author = {Vitor Guizilini and Jie Li and Rares Ambrus and Sudeep Pillai and Adrien Gaidon},
  title = {Robust Semi-Supervised Monocular Depth Estimation with Reprojected Distances},
  booktitle = {In Proceedings of the 3rd Annual Conference on Robot Learning (CoRL)}
  month = {October},
  year = {2019},
}
@proeedings{packnet-sfm-twostream,
  author = {Rares Ambrus and Vitor Guizilini and Jie Li and Sudeep Pillai and Adrien Gaidon},
  title = {{Two Stream Networks for Self-Supervised Ego-Motion Estimation}},
  booktitle = {In Proceedings of the 3rd Annual Conference on Robot Learning (CoRL)}
  month = {October},
  year = {2019},
}
@proceedings{packnet-sfm-semguided,
  author = {Vitor Guizilini and Rui Hou and Jie Li and Rares Ambrus and Adrien Gaidon},
  title = {Semantically-Guided Representation Learning for Self-Supervised Monocular Depth},
  booktitle = {In Proceedings of the 8th International Conference on Learning Representations (ICLR)}
  month = {April},
  year = {2020},
}
@proceedings{superdepth,
  author = {Sudeep Pillai and Rares Ambrus and Adrien Gaidon},
  title = {SuperDepth: Self-Supervised, Super-Resolved Monocular Depth Estimation},
  booktitle = {In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA)}
  month = {May},
  year = {2019},
}

packnet-sfm's People

Contributors

spillai avatar vitorguizilini avatar

Watchers

James Cloos avatar paper2code - bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.