Metric3D v2引领单目深度估计“开启新纪元”,彻底颠覆自动驾驶、VR、3D重建等众多行业!



做一个有温度、专业的全栈式AI&AIGC交流社区!



 众所周知,单目深度估计是一个病态问题,在实际的应用场景中,很多人并不看好单目深度估计。主要的原因是因为其深度估计效果与双目和三目相比还有较大的差距!然而单目深度估计是成本最低的一种方案,仍然有众多学者们努力在推动这个领域的高速发展。尤其是2024年,尽管才过去了几个月,已经相继有多篇单目深度估计的巅峰之作诞生,但是这些算法的精度还是不够理想,需要进一步的持续优化。本文小编给大家介绍一个最新刚出来的单目深度估计算法Metric3D v2。该方法在包括NYUv2和KITTI在内的各种深度基准上超过了最近的MarigoldDepth和DepthAnything方法。该方法能够在随机收集的互联网图像上准确恢复度量三维结构,为单图像度量铺平了道路。潜在的好处延伸到下游任务,只需插入该模型就可以显著改善这些任务。



项目主页-https://jugghm.github.io/Metric3Dv2/

代码链接-https://github.com/YvanYin/Metric3D

论文链接-https://arxiv.org/abs/2404.15506.pdf




01-深度估计任务简介

    深度估计是计算机视觉领域中的一个重要任务,旨在从图像或视频中推断出场景中物体的距离或深度信息。深度估计任务的目标是根据给定的输入图像,预测每个像素点或图像中的物体的相对距离或真实深度值。

    深度估计在很多应用中具有关键作用,包括三维重建、虚拟现实、增强现实、自动驾驶、人机交互等。通过获取场景的深度信息,系统可以更好地理解环境,进行物体分割、姿态估计、遮挡分析和场景理解等。在深度估计中,常见的获取深度信息的方法包括:

  • 单目深度估计:使用单个图像作为输入,通过学习从图像特征到深度值的映射关系来预测深度。这种方法通常需要大量的带有深度标签的训练数据和深度估计网络的训练。

  • 双目深度估计:使用立体相机或双目摄像头捕捉到的成对图像,通过计算图像之间的视差信息来推断深度。通过视差图与相机的内外参数关系,可以计算出场景中每个像素点的深度。

  • 三目深度估计:使用特殊的传感器,如激光雷达(LiDAR)或深度摄像头(如Kinect),直接测量物体或场景的距离信息,并生成深度图或点云数据。

    近年来,深度学习技术的发展为深度估计任务带来了显著的进展。卷积神经网络(CNN)和递归神经网络(RNN)等深度学习模型被广泛应用于深度估计任务中,提高了深度估计的准确性和鲁棒性。

    然而,深度估计仍然是一个具有挑战性的任务。在复杂场景中,遮挡、纹理缺失、光照变化和透明物体等因素可能导致深度估计的困难。因此,研究人员不断探索新的算法和技术,以提高深度估计的稳健性和精度,以满足各种实际应用的需求。


