news 2026/5/8 1:41:37

FastDepth:嵌入式系统上的快速单目深度估计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FastDepth:嵌入式系统上的快速单目深度估计

FastDepth:嵌入式系统上的快速单目深度估计

【免费下载链接】fast-depthICRA 2019 "FastDepth: Fast Monocular Depth Estimation on Embedded Systems"项目地址: https://gitcode.com/gh_mirrors/fa/fast-depth

FastDepth 是一个专门为嵌入式系统优化的单目深度估计算法,由 MIT 研究团队开发。该项目在保持高精度的同时,显著提升了深度估计的速度,特别适合在 NVIDIA Jetson TX2 等嵌入式平台上部署。

项目概述

FastDepth 基于 MobileNet 架构,通过深度可分离卷积、跳跃连接和网络剪枝等技术,实现了在资源受限设备上的实时深度感知。该项目在 ICRA 2019 会议上发表,提供了完整的训练模型和评估代码。

系统要求

要运行 FastDepth 项目,需要满足以下要求:

  • 安装 PyTorch(推荐版本 v0.4.1)并配备 CUDA GPU
  • 安装 HDF5 格式库和相关依赖
  • 下载预处理好的 NYU Depth V2 数据集

环境配置

sudo apt-get update sudo apt-get install -y libhdf5-serial-dev hdf5-tools pip3 install h5py matplotlib imageio scikit-image opencv-python

数据集准备

NYU Depth V2 数据集需要约 32GB 存储空间:

mkdir data; cd data wget http://datasets.lids.mit.edu/fastdepth/data/nyudepthv2.tar.gz tar -xvf nyudepthv2.tar.gz && rm -f nyudepthv2.tar.gz cd ..

预训练模型

FastDepth 提供了多个预训练模型:

  • MobileNet-NNConv5
  • MobileNet-NNConv5(深度可分离)
  • MobileNet-NNConv5(深度可分离),带跳跃连接
  • MobileNet-NNConv5(深度可分离),带跳跃连接,剪枝版

最终推荐模型是mobilenet-nnconv5-skipadd-pruned,该模型在编码器和解码器之间使用深度可分离层和跳跃连接,并通过 NetAdapt 进行网络剪枝。

模型下载

mkdir results; cd results wget -r -np -nH --cut-dirs=2 --reject "index.html*" http://datasets.lids.mit.edu/fastdepth/results/ cd ..

模型评估

评估过程需要有效的 PyTorch 安装和 NYU Depth v2 数据集副本。建议在配备 CUDA GPU 的主机上进行评估。

评估命令

python3 main.py --evaluate [path_to_trained_model]

评估代码将报告模型的 delta1 精度指标以及以毫米为单位的 RMSE。

嵌入式部署

FastDepth 使用 TVM 编译器堆栈将训练好的模型编译为可在 NVIDIA Jetson TX2 上部署的格式。模型在主机上进行交叉编译,然后在 TX2 上部署。

TVM 运行时安装

在目标嵌入式设备上构建 TVM 运行时:

git clone --recursive https://github.com/dmlc/tvm cd tvm git reset --hard ab4946c8b80da510a5a518dca066d8159473345f git submodule update --init cp cmake/config.cmake .

修改config.cmake文件:

set(USE_CUDA OFF) -> set(USE_CUDA [path_to_cuda]) set(USE_LLVM OFF) -> set(USE_LLVM [path_to_llvm-config])

构建运行时:

make runtime -j2 export PYTHONPATH=$PYTHONPATH:~/tvm/python

运行编译后的模型

在设备上运行编译后的模型:

cd deploy python3 tx2_run_tvm.py --input-fp data/rgb.npy --output-fp data/pred.npy --model-dir ../../results/tvm_compiled/tx2_cpu_mobilenet_nnconv5dw_skipadd_pruned/ python3 tx2_run_tvm.py --input-fp data/rgb.npy --output-fp data/pred.npy --model-dir ../../results/tvm_compiled/tx2_gpu_mobilenet_nnconv5dw_skipadd_pruned/ --cuda True

