(深度估计学习)Depth Anything V2 复现

Depth Anything V2 复现

代码:https://github.com/DepthAnything/Depth-Anything-V2

一、配置环境

在本机电脑win跑之后依旧爆显存,放到服务器跑:Ubuntu22.04,CUDA17

bash 复制代码
conda create -n DAv2 python=3.10
conda activate DAv2

conda下安装cuda。由于服务器上面我不能安装CUDA,只能在conda上安装cuda。我安装的cuda11.7。

跟着下面的教程做:

conda虚拟环境中安装cuda和cudnn,再也不用头疼版本号的问题了

bash 复制代码
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/linux-64/cudatoolkit-11.7.1-h4bc3d14_13.conda
conda install --use-local cudatoolkit-11.7.1-h4bc3d14_13.conda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/linux-64/cudnn-8.9.7.29-hcdd5f01_2.conda
conda install --use-local cudnn-8.9.7.29-hcdd5f01_2.conda

安装其他依赖

记得在requirements.txt中增加tensorboard、h5py

bash 复制代码
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt

检查torch是否安装正确以及cuda版本

bash 复制代码
python
import torch
torch.cuda.is_available()
torch.version.cuda

二、准备数据

1. 权重文件

将pre-trained-models放在 DepthAnythingV2/checkpoints 文件夹

2. 训练数据

训练的时候需要,我这里之前就准备了vkitti。我先用vkitti数据跑一下试一下。

三、Test

Running script on images:

bash 复制代码
python run.py \
  --encoder <vits | vitb | vitl | vitg> \
  --img-path <path> --outdir <outdir> \
  [--input-size <size>] [--pred-only] [--grayscale]

Options:

  • --img-path: You can either 1) point it to an image directory storing all interested images, 2) point it to a single image, or 3)
    point it a text file storing all image paths.
  • --input-size (optional): By default, we use input size 518 for model inference. You can increase the size for even more fine-grained
    results.
  • --pred-only (optional): Only save the predicted depth map, without raw image.
  • --grayscale (optional): Save the grayscale depth map, without applying color palette.

For example:

bash 复制代码
python run.py --encoder vitl --img-path assets/examples --outdir depth_vis

Running script on videos

bash 复制代码
python run_video.py \
  --encoder <vits | vitb | vitl | vitg> \
  --video-path assets/examples_video --outdir video_depth_vis \
  [--input-size <size>] [--pred-only] [--grayscale]

Our larger model has better temporal consistency on videos.

四、Train

根据自己的数据修改DepthAnythingV2/metric_depth/dataset/splits和train.py中的路径数据

bash 复制代码
sh dist_train.sh

但我运行不了这个sh文件,所以我选择直接配置.vscode/launch.json。并且我将我的train代码改为了非分布式的。

bash 复制代码
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试程序: train.py",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/metric_depth/train.py",
            "console": "integratedTerminal",
            "args": [
                "--epoch", "120",
                "--encoder", "vitl",
                "--bs", "2",
                "--lr", "0.000005",
                "--save-path", "./exp/vkitti",
                "--dataset", "vkitti",
                "--img-size", "518",
                "--min-depth", "0.001",
                "--max-depth", "20",
                "--pretrained-from", "./checkpoints/depth_anything_v2_vitl.pth", 
            ],
            "env": {
                "MASTER_ADDR": "localhost",
                "MASTER_PORT": "20596"
            }
        },
        {
            "name":"Python 调试程序: run.py",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/run.py",
            "console": "integratedTerminal",
            "args": [
                "--encoder", "vitl",
                "--img-path", "assets/examples",
                "--outdir", "output/depth_anything_v2_vitl_test",
                "--checkpoints","checkpoints/depth_anything_v2_vitl_test.pth"
            ],
        }
    ]
}
相关推荐
zhangrelay8 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
叼烟扛炮12 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
m4Rk_14 小时前
【论文阅读】Agent 记忆机制(113):Agentic Memory Management——从“检索相关信息”走向“管理 Agent 内部记忆”
论文阅读·人工智能·学习·开源·github
辣知15 小时前
辣知·化智92 《山海经》里的史前密码
学习
鬼手点金15 小时前
KV Cache 未必是一次性的:可编辑、可组合的“笔记”
java·人工智能·笔记·学习·自动化·1024程序员节
kyrie_sakura16 小时前
大模型学习18 大模型学习 - LangChain2_Model I/O
学习·自然语言处理
宝绿特塑业再生科技17 小时前
板材收缩率不稳,户外家具装配尺寸为何对不上:从切割尺寸变化到接缝不一的系统性排查与对策
笔记·科技·学习·生活·户外家具·hdpe再生颗粒·hdpe
~城南花已开~17 小时前
Intel E810 SR-IOV VF Spoofcheck 防伪造测试-KVM3
服务器·网络·笔记·学习·ubuntu·etl工程师
我命由我1234520 小时前
6-3.Python 异常处理 - 异常处理进阶(else 块与 finally 块、异常传递、自定义异常)
开发语言·前端·数据库·后端·python·学习·java-ee
外收内放20 小时前
FastAPI猜字谜实战(8):收官
开发语言·python·学习·fastapi