02-单目深度估计发展历程

  • 2023年2月,S. F. Bhat, R. Birkl等人提出“Zoedepth: ¨ Zero-shot transfer by combining relative and metric depth”算法。本文解决了从单个图像进行深度估计的问题。现有的工作要么关注泛化性能,而不考虑度量尺度,即相对深度估计,要么关注特定数据集上的最新结果,即度量深度估计。本文提出了第一种将两个世界相结合的方法,从而在保持度量尺度的同时获得具有优异泛化性能的模型。旗舰模型ZoeD-M12-NK使用相对深度在12个数据集上进行预训练,并使用度量深度在两个数据集进行微调。作者使用了一个轻量级的头,它具有一种新颖的仓调整设计,称为每个域的度量仓模块。在推理过程中,使用潜在分类器将每个输入图像自动路由到适当的头部。该框架允许多种配置,这取决于用于相对深度预训练和度量微调的数据集。在没有预训练的情况下,我们已经可以显著超越纽约大学深度v2室内数据集的最新算法(SOTA)。
  • 2023年12月, Saurabh Saxena, Junhwa Hur等人提出“Zero-Shot Metric Depth with a Field-of-View Conditioned Diffusion Model”算法。本文作者提出了DMD(度量深度扩散),这是一种用于单目绝对深度估计的最先进的扩散模型。作者进行了一些创新,如使用对数尺度深度参数化来实现室内和室外场景的联合建模,调节视场(FOV)来处理尺度模糊性,以及在训练过程中综合增强FOV,以在训练数据集中超越有限的相机本质。与当前技术相比,该方法仅使用少量去噪步骤,零样本室内数据集的相对误差(REL)降低了25%,零样本室外数据集的相关误差降低了33%。上图展示了DMO算法在一些室内和室外场景下面的输出效果。
  • 2024年1月,Lihe Yang, Bingyi Kang等人提出“Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data”算法。 Depth Anything是一种用于鲁棒单目深度估计的实用解决方案。在不追求新颖技术模块的情况下,其目标是建立一个简单而强大的基础模型,可以在任何情况下快速处理任何输入图像。为此,作者通过设计数据引擎来收集和自动注释大规模未标记数据(~62M),从而扩大数据集的规模,这显著扩大了数据覆盖范围,从而能够降低泛化误差。本文研究了两种简单而有效的策略,这两种策略使数据扩展更有希望。首先,通过利用数据扩充工具创建了一个更具挑战性的优化目标。它迫使模型积极寻求额外的视觉知识并获得稳健的表示。其次,开发了一种辅助监督,以强制该模型从预先训练的编码器继承丰富的语义先验。

03-Metric3D算法简介

    从图像中重建精确的3D场景是一项长期的视觉任务。由于单图像重建问题的不适定性,大多数公认的方法都建立在多视图几何的基础上。现有技术(SOTA)单目度量深度估计方法只能处理单个相机模型,并且由于度量模糊性而无法执行混合数据训练。同时,在大型混合数据集上训练的SOTA单目方法通过学习仿射不变深度来实现零样本泛化,而仿射不变深度不能恢复真实世界的度量。    
    在这项工作中,作者表明零样本单视图测量深度模型的关键在于结合大规模数据训练和解决各种相机模型的测量模糊性,并提出了一个规范的相机空间转换模块,它明确地解决了模糊性问题,并且可以毫不费力地插入到现有的单目模型中。配备该模块,单目模型可以通过数千个相机模型稳定地训练超过800万张图像,从而实现对具有看不见相机设置的现场图像的零样本泛化。
    Metric3D是一个强大而稳健的几何基础模型,用于从单张图像进行高质量和零样本度量深度和表面法线估计。擅长野外场景重建中的问题求解。它可以直接帮助您从单个图像中测量结构的大小。现在,它在超过10个深度和正常基准上面实现了SOTA性能。
04-Metric3D v2算法简介

    Metric3D v2是一个用于从单个图像中估计零样本度量深度和表面法线的几何基础模型,对于度量3D恢复至关重要。虽然深度和法线在几何上是相关的,而且高度互补,但它们的准确获取具有巨大的挑战。
    先进状态(SoTA)单目深度方法通过学习仿射不变深度来实现零样本泛化,而仿射不变深度无法恢复真实世界的度量。同时,由于缺乏大规模的标记数据,SoTA正态估计方法限制了零样本性能。
    为了解决这些问题,作者提出了度量深度估计和表面法线估计的解决方案。对于度量深度估计,作者表明零样本单视图模型的关键在于解决来自各种相机模型和大规模数据训练的度量模糊性。作者提出了一个规范的相机空间转换模块,它明确地解决了模糊性问题,并且可以毫不费力地插入到现有的单目模型中。
    对于表面法线估计,作者提出了一个联合深度法线优化模块来从度量深度中提取不同的数据知识,使法线估计量能够超越法线标签进行学习。配备了这些模块,该深度正态模型可以稳定地使用来自数千个具有不同类型注释的相机模型的超过1600万张图像进行训练,从而实现对具有不可见相机设置的现场图像的零样本泛化。该方法目前在度量深度、仿射不变量深度以及表面正态预测的各种零样本和非零热点基准上面排名第一。

    需要提及的是,该方法在包括NYUv2和KITTI在内的各种深度基准上超过了最近的MarigoldDepth和DepthAnything方法。该方法能够在随机收集的互联网图像上准确恢复度量三维结构,为单图像度量铺平了道路。潜在的好处延伸到下游任务,只需插入该模型就可以显著改善这些任务。例如,该模型缓解了单目SLAM的尺度漂移问题,导致了高质量的度量尺度密集映射。这些应用突出了Metric3Dv2模型作为几何基础模型的多功能性。

