depth_completion
Supervised Depth Completion of RGB-D Measurements from Reconstruction Loss
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.4%) to scientific vocabulary
Keywords
Repository
Supervised Depth Completion of RGB-D Measurements from Reconstruction Loss
Basic Info
Statistics
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Supervised Depth Completion of RGB-D Measurements from Reconstruction Loss
The core of the depth completion pipeline is the differentiable SLAM module, which takes as input RGB-D data and outputs camera trajectory and point cloud map estimate. However, the input sensory data could have noise and missing depth values. Therefore a Depth Completion module is introduced. It is applied to raw RGB-D frames before the propagation of the depth measurements through the SLAM module. For more information, please, refer to the thesis.

Installation
The installation instructions are available at docs/install.md.
Depth Completion
The KITTI Depth Completion data set is utilized to train models. We train the model introduced in J. Uhrig et al, Sparsity Invariant CNNs.
During the training process the two supervisory signals are used (tested separatelly):
- Mean Squared Error (MSE) loss computed for predicted and truth depth images,
- Chamfer loss computed for predicted and truth depth clouds.
The pretrained model weights are available via the following link
Running the training pipeline:
bash
cd ./scripts
python main.py
Differentiable SLAM and Subt simulator

Download RGB-D images
And place it to the folder:
./data/
The data is organized in the same format as the ICL-NUIM dataset.
Explore the depth images data from the simulator (requires Open3D installation): ./notebooks/explore_data.ipynb
Mapping with GradSLAM
Prerequisite: install ROS
Construct a map from RGBD images input:
roslaunch depth_completion gradslam_bag.launch odom:=gt
You may also want to visualize a ground truth mesh of the world by passing the additional argument:
pub_gt_mesh:=true.
Note, that this option requires
Pytorch3d
installed.
Mapping evaluation
Prerequisite: install Pytorch3d
Ground truth map from the simulator could be represented as a mesh file.
Download
meshes
of some cave worlds.
And place them to ./data/meshes/ folder.
Compare map to mesh ./notebooks/comparegtmapmeshtopointcloud.ipynb
It will compare a point cloud to a mesh using the following functions: - the closest distance from point to mesh edge (averaged across all points in point cloud), - the closes distance from point to mesh face (averaged across all points in point cloud).
Record the data
*Note, that this section requires installation of the DARPA Subt simulator and the exploration pipeline.
However, you may use already prerecorded ROS *.bag files and convert them to ICL-NUIM dataset format.
In order to record a bag-file, launch the simulator and simply run:
bash
./scripts/record_bag.sh
You can download prerecorded data from
here.
Ones you have a recorded bag-file, convert it to the ICL-NUIM format:
bash
roslaunch depth_completion bag2icl.launch bag:=<full/path/to/bag/file.bag>
GradSLAM and KITTI Depth
Instructions on how to run differentiable SLAM on sequences from the KITTI Depth Completion dataset. We utilize camera poses from the KITTI Raw dataset (GPS + IMU) and depth measurements from the KITTI Depth.

