【深度学习】深度估计,Depth Anything Unleashing the Power of Large-Scale Unlabeled Data

论文标题:Depth Anything Unleashing the Power of Large-Scale Unlabeled Data
论文地址:https://arxiv.org/pdf/2401.10891.pdf
项目主页:https://depth-anything.github.io/
演示地址:https://huggingface.co/spaces/LiheYoung/Depth-Anything

这项工作提出了“Depth Anything”,一种用于鲁棒单目深度估计的高度实用的解决方案。我们的目标是构建一个基础模型,能够在任何情况下处理任何图像。为此,我们通过设计一个数据引擎来收集和自动注释大规模未标记数据(约6200万),显著扩大了数据覆盖范围,从而能够降低泛化误差。我们研究了两种简单但有效的策略,使得数据规模扩大成为可能。首先,通过利用数据增强工具创建了一个更具挑战性的优化目标,迫使模型主动寻求额外的视觉知识并获取鲁棒的表示。其次,开发了一个辅助监督,以强制模型继承来自预训练编码器的丰富语义先验。我们广泛评估了其零样本能力,包括六个公共数据集和随机捕获的照片。它展示了令人印象深刻的泛化能力。通过对NYUv2和KITTI进行微调,设置了新的最佳水平。我们的更好的深度模型还导致了一个更好的深度条件ControlNet。我们的模型在这里发布。

该工作是在TikTok实习期间完成的。我们强调大规模、廉价和多样化的未标记图像数据的价值对于MDE(单目深度估计)而言。我们提出了在联合训练大规模标记和未标记图像时的一个关键实践。我们的模型展示了比MiDaS-BEiT L-512更强的零样本能力。此外,经过与度量深度的微调,它显著超过了ZoeDepth。
我们的工作使用了标记和未标记的图像来促进更好的单目深度估计(MDE)。具体来说,对于未标记的图像,我们提出通过在学习伪标签时对学生模型提出更具挑战性的优化目标,使其主动寻求额外的视觉知识并学习更鲁棒的表示。此外,我们通过简单的特征对齐损失保留了丰富的语义先验,而不是使用辅助的语义分割任务。这不仅增强了MDE性能,还为中高级感知任务产生了多任务编码器。

实验部分详细说明了我们的实现细节,展示了在零样本相对深度估计、微调后的度量深度估计和语义分割等方面的性能。我们的Depth Anything模型不仅在零样本深度估计中表现出色,而且还证明了作为下游度量深度估计和语义分割任务的有前途的权重初始化。通过大规模和高质量的MDE训练,我们的模型显著提高了DINOv2在下游任务中的性能,并提供了可视化结果以展示其鲁棒性和准确性。

这项工作提出了一个强大的框架,通过利用大规模未标记数据和继承丰富的语义先验,显著提高了单目深度估计的性能,同时为下游任务提供了一个强大的预训练模型。

实操:

clone项目:

git clone https://github.com/LiheYoung/Depth-Anything
cd Depth-Anything
pip install -r requirements.txt

运行:

# 大模型
python run.py --encoder vitl --img-path assets/examples --outdir depth_vis
# 中模型
python run.py --encoder vitb --img-path assets/examples --outdir depth_vis
# 小模型
python run.py --encoder vits --img-path assets/examples --outdir depth_vis

运行graidio:

python app.py

在这里插入图片描述

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

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

相关文章

PyCharm 中 Python 解释器的配置

温馨提示:本文 PyCharm 版本是 2022.3.3 前言 作为 Python 新手,在了解了基本语法之后,肯定得先用 IDE 工具写个 Hello World,来了解 Python 编程语法及 IDE 工具的常规配置和使用,这里我用的 IDE 工具是 PyCharm。 …

C++:构造函数赋初值的几种形式

构造函数用于类对象的初始化,没有返回值也不用写void,函数名与类名相同。构造函数可以有形参也可以无参,构造函数要写在类里边。语法:public: 类名(){ *** }。构造函数在创建对象(实例化)时会被调用且只有一…

leetcode第49题字母异位词分组

49. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 输入: strs ["eat", "tea", "tan", "ate", "na…

2024年服务器硬件知识普及篇(需要配置服务器的朋友可以参考)

嘿,大家好!今天我们要聊一聊服务器硬件。无论你是想自己搭建一个服务器,还是对服务器硬件感兴趣,这篇文章都会对你有所帮助。我会尽量用简单易懂的语言,带你了解服务器硬件的基础知识。准备好了吗?让我们开…

unicloud update 修改

update 修改 使用腾讯云时更新方法必须搭配doc、where方法使用,db.collection(‘test’).update()会报如下错误:param should have required property ‘query’ collection.doc().update(Object data)未使用set、remove更新操作符的情况下&#xff0c…

odoo中_name_search用法

_name_search是Odoo中一个重要的方法,用于实现模型记录的搜索逻辑。这个方法通常在后端被调用,以便在Odoo的各种视图中(如下拉列表选择框)搜索和筛选记录。_name_search是模型中的一个API方法,可以被重写以自定义搜索逻…

一维数组_校门外的树

任务描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2&#xff…

如何通过libusb直接向zebra打印机发送zpl,跨平台win/linux

环境:windows & linux & Zebra打印机gt820 windows: 之前安装了Zebra打印机官方驱动,所以先卸载掉驱动。再安装Zadig,用Zadig工具来安装WinUSB驱动。 zadig下载:Zadig - USB driver installation made easy 记住这两个数…

基金评价指标3——滚动收益率测算(近N日收益率,当周/月/年平均收益率)

文章目录 各个指标1. 近N日收益率2. 当周/月/年平均收益率 示例代码 各个指标 1. 近N日收益率 近N日收益率 (当日累计收益 - N日前的累计收益) / N日前的累计收益 2. 当周/月/年平均收益率 这里需要区分不同时间段的起始与终止区间 区间收益率 (区间终值累计收益 - 区间…

c语言指针基础下(下)

指针 字符指针变量 字符串变量的一般使用 int main() {char ch w;char* p &ch;*p h;printf("%c", ch);return 0; }上面就是通过指针的解引用改变了ch的值 int main() {char* p "ni hao a";//这个是常量字符串printf("%s\n", p);//打印…

超融合如何助力水务公司实现虚拟化与容器环境统一管理?

近些年,企业 IT 基础架构现代化转型的步伐逐渐加快,不少金融、医疗、政府等行业的用户,已在生产环境部署 Kubernetes 等云原生基础设施,为业务应用提供敏捷支持。不过,一些企业的容器化转型仍处于起步阶段,…

学习Android的第二十八天

目录 Android Service (服务) 线程 Service (服务) Service 相关方法 Android 非绑定 Service startService() 启动 Service 验证 startService() 启动 Service 的调用顺序 Android 绑定 Service bindService() 启动 Service 验证 BindService 启动 Service 的顺序 …

Instant --java学习笔记

Instant 时间线上的某个时刻 / 时间戳过获取lnstant的对象可以拿到此刻的时间,该时间由两部分组成:从1970-01-01 00:00:00 开始走到此刻的总秒数不够1秒的纳秒数 Instant的常见方法: Instant可以用来记录代码的执行时间,或用于记录用户操作某…

面试经验分享 | 通关某公司面试靶场

0x00:探测IP 首先打开时候长这个样,一开始感觉是迷惑行为,试了试/admin,/login这些发现都没有 随后F12查看网络,看到几个js文件带有传参,就丢sqlmap跑了一下无果 随后也反查了域名一下,发现没有域名&#…

[java入门到精通] 20 反射精讲

复习 1.索引:主要是提高查询性能。 2.索引分类:主键索引 唯一索引 普通索引 组合索引 全文索引 hash索引 3.索引底层数据结构是btree.非叶子结点是由:索引指针域 叶子结点:索引数据(数据地址),是双链表 4.jdbc:java…

《高效便捷,探索快递柜系统架构的智慧之路》

随着电商业务的蓬勃发展,快递柜系统作为一种高效、便捷的最后一公里配送解决方案,正在受到越来越多企业和消费者的青睐。本篇博客将深入探讨快递柜系统的架构设计理念、优势和实践,帮助读者了解如何构建智能化的快递柜系统,提升物…

华为机试题-日志限流

题目 某软件系统会在运行过程中持续产生日志,系统每天运行 N 单位时间,运行期间每单位时间产生的日志条数保存在数组 records 中。records[i]表示第 i 单位时间内产生日志条数。由于系统磁盘空间限制,每天可记录保存的日志总数上限为 total 条。如果一天产生的日志总…

简单的网页才好学习嘛!!!

做一个个人博客第一步该怎么做? 好多零基础的同学们不知道怎么迈出第一步。 那么,就找一个现成的模板学一学呗,毕竟我们是高贵的Ctrl c v 工程师。 但是这样也有个问题,那就是,那些模板都,太!…

LLVM源码分析

LLVM源码分析 LLVM IR 使用LLVM IR编程 LLVM语言参考手册 llvm-pass-tutorial 推荐 LLVM CMU 教案 深入剖析-iOS-编译-Clang—LLVM LLVM_proj LLVM编程索引 llvm源码浏览带跳转 llvm-clang-samples llvm-tutor A collection of LLVM passes (with tests and build…

idea中操作Git将本地仓库代码完整提交到Gittee中

文章目录 1.在idea中打开你的项目根目录, idea中vcs -> create Git Repository2.选中你的项目所在的目录3. git commit -m"你的备注"4. 直接强制本地仓库覆盖远程仓库的东西5.或者直接使用git 进行这个操作 1.在idea中打开你的项目根目录, …