05-Metric3D v2算法流程
05.01-整体思路
    上图展示了该算法的设计思路。该方法采用单个图像来同时预测输入图片的度量深度和表面法线。作者将大规模数据训练直接应用于度量深度估计,而不是仿射不变深度,从而使用单个模型为各种应用实现端到端零样本度量深度估计。对于表面法线提取任务而言,作者只允许从深度标签中学习,从而减少了密集重建生成大规模法线标签的需求。

05.02-整体流程

    上图展示了该算法的整体流程。详细的实现步骤如下所述:

  • 首先,将真实世界中的图片输入到一个标准摄像机变换模块中,并通过标准摄像机变换模块将输入图像I变换到规范空间C

  • 然后,将变换后的图像Ic馈送到一个深度法线估计模型中,从而获得预测规范空间中的度量深度Dc和表面法线N

  • 接着,在训练期间,Dc由GT深度D*c监督,该GT深度D*c是规范空间中的变换版本。

  • 最后,在推理中,在规范空间中产生度量深度Dc之后,作者执行去规范变换以将其转换回原始输入I的空间。预测的法线N通过恢复的度量深度D以及GT法线D*(如果可用)的深度法线一致性来监督。

05.03-深度与法线协同优化模块

    上图展示了深度与法线协同优化模块的实现细节。在规范空间中,作者部署由ConvGRU子块(C-RGU)和投影头(Proj.)组成的递归块来预测更新?。在优化过程中,解码器最初给出中低分辨率深度和正常D0c与N0u,然后通过预测更新?迭代细化。在T+1次迭代之后,对优化的中间预测结果进行上采样和后处理,从而获得规范空间中的最终深度Dc和最终法线N。

06-Metric3D v2算法应用场景
06.01-单目深度估计
06.02-单目法线提取
06.03-野外场景计量

    上图展示了该算法在野外场景计量任务上面的应用效果。作者收集了几张Flickr照片,这些照片是由各种不同的相机所拍摄的。利用照片的元数据,作者重建了其三维度量形状并测量了结构的大小。红色和蓝色标记分别是我们的和地面实况大小。

06.04-野外场景单图重建

    上图展示了该算法在单图重建场景下的应用效果。最左边展示了原始的输入图片;右边分别展示了两个不同视角下的单图重建效果。作者收集网络图像并选择适当的焦距。重建的点云由法线着色。

06.05-构建密集SLAM地图

    上图展示了该算法在构建密集SLAM地图场景下的应用效果。现有的SOTA单SLAM方法在大规模场景中通常面临着严重尺度漂移问题,无法实现尺度度量。作者展示了地面实况轨迹和Droid SLAM预测的轨迹及其密集映射。然后,将该度量深度输入到Droid SLAM框架中,它可以恢复更准确的轨迹并执行度量密集映射。

06.06-野外场景的三维度量重建

    上图展示了该算法在野外场景的三维度量重建任务上面的应用效果。作者收集了一些Flickr图片,并使用该模型来重建场景。焦距信息是从照片的元数据中收集的。从重建的点云中,我们可以测量一些结构的大小。我们可以观察到尺寸在合理的范围内。

06.07-360度视角的三维重建
    上图展示了该算法在360度视角的三维重建任务上面的表现。目前的自动驾驶汽车配备了几个针孔摄像头来捕捉360度视角的图像。利用该模型,我们可以精准重建每个视图,并将它们平滑地融合在一起。

    通过观察我们可以发现:所有的不同视角图像都可以很好地融合在一起,而不会出现规模不一致的问题。测试数据来自NuScenes。请注意,前置摄像头的焦距与其他视图不同。

07-Metric3D v2算法性能评估

