Skip to content

RoboDepth: Robust Out-of-Distribution Depth Estimation under Corruptions

Notifications You must be signed in to change notification settings

MarkLi1214/RoboDepth

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 简体中文

RoboDepth: Robust Out-of-Distribution Depth Estimation under Corruptions

Lingdong Kong1  Shaoyuan Xie2  Hanjiang Hu3  Benoit Cottereau4  Lai Xing Ng5  Wei Tsang Ooi1 
1National University of Singapore   2Huazhong Univerisity of Science and Technology
3Carnegie Mellon University   4CNRS   5A*STAR

About

RoboDepth is a comprehensive evaluation benchmark designed for probing the robustness of monocular depth estimation algorithms. It includes 18 common corruption types, ranging from weather and lighting conditions, sensor failure and movement, and noises during data processing.

Updates

  • [2023.01] - The NYUDepth2-C dataset is ready to be downloaded! See here for more details.
  • [2023.01] - Evaluation server for Track 2 (fully-supervised depth estimation) is available on this page.
  • [2023.01] - Evaluation server for Track 1 (self-supervised depth estimation) is available on this page.
  • [2022.11] - We are organizing the 1st RoboDepth Competition at ICRA 2023. Join the challenge today! 🙋
  • [2022.11] - The KITTI-C dataset is ready to be downloaded! See here for more details.

Outline

Installation

Kindly refer to INSTALL.md for the installation details.

Data Preparation

RoboDepth Benchmark

Kindly refer to DATA_PREPARE.md for the details to prepare the 1KITTI, 2KITTI-C, 3Cityscapes, 4NYUDepth2, and 5NYUDepth2-C datasets.

Competition @ ICRA 2023

Kindly refer to this page for the details to prepare the training and evaluation data associated with the 1st RoboDepth Competition at the 40th IEEE Conference on Robotics and Automation (ICRA 2023).

Getting Started

Kindly refer to GET_STARTED.md to learn more usage about this codebase.

Model Zoo

🚘 - Outdoor Depth Estimation

 Self-Supervised Depth Estimation
 Fully-Supervised Depth Estimation
 Semi-Supervised Depth Estimation

🏠 - Indoor Depth Estimation

 Fully-Supervised Depth Estimation
 Semi-Supervised Depth Estimation

Benchmark

Metrics

The following metrics are consistently used in our benchmark:

  • Absolute Relative Difference (the lower the better): $\text{Abs Rel} = \frac{1}{|D|}\sum_{pred\in D}\frac{|gt - pred|}{gt}$ .
  • Accuracy (the higher the better): $\delta_t = \frac{1}{|D|}|{\ pred\in D | \max{(\frac{gt}{pred}, \frac{pred}{gt})< 1.25^t}}| \times 100\%$ .
  • Depth Estimation Error (the lower the better):
    • $\text{DEE}_1 = \text{Abs Rel} - \delta_1 + 1$ ;
    • $\text{DEE}_2 = \frac{\text{Abs Rel} - \delta_1 + 1}{2}$ ;
    • $\text{DEE}_3 = \frac{\text{Abs Rel}}{\delta_1}$ .

The second Depth Estimation Error term ($\text{DEE}_2$) is adopted as the main indicator for evaluating model performance in our RoboDepth benchmark. The following two metrics are adopted to compare between models' robustness:

  • mCE (the lower the better): The average corruption error (in percentage) of a candidate model compared to the baseline model, which is calculated among all corruption types across five severity levels.
  • mRR (the higher the better): The average resilience rate (in percentage) of a candidate model compared to its "clean" performance, which is calculated among all corruption types across five severity levels.

Symbol denotes the baseline model adopted in mCE calculation.

KITTI-C

