一张照片还原真实距离:Depth Anything V2 单目深度估计快速上手实战 📅 发布时间:2026/8/18 3:17:35 👁 浏览次数: 一张照片还原真实距离Depth Anything V2 单目深度估计快速上手实战【免费下载链接】Depth-Anything-V2[NeurIPS 2024] Depth Anything V2. A More Capable Foundation Model for Monocular Depth Estimation项目地址: https://gitcode.com/gh_mirrors/de/Depth-Anything-V2上个月我做了一个给老照片做 3D 效果的小项目把旅游时拍的街景照片放进某个深度估计工具结果出来的深度图糊成一片远处的楼房和近处的巴士几乎分不出层次。换了几张照片、调了几轮参数效果依然糟糕。后来朋友推荐我试试 Depth Anything V2只跑了一行命令第一张深度图就让我愣住——玻璃幕墙、人行道、双层巴士的轮廓清清楚楚近大远小的层次感全出来了。这篇文章就把我从装环境到跑通、再到玩出花的完整过程整理给你。Depth Anything V2 是什么给 AI 装上距离感Depth Anything V2 是发表于 NeurIPS 2024 的单目深度估计模型。所谓单目深度估计通俗讲就是只给一张普通照片让 AI 算出画面里每个物体离相机有多远输出一张深度图——近的物体亮、远的物体暗或按彩虹色带显示远近。它由香港大学与字节跳动合作推出基于 DINOv2 特征骨干网络加上 DPT 解码器实现官方仓库在 gitcode.com/gh_mirrors/de/Depth-Anything-V2。它最大的三个卖点用大白话说是细节更细比第一代版本能看清更薄的边缘、更小的物体、更抗造动漫、素描、水下、雨天等刁钻图片也不容易翻车、更快更省最小模型只有 24.8M 参数比同类方法快几十倍。对普通开发者来说这意味着你不用买顶配 GPU也能在本地把深度估计跑起来。十分钟跑通第一张深度图如果你和我一样是新手别急着看论文先让模型动起来信心就有了。整个过程三步走第一步克隆代码并安装依赖git clone https://link.gitcode.com/i/ff9fbebef6c1e09f14e77090cf5e11a6 cd Depth-Anything-V2 pip install -r requirements.txt依赖里主要是 torch、torchvision、opencv-python 这几个装起来很快。第二步下载预训练模型到官方模型页下载depth_anything_v2_vitl.pthLarge 版335.3M 参数精度和速度的平衡点放进项目根目录下的checkpoints/文件夹里。第三步运行推理脚本python run.py \ --encoder vitl \ --img-path assets/examples/demo01.jpg \ --outdir depth_results \ --pred-only几秒钟后打开depth_results/demo01.png你会看到一张彩虹色带的深度图——红色近、蓝色远画面里城市街道的空间层次一目了然。如果你觉得彩色太花哨加一个--grayscale参数就能输出灰白渐变的效果更像传统的景深图。这里解释一下几个常用参数--input-size控制输入分辨率默认 518调大到 1024 能换到更精细的边缘但推理更慢--img-path不仅能指单张图还能指向整个文件夹或一个 txt 文件每行一个图片路径批量处理非常方便。两个真正值得玩的核心能力跑通基础命令后我重点试了两个人无我有的亮点也是我最终决定在项目里用它的原因。能力一对非正常照片也稳如老狗传统深度模型最大的软肋是遇到真实照片以外的内容就精神错乱——线稿、油画、动漫人物它根本不知道距离该是多少。Depth Anything V2 专门把非真实场景当成一类训练数据来对待。我用项目自带的示例图做了测试一张是黑白线描速写一张是油画风格的田园风光模型都给出了合理的深度层次。这个能力对做图像特效、插画转 3D、游戏素材处理的人来说是刚需。如果你是这类开发者直接拿自己的线稿和插画去测大概率会收获惊喜。能力二从相对远近升级到真实米数默认模型输出的是相对深度——它只告诉你哪个物体更远但给不出具体距离。而自动驾驶、机器人、AR 放置物体这些场景需要的是这台柜子离我 2.3 米这种绝对值。仓库的metric_depth/子目录提供了专门的度量深度模型用 Hypersim 数据集微调了室内版本、用 Virtual KITTI 2 微调了室外版本。cd metric_depth python run.py \ --encoder vitl \ --load-from checkpoints/depth_anything_v2_metric_hypersim_vitl.pth \ --max-depth 20 \ --img-path ../assets/examples/demo10.jpg \ --outdir metric_results室内版--max-depth 2020 米室外版--max-depth 8080 米输出直接是带单位的米制深度图。更酷的是配套的depth_to_pointcloud.py脚本能把一张 2D 照片直接转成 3D 点云——这就离照片变 3D 模型只有一步之遥了。效果到底怎么样用数据说话官方发布的基准测试对比更能说明问题。在 518 分辨率、V100 GPU 的测试条件下不同方案的差距非常明显模型参数量推理时间准确率Marigold (LCM)948M5.2s86.8%DepthFM891M2.1s85.8%Depth Anything V2 Large335M213ms97.1%Depth Anything V2 Small25M60ms95.3%两个直观结论一是准确率全面领先二是速度完全不在一个量级——Small 模型 60 毫秒出结果而同类方案要等 2 到 5 秒。官方还发布了一个叫DA-2K的评估基准用 2K 条标注覆盖室内、室外、航拍、水下、透明反射物体、非真实场景等 8 类场景其中就包含测试表里说的这些刁钻情况。对于不同硬件条件我的选择建议是你的情况推荐配置理由只有普通笔记本 CPUvits input-size 38430-40ms跑得动有入门级 GPUvitb97.5M 参数性价比高追求效果vitl input-size 1024细节最丰富做研究对比vitg1.3B 参数最大规模我踩过的三个坑帮你提前避开第一模型文件位置别放错。运行脚本默认从checkpoints/目录加载权重我第一次把权重下载到了Downloads文件夹报错提示找不到文件排查半天才发现是路径问题。记得把权重放在项目根目录的checkpoints/下。第二首次运行没有 GPU 也别慌。代码会自动检测设备cuda优先、其次是苹果的mps、最后回落到cpu。如果你在无 GPU 的机器上跑 Large 模型前几秒会有点慢属正常现象想更快就换--encoder vits。第三视频处理要选大模型。我用run_video.py处理示例视频时发现模型越大相邻帧的深度越稳定、闪烁越少。官方也明确提示更大的模型在视频上时序一致性更好。如果你做视频深度建议至少用 vitl不要为了省时间选 vits。下一步可以玩什么跑通之后进阶路线大概有三条想玩交互可以运行python app.py启动一个 Gradio 网页界面拖拽图片即可实时查看深度还能导出 16 位原始深度数据想接入自己的产品官方支持把模型加载到 Transformers 管线里几行代码就能集成想上移动端社区已经做好了 ONNX、TensorRT、Core ML 和 Android 的移植版本。我给你的行动建议很具体今天就把仓库克隆下来用assets/examples/里那二十张示例图跑一遍run.py从 vits 换到 vitl 对比一下效果差异。当你亲手看到一张普通照片变成层次分明的深度图时你对单目深度估计的理解会比读十篇论文都深刻。如果跑通之后还想更进一步可以试着把手里的照片转成点云那是另一个让人上头的世界。【免费下载链接】Depth-Anything-V2[NeurIPS 2024] Depth Anything V2. A More Capable Foundation Model for Monocular Depth Estimation项目地址: https://gitcode.com/gh_mirrors/de/Depth-Anything-V2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考