首页 > 其他分享 ># 单目深度估计基础理论和论文学习总结

# 单目深度估计基础理论和论文学习总结

时间:2024-03-24 16:24:08浏览次数:33  
标签:论文 Depth 损失 监督 单目 深度 基础理论 方法

单目深度估计基础理论和论文学习总结

image

一、背景知识:

三维刚体运动的数学表示:旋转平移矩阵、旋转向量、欧拉角、四元数、轴角模型、齐次坐标、各种变换等

照相机模型:单目/双目模型,单目中的世界坐标系/相机坐标系/图像坐标系的互相转换、畸变与矫正,双目涉及的视差和深度的反比关系、基线,鱼眼模型和校正等

图像变换:线性变换、仿射变换、透视(投影变换)

图像相似度评价指标:SSIM/PSNR/MSE、平滑损失、ξ等。

参考:《视觉SLAM十四讲》

二、综述类文章:

1、基于深度学习的单目深度估计综述

黄飘:基于深度学习的单目深度估计综述

一篇中文的比较全的综述,每一项介绍的比较简单,适合复习的时候看,包括背景介绍、有监督无监督方法、数据集、相关工作等。

2、Deep Learning based Monocular Depth Prediction: Datasets, Methods and Applications

英文的极其全的综述,非常好

3、深度学习之单目深度估计(上、下)

桔子毛:深度学习之单目深度估计 (Chapter.1):基础篇

桔子毛:深度学习之单目深度估计 (Chapter.2):无监督学习篇

这一套比较详细地讲了理论,收获很大,了解了有监督方法的网络架构设计:couse-fine网络设计、基于FCN和更深的resnet50的设计,和无监督方法具体用的损失函数如光度重建误差的含义、SSIM指标含义、齐次坐标的含义、利用立体图像重建的naïve方法的思路、左右视图重建方式改变的NOLR方法的好处(可以一一对应没有空洞)、基于左右一致性的monodepth思路和他的损失函数的设计、视差图和深度图的关系、半监督的方法、基于视频重建方法的思路和他针对运动物体设计的mask约束的思路等等,但因为是2017年写的,后面的就没有了,monodepth2的改进要另外查。

三、视频课程:

1)付费课程:单目深度估计方法: 理论与实战

https://app0s6nfqrg6303.h5.xiaoeknow.com/v1/goods/goods_detail/p_6172be24e4b0cf90f9bca141?type=3

还没更完,比较全面系统,提供了一些参考资料和论文目录

2)免费课程::

主要讲无监督:

单目无监督深度估计综述_哔哩哔哩_bilibili

主要讲有监督:

单目深度估计-薛峰_哔哩哔哩_bilibili

四、基础论文阅读收获总结:

1、监督方法:

Depth Map Prediction from a Single Image using a Multi-Scale Deep Network (2014 NIPS)

Eigen组做的初次尝试,backbone使用AlexNet,分为course-fine两个网络,采用全局-局部策略,损失函数RMSE,全连接层输出。

Predicting Depth, Surface Normals and Semantic Labels with a Common Multi-Scale Convolutional Architecture (ICCV 2015)

上一篇的拓展,backbone换成VGG16,增加了一个fine网络,同时预测深度、发现和label

Deeper Depth Prediction with Fully Convolutional Residual Networks(FCRN)

第一次使用DCN进行深度估计,backbone使用RESNET50,但由于深度深,效果比较平滑,不如VGG输出的轮廓清晰。

2、无监督方法:

(1)使用立体图像重建损失:

Naïve方法:使用正向投射的方法计算重建损失

Unsupervised CNN for Single View Depth Estimation: Geometry to the Rescue(ECCV 2016)

使用目标图像到源图像的逆投射重建,损失函数使用L1损失和平滑损失,逆投射可以保证原图和重建图可以一一对应,不会出现空洞。

image

Monodepth: Unsupervised Monocular Depth Estimation with Left-Right Consistency(2017 CVPR)

使用左右一致性损失,用SSIM和L1相结合的损失函数,网络在多个尺度输出深度图

image

image

image

(2)使用视频流重建损失:

Unsupervised Learning of Depth and Ego-Motion from Video(CVPR 2017)