Model Modality mCE (%) mRR (%) Clean Bright Dark Fog Frost Snow Contrast Defocus Glass Motion Zoom Elastic Quant Gaussian Impulse Shot ISO Pixelate JPEG
MonoDepth2R18 Mono 100.00 84.46 0.119 0.130 0.280 0.155 0.277 0.511 0.187 0.244 0.242 0.216 0.201 0.129 0.193 0.384 0.389 0.340 0.388 0.145 0.196
MonoDepth2R18+no_pt Mono 119.75 82.50 0.144 0.183 0.343 0.311 0.312 0.399 0.416 0.254 0.232 0.199 0.207 0.148 0.212 0.441 0.452 0.402 0.453 0.153 0.171
MonoDepth2R18+HR Mono 106.06 82.44 0.114 0.129 0.376 0.155 0.271 0.582 0.214 0.393 0.257 0.230 0.232 0.123 0.215 0.326 0.352 0.317 0.344 0.138 0.198
MonoDepth2R50 Mono 113.43 80.59 0.117 0.127 0.294 0.155 0.287 0.492 0.233 0.427 0.392 0.277 0.208 0.130 0.198 0.409 0.403 0.368 0.425 0.155 0.211
MaskOcc Mono 104.05 82.97 0.117 0.130 0.285 0.154 0.283 0.492 0.200 0.318 0.295 0.228 0.201 0.129 0.184 0.403 0.410 0.364 0.417 0.143 0.177
DNet Mono 104.71 83.34 0.118 0.128 0.264 0.156 0.317 0.504 0.209 0.348 0.320 0.242 0.215 0.131 0.189 0.362 0.366 0.326 0.357 0.145 0.190
CADepth Mono 110.11 80.07 0.108 0.121 0.300 0.142 0.324 0.529 0.193 0.356 0.347 0.285 0.208 0.121 0.192 0.423 0.433 0.383 0.448 0.144 0.195
HR-Depth Mono 103.73 82.93 0.112 0.121 0.289 0.151 0.279 0.481 0.213 0.356 0.300 0.263 0.224 0.124 0.187 0.363 0.373 0.336 0.374 0.135 0.176
DIFFNet Mono 94.96 85.41 0.102 0.111 0.222 0.131 0.199 0.352 0.161 0.513 0.330 0.280 0.197 0.114 0.165 0.292 0.266 0.255 0.270 0.135 0.202
ManyDepth Mono 105.41 83.11 0.123 0.135 0.274 0.169 0.288 0.479 0.227 0.254 0.279 0.211 0.194 0.134 0.189 0.430 0.450 0.387 0.452 0.147 0.182
FSRE-Depth Mono 99.05 83.86 0.109 0.128 0.261 0.139 0.237 0.393 0.170 0.291 0.273 0.214 0.185 0.119 0.179 0.400 0.414 0.370 0.407 0.147 0.224
MonoDepth2R18 Stereo 117.69 79.05 0.123 0.133 0.348 0.161 0.305 0.515 0.234 0.390 0.332 0.264 0.209 0.135 0.200 0.492 0.509 0.463 0.493 0.144 0.194
MonoDepth2R18+no_pt Stereo 128.98 79.20 0.150 0.181 0.422 0.292 0.352 0.435 0.342 0.266 0.232 0.217 0.229 0.156 0.236 0.539 0.564 0.521 0.556 0.164 0.178
MonoDepth2R18+HR Stereo 111.46 81.65 0.117 0.132 0.285 0.167 0.356 0.529 0.238 0.432 0.312 0.279 0.246 0.130 0.206 0.343 0.343 0.322 0.344 0.150 0.209
DepthHints Stereo 111.41 80.08 0.113 0.124 0.310 0.137 0.321 0.515 0.164 0.350 0.410 0.263 0.196 0.130 0.192 0.440 0.447 0.412 0.455 0.157 0.192
DepthHintsHR Stereo 112.02 79.53 0.104 0.122 0.282 0.141 0.317 0.480 0.180 0.459 0.363 0.320 0.262 0.118 0.183 0.397 0.421 0.380 0.424 0.141 0.183
DepthHintsHR+no_pt Stereo 141.61 73.18 0.134 0.173 0.476 0.301 0.374 0.463 0.393 0.357 0.289 0.241 0.231 0.142 0.247 0.613 0.658 0.599 0.692 0.152 0.191
MonoDepth2R18 M+S 124.31 75.36 0.116 0.127 0.404 0.150 0.295 0.536 0.199 0.447 0.346 0.283 0.204 0.128 0.203 0.577 0.605 0.561 0.629 0.136 0.179
MonoDepth2R18+no_pt M+S 136.25 76.72 0.146 0.193 0.460 0.328 0.421 0.428 0.440 0.228 0.221 0.216 0.230 0.153 0.229 0.570 0.596 0.549 0.606 0.161 0.177
MonoDepth2R18+HR M+S 106.06 82.44 0.114 0.129 0.376 0.155 0.271 0.582 0.214 0.393 0.257 0.230 0.232 0.123 0.215 0.326 0.352 0.317 0.344 0.138 0.198
CADepth M+S 118.29 76.68 0.110 0.123 0.357 0.137 0.311 0.556 0.169 0.338 0.412 0.260 0.193 0.126 0.186 0.546 0.559 0.524 0.582 0.145 0.192

