Depth Anything环境搭建&推理测试

引子

基于单目摄像头的深度估计,一直是CV领域的一个难点,之前也对此关注也不够多。偶然浏览技术博客,看到Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data这个最新CVPR2024的工作。看到名字,大概也能猜出来这篇是致敬Segment Anything(之前也分享过一篇这个主题的,感兴趣的请移步Segment Anything(SAM)环境安装&代码调试_amg.py-CSDN博客)。OK,让我们开始吧。

一、模型介绍

作者提出一种用于单目深度估计(Monocular Depth Estimation, MDE)的高度实用方案Depth Anything「致敬Segment Anything」,它旨在构建一种可以处理任务环境下任意图像的简单且强力的基础深度模型。为此,作者从三个维度进行了探索:

(1)数据集维度设计了一种数据引擎用于数据收集与自动标注,构建了~62M的大规模无标注数据,这极大程度提升了数据覆盖率、降低泛化误差;

(2)通过利用数据增广工具构建了一种更具挑战性的优化目标,促使模型主动探索额外的视觉知识,进而提升特征鲁棒性;

(3)设计了一种辅助监督信息以迫使模型从预训练Encoder中继承丰富语义先验信息。

作者在六个公开数据集与随机拍摄图片上评估了模型的zero-shot能力;通过度量深度信息微调达成新的SOTA;更优的深度模型进而引申出更优的深度引导ControlNet。

二、环境搭建

(1)模型下载

git clone https://huggingface.co/spaces/LiheYoung/Depth-Anything/tree/main/checkpoints

config下载

https://huggingface.co/LiheYoung/depth_anything_vits14/tree/main

(2)代码下载

git clone https://github.com/LiheYoung/Depth-Anything.git

(3)安装环境

docker run -it -v /datas/work/zzq/:/workspace --gpus=all pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel bash

cd /workspace/depth-anything/Depth-Anything

pip install -r requirements.txt -i Simple Index

三、推理测试

(1)修改代码

(2)执行代码

python run.py --encoder vits --img-path bus.jpg

### OpenVINO 中与 Depth 相关的功能或参数 OpenVINO 是英特尔推出的一个用于加速深度学习推理的工具包,支持多种硬件平台并优化模型性能。尽管提供的引用并未直接提及 OpenVINO 的具体功能[^1],但基于其架构设计和技术背景,可以讨论一些可能涉及 `depth` 参数的关键领域。 #### 1. 深度卷积神经网络的支持 在计算机视觉任务中,许多模型依赖于三维张量输入(高度、宽度和通道数)。这里的“深度”通常指代图像中的通道维度(例如 RGB 图像有三个通道),或者更广泛地说是指特征图的层数。OpenVINO 支持对这些多维数据的操作,并通过 IR(Intermediate Representation)文件定义模型结构[^2]。 对于深度相关的操作,如 3D 卷积层或深度可分离卷积(Depthwise Separable Convolution),OpenVINO 提供高效的实现方式来处理高分辨率或多通道的数据集[^3]。 #### 2. 数据预处理阶段的深度调整 在加载模型之前,OpenVINO SDK 可能会涉及到对输入数据形状的调整。如果原始模型期望特定的深度值作为输入,则可以通过配置文件指定该参数。例如,在使用 `Preprocessing API` 进行自定义变换时,开发者能够设置目标尺寸以及相应的深度属性: ```cpp preprocess.setInputShape({1, 3, 224, 224}); // 设置为标准RGB图片大小 ``` 上述代码片段展示了如何将输入设定为具有三重颜色信息的标准二维平面布局[^4]。 #### 3. 性能调优选项下的精度控制 当提到 “depth”,有时也暗含着数值表示形式上的差异——比如浮点型 vs 整形近似表达法。为了满足不同应用场景需求,OpenVINO 允许切换运行模式至 INT8 或 FP16 等低功耗状态而不显著损失准确性。这种转换过程实际上就是减少每像素存储所需比特位数量即降低“bit-depth”的体现之一[^5]。 --- ### 示例代码展示 下面给出一段简单的 Python 脚本用来演示如何利用 openvino 推理引擎执行带特定 input shape(包含 channel/depth info)的任务: ```python from openvino.runtime import Core ie = Core() model_path = 'path_to_your_model.xml' compiled_model = ie.compile_model(model=model_path, device_name="CPU") input_layer = compiled_model.input(0) print(f"Input layer's depth is {input_layer.shape[1]}") # Assuming batch size=1 ``` 此脚本读取了一个预先训练好的 XML 文件格式化后的神经网络描述符,并打印出了第一个输入端口所接受 tensor 的第二个维度长度也就是常说的颜色分量数目或者说 feature map 的厚度(depth)[^6]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要养家的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值