做一个有温度、专业的全栈式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-单目深度估计发展历程
2024年1月,Lihe Yang, Bingyi Kang等人提出“Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data”算法。 Depth Anything是一种用于鲁棒单目深度估计的实用解决方案。在不追求新颖技术模块的情况下,其目标是建立一个简单而强大的基础模型,可以在任何情况下快速处理任何输入图像。为此,作者通过设计数据引擎来收集和自动注释大规模未标记数据(~62M),从而扩大数据集的规模,这显著扩大了数据覆盖范围,从而能够降低泛化误差。本文研究了两种简单而有效的策略,这两种策略使数据扩展更有希望。首先,通过利用数据扩充工具创建了一个更具挑战性的优化目标。它迫使模型积极寻求额外的视觉知识并获得稳健的表示。其次,开发了一种辅助监督,以强制该模型从预先训练的编码器继承丰富的语义先验。
03-Metric3D算法简介
需要提及的是,该方法在包括NYUv2和KITTI在内的各种深度基准上超过了最近的MarigoldDepth和DepthAnything方法。该方法能够在随机收集的互联网图像上准确恢复度量三维结构,为单图像度量铺平了道路。潜在的好处延伸到下游任务,只需插入该模型就可以显著改善这些任务。例如,该模型缓解了单目SLAM的尺度漂移问题,导致了高质量的度量尺度密集映射。这些应用突出了Metric3Dv2模型作为几何基础模型的多功能性。
05.02-整体流程
上图展示了该算法的整体流程。详细的实现步骤如下所述:
首先,将真实世界中的图片输入到一个标准摄像机变换模块中,并通过标准摄像机变换模块将输入图像I变换到规范空间C;
然后,将变换后的图像Ic馈送到一个深度法线估计模型中,从而获得预测规范空间中的度量深度Dc和表面法线N
接着,在训练期间,Dc由GT深度D*c监督,该GT深度D*c是规范空间中的变换版本。
最后,在推理中,在规范空间中产生度量深度Dc之后,作者执行去规范变换以将其转换回原始输入I的空间。预测的法线N通过恢复的度量深度D以及GT法线D*(如果可用)的深度法线一致性来监督。
上图展示了深度与法线协同优化模块的实现细节。在规范空间中,作者部署由ConvGRU子块(C-RGU)和投影头(Proj.)组成的递归块来预测更新?。在优化过程中,解码器最初给出中低分辨率深度和正常D0c与N0u,然后通过预测更新?迭代细化。在T+1次迭代之后,对优化的中间预测结果进行上采样和后处理,从而获得规范空间中的最终深度Dc和最终法线N。
上图展示了该算法在野外场景计量任务上面的应用效果。作者收集了几张Flickr照片,这些照片是由各种不同的相机所拍摄的。利用照片的元数据,作者重建了其三维度量形状并测量了结构的大小。红色和蓝色标记分别是我们的和地面实况大小。
上图展示了该算法在单图重建场景下的应用效果。最左边展示了原始的输入图片;右边分别展示了两个不同视角下的单图重建效果。作者收集网络图像并选择适当的焦距。重建的点云由法线着色。
06.05-构建密集SLAM地图
上图展示了该算法在构建密集SLAM地图场景下的应用效果。现有的SOTA单SLAM方法在大规模场景中通常面临着严重尺度漂移问题,无法实现尺度度量。作者展示了地面实况轨迹和Droid SLAM预测的轨迹及其密集映射。然后,将该度量深度输入到Droid SLAM框架中,它可以恢复更准确的轨迹并执行度量密集映射。
上图展示了该算法在野外场景的三维度量重建任务上面的应用效果。作者收集了一些Flickr图片,并使用该模型来重建场景。焦距信息是从照片的元数据中收集的。从重建的点云中,我们可以测量一些结构的大小。我们可以观察到尺寸在合理的范围内。
通过观察我们可以发现:所有的不同视角图像都可以很好地融合在一起,而不会出现规模不一致的问题。测试数据来自NuScenes。请注意,前置摄像头的焦距与其他视图不同。
07.01-主观效果性能评估
上图展示了该算法与SOTA算法Marigold在相同的输入图片的情况下输出的深度与法线信息。其中N表示不同网络图像的表面法线结果,而D表示单目深度结果。
上面这几张图展示了该算法与多个SOTA算法(ZoeDepth、Bae)在相同的输入情况下的深度与表面法线生成效果展示。通过仔细的观察与分析,我们可以得出以下的初步结论:与基线方法相比,该方法生成的深度与表面法线更精准一些、个符合现实场景的用户需求。它可以极大的推动大家对单目深度估计算法的落地热情!
上面这几张图展示了该算法与多个SOTA算法(NewCRFs、Adabins、Omnidata)在相同的输入情况下的深度估计效果展示。通过仔细的观察与分析,我们可以得出以下的初步结论:与其它基线算法相比,该算法估计的深度信息更加精准一些,与GT的结果更加接近,远远优于其它的基线算法。
图中上半部分展示了该算法与ZoeDepth算法在复杂场景计量任务上面的比较效果。作者利用两部手机(iPhone 14 pro和三星Galaxy S23)来捕捉场景并测量几个物体的大小,包括一架在整个训练集中从未出现过的无人机。首先,作者使用照片的元数据,执行3D度量重建;然后测量对象大小(用红色标记),这些大小接近地面实况(用黄色标记)。与ZoeDeph算法相比,该算法测量的尺寸更接近地面实况。
上图展示了深度与法线的协同优化模块的重要性。作者在几个户外场景的例子中比较了通过不同策略学习到的法线图。由于大多数法线标签位于平面上,因此仅“无深度”学习法线会导致曲面变平。此外,深度和法线之间“没有一致性”,预测变得更加粗糙。
上表展示了该算法与多个SOTA算法在NYUv2和KITTI深度度量基准上面定量比较结果。其中:过拟合基准的方法用灰色标记,而稳健的深度估计方法用蓝色标记“ZS”表示零样本测试,“FT”表示该方法在基准上进一步微调。最佳成绩以粗体显示,第二名以下划线显示。
上表展示了该算法与多个SOTA的基线算法在NYUv2、ibims-1和ScanNet法线基准上面的曲面法线的定量比较结果。其中:“ZS”表示零样本测试,“FT”对目标数据集进行后期微调。仅在纽约大学训练的方法用灰色突出显示。最佳成绩以粗体显示,第二名以下划线显示。
图8.1-Metric3D v2算法效果展示1
图8.2-Metric3D v2算法效果展示2
图8.4-Metric3D v2算法效果展示4
图8.5-Metric3D v2算法效果展示5
09-文末福利
关注我,AI热点早知道,AI算法早精通,AI产品早上线!
欢迎你的加入,让我们一起交流、讨论与成长!
若二维码失效:关注公众号--》交流分享--》联系我们(备注:AI产品汇)
禁止私自转载,需要转载请先征求我的同意!