MiDaS移动端单目深度估计模型解析与性能对比
2025-07-08 04:00:26作者:裴锟轩Denise
项目背景
MiDaS是由英特尔ISL实验室开发的开源单目深度估计项目,其移动端版本专门为iOS和Android平台优化,能够在资源受限的移动设备上实现高效的深度图计算。本文将深入分析移动端MiDaS的技术特点、模型架构演进以及性能表现。
模型演进与架构对比
旧版小型模型
- 基础架构:基于ResNet50编码器搭配默认解码器
- 输入分辨率:384×384
- 训练数据集:RedWeb、MegaDepth、WSVD、3D Movies、DIML indoor
新版小型模型
- 基础架构:采用EfficientNet-Lite3编码器搭配精简解码器
- 输入分辨率:256×256
- 训练数据集:在旧版基础上增加了HRWSI、IRS、TartanAir、BlendedMVS、ApolloScape
精度性能对比
通过零样本(zero-shot)测试评估模型在多个标准数据集上的表现:
评估指标 | DIW WHDR ↓ | Eth3d AbsRel ↓ | Sintel AbsRel ↓ | Kitti δ>1.25 ↓ | NyuDepthV2 δ>1.25 ↓ | TUM δ>1.25 ↓ |
---|---|---|---|---|---|---|
旧模型(384) | 0.1248 | 0.1550 | 0.3300 | 21.81 | 15.73 | 17.00 |
新模型(256) | 0.1344 | 0.1344 | 0.3370 | 29.27 | 13.43 | 14.53 |
相对改进(%) | -8% | +13% | -2% | -34% | +15% | 15% |
注:↓表示数值越低越好
关键发现:
- 新版模型在Eth3d、NyuDepthV2和TUM数据集上表现更优
- 在Kitti数据集上精度有所下降,可能与输入分辨率降低有关
- 整体来看,新版模型在保持精度的同时显著提升了运行效率
推理速度对比
移动设备实测帧率(FPS)表现:
设备平台 | iPhone CPU | iPhone GPU | iPhone NPU | OnePlus8 CPU | OnePlus8 GPU | OnePlus8 NNAPI |
---|---|---|---|---|---|---|
旧模型(384) | 0.6 | N/A | N/A | 0.45 | 0.50 | 0.50 |
新模型(256) | 8 | 22 | 30 | 6 | 22 | 4 |
加速倍数 | 12.8x | - | - | 13.2x | 44x | 8x |
性能亮点:
- iPhone平台NPU加速可达30FPS,满足实时处理需求
- Android平台GPU加速提升44倍,达到22FPS
- CPU推理也有12倍以上的性能提升
技术实现要点
模型转换流程
-
旧模型转换: Pytorch → ONNX → TensorFlow → TFLite
- 使用onnx-tf转换器
- 最终生成FP32精度的TFLite模型
-
新模型转换: 定制化Pytorch直接到TFLite的转换流程
- 简化转换步骤
- 保持FP32精度
开发环境配置
# PyTorch环境
pip install torch==1.6.0 torchvision==0.7.0
# TensorFlow环境
pip install tf-nightly-gpu==2.5.0.dev20201031 tensorflow-addons==0.11.2 numpy==1.18.0
应用场景建议
- 实时AR应用:推荐使用新版模型,利用NPU/GPU加速实现实时深度估计
- 精度优先场景:对Kitti数据集精度要求高时,可考虑使用旧版模型
- 移动端部署:新版模型在资源占用和性能平衡上表现更优
学术引用
该项目基于以下论文研究成果:
@article{Ranftl2020,
author = {Ren\'{e} Ranftl and Katrin Lasinger and David Hafner and Konrad Schindler and Vladlen Koltun},
title = {Towards Robust Monocular Depth Estimation: Mixing Datasets for Zero-shot Cross-dataset Transfer},
journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI)},
year = {2020},
}
该论文提出了混合多数据集训练的方法,实现了零样本跨数据集的泛化能力,这也是MiDaS模型具有强大泛化性能的关键所在。