使用pose CNN和depth CNN同时预测位姿和深度,利用前后帧进行重建,还使用了motion explanation mask作为动态目标的处理,预测一个尽可能大的mask,并使重建损失函数最小.

下面公式一相当于两个相机坐标系下的转换,即原图像先用内参的逆转换到他的相机坐标系,再用旋转平移矩阵转到另一个相机坐标系,再用内参转到另一个相机的图像坐标系,注意这里用的也是逆向转换,而深度Z是数乘,可以变换位置。

image

image

image

Monodepth2:Digging Into Self-Supervised Monocular Depth Estimation

主要是基于单目视频流的方法,也可加入双目立体图像训练,已精读,总结如下:

主体上继承上一篇的视频无监督方案,加入三点提升。

损失函数:上两篇的结合,主要包括光度重建损失和L1损失的加权、边缘平滑损失

image

image

主要提升:

  1. 一个最小重投影误差,用来提升算法处理遮挡场景的鲁棒性、

  2. 一种全分辨率多尺度采样方法,可以减少视觉伪影

  3. 一种_auto-masking loss_,用来忽略训练像素中违反相机运动假设的像素点

第一点意思是其他方法是采用多个输入图片投影误差的均值,这样由于有些像素存在遮挡,找不到对应的像素,导致损失函数惩罚较大,会引起结果边缘不准,本文采用的是多张输入图片中最小的冲投影损失所谓损失函数,可以使深度边缘更清晰,准确性更高。

第二点意思是其他方法是在CNN每一层输出的深度图上直接计算损失,导致低分辨率的深度图可能出现空洞和视觉伪影(texture-copy artifacts.),本文把每一个中间层输出的深度图都用双线性插值上采样到与输入一致的分辨率,减少了视觉伪影。

第三点意思是其他方法是单独计算基于运动物体的mask,有的无法评估,有的用基于光流(optical flow)的比较复杂的方法,本文采用了自动计算的mask,使用二值化的参数μ表示计算简单且结果准确。定义如下:

image

其他问题:

1、 本算法失效的情况:违反朗伯假设的,如畸变的,反光的,饱和度高的区域,和边缘模糊、形状复杂的目标

2、 提到full eigen数据集里面有一些相机静止的序列,依然表现较好,还有一个KITTI补全的数据集评测效果也较好,后面可以看看如何补全。

3、 用了reflection padding代替zero padding,解码器中对于超出边界之外的点用最近的边界像素代替。位姿网络中用轴角表示法,旋转平移矩阵乘以0.01,预测6个自由度的位姿。最后的尺度恢复采用中值缩放的方式,把输出和真值缩放到同样的尺度。真值采用整个测试集的真值尺度。

4、 实验部分围绕三个改进点分别测试。

Featdepth: Feature-metric Loss for Self-supervised Learning of Depth and Egomotion

目前深度估计方法的问题:

虽然重建损失有效,但有问题,因为正确的深度和姿态对于小的光度误差是充分的,但不是必要的 • 例如,即使深度和姿态被错误估计,无纹理像素还是具有小的光度损失

贡献:

学习具有更好梯度的特征表示来克服上述问题,并相应地将光度损失推广到特征损失

提出Feature-metric loss,对特征图计算光度误差,即使在无纹理区域也明确限制其具有判别性

提出FeatureNet(自编码器),利用单视图重构来学习特征表示

结合两个正则化损失,确保在特征表示上定义的损失可以更好的下降

image

(3)伪监督方法

Pseudo Supervised Monocular Depth Estimation with Teacher-Student Network

伪监督方法(知识蒸馏),用无监督双目训练教师网络,输出单目的伪标签来有监督地训练学生网络,同时加入有监督的语义分割增强器来提升效果,使用遮挡mask处理遮挡问题(精读)

3、 半监督方法:

Semi-Supervised Deep Learning for Monocular Depth Map Prediction(2017 CVPR)

稀疏深度真值和自监督结合,但纯自监督的效果不如monodepth

最强自动驾驶学习资料和落地经验:链接

标签:论文,Depth,损失,监督,单目,深度,基础理论,方法
From: https://www.cnblogs.com/autodriver/p/18092575