07.01-主观效果性能评估

    上图展示了该算法与SOTA算法Marigold在相同的输入图片的情况下输出的深度与法线信息。其中N表示不同网络图像的表面法线结果,而D表示单目深度结果。

    通过仔细观察与分析,我们可以得出以下的初步结论:该方法可以直接估计度量深度和表面法线,在各种场景中显示出强大的泛化能力,包括室内、室外、低可行性、运动模糊和鱼眼图像。可视化结果来自我们的ViT大型骨干估计器。Marigold是一种强大而稳健的基于扩散的单目深度估计方法,但其从深度恢复的表面法线显示出各种伪影。

    上面这几张图展示了该算法与多个SOTA算法(ZoeDepth、Bae)在相同的输入情况下的深度与表面法线生成效果展示。通过仔细的观察与分析,我们可以得出以下的初步结论:与基线方法相比,该方法生成的深度与表面法线更精准一些、个符合现实场景的用户需求。它可以极大的推动大家对单目深度估计算法的落地热情!

    上面这几张图展示该算法与多个SOTA算法(NewCRFs、Adabins、Omnidata在相同的输入情况下的深度估计效果展示。通过仔细的观察与分析,我们可以得出以下的初步结论:与其它基线算法相比,该算法估计的深度信息更加精准一些,与GT的结果更加接近,远远优于其它的基线算法。

    图中上半部分展示了该算法与ZoeDepth算法在复杂场景计量任务上面的比较效果。作者利用两部手机(iPhone 14 pro和三星Galaxy S23)来捕捉场景并测量几个物体的大小,包括一架在整个训练集中从未出现过的无人机。首先,作者使用照片的元数据,执行3D度量重建;然后测量对象大小(用红色标记),这些大小接近地面实况(用黄色标记)。与ZoeDeph算法相比,该算法测量的尺寸更接近地面实况。    

    图中下半部分展示该算法在Droid-SLAM系统上的密集SLAM重建效果。现有的SoTA单SLAM方法通常在大规模场景中面临尺度漂移问题(见红色箭头),无法实现度量尺度,而输入该算法输出的度量深度信息之后,Droid SLAM可以恢复更准确的轨迹并执行度量密集映射(见红色测量)。

    上图展示了深度与法线的协同优化模块的重要性。作者在几个户外场景的例子中比较了通过不同策略学习到的法线图。由于大多数法线标签位于平面上,因此仅“无深度”学习法线会导致曲面变平。此外,深度和法线之间“没有一致性”,预测变得更加粗糙。

07.02-客观指标性能评估

    上表展示了该算法与多个SOTA算法在NYUv2和KITTI深度度量基准上面定量比较结果。其中:过拟合基准的方法用灰色标记,而稳健的深度估计方法用蓝色标记“ZS”表示零样本测试,“FT”表示该方法在基准上进一步微调。最佳成绩以粗体显示,第二名以下划线显示。

    通过仔细观察与分析,我们可以得出以下的初步结论:在所有零样本测试(ZS)结果中,该算法表现效果最好,甚至比过拟合方法更好一些。进一步的微调(FT)有助于该方法超越所有已知的方法。

    上表展示了该算法与多个SOTA的基线算法在NYUv2、ibims-1和ScanNet法线基准上面的曲面法线的定量比较结果。其中:“ZS”表示零样本测试,“FT”对目标数据集进行后期微调。仅在纽约大学训练的方法用灰色突出显示。最佳成绩以粗体显示,第二名以下划线显示。

    通过仔细的观察与分析,我们可以得出以下的初步结论:方法在所有基准测试中排名第一,远远优于其它一些几线方法。
08-Metric3D v2算法效果展示

图8.1-Metric3D v2算法效果展示1

图8.2-Metric3D v2算法效果展示2

图8.3-Metric3D v2算法效果展示3

图8.4-Metric3D v2算法效果展示4

图8.5-Metric3D v2算法效果展示5

图8.6-Metric3D v2算法效果展示6
图8.7-Metric3D v2算法效果展示7

09-文末福利



关注我,AI热点早知道,AI算法早精通,AI产品早上线!






欢迎你的加入,让我们一起交流、讨论与成长!

若二维码失效:关注公众号--》交流分享--》联系我们(备注:AI产品汇)

禁止私自转载,需要转载请先征求我的同意!