基于depth anything模型理解深度估计运行机理

news2024/12/23 14:13:39

文章目录

  • 前言
  • 一、概念说明
    • 1、深度概念
    • 2、绝对深度概念
    • 3、相对深度概念
    • 4、深度估计表示方法
  • 二、相对深度估计与绝对(即度量)深度估计
    • 1、模型预测绝对深度劣势与应用优势
    • 2、模型预测相对深度必然性
    • 3、小结
  • 三、深度估计模型loss方法
  • 四、深度估计模型评估方法
    • 1、绝对相对误差
    • 2、阈值精度
  • 五、刚性运动原理
    • 1、双目相机示意图
    • 2、视差图
    • 3、视差图与深度图换算
  • 六、kitti数据探索深度与相机坐标集空间坐标关系
    • 1、世界坐标转像素坐标公式
    • 2、深度图对应值
    • 3、深度值与空间坐标转换
  • 七、深度估计模型运行机理
    • 1、深度估计模型预测
    • 2、深度估计模型训练
  • 八、模型预测
  • 九、深度值坐标转相机坐标与实现代码
    • 1、模型预测结果加工
    • 2、目标坐标中心点
    • 3、深度值转相机坐标
  • 十、深度值转相机坐标原理公式推理
    • 1、相机坐标转像素坐标原理
    • 2、像素坐标转相机坐标原理

前言

深度估计是一个很有效方法来预测目标距离或其它场景应用。特别地,近期相关深度估计大模型出现,使其目标深度估计更具有工程应用价值。本文将介绍一个通用的深度估计模型depth anything来实现现实世界目标的深度估计,而模型运行较为简单,关键在于如何将预测深度图转为真实深度估计图。介于此,本文从工程角度做出剖析与分享。当然,有错误之处请指出。

一、概念说明

讲到深度估计前,先给出深度估计概念。

1、深度概念

深度:每个像素代表从相机或传感器到对应空间点的距离,也就是相机坐标系下Z轴的深度,也就是绝对深度。

2、绝对深度概念

绝对深度:每个像素值直接对应一个物理距离(例如,以米或厘米为单位)。

3、相对深度概念

相对深度:像素值指示哪些点更近或更远,而不参考现实世界的测量单位。通常相对深度是反的,即数字越小,点越远。
我们将在稍后更详细地探讨这些概念。

4、深度估计表示方法

正如你所见,将一个3D空间投影到2D平面上会因为透视关系而产生歧义。为了解决这个问题,有多图像深度估计的精确数学方法,比如立体视觉(Stereo Vision)、运动结构(Structure from Motion),以及更广泛的领域如摄影测量学(Photogrammetry)。此外,像激光扫描仪(例如LiDAR)这样的技术也可以用于深度测量。
在这里插入图片描述

二、相对深度估计与绝对(即度量)深度估计

查看midas与zoedepth论文一起来解读。

1、模型预测绝对深度劣势与应用优势

预测绝对深度的优势在于它对于计算机视觉和机器人学中的许多下游应用具有实际的效用,比如制图、规划、导航、物体识别、三维重建以及图像编辑等。然而,在多个数据集上训练单一的绝对深度估计模型通常会降低性能,尤其是在包含深度尺度差异巨大的图像(例如室内和室外图像)的数据集中。因此,现有的绝对深度估计模型往往会在特定的数据集上过拟合,并且无法很好地泛化到其他数据集上。
通常,这种图像到图像任务的架构是一个编码器-解码器模型,如U-Net,并带有各种修改。形式上,这是一个像素级回归问题。想象一下,对于一个神经网络来说,准确地预测每个像素的距离,范围从几米到几百米,是多么具有挑战性。

2、模型预测相对深度必然性

这促使我们转向一种不试图在所有场景中预测精确距离的通用模型。相反,我们开发一个大约(相对地)预测深度的模型,通过指示哪些物体更远,哪些更近来捕捉场景的形状和结构。如果需要精确的距离,我们可以在特定的数据集上对此相对模型进行微调,利用其对任务已有的理解。

3、小结

不同环境(如相机)绝对深度数据存在尺度与位移多样,无法统一,训练一个绝对深度模型泛化性非常差,因此设置一个相对距离用来判断物体远近。

三、深度估计模型loss方法

这段文字描述了一种用于深度学习任务中的深度损失函数的标准化方法。这种方法的目标是在各种具有不同尺度和位移的深度图之间进行比较时消除环境scale或位移的影响。

在这里插入图片描述

实际上,还有许多其他方法和函数可以帮助消除缩放和平移。损失函数也有不同的添加项,如梯度损失,它关注的不是像素值本身,而是它们的变化速度(因此得名“梯度”)。可以在MiDaS论文中了解更多关于这方面的知识,在文章末尾会列出有用的文献资料。在进入最令人兴奋的部分——使用自定义数据集微调绝对深度之前,让我们简要讨论一下指标。

四、深度估计模型评估方法

在深度估计中,有几种标准的度量被用来评估性能,包括平均绝对误差(MAE)和均方根误差(RMSE),以及它们的对数变化形式以平滑距离中的大差距。除此之外,还有以下两个重要的度量:

1、绝对相对误差

绝对相对误差(AbsRel):这个度量类似于MAE,但是以百分比的形式表达,用于衡量预测的距离与真实距离的平均差异程度。

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

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

相关文章

Python:方法的链式调用

相关阅读 Pythonhttps://blog.csdn.net/weixin_45791458/category_12403403.html?spm1001.2014.3001.5482 在Python编程中,方法的链式调用是一种简洁且优雅的编程风格,它允许你在一行代码中连续调用多个方法,这种编程模式在简化代码、提升可…