NYUDepth2-C

Model mCE (%) mRR (%) Clean Bright Dark Contrast Defocus Glass Motion Zoom Elastic Quant Gaussian Impulse Shot ISO Pixelate JPEG
BTSR50 122.78 80.63 0.122 0.149 0.269 0.265 0.337 0.262 0.231 0.372 0.182 0.180 0.442 0.512 0.392 0.474 0.139 0.175
AdaBinsR50 134.69 81.62 0.158 0.179 0.293 0.289 0.339 0.280 0.245 0.390 0.204 0.216 0.458 0.519 0.401 0.481 0.186 0.211
AdaBinsEfficientB5 100.00 85.83 0.112 0.132 0.194 0.212 0.235 0.206 0.184 0.384 0.153 0.151 0.390 0.374 0.294 0.380 0.124 0.154
DPTViT-B 83.22 95.25 0.136 0.135 0.182 0.180 0.154 0.166 0.155 0.232 0.139 0.165 0.200 0.213 0.191 0.199 0.171 0.174
SimIPUR50+no_pt 200.17 92.52 0.372 0.388 0.427 0.448 0.416 0.401 0.400 0.433 0.381 0.391 0.465 0.471 0.450 0.461 0.375 0.378
SimIPUR50+imagenet 163.06 85.01 0.244 0.269 0.370 0.376 0.377 0.337 0.324 0.422 0.306 0.289 0.445 0.463 0.414 0.449 0.247 0.272
SimIPUR50+kitti 173.78 91.64 0.312 0.326 0.373 0.406 0.360 0.333 0.335 0.386 0.316 0.333 0.432 0.442 0.422 0.443 0.314 0.322
SimIPUR50+waymo 159.46 85.73 0.243 0.269 0.348 0.398 0.380 0.327 0.313 0.405 0.256 0.287 0.439 0.461 0.416 0.455 0.246 0.265
DepthFormerSwinT_w7_1k 106.34 87.25 0.125 0.147 0.279 0.235 0.220 0.260 0.191 0.300 0.175 0.192 0.294 0.321 0.289 0.305 0.161 0.179
DepthFormerSwinT_w7_22k 63.47 94.19 0.086 0.099 0.150 0.123 0.127 0.172 0.119 0.237 0.112 0.119 0.159 0.156 0.148 0.157 0.101 0.108

Idiosyncrasy Analysis

For more detailed benchmarking results and to access the pretrained weights used in robustness evaluation, kindly refer to RESULT.md.

Create Corruption Sets

You can manage to create your own "RoboDepth" corrpution sets! Follow the instructions listed in CREATE.md.

TODO List

  • Initial release. 🚀
  • Add scripts for creating common corruptions.
  • Add download link of KITTI-C and NYUDepth2-C.
  • Add competition data.
  • Add benchmarking results.
  • Add evaluation scripts on corruption sets.

Citation

If you find this work helpful, please kindly consider citing our paper:

@ARTICLE{kong2023robodepth,
  title={RoboDepth: Robust Out-of-Distribution Depth Estimation under Corruptions},
  author={Kong, Lingdong and Xie, Shaoyuan and Hu, Hanjiang and Cottereau, Benoit and Ng, Lai Xing and Ooi, Wei Tsang},
  journal={arXiv preprint arXiv:23xx.xxxxx}, 
  year={2023},
}

License

Creative Commons License
This work is under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Acknowledgements

This project is supported by DesCartes, a CNRS@CREATE program on Intelligent Modeling for Decision-Making in Critical Urban Systems.

About

RoboDepth: Robust Out-of-Distribution Depth Estimation under Corruptions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 74.3%
  • Jupyter Notebook 25.5%
  • Other 0.2%