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

Depth Anything V2 复现

  • 一、配置环境
  • 二、准备数据
    • 1. 权重文件
    • 2. 训练数据
  • 三、Test
  • 四、Train

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

一、配置环境

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

conda create -n DAv2 python=3.10
conda activate DAv2

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

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

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

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版本

python
import torch
torch.cuda.is_available()
torch.version.cuda

二、准备数据

1. 权重文件

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

2. 训练数据

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

三、Test

Running script on images:

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:

python run.py --encoder vitl --img-path assets/examples --outdir depth_vis

Running script on videos

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中的路径数据

sh dist_train.sh

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

{// 使用 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"],}]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/44731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Zabbix进行服务监控:构建高效稳定的IT服务管理平台

使用Zabbix进行服务监控&#xff1a;构建高效稳定的IT服务管理平台 在当今的数字化时代&#xff0c;IT服务管理&#xff08;ITSM&#xff09;对于确保企业IT系统的稳定性和性能至关重要。服务监控是ITSM的重要组成部分&#xff0c;可以帮助企业实时了解IT系统的运行状况&#…

微调Qwen2大语言模型加入领域知识

目录 试用Qwen2做推理安装LLaMA-Factory使用自有数据集微调Qwen2验证微调效果 试用Qwen2做推理 参考&#xff1a;https://qwen.readthedocs.io/en/latest/getting_started/quickstart.html from transformers import AutoModelForCausalLM, AutoTokenizer device "cuda…

极速构建的艺术:Kylin中Cube的并行构建实践

极速构建的艺术&#xff1a;Kylin中Cube的并行构建实践 引言 Apache Kylin是一款开源的分布式分析引擎&#xff0c;专为处理大规模数据集的即时查询而设计。Kylin通过构建数据立方体&#xff08;Cube&#xff09;来优化查询性能。随着数据量的不断增长&#xff0c;Cube的构建…

9.6 栅格图层符号化唯一值着色渲染

文章目录 前言多波段彩色渲染唯一值着色QGis设置为唯一值着色二次开发代码实现唯一值着色 总结 前言 介绍栅格图层数据渲染之唯一值着色渲染说明&#xff1a;文章中的示例代码均来自开源项目qgis_cpp_api_apps 多波段彩色渲染唯一值着色 以“with_color_table.tif”数据为例…

硅谷甄选4(项目主体)

1.路由配置 1.1路由组件的雏形 src\views\home\index.vue&#xff08;以home组件为例&#xff09; 安装插件&#xff1a; 1.2路由配置 1.2.1路由index文件 src\router\index.ts //通过vue-router插件实现模板路由配置 import { createRouter, createWebHashHistory } fro…

B站学习Java路线

Java 基础 【零基础 快速学Java】韩顺平 零基础30天学会Java JVM 尚硅谷宋红康JVM全套教程&#xff08;详解java虚拟机&#xff09; Java 并发 JUC

react-router实现路由拦截,useLocation,useNavigate钩子

路由拦截 react-router中没有直接给出拦截路由的方法&#xff0c;需要手动的去监听路由的变化来拦截路由 路由拦截的要点&#xff1a; 能够识别出目标路由和原始路由&#xff08;区分跳转前和跳转后&#xff09;能够在跳转时&#xff08;跳转前或者跳转后&#xff09;执行一些…

Python redis获取的结果是字节不是字符串

Python redis获取的结果是字节不是字符串 pool redis.ConnectionPool(hostlocalhost,port6379, passwordREDIS_PWD, decode_responsesTrue)需要指明给结果解码decode_responsesTrue才能返回字符串

图论基础概念(详细讲解)

今天&#xff0c;我们讲解一下图论的概念&#xff0c;首先我们知道图是一个什么东西。 图你可以理解成一个网络系统&#xff0c;两个节点之间可能会有边&#xff0c;边链接两个节点&#xff0c;可能是有向&#xff08;就比如说a只能往b,或者b只能往c)&#xff0c;可能是无向&a…

Vulnhub靶场 | DC系列 - DC1

https://www.vulnhub.com/series/dc,199/ 环境搭建 靶机镜像下载地址&#xff1a;https://www.vulnhub.com/entry/dc-1,292/&#xff1b;需要将靶机和 kali 攻击机放在同一个局域网里&#xff1b;本实验kali 的 IP 地址&#xff1a;192.168.10.146。 渗透测试 1. 信息收集 …

CH16-DOM元素增删改

CH16-DOM元素增删改 本章目标 掌握如何使用DOM获取节点时使用的属性熟练使用DOM节点进行创建、添加、删除、替换 一、使用DOM获取节点时使用的属性 1.1 首尾子节点 firstChild&#xff1a;获取当前节点的首个子节点&#xff0c;注意&#xff1a;换行符、空格等也是节点。 …

【逆向】-异或-分组异或2

IDA查看源代码 src长度32&#xff0c;encrypt函数加密&#xff0c;工4个参数&#xff0c;_FFFC双击&#xff0c;可以看到是个长度为7的固定值FnTest! 加密函数将4个参数又重新命名&#xff0c;混淆视听&#xff0c;但是还是可以看到是嵌套循环&#xff0c;动态调试直接看结果可…

ArcGIS Pro SDK (八)地理数据库 8 拓扑

ArcGIS Pro SDK &#xff08;八&#xff09;地理数据库 8 拓扑 文章目录 ArcGIS Pro SDK &#xff08;八&#xff09;地理数据库 8 拓扑1 开放拓扑和进程定义2 获取拓扑规则3 验证拓扑4 获取拓扑错误5 标记和不标记为错误6 探索拓扑图7 找到最近的元素 环境&#xff1a;Visual …

C++11中重要的新特性之 lambda表达式 Part two

序言 在上一篇文章中&#xff0c;我们主要介绍了 C11 中的新增的关键词&#xff0c;以及 范围for循环 这类语法糖的使用和背后的逻辑。在这篇文章中我们会继续介绍一个特别重要的新特性分别是 lambda表达式 。 1. lambda表达式 1.1 lambda的定义 C11 中的 lambda表达式 是一种…

昇思25天学习打卡营第19天 | ResNet50迁移学习再续

训练模型部分代码解析 构建Resnet50网络 两行初始化代码 weight_init Normal(mean0, sigma0.02)这行代码定义了一个初始化器weight_init&#xff0c;它将使用均值为0&#xff0c;标准差为0.02的正态分布来初始化网络中的权重。这种初始化策略有助于在网络的初始阶段避免梯度…

Java基础之集合

集合和数组的类比 数组: 长度固定可以存基本数据类型和引用数据类型 集合: 长度可变只能存引用数据类型存储基本数据类型要把他转化为对应的包装类 ArrayList集合 ArrayList成员方法 添加元素 删除元素 索引删除 查询 遍历数组

day30【LeetCode力扣】18.四数之和

day30【LeetCode力扣】18.四数之和 1.题目描述 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个…

Linux: Mysql环境安装

Mysql环境安装&#xff08;Centos&#xff09; 前言一、卸载多余环境1.1 卸载mariadb1.2 查看并卸载系统mysql和mariadb安装包 二、换取mysql官方yum源三、安装并启动mysql服务3.1 yum源加载3.2 安装yum源3.3 安装mysql服务3.3.1 安装指令3.3.2 GPG密钥问题解决方法3.3.3 查看是…

循环结构(一)——for语句【互三互三】

文章目录 &#x1f341; 引言 &#x1f341; 一、语句格式 &#x1f341; 二、语句执行过程 &#x1f341; 三、语句格式举例 &#x1f341;四、例题 &#x1f449;【例1】 &#x1f680;示例代码: &#x1f449;【例2】 【方法1】 &#x1f680;示例代码: 【方法2】…

【C++ 编程】引用 - 给变量起别名、浅复制

基本语法&#xff1a;数据类型 &别名 原名int a 10; int &b a;引用必须初始化 (❌ int &b;)&#xff0c;初始化后不可改变 (int c 5; b c&#xff1a;b 没有变成c的别名&#xff0c;而是 a、b 对应的值变更为了 c 的值)本质是指针常量, 浅复制 【黑马程序员匠…