22.安卓逆向-frida基础-objection工具1-安装和简单使用(Python的pip指令安装完提示不是内部命令解决办法)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:图灵Python学院 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。 工…

java4~~~

日期 第一代 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.logging.SimpleFormatter;public class Main {public static void main(String[] args) throws ParseException {//两种构造器的使用//1、获取当…

OpenCV高级图形用户界面(1)创建滑动条函数createTrackbar()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 创建一个滑动条并将其附加到指定的窗口。 该函数 createTrackbar 创建一个具有指定名称和范围的滑动条(滑块或范围控制)…

Flexbox 弹性盒子布局

Flexbox,全称弹性盒子布局,提供更精细的控制,能轻松解决困扰我们许久的垂直居中和登高列问题。 1 display: flex 将容器设置为弹性容器,容器会占据100%的可用宽度,高度则由自身的内容来决定,即使改变主轴…

基于SSM的“企业人事管理系统”的设计与实现(源码+数据库+文档)

基于SSM的“企业人事管理系统”的设计与实现(源码数据库文档) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 登陆页面 部门管理页面 加班页面 考勤页面 请假页面 工资页面 …

leetcode链表(三)-反转链表

题目 . - 力扣(LeetCode) 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 思路 首先定义一个cur指针,指向头结点,再定义一个pre指针,初始化为None。 然后就要开始反转了&…

使用tgz包下载安装clickhouse低版本

1.下载安装包 官方下载地址:https://packages.clickhouse.com/tgz/stable 阿里云下载地址:clickhouse-tgz-stable安装包下载_开源镜像站-阿里云 共需要下载四个文件 clickhouse-common-static-20.3.10.75.tgz clickhouse-common-static-dbg-20.3.10.7…

如何通过零工市场小程序提高匹配效率?

零工市场正往好的方向逐步发展,零工市场小程序就是数字化转型成功的标志,那么零工市场小程序作为求职者和雇主之间沟通的桥梁,通过利用现代技术,例如Java算法,提高了灵活就业市场的效率。 Java通过数据分析&#xff0…

AI预测体彩排3采取888=3策略+和值012路或胆码测试10月11日升级新模型预测第101弹

经过100多期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,已到达90%的命中率,这给喜欢打私菜的朋友提供了极高价值的预测结果~当然了,大…

Docker Overlay2 空间优化

目录 分析优化数据路径规划日志大小限制overlay2 大小限制清理冗余数据 总结 分析 overlay2 目录占用磁盘空间较大的原因通常与 Docker 容器和镜像的存储机制以及它们的长期累积相关,其实我之前在 Docker 原理那里已经提到过了。 通常时以下几种原因导致&#xff…

Java:数据结构-LinkedList与链表(1)

一 链表 1.. ArrayList的缺陷(LinkedList的优点) 在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后 搬移,时间复杂度为O(n),效率比较低,因此ArrayList不适合做任意位置插入和删除…

【AI知识点】残差网络(ResNet,Residual Networks)

AI知识点总结:【AI知识点】 AI论文精读、项目、思考:【AI修炼之路】 残差网络(ResNet,Residual Networks) 是由微软研究院的何凯明等人在 2015 年提出的一种深度神经网络架构,在深度学习领域取得了巨大的成…

Vue3封装消息提示框-基于element-plus

Vue3封装消息提示框-基于element-plus 图片示例 封装代码 创建modal.js文件 import {ElMessage,ElMessageBox,ElNotification,ElLoading, } from "element-plus";let loadingInstance;export default {// 消息提示msg(content) {ElMessage.info(content);},// 错误…

手机移动终端的土壤检测

手机OTG转USB串口,读取土壤检测设备信息,在APP展示。 总结一下 1. 用了MAUI框架,这东西感觉比xamarin好用,特别是contentpage和单例模式,数据绑定也很OK。 2. 串口驱动不好孤岛,废了不少功夫专门做这个。 3…

Lory: 推进大型语言模型训练的新篇章

人工智能咨询培训老师叶梓 转载标明出处 随着模型规模的增长,如何有效训练并利用这些模型成为了一个挑战。陈丹琦团队一项新的研究提出了一种创新的预训练方法——Lory,旨在解决大模型在混合专家(MoE)架构中的可微分性和计算效率…

开关打开输入框才能输入文字,否则为禁用状态

页面开关默认为关闭状态&#xff0c;输入框为禁用状态。 当点击开关&#xff0c;打开开关后&#xff0c;输入框禁用状态解除&#xff0c;才可以在输入框内输入。 html结构: <div class"page_top"><!-- 第一行 --><div class"top_first">…

使用three.js 实现一个 马赛克得 shader

使用three.js 实现一个 马赛克得 shader 源链接&#xff1a;https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idmosaicShader 国内站点预览&#xff1a;http://threehub.cn github地址: https://github.com/z2586300277/three-cesium-example…

HTML的介绍

HTML HTML是一种超文本标记语言,超文本是指,除了文本之外,还可能包含图片,音频,或者评注等的 文本形式,比文本强大,通过链接和交互方式来组织和呈现信息.标记语言是指,由标签构成的语言.HTML定义了多种不同的标签,用来表示不同的内容. 标签的介绍: 1.<h3> 三级 </h3&…

增强AI查询:使用Rewrite Retrieve Read框架优化RAG

增强AI查询&#xff1a;使用Rewrite Retrieve Read框架优化RAG 引言 在大规模语言模型&#xff08;LLM&#xff09;中&#xff0c;通过查询重写来提升检索增强生成&#xff08;RAG&#xff09;的性能是一个热门研究领域。本文将介绍如何使用rewrite_retrieve_read模板来优化R…