Ones you have the data downloaded, please, move it (or create symbolic links) to the following locations:
bash
depth_completion/data/
├── KITTI
│ ├── depth -> ~/data/datasets/KITTI/depth/
│ └── raw -> ~/data/datasets/KITTI/raw/
└── meshes -> ~/data/meshes/
Running GradSLAM on a KITTI Depth sequence with the following configurations:
- odometry provider used in GradSLAM is set to ground truth poses from data set,
- depth completion model is used to construct from sparse clouds local maps and provide them for the SLAM,
- sparse clouds from KITTI Depths are used as input to depth completion model,
- the pipeline is running on GPU.
bash
roslaunch depth_completion gradslam_kitti.launch odom:=gt depth_completion:=1 depth_type:=sparse device:='cuda:0'
More details about the argument usage are provided in the corresponding launch file.
Citation
Feel free to cite the package, if you find it useful for your research.
@software{Stanek_Supervised_Depth_Completion_2022,
author = {Staněk, Jáchym and Agishev, Ruslan and Petříček, Tomáš and Zimmermann, Karel},
month = {5},
title = {{Supervised Depth Completion of RGB-D Measurements from Reconstruction Loss}},
url = {https://github.com/RuslanAgishev/depth_completion},
version = {0.0.1},
year = {2022}
}
Owner
- Name: Vision for Robotics and Autonomous Systems
- Login: ctu-vras
- Kind: organization
- Location: Prague
- Website: https://cyber.felk.cvut.cz/vras
- Repositories: 24
- Profile: https://github.com/ctu-vras
Research group at Czech Technical University in Prague (CTU), Faculty of Electrical Engineering, Department of Cybernetics
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Staněk" given-names: "Jáchym" orcid: "https://orcid.org/0000-0002-2089-5927" - family-names: "Agishev" given-names: "Ruslan" orcid: "https://orcid.org/0000-0002-9169-2684" - family-names: "Petříček" given-names: "Tomáš" orcid: "https://orcid.org/0000-0002-3136-5673" - family-names: "Zimmermann" given-names: "Karel" orcid: "https://orcid.org/0000-0002-8898-4512" title: "Supervised Depth Completion of RGB-D Measurements from Reconstruction Loss" version: 0.0.1 date-released: 2022-05-20 url: "https://github.com/RuslanAgishev/supervised_depth_correction"
GitHub Events
Total
Last Year
Dependencies
- _libgcc_mutex 0.1
- _openmp_mutex 4.5
- argon2-cffi 20.1.0
- async_generator 1.10
- attrs 21.2.0
- backcall 0.2.0
- blas 1.0
- bleach 4.0.0
- bzip2 1.0.8
- ca-certificates 2021.10.26
- certifi 2021.10.8
- cffi 1.14.5
- colorama 0.4.4
- cudatoolkit 11.3.1
- daal4py 2021.3.0
- dal 2021.3.0
- dbus 1.13.18
- debugpy 1.4.1
- decorator 5.1.0
- defusedxml 0.7.1
- entrypoints 0.3
- expat 2.4.1
- ffmpeg 4.3
- fontconfig 2.13.1
- freetype 2.11.0
- fvcore 0.1.5.post20210915
- giflib 5.2.1
- glib 2.69.1
- gmp 6.2.1
- gnutls 3.6.15
- gst-plugins-base 1.14.0
- gstreamer 1.14.0
- icu 58.2
- importlib-metadata 4.8.1
- importlib_metadata 4.8.1
- intel-openmp 2021.4.0
- iopath 0.1.9
- ipykernel 6.4.1
- ipython 7.29.0
- ipython_genutils 0.2.0
- ipywidgets 7.6.5
- jedi 0.18.0
- jinja2 3.0.2
- joblib 1.1.0
- jpeg 9d
- jsonschema 3.2.0
- jupyter 1.0.0
- jupyter_client 7.0.1
- jupyter_console 6.4.0
- jupyter_core 4.9.1
- jupyterlab_pygments 0.1.2
- jupyterlab_widgets 1.0.0
- lame 3.100
- lcms2 2.12
- ld_impl_linux-64 2.35.1
- libffi 3.3
- libgcc-ng 9.3.0
- libgfortran-ng 7.5.0
- libgfortran4 7.5.0
- libgomp 9.3.0
- libiconv 1.15
- libidn2 2.3.2
- libpng 1.6.37
- libsodium 1.0.18
- libstdcxx-ng 9.3.0
- libtasn1 4.16.0
- libtiff 4.2.0
- libunistring 0.9.10
- libuuid 1.0.3
- libuv 1.40.0
- libwebp 1.2.0
- libwebp-base 1.2.0
- libxcb 1.14
- libxml2 2.9.12
- lz4-c 1.9.3
- markupsafe 2.0.1
- matplotlib-inline 0.1.2
- mistune 0.8.4
- mkl 2021.4.0
- mkl-service 2.4.0
- mkl_fft 1.3.1
- mkl_random 1.2.2
- mpi 1.0
- mpich 3.3.2
- nbclient 0.5.3
- nbconvert 6.1.0
- nbformat 5.1.3
- ncurses 6.3
- nest-asyncio 1.5.1
- nettle 3.7.3
- notebook 6.4.5
- numpy 1.21.2
- numpy-base 1.21.2
- nvidiacub 1.10.0
- olefile 0.46
- openh264 2.1.0
- openssl 1.1.1l
- packaging 21.0
- pandocfilters 1.4.3
- parso 0.8.2
- pcre 8.45
- pexpect 4.8.0
- pickleshare 0.7.5
- pillow 8.4.0
- pip 21.2.4
- portalocker 2.3.2
- prometheus_client 0.11.0
- prompt-toolkit 3.0.20
- prompt_toolkit 3.0.20
- ptyprocess 0.7.0
- pycparser 2.21
- pygments 2.10.0
- pyparsing 3.0.4
- pyqt 5.9.2
- pyrsistent 0.18.0
- python 3.8.12
- python-dateutil 2.8.2
- python_abi 3.8
- pytorch 1.10.0
- pytorch-mutex 1.0
- pytorch3d 0.6.0
- pyyaml 5.4.1
- pyzmq 22.2.1
- qt 5.9.7
- qtconsole 5.1.1
- qtpy 1.10.0
- readline 8.1
- scikit-learn 1.0.1
- scikit-learn-intelex 2021.3.0
- send2trash 1.8.0
- setuptools 58.0.4
- sip 4.19.13
- six 1.16.0
- sqlite 3.36.0
- tabulate 0.8.9
- tbb 2021.4.0
- termcolor 1.1.0
- terminado 0.9.4
- testpath 0.5.0
- threadpoolctl 2.2.0
- tk 8.6.11
- torchaudio 0.10.0
- torchvision 0.11.1
- tornado 6.1
- tqdm 4.62.3
- traitlets 5.1.0
- typing_extensions 3.10.0.2
- wcwidth 0.2.5
- webencodings 0.5.1
- wheel 0.37.0
- widgetsnbextension 3.5.1
- xz 5.2.5
- yacs 0.1.6
- yaml 0.2.5
- zeromq 4.3.4
- zipp 3.6.0
- zlib 1.2.11
- zstd 1.4.9