FastDepth:嵌入式系统上的快速单目深度估计
2026/9/6 13:47:19 网站建设 项目流程

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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询