Repository files navigation

Monocular Depth Estimation Toolbox and Benchmark

docslicenseissue resolutionopen issuesvisitors

Introduction

MMDepth is an open source monocular depth estimation toolbox based on PyTorch. The main branch works with PyTorch 1.6+.

Note that this repo is not a part of the OpenMMLab project. It is built on top of MMSegmentation. If there is any infringement please contact ruijiezhu@mail.ustc.edu.cn.

🎉 Introducing mmdepth v1.0.0 🎉

Since this is the first version of this repo, there are inevitably many imperfections. The code library inherits most of the functions and advantages of MMSegmentation, and adds or expands some components. We welcome you to develop and maintain this repo together!

Major features

  • Unified Benchmark

    We provide a unified toolbox and benchmark for training or testing models on multiple depth datasets.

  • Modular Design

    Following OpenMMLab series, we decompose the monocular depth estimation models into different components. As a result, it is easy to construct a customized monocular depth estimation model by combining different modules.

User guides

Please refer to get_started.md for installation and dataset_prepare.md for dataset preparation.

Please refer to train.md for model training and inference.md for model inference.

For detailed guides for development, please see tutorials from MMSegmentation.

mmdepth
├── assets
├── configs
│ └── _base_
├── data
│ ├── ddad
│ ├── diml
│ ├── ...
├── docs
├── LICENSE
├── mmdepth
│ ├── apis
│ ├── datasets
│ ├── engine
│ ├── ...
├── mmdepth.egg-info
├── model-index.yml
├── projects
│ ├── Binsformer
│ ├── Plane2Depth
│ └── ScaleDepth
├── README.md
├── ...
├── tests
├── tools
└── work_dirs

Projects

Here are some implementations of SOTA models and solutions built on MMDepth, which are supported and maintained by community users. These projects demonstrate the best practices based on MMDepth for research and product development. We welcome and appreciate all the contributions to these projects. Also, we appreciate all contributions to improve MMDepth framework.

ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation
Ruijie Zhu, Chuxin Wang, Ziyang Song, Li Liu, Tianzhu Zhang, Yongdong Zhang
TCSVT, 2026
[Paper][Webpage][Code]
Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation
Li Liu*, Ruijie Zhu*, Jiacheng Deng, Ziyang Song, Wenfei Yang, Tianzhu Zhang
TCSVT, 2024
[Paper][Webpage][Code]
BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation
Zhenyu Li, Xuyang Wang, Xianming Liu, and Junjun Jiang
TIP, 2024
[Paper][Code]

Benchmark and model zoo

Results and models are available in the model zoo.

