GuideNet (IEEE Transactions on Image Processing, TIP)

May 8, 2023 · View on GitHub

A paddle implementation of the paper Learning Guided Convolutional Network for Depth Completion.

when you train this model in 'rgbd' mode, you will get the following reslut.

RGBinput depthpred dense dpeth

Abstract

Dense depth perception is critical for autonomous driving and other robotics applications. However, modern LiDAR sensors only provide sparse depth measurement. It is thus necessary to complete the sparse LiDAR data, where a synchronized guidance RGB image is often used to facilitate this completion. Many neural networks have been designed for this task. However, they often na"ıvely fuse the LiDAR data and RGB image information by performing feature concatenation or element-wise addition. Inspired by the guided image filtering, we design a novel guided network to predict kernel weights from the guidance image. These predicted kernels are then applied to extract the depth image features. In this way, our network generates content-dependent and spatially-variant kernels for multi-modal feature fusion. Dynamically generated spatially-variant kernels could lead to prohibitive GPU memory consumption and computation overhead. We further design a convolution factorization to reduce computation and memory consumption. The GPU memory reduction makes it possible for feature fusion to work in multi-stage scheme. We conduct comprehensive experiments to verify our method on real-world outdoor, indoor and synthetic datasets. Our method produces strong results. It outperforms state-of-the-art methods on the NYUv2 dataset and ranks 1st on the KITTI depth completion benchmark at the time of submission. It also presents strong generalization capability under different 3D point densities, various lighting and weather conditions as well as cross-dataset evaluations.

Dataset

WARNING: These files are about to 50GB, please ensure you have enough space to store.

When you have unzip these zip file. You need to create a file and run the following code in shell.

mkdir data

%cd data

mkdir train

mkdir val

%cd ~

Please make sure you move train-001 to train-007 files to train folder, and move val files to val folder.

.
├── self-supervised-depth-completion
├── data
|   ├── data_depth_annotated
|   |   ├── train
|   |   ├── val
|   ├── data_depth_velodyne
|   |   ├── train
|   |   ├── val
|   ├── depth_selection
|   |   ├── test_depth_completion_anonymous
|   |   ├── test_depth_prediction_anonymous
|   |   ├── val_selection_cropped
|   └── data_rgb
|   |   ├── train
|   |   ├── val
├── results

Note: Besides you need to know that the zip file only include dense depth input image. You need to download rgb and groundtruth image form KITTI Raw Website and KITTI official Website.

Build CUDA extension

# You may need to install additional packages.
# sudo apt install libpython3.8-dev libnccl-dev

cd exts
python setup.py install

Training

KITTI Depth dataset training

You may run the following script to train on KITTI Depth dataset.

python train.py -c configs/GuideNet.yaml

Evaluation

You may run the following script to test the trained model on KITTI Depth dataset and visualize the results.

python evaluate.py -c configs/GuideNet.yaml

The visualization results are saved in ./results/.

Models

For evaluation, you may need to download the Pretrained Model, and employ it as input of the proposed network.

Citation

If you find this code useful in your research, please cite:

@article{10.1109/TIP.2020.3040528,
author = {Tang, Jie and Tian, Fei-Peng and Feng, Wei and Li, Jian and Tan, Ping},
title = {Learning Guided Convolutional Network for Depth Completion},
year = {2021},
issue_date = {2021},
publisher = {IEEE Press},
volume = {30},
issn = {1057-7149},
url = {https://doi.org/10.1109/TIP.2020.3040528},
doi = {10.1109/TIP.2020.3040528},
abstract = {Dense depth perception is critical for autonomous driving and other robotics applications. However, modern LiDAR sensors only provide sparse depth measurement. It is thus necessary to complete the sparse LiDAR data, where a synchronized guidance RGB image is often used to facilitate this completion. Many neural networks have been designed for this task. However, they often na\"{\i}vely fuse the LiDAR data and RGB image information by performing feature concatenation or element-wise addition. Inspired by the guided image filtering, we design a novel guided network to predict kernel weights from the guidance image. These predicted kernels are then applied to extract the depth image features. In this way, our network generates <italic>content-dependent</italic> and <italic>spatially-variant</italic> kernels for multi-modal feature fusion. Dynamically generated spatially-variant kernels could lead to prohibitive GPU memory consumption and computation overhead. We further design a convolution factorization to reduce computation and memory consumption. The GPU memory reduction makes it possible for feature fusion to work in multi-stage scheme. We conduct comprehensive experiments to verify our method on real-world outdoor, indoor and synthetic datasets. Our method produces strong results. It outperforms state-of-the-art methods on the NYUv2 dataset and ranks 1st on the KITTI depth completion benchmark at the time of submission. It also presents strong generalization capability under different 3D point densities, various lighting and weather conditions as well as cross-dataset evaluations. The code will be released for reproduction.},
journal = {Trans. Img. Proc.},
month = {jan},
pages = {1116–1129},
numpages = {14}
}