人类有两只眼睛来估计视觉环境的深度信息,但近些年越来越多的低成本机器人、VR/AR穿戴式设备却没有这样「豪华的配置」,往往只能靠单个摄像头或单张图像来估计深度。这个任务也被称为单目深度估计(Monocular Depth Estimation, MDE)。例如:
本篇文章“走马观花”地分享最近由香港大学、浙江大学、TikTok等机构的研究者提出的一种用于鲁棒单目深度估计的解决方案《Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data》。
同时也分享下在端侧芯片AX650N上部署效果。
相比之前的工作,特别是在单目深度估计(MDE)领域,具有以下几个显著的优点:
总的来说,Depth Anything通过创新的数据策略和模型设计,特别是采用了DINOv2编码器进行特征提取。简单高效地提高了单目深度估计的准确性和鲁棒性,特别是在处理大规模未标记数据和未知场景时的性能。
作者的工作利用标记和未标记的图像来促进更好的单目深度估计(MDE)。形式上,标记集和未标记集分别表示为Dl和Du。工作目标是从Dl学习教师模型T。然后,利用T为Du分配伪深度标签。最后,在标记集和伪标记集的组合上训练了一个学生模型S。如图提供了一个简短的说明,流水线包括如下。
虚线:未标记的图像,特别强调大规模未标记图像的价值,S表示添加强扰动。为了使深度估计模型具有丰富的语义先验,在在线的学生模型和冻结的编码器之间强制执行辅助约束,保持语义能力。
作者在论文中,全面验证了Depth Anything模型在KITTI、NYUv2、Sintel、DDAD、ETH3D和DIODE上的零样本深度估计能力,并将其与最新MiDaS v3.1中的最佳DPT-BEiT_L-512模型进行了比较,效果优秀。
上述这些贡献共同推动了单目深度估计领域的发展,特别是在利用未标记数据和提高模型泛化能力方面。Depth Anything模型的提出,为解决实际应用中的深度估计问题提供了新的思路和方法。
接下来简单分享下该模型在爱芯派Pro(AX650N)上的部署效果。
为了方便大家快速体验Depth Anything的效果,我们在Github上开源了对应的DEMO以及相关预编译好的NPU模型,方便大家快速体验。
文件名 | 描述 |
---|---|
ax_depth_anything | 基于AX650N的DEMO,NPU计算 |
depth_anything.json | pulsar2 build依赖的配置文件 |
depth_anything_npu3_u16.axmodel | NPU模型 |
depth_anything_vits14-sim.axmodel | pulsar2 build依赖的输入ONNX模型 |
sacre_coeur1.jpg | 测试图片 |
/opt/test # ./ax_depth_anything -m depth_anything_npu3_u16.axmodel -i sacre_coeur1.jpg
--------------------------------------
model file : install/bin/models/depth_anything_npu3_u16.axmodel
image file : sacre_coeur1.jpg
img_h, img_w : 518 518
--------------------------------------
Engine creating handle is done.
Engine creating context is done.
Engine get io info is done.
Engine alloc io is done.Engine push input is done.
--------------------------------------
post process cost time:9.76 ms
--------------------------------------
Repeat 1 times, avg time 56.66 ms, max_time 56.66 ms, min_time 56.66 ms
--------------------------------------
--------------------------------------
从上面可以看出,使用AX650N上的NPU运行Depth Anything耗时56 ms(目前采用的是新增的端到端U16策略,速度略低,精度有保障。U8精调版本年后更新,预计能超过30 FPS)。
输出结果
基于ax-pipeline的实时视频处理DEMO
随着Vision Transformer网络模型的快速发展,越来越多有趣的AI应用将逐渐从云端服务迁移到边缘侧设备和端侧设备。