单目深度估计综述: Monocular Depth Estimation survey

深度估计很重要,sfm和mvs都是建立在多个视图的特征匹配的基础上,预测出来的深度图还很他妈稀疏,说实话从单个图像推出深度就是不适定的扯淡问题。但是没办法,话是要用深度学习搞 啊,于是乎不同的网络结构,损失函数,训练策略都蹦出来了。

基于几何的方法:
说实话老方法还是靠谱的,基于几何方法用几何约束,从多张图片恢复出三维结构。
SFM是经典,它从几个2D图像恢复出3D结构,算出来位姿等一系列东西,确实经典无敌。 每张图片上的特征点不多,很少,但是根据这些稀疏 的特征点,利用双目几何推断出深度。 所以质量好坏取决于,你特征点匹配的好坏。 而且SFM还有尺度模糊的问题,没有真实尺度。。。
立体视觉通过模拟人眼,构建代价函数计算视差。 MVS肯定是已知位姿的前提下的,所以它是有尺度的。。。
这些老方法能有效地计算系数特征点的深度。 但是比较慢,而且依赖于你给他一个图像对或者图像序列。 总之存在限制吧。
基于传感器的方法:
效果牛逼,没办法,直接得到真实深度,确实牛逼。

基于深度学习方法:
万物套深度学习,各种网络已经有人试过,可以用在单目深度估计上:CNN,GAN,RNN,VAE等,不管用啥, 关键就是你怎么编损失函数? 你怎么搞出来一个靠谱的网络架构??

先说几个数据集:
KITTI: 老大哥,能评测:光流,里程计,深度,目标检测,语义分割,跟踪,子任务确实很多。无监督和半监督问题(?)最常用的就是kitti。 kitti包括三种场景: 城市、住宅、道路。。反正都是室外。。。
它的深度真实数据是从 旋转激光雷达提取的。 还有每一帧的姿态。总之很全面。

NYU Depth:
纽约大学深度数据集,纽约大学真不戳。。 这数据集只有室内。一共464个屋子。 深度图像不是用雷达,而是用RGB-D相机采集的。监督单目深度估计都用它,这数据集真不错。 464个场景,249个拿来训练,215个拿来测试,都是640x480的图,很规范。。
不过很奇葩的是: 由于彩色相机和深度相机的采集速率不同。 这个数据集的彩色图和深度图不是一一对应的???? 使用时候先要 为每一个深度图找到一个最接近的彩色图作为对应(WTF) 并且它的深度图也不是稠密的,也是稀疏的(因为用了Kinect相机,有时候深度有缺失的),实验中要把没有深度的像素屏蔽掉。。

Cityscapes:
没咋听说过。。。这个数据集主要做的是 语义分割~ ,注意,这个数据只有每张图片的语义分割,没有每张图片的 真实深度 ! 所以只能用在 无监督的训练当中。亮点就是他是在50个不同的城市采集来的吧。

Make3D:
这数据集也是奇葩。 没有图片序列,只有一个RGB对应一个深度图像。 没有任何单目序列和立体图像对。所以图像都是杂乱的。只有监督学习的方法用它来做为训练集。 他也被用做无监督算法的测试集,用来检验泛化能力。。

-------评估指标-------
说实话先把评估指标弄明白是重中之重吧:
一般公认的有这5个:
RMSE:
RMSE-log:
Abs-Rel:
Sq-Rel:
Acc:
看图吧。。。

--------深度学习!!!!
套CNN嘛,monodepth、sfmlearner、semodepth、lkvollearner这不都是套cnn了。
有一说一,咱应该把网络看成黑匣子: 网络仅仅负责提取特征的功能,加上手动设置的监督信号。靠这种思路,来进行这个深度估计的任务。

从监督的角度,逐渐展开:

⭐⭐⭐⭐有监督训练方法⭐⭐⭐⭐ ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
监督方法的监督信号,它就是真实数据,或者根据真实数据演变的。
在这种有监督的情况下,单目深度估计就是一个回归问题。 真实数据和预测数据直接相减求平方,L2损失不就有了嘛,然后训练。完事。 训练的时候网络预测值不断逼近真实值。预测深度不断逼近真实深度,芜湖~