性能结果

FastDepth 在 NYU Depth v2 数据集上与其他先进方法进行了比较。运行时间在 NVIDIA Jetson TX2 最大性能模式下测量。

方法输入尺寸MACs [G]RMSE [m]delta1CPU [ms]GPU [ms]
Eigen et al. [NIPS 2014]228×3042.060.9070.61130023
Eigen et al. [ICCV 2015](AlexNet)228×3048.390.7530.697140096
Laina et al. [3DV 2016](UpProj)228×30442.70.5730.8113900319
FastDepth(本文工作)224×2240.370.6040.771375.6

FastDepth在Jetson TX2 GPU上的性能对比

FastDepth深度估计效果可视化对比

项目优势

  1. 高效性能:相比传统方法,FastDepth 在 TX2 GPU 上实现了 5.6ms 的推理时间
  2. 轻量化设计:仅需 0.37 G MACs,适合资源受限设备
  3. 精度平衡:在保持较高精度的同时显著提升速度

应用场景

FastDepth 特别适用于以下场景:

  • 机器人导航与环境感知
  • 自动驾驶辅助系统
  • AR/VR场景深度理解
  • 智能监控与安防系统

总结

FastDepth 为嵌入式系统上的实时深度估计提供了一个高效解决方案。通过优化的网络架构和编译技术,该项目在精度和速度之间达到了良好的平衡,是嵌入式计算机视觉应用的理想选择。

对于需要在实际嵌入式设备上部署深度估计功能的开发者来说,FastDepth 提供了一个完整的工作流程,从模型训练到部署都有详细的指导和支持。

【免费下载链接】fast-depthICRA 2019 "FastDepth: Fast Monocular Depth Estimation on Embedded Systems"项目地址: https://gitcode.com/gh_mirrors/fa/fast-depth

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 18:22:14

nanomsg高性能通信:构建下一代分布式系统的核心技术

nanomsg高性能通信:构建下一代分布式系统的核心技术 【免费下载链接】nanomsg nanomsg library 项目地址: https://gitcode.com/gh_mirrors/na/nanomsg nanomsg是一个革命性的高性能消息传递库,专门为构建可扩展的分布式系统而设计。作为传统消息…

作者头像 李华
网站建设 2026/5/7 14:43:30

ANSYS Fluent UDF高级编程完整手册:深度扩展仿真定制功能

ANSYS Fluent UDF高级编程完整手册:深度扩展仿真定制功能 【免费下载链接】ANSYSFluentUDFManual2020R2官方手册资源下载 本开源项目提供了ANSYS Fluent UDF Manual (2020R2) 的官方PDF文件下载,专为希望在Fluent中进行自定义编程的用户设计。手册详细介…

作者头像 李华
网站建设 2026/5/7 23:50:33

前端开发人员:以下是如何充分利用 Cursor

前端开发人员:如何充分利用 Cursor Cursor 是一个基于 VS Code 的 AI 驱动代码编辑器,专为开发者设计,尤其适合前端工作。它集成了大型语言模型(如 Claude 或 GPT),能帮助你快速生成、调试和优化代码。作为…

作者头像 李华
网站建设 2026/5/5 9:19:02

[C语言]双向循环链表的增删改查功能

[C语言]双向循环链表的增删改查功能 1. 前言 本例提供一个可复用的双向循环链表模板,含完整接口与菜单式示例主程序,便于快速集成或学习链表操作。 2. 功能/亮点概览 双向循环 哨兵节点,边界处理简单。增删改查全覆盖,含头/尾…

作者头像 李华
网站建设 2026/5/3 20:00:03

鸣潮玩家必看:5大自动化功能让游戏效率提升300%

鸣潮玩家必看:5大自动化功能让游戏效率提升300% 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 还在为重复的刷…

作者头像 李华
网站建设 2026/5/6 16:52:52

Path of Building终极指南:四大模块打造完美角色构建

Path of Building终极指南:四大模块打造完美角色构建 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 作为《流放之路》社区最受欢迎的角色构建工具&#xff0…

作者头像 李华