Depth Anything——强大的单目深度估计模型

news2024/9/26 5:12:50

概述

单目深度估计(Monocular Depth Estimation, MDE)是一项在计算机视觉领域中非常重要的技术,它旨在从单张图像中恢复出场景的三维结构。这项技术对于机器人导航、自动驾驶汽车、增强现实(AR)和虚拟现实(VR)等应用至关重要。

"DepthAnything"是TikTok、香港大学和浙江大学共同研发的一种先进单目深度估计技术。这项技术能够从2D图像中提取深度信息,并将其转换为3D影像。与传统的MDE技术相比,"DepthAnything"在提高深度图质量方面取得了显著进步,这使得它能够更准确地估计场景的深度信息。

这种技术的应用前景非常广泛:

  1. 增强现实(AR)和虚拟现实(VR):通过将2D图像转换为3D,可以为用户创造更加沉浸式的体验。
  2. 机器人和自动驾驶汽车:更准确的深度估计可以帮助机器人和自动驾驶汽车更好地理解周围环境,从而提高它们的导航和决策能力。
  3. 内容创作:摄影师和视频制作者可以使用这项技术将普通2D内容转换为3D,增加作品的吸引力和互动性。

"DepthAnything"模型的成功研发,不仅展示了单目深度估计技术的进步,也为相关领域的研究和应用提供了新的可能性。随着技术的进一步发展和优化,我们可以期待它在未来的实际应用中取得更好的效果,并为多个行业带来便利。

代码:https://github.com/LiheYoung/Depth-Anything
论文:https://arxiv.org/abs/2401.1089

Depth Anything

论文提出的"Depth Anything"技术,是单目深度估计(MDE)领域的一个重要进展。它通过以下几个关键点来实现鲁棒和高效的深度估计:

  1. 数据引擎设计:通过创建一个数据引擎来自动收集和标注大规模无标签数据(约62M),显著扩大了数据集的覆盖范围,这有助于减少模型的泛化误差。

  2. 数据增强策略:利用数据增强工具来创建更具挑战性的优化目标,迫使模型寻找额外的视觉知识,从而获得更鲁棒的特征表示。

  3. 辅助监督:开发了一种辅助监督机制,强制模型从预训练的编码器中继承丰富的语义先验,而不是依赖于辅助性的语义分割任务,这有助于实现更好的场景理解。

  4. 零样本能力评估:在六个公共数据集和随机捕获的照片上广泛评估了模型的零样本能力,展示了其出色的泛化能力。

  5. 微调提升性能:通过使用NYUv2和KITTI的度量深度信息对模型进行微调,进一步提升了模型的性能,达到了新的最先进水平(SOTA)。

  6. 深度条件控制网:更好的深度模型导致了更好的深度条件控制网,这对于许多应用场景来说是一个重要的优势。

论文的主要贡献可以总结为:

  • 强调了大规模、低成本和多样化的无标注图像数据扩展对于MDE的重要性。
  • 提出了一种有效的联合训练方法,通过提供更困难的优化目标,让模型学会使用额外的知识。
  • 展示了从预训练编码器继承语义先验的有效性,而不是依赖辅助任务。

算法框架

本文提出了一种利用带标签和未标记图像进行单目深度估计(MDE)的方法,称之为“Depth Anything”。方法包括以下步骤:

  • 学习带标签图像(Learning Labeled Images):通过使用来自六个公共数据集的1.5M带标签图像,采用与MiDaS相似的深度值变换和归一化方法,采用仿射不变损失进行多数据集联合训练,构建了一个师傅模型T。

  • 释放未标记图像的力量(Unleashing the Power of Unlabeled Images):与传统方法不同,该方法强调利用大规模未标记图像提高数据覆盖。通过利用互联网或各种任务的公共数据集,构建了一个多样化和大规模的未标记集。通过师傅模型T为未标记集生成伪标签,然后利用带标签图像和伪标签图像的组合,训练了一个学生模型S。在训练中,采用强烈的颜色和空间扭曲来激励学生模型主动寻求额外的视觉知识。

  • 语义辅助感知(Semantic-Assisted Perception):引入了辅助语义分割任务,通过为未标记图像分配语义分割标签,提供了高级语义相关信息。然而,为了更好地处理深度估计任务,采用了DINOv2模型在语义相关任务中的优秀性能,通过辅助特征对齐损失将其强大的语义能力转移到深度模型中。

本文方法通过联合利用带标签和未标记图像,充分利用大规模未标记数据的优势,通过深度模型的自我挑战和语义辅助感知,实现了更强大的单目深度估计性能。方法在多个数据集上进行了评估,并取得了令人满意的结果。

实验与测试

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

总结

本研究引入了Depth Anything模型,该模型在稳健的单目深度估计方面展现了高度实用性。通过强调廉价且多样化的未标记图像的价值,并采用两种有效策略,即在学习未标记图像时设定更具挑战性的优化目标以及保留预训练模型的丰富语义先验,使得该模型在零样本深度估计方面表现出色。此外,该模型还可作为有望初始化下游度量深度估计和语义分割任务的有效工具。

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

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

相关文章

DVWA(SQL注入)medium、high

medium (1)判断注入是字符型还是数值型 数值型,获得了用户信息。 id 1 or 11 (2)查询字段数 为3时报错,代表字段数为2。 1 order by 3 (3)显示字段顺序 1 union select 1,2 &…

大数据与人工智能:数据隐私与安全的挑战_ai 和 数据隐私

前言 1.背景介绍 随着人工智能(AI)和大数据技术的不断发展,我们的生活、工作和社会都在不断变化。这些技术为我们提供了许多好处,但同时也带来了一系列挑战,其中数据隐私和安全是最为关键的之一。数据隐私和安全问题的出现,主要…