损失有很多种,L1(MAE),L2(MSE) , huber(MSE+MAE),berhu(MAE+MSE)等,本质都是构建真实深度和估计深度的差值。
有监督这块。不仅可以用真实深度,还能用光流作为监督。
有监督这块,不仅可以用真实深度作为监督,还能用相对标注作为监督。 megadepth的前身《Single-image depth perception
in the wild,》 这个文章就就是不去关心真实深度,训练的时候只关心标注出来的相对深度。
也有一些人从图像对入手,输入图像对,预测出视差图。
这些的网络说实话也是很庞大很复杂的,参数很多。Fastdepth尝试简化模型,还能移植到手机上。挺良心的。

条件随机场方向
因为:像素间深度的连续性,CRF模型可以通过考虑相邻像素的深度信息来细化深度估计。 这就是为啥CRF条件随机场能够在深度估计中立足。
==== 对抗式学习方向====
对抗学习(Generative adversarial nets,)用来生成数据很方便。
思路是: 从单个图像估计全局和局部的三维结构 ,然后使用鉴别器来区分预测深度图和实际深度图。 如你所见,此处通常是监督学习。

⭐⭐⭐⭐无监督训练方法⭐⭐⭐⭐ ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
无监督基于单目图像序列,不需要真实深度,那几何约束在哪??
建立在相邻帧之间的投影上。
看图吧,这里依赖于两个基础网络,深度估计网络和位姿估计网络。
这无监督就是自监督,就是自己预测和真实的一个东西进行衡量,这个真实的东西现在不是深度,而变成了几何约束罢了。。