Overview
Supported datasetsSupported backbonesSupported headSupported loss
  • boundary_loss
  • cross_entropy_loss
  • dice_loss
  • focal_loss
  • huasdorff_distance_loss
  • kldiv_loss
  • lovasz_loss
  • ohem_cross_entropy_loss
  • silog_loss
  • tversky_loss
  • Acknowledgement

    MMDepth is an open source project maintained by the author alone (at least for now). The original intention of building this project is to provide a standardized toolbox and benchmark for monocular depth estimation. We thank the contributers of MMSegmentation for providing a great template for this project. We also thank the authors of Monocular-Depth-Estimation-Toolbox and ZoeDepth, whose code this project borrowed.

    Citation

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

    @misc{mmdepth2024,
    title={{mmdepth}: Monocular Depth Estimation Toolbox and Benchmark},
    author={mmdepth contributors},
    howpublished = {\url{https://github.com/RuijieZhu94/mmdepth}},
    year={2024}
    }

    And if you find those SOTA models and solutions built on MMDepth useful, please also consider cite:

    @article{zhu2024scaledepth,
    title={ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation}, author={Zhu, Ruijie and Wang, Chuxin and Song, Ziyang and Liu, Li and Zhang, Tianzhu and Zhang, Yongdong},
    journal={arXiv preprint arXiv:2407.08187},
    year={2024}
    }
    @article{liu2024plane2depth,
    title={Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation},
    author={Liu, Li and Zhu, Ruijie and Deng, Jiacheng and Song, Ziyang and Yang, Wenfei and Zhang, Tianzhu},
    journal={IEEE Transactions on Circuits and Systems for Video Technology},
    year={2024},
    publisher={IEEE}
    }
    @article{li2022binsformer,
    title={BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation},
    author={Li, Zhenyu and Wang, Xuyang and Liu, Xianming and Jiang, Junjun},
    journal={arXiv preprint arXiv:2204.00987},
    year={2022}
    }

    License

    This project is released under the Apache 2.0 license.

    About

    [TCSVT'26 ScaleDepth, TCSVT'24 Plane2Depth, TIP'24 Binsformer] Monocular Depth Estimation Toolbox and Benchmark.

    Resources

    Stars

    2 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    Languages

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
     blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    
    Skip to content

    Repository files navigation

    Monocular Depth Estimation Toolbox and Benchmark

    docslicenseissue resolutionopen issuesvisitors

    Introduction

    MMDepth is an open source monocular depth estimation toolbox based on PyTorch. The main branch works with PyTorch 1.6+.

    Note that this repo is not a part of the OpenMMLab project. It is built on top of MMSegmentation. If there is any infringement please contact ruijiezhu@mail.ustc.edu.cn.

    🎉 Introducing mmdepth v1.0.0 🎉

    Since this is the first version of this repo, there are inevitably many imperfections. The code library inherits most of the functions and advantages of MMSegmentation, and adds or expands some components. We welcome you to develop and maintain this repo together!

    Major features

    • Unified Benchmark

      We provide a unified toolbox and benchmark for training or testing models on multiple depth datasets.

    • Modular Design

      Following OpenMMLab series, we decompose the monocular depth estimation models into different components. As a result, it is easy to construct a customized monocular depth estimation model by combining different modules.

    User guides

    Please refer to get_started.md for installation and dataset_prepare.md for dataset preparation.

    Please refer to train.md for model training and inference.md for model inference.

    For detailed guides for development, please see tutorials from MMSegmentation.

    mmdepth
    ├── assets
    ├── configs
    │ └── _base_
    ├── data
    │ ├── ddad
    │ ├── diml
    │ ├── ...
    ├── docs
    ├── LICENSE
    ├── mmdepth
    │ ├── apis
    │ ├── datasets
    │ ├── engine
    │ ├── ...
    ├── mmdepth.egg-info
    ├── model-index.yml
    ├── projects
    │ ├── Binsformer
    │ ├── Plane2Depth
    │ └── ScaleDepth
    ├── README.md
    ├── ...
    ├── tests
    ├── tools
    └── work_dirs
    

    Projects

    Here are some implementations of SOTA models and solutions built on MMDepth, which are supported and maintained by community users. These projects demonstrate the best practices based on MMDepth for research and product development. We welcome and appreciate all the contributions to these projects. Also, we appreciate all contributions to improve MMDepth framework.

    ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation
    Ruijie Zhu, Chuxin Wang, Ziyang Song, Li Liu, Tianzhu Zhang, Yongdong Zhang
    TCSVT, 2026
    [Paper][Webpage][Code]
    Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation
    Li Liu*, Ruijie Zhu*, Jiacheng Deng, Ziyang Song, Wenfei Yang, Tianzhu Zhang
    TCSVT, 2024
    [Paper][Webpage][Code]
    BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation
    Zhenyu Li, Xuyang Wang, Xianming Liu, and Junjun Jiang
    TIP, 2024
    [Paper][Code]

    Benchmark and model zoo

    Results and models are available in the model zoo.

    Overview
    Supported datasetsSupported backbonesSupported headSupported loss
  • boundary_loss
  • cross_entropy_loss
  • dice_loss
  • focal_loss
  • huasdorff_distance_loss
  • kldiv_loss
  • lovasz_loss
  • ohem_cross_entropy_loss
  • silog_loss
  • tversky_loss
  • Acknowledgement

    MMDepth is an open source project maintained by the author alone (at least for now). The original intention of building this project is to provide a standardized toolbox and benchmark for monocular depth estimation. We thank the contributers of MMSegmentation for providing a great template for this project. We also thank the authors of Monocular-Depth-Estimation-Toolbox and ZoeDepth, whose code this project borrowed.

    Citation

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

    @misc{mmdepth2024,
    title={{mmdepth}: Monocular Depth Estimation Toolbox and Benchmark},
    author={mmdepth contributors},
    howpublished = {\url{https://github.com/RuijieZhu94/mmdepth}},
    year={2024}
    }

    And if you find those SOTA models and solutions built on MMDepth useful, please also consider cite:

    @article{zhu2024scaledepth,
    title={ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation}, author={Zhu, Ruijie and Wang, Chuxin and Song, Ziyang and Liu, Li and Zhang, Tianzhu and Zhang, Yongdong},
    journal={arXiv preprint arXiv:2407.08187},
    year={2024}
    }
    @article{liu2024plane2depth,
    title={Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation},
    author={Liu, Li and Zhu, Ruijie and Deng, Jiacheng and Song, Ziyang and Yang, Wenfei and Zhang, Tianzhu},
    journal={IEEE Transactions on Circuits and Systems for Video Technology},
    year={2024},
    publisher={IEEE}
    }
    @article{li2022binsformer,
    title={BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation},
    author={Li, Zhenyu and Wang, Xuyang and Liu, Xianming and Jiang, Junjun},
    journal={arXiv preprint arXiv:2204.00987},
    year={2022}
    }

    License

    This project is released under the Apache 2.0 license.

    About

    [TCSVT'26 ScaleDepth, TCSVT'24 Plane2Depth, TIP'24 Binsformer] Monocular Depth Estimation Toolbox and Benchmark.

    Resources

    Stars

    2 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    Languages

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
    Skip to content

    Repository files navigation

    Monocular Depth Estimation Toolbox and Benchmark

    docslicenseissue resolutionopen issuesvisitors

    Introduction

    MMDepth is an open source monocular depth estimation toolbox based on PyTorch. The main branch works with PyTorch 1.6+.

    Note that this repo is not a part of the OpenMMLab project. It is built on top of MMSegmentation. If there is any infringement please contact ruijiezhu@mail.ustc.edu.cn.

    🎉 Introducing mmdepth v1.0.0 🎉

    Since this is the first version of this repo, there are inevitably many imperfections. The code library inherits most of the functions and advantages of MMSegmentation, and adds or expands some components. We welcome you to develop and maintain this repo together!

    Major features

    • Unified Benchmark

      We provide a unified toolbox and benchmark for training or testing models on multiple depth datasets.

    • Modular Design

      Following OpenMMLab series, we decompose the monocular depth estimation models into different components. As a result, it is easy to construct a customized monocular depth estimation model by combining different modules.

    User guides

    Please refer to get_started.md for installation and dataset_prepare.md for dataset preparation.

    Please refer to train.md for model training and inference.md for model inference.

    For detailed guides for development, please see tutorials from MMSegmentation.

    mmdepth
    ├── assets
    ├── configs
    │ └── _base_
    ├── data
    │ ├── ddad
    │ ├── diml
    │ ├── ...
    ├── docs
    ├── LICENSE
    ├── mmdepth
    │ ├── apis
    │ ├── datasets
    │ ├── engine
    │ ├── ...
    ├── mmdepth.egg-info
    ├── model-index.yml
    ├── projects
    │ ├── Binsformer
    │ ├── Plane2Depth
    │ └── ScaleDepth
    ├── README.md
    ├── ...
    ├── tests
    ├── tools
    └── work_dirs
    

    Projects

    Here are some implementations of SOTA models and solutions built on MMDepth, which are supported and maintained by community users. These projects demonstrate the best practices based on MMDepth for research and product development. We welcome and appreciate all the contributions to these projects. Also, we appreciate all contributions to improve MMDepth framework.

    ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation
    Ruijie Zhu, Chuxin Wang, Ziyang Song, Li Liu, Tianzhu Zhang, Yongdong Zhang
    TCSVT, 2026
    [Paper][Webpage][Code]
    Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation
    Li Liu*, Ruijie Zhu*, Jiacheng Deng, Ziyang Song, Wenfei Yang, Tianzhu Zhang
    TCSVT, 2024
    [Paper][Webpage][Code]
    BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation
    Zhenyu Li, Xuyang Wang, Xianming Liu, and Junjun Jiang
    TIP, 2024
    [Paper][Code]

    Benchmark and model zoo

    Results and models are available in the model zoo.

    Overview
    Supported datasetsSupported backbonesSupported headSupported loss
  • boundary_loss
  • cross_entropy_loss
  • dice_loss
  • focal_loss
  • huasdorff_distance_loss
  • kldiv_loss
  • lovasz_loss
  • ohem_cross_entropy_loss
  • silog_loss
  • tversky_loss
  • Acknowledgement

    MMDepth is an open source project maintained by the author alone (at least for now). The original intention of building this project is to provide a standardized toolbox and benchmark for monocular depth estimation. We thank the contributers of MMSegmentation for providing a great template for this project. We also thank the authors of Monocular-Depth-Estimation-Toolbox and ZoeDepth, whose code this project borrowed.

    Citation

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

    @misc{mmdepth2024,
    title={{mmdepth}: Monocular Depth Estimation Toolbox and Benchmark},
    author={mmdepth contributors},
    howpublished = {\url{https://github.com/RuijieZhu94/mmdepth}},
    year={2024}
    }

    And if you find those SOTA models and solutions built on MMDepth useful, please also consider cite:

    @article{zhu2024scaledepth,
    title={ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation}, author={Zhu, Ruijie and Wang, Chuxin and Song, Ziyang and Liu, Li and Zhang, Tianzhu and Zhang, Yongdong},
    journal={arXiv preprint arXiv:2407.08187},
    year={2024}
    }
    @article{liu2024plane2depth,
    title={Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation},
    author={Liu, Li and Zhu, Ruijie and Deng, Jiacheng and Song, Ziyang and Yang, Wenfei and Zhang, Tianzhu},
    journal={IEEE Transactions on Circuits and Systems for Video Technology},
    year={2024},
    publisher={IEEE}
    }
    @article{li2022binsformer,
    title={BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation},
    author={Li, Zhenyu and Wang, Xuyang and Liu, Xianming and Jiang, Junjun},
    journal={arXiv preprint arXiv:2204.00987},
    year={2022}
    }

    License

    This project is released under the Apache 2.0 license.

    About

    [TCSVT'26 ScaleDepth, TCSVT'24 Plane2Depth, TIP'24 Binsformer] Monocular Depth Estimation Toolbox and Benchmark.

    Resources

    Stars

    2 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    Languages

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
    Skip to content

    Repository files navigation

    Monocular Depth Estimation Toolbox and Benchmark

    docslicenseissue resolutionopen issuesvisitors

    Introduction

    MMDepth is an open source monocular depth estimation toolbox based on PyTorch. The main branch works with PyTorch 1.6+.

    Note that this repo is not a part of the OpenMMLab project. It is built on top of MMSegmentation. If there is any infringement please contact ruijiezhu@mail.ustc.edu.cn.

    🎉 Introducing mmdepth v1.0.0 🎉

    Since this is the first version of this repo, there are inevitably many imperfections. The code library inherits most of the functions and advantages of MMSegmentation, and adds or expands some components. We welcome you to develop and maintain this repo together!

    Major features

    • Unified Benchmark

      We provide a unified toolbox and benchmark for training or testing models on multiple depth datasets.

    • Modular Design

      Following OpenMMLab series, we decompose the monocular depth estimation models into different components. As a result, it is easy to construct a customized monocular depth estimation model by combining different modules.

    User guides

    Please refer to get_started.md for installation and dataset_prepare.md for dataset preparation.

    Please refer to train.md for model training and inference.md for model inference.

    For detailed guides for development, please see tutorials from MMSegmentation.

    mmdepth
    ├── assets
    ├── configs
    │ └── _base_
    ├── data
    │ ├── ddad
    │ ├── diml
    │ ├── ...
    ├── docs
    ├── LICENSE
    ├── mmdepth
    │ ├── apis
    │ ├── datasets
    │ ├── engine
    │ ├── ...
    ├── mmdepth.egg-info
    ├── model-index.yml
    ├── projects
    │ ├── Binsformer
    │ ├── Plane2Depth
    │ └── ScaleDepth
    ├── README.md
    ├── ...
    ├── tests
    ├── tools
    └── work_dirs
    

    Projects

    Here are some implementations of SOTA models and solutions built on MMDepth, which are supported and maintained by community users. These projects demonstrate the best practices based on MMDepth for research and product development. We welcome and appreciate all the contributions to these projects. Also, we appreciate all contributions to improve MMDepth framework.

    ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation
    Ruijie Zhu, Chuxin Wang, Ziyang Song, Li Liu, Tianzhu Zhang, Yongdong Zhang
    TCSVT, 2026
    [Paper][Webpage][Code]
    Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation
    Li Liu*, Ruijie Zhu*, Jiacheng Deng, Ziyang Song, Wenfei Yang, Tianzhu Zhang
    TCSVT, 2024
    [Paper][Webpage][Code]
    BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation
    Zhenyu Li, Xuyang Wang, Xianming Liu, and Junjun Jiang
    TIP, 2024
    [Paper][Code]

    Benchmark and model zoo

    Results and models are available in the model zoo.

    Overview
    Supported datasetsSupported backbonesSupported headSupported loss
  • boundary_loss
  • cross_entropy_loss
  • dice_loss
  • focal_loss
  • huasdorff_distance_loss
  • kldiv_loss
  • lovasz_loss
  • ohem_cross_entropy_loss
  • silog_loss
  • tversky_loss
  • Acknowledgement

    MMDepth is an open source project maintained by the author alone (at least for now). The original intention of building this project is to provide a standardized toolbox and benchmark for monocular depth estimation. We thank the contributers of MMSegmentation for providing a great template for this project. We also thank the authors of Monocular-Depth-Estimation-Toolbox and ZoeDepth, whose code this project borrowed.

    Citation

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

    @misc{mmdepth2024,
    title={{mmdepth}: Monocular Depth Estimation Toolbox and Benchmark},
    author={mmdepth contributors},
    howpublished = {\url{https://github.com/RuijieZhu94/mmdepth}},
    year={2024}
    }

    And if you find those SOTA models and solutions built on MMDepth useful, please also consider cite:

    @article{zhu2024scaledepth,
    title={ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation}, author={Zhu, Ruijie and Wang, Chuxin and Song, Ziyang and Liu, Li and Zhang, Tianzhu and Zhang, Yongdong},
    journal={arXiv preprint arXiv:2407.08187},
    year={2024}
    }
    @article{liu2024plane2depth,
    title={Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation},
    author={Liu, Li and Zhu, Ruijie and Deng, Jiacheng and Song, Ziyang and Yang, Wenfei and Zhang, Tianzhu},
    journal={IEEE Transactions on Circuits and Systems for Video Technology},
    year={2024},
    publisher={IEEE}
    }
    @article{li2022binsformer,
    title={BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation},
    author={Li, Zhenyu and Wang, Xuyang and Liu, Xianming and Jiang, Junjun},
    journal={arXiv preprint arXiv:2204.00987},
    year={2022}
    }

    License

    This project is released under the Apache 2.0 license.

    About

    [TCSVT'26 ScaleDepth, TCSVT'24 Plane2Depth, TIP'24 Binsformer] Monocular Depth Estimation Toolbox and Benchmark.

    Resources

    Stars

    2 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    Languages

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
    Skip to content

    Repository files navigation

    Monocular Depth Estimation Toolbox and Benchmark

    docslicenseissue resolutionopen issuesvisitors

    Introduction

    MMDepth is an open source monocular depth estimation toolbox based on PyTorch. The main branch works with PyTorch 1.6+.

    Note that this repo is not a part of the OpenMMLab project. It is built on top of MMSegmentation. If there is any infringement please contact ruijiezhu@mail.ustc.edu.cn.

    🎉 Introducing mmdepth v1.0.0 🎉

    Since this is the first version of this repo, there are inevitably many imperfections. The code library inherits most of the functions and advantages of MMSegmentation, and adds or expands some components. We welcome you to develop and maintain this repo together!

    Major features

    • Unified Benchmark

      We provide a unified toolbox and benchmark for training or testing models on multiple depth datasets.

    • Modular Design

      Following OpenMMLab series, we decompose the monocular depth estimation models into different components. As a result, it is easy to construct a customized monocular depth estimation model by combining different modules.

    User guides

    Please refer to get_started.md for installation and dataset_prepare.md for dataset preparation.

    Please refer to train.md for model training and inference.md for model inference.

    For detailed guides for development, please see tutorials from MMSegmentation.

    mmdepth
    ├── assets
    ├── configs
    │ └── _base_
    ├── data
    │ ├── ddad
    │ ├── diml
    │ ├── ...
    ├── docs
    ├── LICENSE
    ├── mmdepth
    │ ├── apis
    │ ├── datasets
    │ ├── engine
    │ ├── ...
    ├── mmdepth.egg-info
    ├── model-index.yml
    ├── projects
    │ ├── Binsformer
    │ ├── Plane2Depth
    │ └── ScaleDepth
    ├── README.md
    ├── ...
    ├── tests
    ├── tools
    └── work_dirs
    

    Projects

    Here are some implementations of SOTA models and solutions built on MMDepth, which are supported and maintained by community users. These projects demonstrate the best practices based on MMDepth for research and product development. We welcome and appreciate all the contributions to these projects. Also, we appreciate all contributions to improve MMDepth framework.

    ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation
    Ruijie Zhu, Chuxin Wang, Ziyang Song, Li Liu, Tianzhu Zhang, Yongdong Zhang
    TCSVT, 2026
    [Paper][Webpage][Code]
    Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation
    Li Liu*, Ruijie Zhu*, Jiacheng Deng, Ziyang Song, Wenfei Yang, Tianzhu Zhang
    TCSVT, 2024
    [Paper][Webpage][Code]
    BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation
    Zhenyu Li, Xuyang Wang, Xianming Liu, and Junjun Jiang
    TIP, 2024
    [Paper][Code]

    Benchmark and model zoo

    Results and models are available in the model zoo.

    Overview
    Supported datasetsSupported backbonesSupported headSupported loss
  • boundary_loss
  • cross_entropy_loss
  • dice_loss
  • focal_loss
  • huasdorff_distance_loss
  • kldiv_loss
  • lovasz_loss
  • ohem_cross_entropy_loss
  • silog_loss
  • tversky_loss
  • Acknowledgement

    MMDepth is an open source project maintained by the author alone (at least for now). The original intention of building this project is to provide a standardized toolbox and benchmark for monocular depth estimation. We thank the contributers of MMSegmentation for providing a great template for this project. We also thank the authors of Monocular-Depth-Estimation-Toolbox and ZoeDepth, whose code this project borrowed.

    Citation

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

    @misc{mmdepth2024,
    title={{mmdepth}: Monocular Depth Estimation Toolbox and Benchmark},
    author={mmdepth contributors},
    howpublished = {\url{https://github.com/RuijieZhu94/mmdepth}},
    year={2024}
    }

    And if you find those SOTA models and solutions built on MMDepth useful, please also consider cite:

    @article{zhu2024scaledepth,
    title={ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation}, author={Zhu, Ruijie and Wang, Chuxin and Song, Ziyang and Liu, Li and Zhang, Tianzhu and Zhang, Yongdong},
    journal={arXiv preprint arXiv:2407.08187},
    year={2024}
    }
    @article{liu2024plane2depth,
    title={Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation},
    author={Liu, Li and Zhu, Ruijie and Deng, Jiacheng and Song, Ziyang and Yang, Wenfei and Zhang, Tianzhu},
    journal={IEEE Transactions on Circuits and Systems for Video Technology},
    year={2024},
    publisher={IEEE}
    }
    @article{li2022binsformer,
    title={BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation},
    author={Li, Zhenyu and Wang, Xuyang and Liu, Xianming and Jiang, Junjun},
    journal={arXiv preprint arXiv:2204.00987},
    year={2022}
    }

    License

    This project is released under the Apache 2.0 license.

    About

    [TCSVT'26 ScaleDepth, TCSVT'24 Plane2Depth, TIP'24 Binsformer] Monocular Depth Estimation Toolbox and Benchmark.

    Resources

    Stars

    2 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    Languages

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
    Skip to content

    Repository files navigation

    Monocular Depth Estimation Toolbox and Benchmark

    docslicenseissue resolutionopen issuesvisitors

    Introduction

    MMDepth is an open source monocular depth estimation toolbox based on PyTorch. The main branch works with PyTorch 1.6+.

    Note that this repo is not a part of the OpenMMLab project. It is built on top of MMSegmentation. If there is any infringement please contact ruijiezhu@mail.ustc.edu.cn.

    🎉 Introducing mmdepth v1.0.0 🎉

    Since this is the first version of this repo, there are inevitably many imperfections. The code library inherits most of the functions and advantages of MMSegmentation, and adds or expands some components. We welcome you to develop and maintain this repo together!

    Major features

    • Unified Benchmark

      We provide a unified toolbox and benchmark for training or testing models on multiple depth datasets.

    • Modular Design

      Following OpenMMLab series, we decompose the monocular depth estimation models into different components. As a result, it is easy to construct a customized monocular depth estimation model by combining different modules.

    User guides

    Please refer to get_started.md for installation and dataset_prepare.md for dataset preparation.

    Please refer to train.md for model training and inference.md for model inference.

    For detailed guides for development, please see tutorials from MMSegmentation.

    mmdepth
    ├── assets
    ├── configs
    │ └── _base_
    ├── data
    │ ├── ddad
    │ ├── diml
    │ ├── ...
    ├── docs
    ├── LICENSE
    ├── mmdepth
    │ ├── apis
    │ ├── datasets
    │ ├── engine
    │ ├── ...
    ├── mmdepth.egg-info
    ├── model-index.yml
    ├── projects
    │ ├── Binsformer
    │ ├── Plane2Depth
    │ └── ScaleDepth
    ├── README.md
    ├── ...
    ├── tests
    ├── tools
    └── work_dirs
    

    Projects

    Here are some implementations of SOTA models and solutions built on MMDepth, which are supported and maintained by community users. These projects demonstrate the best practices based on MMDepth for research and product development. We welcome and appreciate all the contributions to these projects. Also, we appreciate all contributions to improve MMDepth framework.

    ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation
    Ruijie Zhu, Chuxin Wang, Ziyang Song, Li Liu, Tianzhu Zhang, Yongdong Zhang
    TCSVT, 2026
    [Paper][Webpage][Code]
    Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation
    Li Liu*, Ruijie Zhu*, Jiacheng Deng, Ziyang Song, Wenfei Yang, Tianzhu Zhang
    TCSVT, 2024
    [Paper][Webpage][Code]
    BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation
    Zhenyu Li, Xuyang Wang, Xianming Liu, and Junjun Jiang
    TIP, 2024
    [Paper][Code]

    Benchmark and model zoo

    Results and models are available in the model zoo.

    Overview
    Supported datasetsSupported backbonesSupported headSupported loss
  • boundary_loss
  • cross_entropy_loss
  • dice_loss
  • focal_loss
  • huasdorff_distance_loss
  • kldiv_loss
  • lovasz_loss
  • ohem_cross_entropy_loss
  • silog_loss
  • tversky_loss
  • Acknowledgement

    MMDepth is an open source project maintained by the author alone (at least for now). The original intention of building this project is to provide a standardized toolbox and benchmark for monocular depth estimation. We thank the contributers of MMSegmentation for providing a great template for this project. We also thank the authors of Monocular-Depth-Estimation-Toolbox and ZoeDepth, whose code this project borrowed.

    Citation

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

    @misc{mmdepth2024,
    title={{mmdepth}: Monocular Depth Estimation Toolbox and Benchmark},
    author={mmdepth contributors},
    howpublished = {\url{https://github.com/RuijieZhu94/mmdepth}},
    year={2024}
    }

    And if you find those SOTA models and solutions built on MMDepth useful, please also consider cite:

    @article{zhu2024scaledepth,
    title={ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation}, author={Zhu, Ruijie and Wang, Chuxin and Song, Ziyang and Liu, Li and Zhang, Tianzhu and Zhang, Yongdong},
    journal={arXiv preprint arXiv:2407.08187},
    year={2024}
    }
    @article{liu2024plane2depth,
    title={Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation},
    author={Liu, Li and Zhu, Ruijie and Deng, Jiacheng and Song, Ziyang and Yang, Wenfei and Zhang, Tianzhu},
    journal={IEEE Transactions on Circuits and Systems for Video Technology},
    year={2024},
    publisher={IEEE}
    }
    @article{li2022binsformer,
    title={BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation},
    author={Li, Zhenyu and Wang, Xuyang and Liu, Xianming and Jiang, Junjun},
    journal={arXiv preprint arXiv:2204.00987},
    year={2022}
    }

    License

    This project is released under the Apache 2.0 license.

    About

    [TCSVT'26 ScaleDepth, TCSVT'24 Plane2Depth, TIP'24 Binsformer] Monocular Depth Estimation Toolbox and Benchmark.

    Resources

    Stars

    2 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    Languages

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
    Skip to content

    Repository files navigation

    Monocular Depth Estimation Toolbox and Benchmark

    docslicenseissue resolutionopen issuesvisitors

    Introduction

    MMDepth is an open source monocular depth estimation toolbox based on PyTorch. The main branch works with PyTorch 1.6+.

    Note that this repo is not a part of the OpenMMLab project. It is built on top of MMSegmentation. If there is any infringement please contact ruijiezhu@mail.ustc.edu.cn.

    🎉 Introducing mmdepth v1.0.0 🎉

    Since this is the first version of this repo, there are inevitably many imperfections. The code library inherits most of the functions and advantages of MMSegmentation, and adds or expands some components. We welcome you to develop and maintain this repo together!

    Major features

    • Unified Benchmark

      We provide a unified toolbox and benchmark for training or testing models on multiple depth datasets.

    • Modular Design

      Following OpenMMLab series, we decompose the monocular depth estimation models into different components. As a result, it is easy to construct a customized monocular depth estimation model by combining different modules.

    User guides

    Please refer to get_started.md for installation and dataset_prepare.md for dataset preparation.

    Please refer to train.md for model training and inference.md for model inference.

    For detailed guides for development, please see tutorials from MMSegmentation.

    mmdepth
    ├── assets
    ├── configs
    │ └── _base_
    ├── data
    │ ├── ddad
    │ ├── diml
    │ ├── ...
    ├── docs
    ├── LICENSE
    ├── mmdepth
    │ ├── apis
    │ ├── datasets
    │ ├── engine
    │ ├── ...
    ├── mmdepth.egg-info
    ├── model-index.yml
    ├── projects
    │ ├── Binsformer
    │ ├── Plane2Depth
    │ └── ScaleDepth
    ├── README.md
    ├── ...
    ├── tests
    ├── tools
    └── work_dirs
    

    Projects

    Here are some implementations of SOTA models and solutions built on MMDepth, which are supported and maintained by community users. These projects demonstrate the best practices based on MMDepth for research and product development. We welcome and appreciate all the contributions to these projects. Also, we appreciate all contributions to improve MMDepth framework.

    ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation
    Ruijie Zhu, Chuxin Wang, Ziyang Song, Li Liu, Tianzhu Zhang, Yongdong Zhang
    TCSVT, 2026
    [Paper][Webpage][Code]
    Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation
    Li Liu*, Ruijie Zhu*, Jiacheng Deng, Ziyang Song, Wenfei Yang, Tianzhu Zhang
    TCSVT, 2024
    [Paper][Webpage][Code]
    BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation
    Zhenyu Li, Xuyang Wang, Xianming Liu, and Junjun Jiang
    TIP, 2024
    [Paper][Code]

    Benchmark and model zoo

    Results and models are available in the model zoo.

    Overview
    Supported datasetsSupported backbonesSupported headSupported loss
  • boundary_loss
  • cross_entropy_loss
  • dice_loss
  • focal_loss
  • huasdorff_distance_loss
  • kldiv_loss
  • lovasz_loss
  • ohem_cross_entropy_loss
  • silog_loss
  • tversky_loss
  • Acknowledgement

    MMDepth is an open source project maintained by the author alone (at least for now). The original intention of building this project is to provide a standardized toolbox and benchmark for monocular depth estimation. We thank the contributers of MMSegmentation for providing a great template for this project. We also thank the authors of Monocular-Depth-Estimation-Toolbox and ZoeDepth, whose code this project borrowed.

    Citation

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

    @misc{mmdepth2024,
    title={{mmdepth}: Monocular Depth Estimation Toolbox and Benchmark},
    author={mmdepth contributors},
    howpublished = {\url{https://github.com/RuijieZhu94/mmdepth}},
    year={2024}
    }

    And if you find those SOTA models and solutions built on MMDepth useful, please also consider cite:

    @article{zhu2024scaledepth,
    title={ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation}, author={Zhu, Ruijie and Wang, Chuxin and Song, Ziyang and Liu, Li and Zhang, Tianzhu and Zhang, Yongdong},
    journal={arXiv preprint arXiv:2407.08187},
    year={2024}
    }
    @article{liu2024plane2depth,
    title={Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation},
    author={Liu, Li and Zhu, Ruijie and Deng, Jiacheng and Song, Ziyang and Yang, Wenfei and Zhang, Tianzhu},
    journal={IEEE Transactions on Circuits and Systems for Video Technology},
    year={2024},
    publisher={IEEE}
    }
    @article{li2022binsformer,
    title={BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation},
    author={Li, Zhenyu and Wang, Xuyang and Liu, Xianming and Jiang, Junjun},
    journal={arXiv preprint arXiv:2204.00987},
    year={2022}
    }

    License

    This project is released under the Apache 2.0 license.

    About

    [TCSVT'26 ScaleDepth, TCSVT'24 Plane2Depth, TIP'24 Binsformer] Monocular Depth Estimation Toolbox and Benchmark.

    Resources

    Stars

    2 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    Languages

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
    Skip to content

    Repository files navigation

    Monocular Depth Estimation Toolbox and Benchmark

    docslicenseissue resolutionopen issuesvisitors

    Introduction

    MMDepth is an open source monocular depth estimation toolbox based on PyTorch. The main branch works with PyTorch 1.6+.

    Note that this repo is not a part of the OpenMMLab project. It is built on top of MMSegmentation. If there is any infringement please contact ruijiezhu@mail.ustc.edu.cn.

    🎉 Introducing mmdepth v1.0.0 🎉

    Since this is the first version of this repo, there are inevitably many imperfections. The code library inherits most of the functions and advantages of MMSegmentation, and adds or expands some components. We welcome you to develop and maintain this repo together!

    Major features

    • Unified Benchmark

      We provide a unified toolbox and benchmark for training or testing models on multiple depth datasets.

    • Modular Design

      Following OpenMMLab series, we decompose the monocular depth estimation models into different components. As a result, it is easy to construct a customized monocular depth estimation model by combining different modules.

    User guides

    Please refer to get_started.md for installation and dataset_prepare.md for dataset preparation.

    Please refer to train.md for model training and inference.md for model inference.

    For detailed guides for development, please see tutorials from MMSegmentation.

    mmdepth
    ├── assets
    ├── configs
    │ └── _base_
    ├── data
    │ ├── ddad
    │ ├── diml
    │ ├── ...
    ├── docs
    ├── LICENSE
    ├── mmdepth
    │ ├── apis
    │ ├── datasets
    │ ├── engine
    │ ├── ...
    ├── mmdepth.egg-info
    ├── model-index.yml
    ├── projects
    │ ├── Binsformer
    │ ├── Plane2Depth
    │ └── ScaleDepth
    ├── README.md
    ├── ...
    ├── tests
    ├── tools
    └── work_dirs
    

    Projects

    Here are some implementations of SOTA models and solutions built on MMDepth, which are supported and maintained by community users. These projects demonstrate the best practices based on MMDepth for research and product development. We welcome and appreciate all the contributions to these projects. Also, we appreciate all contributions to improve MMDepth framework.

    ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation
    Ruijie Zhu, Chuxin Wang, Ziyang Song, Li Liu, Tianzhu Zhang, Yongdong Zhang
    TCSVT, 2026
    [Paper][Webpage][Code]
    Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation
    Li Liu*, Ruijie Zhu*, Jiacheng Deng, Ziyang Song, Wenfei Yang, Tianzhu Zhang
    TCSVT, 2024
    [Paper][Webpage][Code]
    BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation
    Zhenyu Li, Xuyang Wang, Xianming Liu, and Junjun Jiang
    TIP, 2024
    [Paper][Code]

    Benchmark and model zoo

    Results and models are available in the model zoo.

    Overview
    Supported datasetsSupported backbonesSupported headSupported loss
  • boundary_loss
  • cross_entropy_loss
  • dice_loss
  • focal_loss
  • huasdorff_distance_loss
  • kldiv_loss
  • lovasz_loss
  • ohem_cross_entropy_loss
  • silog_loss
  • tversky_loss
  • Acknowledgement

    MMDepth is an open source project maintained by the author alone (at least for now). The original intention of building this project is to provide a standardized toolbox and benchmark for monocular depth estimation. We thank the contributers of MMSegmentation for providing a great template for this project. We also thank the authors of Monocular-Depth-Estimation-Toolbox and ZoeDepth, whose code this project borrowed.

    Citation

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

    @misc{mmdepth2024,
    title={{mmdepth}: Monocular Depth Estimation Toolbox and Benchmark},
    author={mmdepth contributors},
    howpublished = {\url{https://github.com/RuijieZhu94/mmdepth}},
    year={2024}
    }

    And if you find those SOTA models and solutions built on MMDepth useful, please also consider cite:

    @article{zhu2024scaledepth,
    title={ScaleDepth: Decomposing Metric Depth Estimation into Scale Prediction and Relative Depth Estimation}, author={Zhu, Ruijie and Wang, Chuxin and Song, Ziyang and Liu, Li and Zhang, Tianzhu and Zhang, Yongdong},
    journal={arXiv preprint arXiv:2407.08187},
    year={2024}
    }
    @article{liu2024plane2depth,
    title={Plane2Depth: Hierarchical Adaptive Plane Guidance for Monocular Depth Estimation},
    author={Liu, Li and Zhu, Ruijie and Deng, Jiacheng and Song, Ziyang and Yang, Wenfei and Zhang, Tianzhu},
    journal={IEEE Transactions on Circuits and Systems for Video Technology},
    year={2024},
    publisher={IEEE}
    }
    @article{li2022binsformer,
    title={BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation},
    author={Li, Zhenyu and Wang, Xuyang and Liu, Xianming and Jiang, Junjun},
    journal={arXiv preprint arXiv:2204.00987},
    year={2022}
    }

    License

    This project is released under the Apache 2.0 license.

    About

    [TCSVT'26 ScaleDepth, TCSVT'24 Plane2Depth, TIP'24 Binsformer] Monocular Depth Estimation Toolbox and Benchmark.

    Resources

    Stars

    2 stars

    Watchers

    0 watching

    Forks

    Releases

    Packages

    Contributors

    Languages