Redis7.x安装系列教程(一)单机部署

1、前言&环境准备说明 本文及接下来3篇将详细介绍在linux环境Redis7.X源码安装系列教程,从最简单的单机部署开始,逐步升级主从部署、哨兵部署和集群部署。 环境准备:如果有条件的用云服务器,如果没有的使用VMware 虚拟机&am…

【精通Redis】Redis事务

文章目录 前言一、标准事务1.1 标准事务的特性1.2 标准事务的生命周期1.3 事务的作用 二、Redis事务2.1 Redis事务的特性2.2 Redis事务与普通事务的区别 三、Redis事务常用命令总结 前言 我们在使用Redis的时候,有时为了处理多个结构,需要向Redis中一次…

Python数据结构实战:列表、字典与集合的高效使用

前言 在编程中,选择合适的数据结构对于提高程序效率至关重要。本文将介绍Python中最常用的数据结构——列表(list)、字典(dict)和集合(set),并探讨它们的内部实现以及如何高效地使用…

The operation was rejected by your operating system. code CERT_HAS_EXPIRED报错解决

各种报错,试了清缓存,使用管理员权限打开命令行工具,更新npm,都不好使 最终解决:删除 c:/user/admin/ .npmrc

我的最爱之《达明一派》

达明一派,是我最爱。刘以达(Tats)与黄耀明(Anthony Wong)在1980年代的香港组成的二人流行音乐组合,在90年代,网络还没兴起时,那是卡带流行的岁月。90年代,我与好友,同考大学,他留在了南充读读书…

世媒讯带您了解什么是媒体邀约

什么是媒体邀约?其实媒体邀约是一种公关策略,旨在通过邀请媒体记者和编辑参加特定的活动、发布会或其他重要事件,以确保这些活动能够得到广泛的报道和关注。通过这种方式,企业和组织希望能够传达重要信息,提高品牌知名…

网络监控软件的作用是什么|企业用的六款网络监控软件

网络监控软件是干什么的呢?它是用来管理网络安全的,尤其是对于企业而言至关重要,下面我为你推荐六款知名的网络监控软件。 1. 安企神 功能特点: 全面监控:提供电脑屏幕监控、文件操作监控、聊天记录监控等功能&#…

全开源图床系统源码

一款专为个人需求设计的高效图床解决方案,集成了强大的图片压缩功能与优雅的前台后台管理界面。 项目结构精简高效,提供自定义图片压缩率与尺寸设置,有效降低存储与带宽成本。 支持上传JPEG、PNG、GIF格式图片并转换为WEBP格式,…

算法:BFS 解决多源最短路问题

目录 多源最短路 题目一:矩阵 题目二:飞地的数量 题目三:地图中的最高点 题目四:地图分析 多源最短路 首先想要知道多源最短路,就先要明白单源最短路,bfs解决单源最短路问题前面学习过,单…

leetcode-二叉树oj题1(共三道)--c语言

目录 a. 二叉树的概念以及实现参照博客: 一、三道题的oj链接 二、每题讲解 1.单值二叉树 a. 题目: b. 题目所给代码 c. 思路 d. 代码: 2. 相同的树 a. 题目 b. 题目所给代码 c. 思路 d. 代码 3. 二叉树的前序遍历 a. 题目 b.…

J029_UDP通信

一、需求描述 实现UDP的通信 1.1 一发一收 1.1.1 ClientTest1 package com.itheima.udp;import java.net.*;import static java.net.InetAddress.*;//完成udp通信快速入门,实现一收一发 public class ClientTest1 {public static void main(String[] args) thro…

递归 35

方法递归 递归算法 package File;public class digui {public static void main(String[] args) {//猴子吃桃//f(10)1//f(n)-f(n)/2—1f(n1)//f(n)F(n1)2System.out.println(f(3));}public static int f(int n){if (n10){return 1;}else {return 2*f(n1)…

MEME币热潮结束了?上市成功率仅1.4%!迷因暴富梦醒?洗量超容易,热潮都是假?

近年来,随着加密货币行业的蓬勃发展,各种迷因币(meme coins)也在此浪潮之中纷纷崛起。然而,在专门用于创造迷因币的平台"pump.fun"上,绝大多数迷因币都无法真正成功发行和上市。 最新的数据显示,近日Solana迷…

golang国内proxy设置

go env -w GOPROXYhttps://goproxy.cn,direct经常使用的两个, goproxy.cn 和 goproxy.io 连接分别是 https://goproxy.cn https://goproxy.io 如果遇到某些包下载不下来的情况,可尝试更换数据源 更推荐使用https://goproxy.cn 速度快,缓存的包多 提醒…

树莓派5进行YOLOv8部署的4种不同部署方式检测速度对比:pytorch、onnx、ncnn、tflite

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

关于k8s集群的资源发布方式(灰度/滚动发布)

目录 1.常见的发布方式 2.实现蓝绿发布 3.实现金丝雀发布(Canary Release) 4.声明式管理方法 1.常见的发布方式 蓝绿发布:两套环境交替升级,旧版本保留一定时间便于回滚优点:用户无感知,部署和回滚速度较快&#…

如何统计visiual studio代码行数

统计Visual Studio中的代码行数,可以通过Visual Studio自带的查找功能结合正则表达式来实现。以下是一个详细的步骤说明: 一、使用Visual Studio的查找功能 打开Visual Studio:首先,确保你已经打开了Visual Studio并加载了你想要…

pyqt中使用opengl绘制图像

首先有在C中使用的opengl基础 在qt designer中,可以直接找到 QOpenGLWidget类 ,是一个黑框框(图1) 也就是说,不需要安装额外的东西,一切从简 然后就是看官方文档学习啦 intializeGL() 在这里面设定好…