=可解释掩膜方向=
怎墨说呢,上面的用到投影函数的方法,都依赖于 场景没有动。但是实际上,场景可能是动态的。 那么动的玩意,在图片序列上不符合投影关系。
因此,掩膜的诞生就是为了减少动态和遮挡影响。
看公式:
这个损失函数,前面加了个M,即对图像加了一个掩膜,只让一部分像素参与损失、参与训练。
=基于多任务=
也就是一个框架做多个任务,例如光流、物体运动、相机内参。 (感觉都是玩光流的。

=对抗学习方向=
因为压根没有真实的深度图。那么找点真实的东西作为约束呗。
一般使用视图几何生成的图像和 真实图像作为鉴别器输入。还有的也用到了LSTM提取的帧间信息进行深度估计。。。

有监督和无监督对比
无监督训练基于立体几何约束,有监督则是基于真实深度值。 也就是无监督更依赖单目序列的质量,有监督更依赖真实深度图的质量。

关键是: 有监督有真实深度值嘛! 因此有绝对尺度~ 但是无监督基于单目序列,是没有尺度信息的。所以无监督训练出来的网络,都会有尺度模糊,尺度不一致,遮挡等问题。

⭐⭐⭐⭐半监督训练方法⭐⭐⭐⭐ ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
无监督不要真实深度,性能差,还有尺度模糊和尺度不一致的问题。有监督吧,真实深度值又太难搞到了。因此提出半监督方法,提高无监督性能的同时减少自监督对于真实深度的依赖。
半监督有真实深度,有珍贵的尺度信息。
半监督思路: 在已知位姿的情况下,基于双目视觉。 训练一个预测视差图的网络, 预测出来一对图的视差,用视差把右边图生成左边的图,
左边的真实图和预测的图构建损失函数。 训练中不断优化视差网络生成视差图的能力。让生成的视差图尽量准确。
后续还有人用平滑度损失想来改善视差图的连续性。什么左右一致性来约束左右视差一致性。SSIM用于考虑合成图像和真是图像之间的相似性。还有人拿三视图来做。还有人用语义分割来改进单目深度估计。
=== 立体匹配思路===
用原始的左侧图像和合成的右侧图像进行视差回归。。 训练就是右侧原始图像和右侧合成图像。
核心目的还是训练一个比较好的视差图,然后用视差图得到深度图嘛!
核心是视差网络。
=对抗网络思路=
对抗学习和知识提炼的结合正在流行。 这玩意由两个网络组成:教师网络和学生网络。 知识提炼是为了把信息从细化网络传输到学生网络。将大模型学习到的函数压缩成更小更快的模型。
=稀疏深度值方向=
思路就是把稀疏的真实深度融入到训练框架,用来增强监督信号。舒舒服服的思路。有人用真实的激光雷达做半监督。还有什么物理信息。 这种先验信息大大提高了深度估计的精度。
/ 半监督
半监督比无监督有更好的精度,并且从真实数据学习尺度信息,但是半监督太依赖真实数据了。有时候真实数据的好坏影响到深度估计的好坏。

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 提升单目深度估计方法来改进海洋透视。 海洋透视是指由于海洋介质的光学特性,人眼在水下观察物体时出现的模糊和失真现象。为了改善海洋透视,可以利用单目深度估计方法。 单目深度估计是借助计算机视觉技术来估计图像中每个像素点与相机的距离。在传统的单目深度估计方法中,主要依赖于图像中的几何和纹理信息来推断深度。然而,在海洋环境中,由于光线的折射和散射,图像中的几何和纹理信息丧失较多,导致传统方法的准确性下降。 为了克服这个问题,可以通过改进单目深度估计方法来提高海洋透视的效果。一种方法是利用深度学习技术,通过训练神经网络来学习从输入图像中预测深度的映射关系。可以使用已标注的水下图像数据集进行监督学习,使网络能够学习到更准确的深度估计模型。另外,还可以对网络进行迁移学习,使用在陆地环境下预训练的模型,在海洋环境中进行微调,以适应海洋透视的特殊情况。 另一个改进单目深度估计方法的途径是改进特征提取和匹配算法。可以通过使用更好的特征描述子和特征匹配算法,提高单目深度估计的稳定性和准确性。例如,可以使用基于学习的描述子,如深度卷积神经网络提取图像特征,再通过优化的匹配算法实现更准确的深度估计。 总之,通过利用深度学习和改进特征提取与匹配算法,可以显著提高单目深度估计方法在海洋透视上的效果。这将有助于提高水下图像的质量和可视性,在海洋环境下进行相关应用和研究。 ### 回答2: 提升单目深度估计方法以改善水下透视。水下透视是指我们在水下看到的物体变得模糊和失真的现象。为了解决这个问题,研究人员一直在探索使用单目深度估计方法来改善水下透视。 单目深度估计是通过使用单个摄像机来估计图像中物体的距离和深度。在水下,由于水的折射效应,光线会发生折射,导致图像失真。因此,传统的单目深度估计方法往往无法准确估计水下的物体距离和深度。 为了解决这个问题,研究人员提出了一些改进的单目深度估计方法。这些方法包括使用水下场景中的先验知识和模型,从而更好地估计水下物体的深度。例如,可以通过水下传感器捕获的信息来构建水下场景模型,并在深度估计过程中结合使用。此外,还可以利用水下图像的颜色和纹理信息,通过神经网络和机器学习方法进行深度估计。 这些改进的单目深度估计方法的应用可以在水下摄影、水下导航和水下探测等领域中发挥重要作用。例如,在水下摄影中,利用改进的深度估计方法可以提高图像的清晰度和质量,使得拍摄的照片更加真实和可视化。在水下导航和探测中,使用改进的单目深度估计方法可以提供更准确的水下环境信息,从而帮助人们更好地识别、定位和探测水下物体。 总之,改进的单目深度估计方法可以有效地改善水下透视问题,并在水下领域的各个应用中发挥重要作用。随着技术的不断发展,相信这些方法将进一步提升水下图像和数据的质量和可用性。 ### 回答3: 提升海洋透视图像的质量可以通过单目深度估计方法来实现。海洋透视图像通常受到水下湍流、波浪和光线散射等因素的影响,导致图像质量下降。而单目深度估计方法可以通过分析图像中的视差信息来估计场景中的深度信息。 单目深度估计方法有多种实现方式,其中一种常用的方法是基于卷积神经网络(CNN)。该方法通过训练一个深度估计网络,从输入图像中直接预测每个像素的深度信息。训练过程使用带有深度标签的真实图像和对应的深度地图进行,可以通过最小化预测深度与真实深度之间的差异来优化网络参数。 通过使用单目深度估计方法,可以从原始的海洋透视图像中获取更准确和清晰的深度信息。这将有助于改善海洋透视图像的视觉效果和质量。准确的深度信息可以用于场景还原、物体分割和虚实混合等应用中。此外,通过深度估计,还可以对图像进行后续处理,如去除湍流和波浪的影响,进一步提高视觉效果。 总而言之,使用单目深度估计方法可以有效地改善海洋透视图像的质量。这一方法通过分析图像中的视差信息来预测深度信息,从而提供更准确和清晰的深度信息。这将有助于改善海洋透视图像的视觉效果和质量,并为进一步的图像处理提供基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值