相关文章

  • 【论文精读】MAE:Masked Autoencoders Are Scalable Vision Learners 带掩码的自动编码
    系列文章目录【论文精读】Transformer:AttentionIsAllYouNeed【论文精读】BERT:Pre-trainingofDeepBidirectionalTransformersforLanguageUnderstanding【论文精读】VIT:visiontransformer论文文章目录系列文章目录一、前言二、文章概览(一)研究背景(二)MAE的主......
  • 基于springboot实现房屋租赁系统项目演示【附项目源码+论文说明】
    基于springboot实现房屋租赁系统演示摘要社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。互联网具有便利性,速度快,效率高,成本低等优点。因此,构建符合自己要求的操作系统是非常有意义的......
  • 基于springboot实现月度员工绩效考核管理系统项目演示【附项目源码+论文说明】
    基于springboot实现月度员工绩效考核管理系统演示摘要科学时代的发展改变了人类的生活,促使网络与计算机技术深入人类的各个角落,得以普及到人类的具体生活中,为人类的时代文明掀开新的篇章。本系统为月度员工绩效考核管理系统,是专为企业开发的对员工考核的协助软件。可以帮......
  • 基于java中的springboot实现校园周边美食探索及分享平台演示【附项目源码+论文说明】
    基于springboot实现校园周边美食探索及分享平台演示摘要美食一直是与人们日常生活息息相关的产业。传统的电话订餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起,互联网日益成为提供信息的最佳俱渠道和逐步走向传统的流通领域,传统的美食业进而也面临着巨大......
  • 基于java中的springboot实现蜗牛兼职网的设计与实现演示【附项目源码+论文说明】
    基于springboot实现蜗牛兼职网的设计与实现演示摘要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,蜗牛兼职网当然也不能排除在外。蜗牛兼职网是以实际运用为开发背景,运用软件工程原理和开发方法,采用springbo......
  • PointNet++论文复现(二)【最远点采样-球查询-采样和分组 代码详解】
    最远点采样-球查询-采样和分组-代码详解专栏持续更新中!关注博主查看后续部分!最远点采样、球查询等位于pointnet2_utils.py定义点云坐标归一化点云坐标归一化是一种预处理步骤,用于将点云数据标准化到一个统一的尺度,通常是在一个特定的范围内,比如[-1,1]或[0,1]。这一......
  • PointNet++论文复现(一)【PontNet网络模型代码详解 - 分类部分】
    PontNet网络模型代码详解-分类部分专栏持续更新中!关注博主查看后续部分!分类模型的训练:##e.g.,pointnet2_ssgwithoutnormalfeaturespythontrain_classification.py--modelpointnet2_cls_ssg--log_dirpointnet2_cls_ssgpythontest_classification.py--log_di......
  • 【论文精读】VIT:vision transformer论文
    相关文章【论文精读】Transformer:AttentionIsAllYouNeed文章目录相关文章一、文章概览(一)研究背景(二)核心思路(三)相关工作(三)文章结论二、模型细节(一)组成模块(二)模型的大体流程(三)具体的模型的前向过程(四)transformerencoder的公式表达(五)消融实验1、关于图像分类编码方......
  • # 自动驾驶感知新范式——BEV感知经典论文总结和对比(一)
    自动驾驶感知新范式——BEV感知经典论文总结和对比(一)博主之前的博客大多围绕自动驾驶视觉感知中的视觉深度估计(depthestimation)展开,包括单目针孔、单目鱼眼、环视针孔、环视鱼眼等,目标是只依赖于视觉环视摄像头,在车身周围产生伪激光雷达点云(Pseudolidar),可以模拟激光雷达的测距......
  • 【发疯毕设日志day7】hagrid_dataset_512数据集作者论文原文逐句翻译——大疆tello手
    论文原文::::2206.08219.pdf(arxiv.org)https://arxiv.org/pdf/2206.08219.pdf摘要     本文介绍了一个庞大的手势识别数据集——海格(HAndGestrueRecognitionImagedataset),以简历一个手势识别(HGR)系统,专注于与设备的交互管理。这就是为什么所选的18个手势都呗赋予......