一文带你读懂深度估计算法

深度估计算法调研

1.常见的深度估计算法

寻找RGB图像与深度图之间存在着的某种映射关系

1)几种常见算法:

① 基于几何的方法:从一系列二维图像序列中估计三维结构,SfM,稀疏特征的深度由SfM通过图像序列之间的特征对应和几何约束来计算。存在单目尺度模糊的问题,依赖于高精确的图像匹配或高质量的图像序列。
② 基于传感器的方法:利用深度传感器,可以直接获得相应图像的深度信息,测量范围有限,常见Kinect的有效测距范围仅为0.8m~4m。
③ 基于深度学习的方法:CNN RNN VAE GAN

2)常用数据集:
KITTI,NYU Depth V2,Make3D

3)深度估计中一些评价指标:

一文带你读懂深度估计算法_第1张图片

4)基于深度学习的单目深度估计:
① 监督或半监督学习:
CNN:
  1.使用两个尺度的CNN对单张图片的深度进行估计:粗尺度网络预测图片的全局深度,细尺度网络优化局部细节。随后又提出了使用了VGG网络,利用第3个细尺度的网络进一步增添细节信息。
  2.还有一些编码器解码器结构,其中比较有名的:
FastDepth: Fast Monocular Depth Estimation on Embedded Systems:encoder部分MobileNet模型提取到7x7x1024的特征;Decoder部分采用了5次上采样,中间三次上采样结果通过Skip Connections的方法分别与Encoder部分的特征进行了特征融合

基于条件随即场:
 Liu等将深度卷积神经网络与连续条件随机场结合,提出深度卷积神经场在统一的神经网络框架中学习连续CRF的一元势能项和成对势能项
基于GAN:

一文带你读懂深度估计算法_第2张图片

② 无监督学习:
将帧间的几何约束作为监督信号,而不是用真实背景制作为标签
无监督方法的基本模型:无监督方法由单眼图像序列训练,几何约束建立在相邻帧之间的投影上

一文带你读懂深度估计算法_第3张图片

可传输性(泛化性):可传输性是指同一网络在不同摄像机、不同场景和不同数据集上的性能
实时性:减少计算时间,提高运行速度

2.深度图转换成实际距离

1)绝对深度:利用激光雷达等设备获取的相机与物体之间的距离
 如KITTI深度图是利用360度雷达设备获取稀疏的深度图,是以uint16的格式存储的,要从深度图中读取真实距离,除以256之后以米为单位
 将Kinect2原始深度数据转换为以米为单位的距离。Kinect实际上通过USB发送类似于视差图像的内容。OpenNI和libfreenect都能够使用设备报告的参数(基线,焦距和到参考平面的距离IIRC)将其转换为深度图像。深度=基线*焦距/视差,深度应与当前图像帧的Z轴相对应。1.0 / (raw_depth * -0.0030711016 + 3.3309495161)。

2)相对深度:
 用来获得ground truth depth的硬件设备具有一定误差和环境限制,因此获得的深度图具有一定误差。在误差的基础上进行建模,使得后续模型拟合的难度加大了。
因此提出,其实人类对深度的实际数值并不敏感,反而是对相对深度即物体的前后关系更加敏感。不能准确标注出多少米,其与真实深度之间差了一个基准值,这个值我们是不知道的

3.深度估计算法流程

1)有监督学习:
① 训练集RGBD格式
RGB+Depth Map,Depth Map 类似于灰度图像,只是它的每个像素值是距离物体的实际距离

groundtruth:常用的KITTI数据集和NYU-V2数据集中都主要包含两部分:
  1.label datasets:就是类别+相关信息
  2.raw datasets:产生RGB和deepth图像
网络输入是raw dataset的RGB图像,输出是深度图,与deepth图像作距离损失优化网络参数。训练好后,产生的深度图(灰度)中像素点的值体现视点距离
② 深度信息格式
 许多研究图像深度的论文里有提到用kitti数据集中LIDAR scanner得到的深度信息作为ground-truth,其中matrix每行有x,y,z,intensity,意思是前后距离(深度),左右偏移,上下偏移,激光反射强度。
③ 格式RGB+相对深度
 Single-Image Depth Perception in the Wild(经典论文):
 DIW数据集:户外图像和相对深度注释。该数据集每幅图片选取一对像素点进行一次问询,标注。每张图片上询问一对采样点能最大限度利用采样点的相对深度信息。在一张图中询问多对采样点不如在多张图中每张图询问一对采样点。采样点的选择:采样的两点关于中心对称,这样实际概率上各占50%。
 网络结构:网络是image2depth的
 相对距离构成的损失函数:对dpeth图中gt标注两个点之间根据注释rk算loss

一文带你读懂深度估计算法_第4张图片

2)无监督学习:
 数据集采用stereo images,两个相机(或者双目相机)在同一水平线上左右相距一定位置得到的两幅图片。这种图片获取的代价要比深度的ground truth 低一些,利用了深度信息和场景之间的一些物理规律来约束。

一文带你读懂深度估计算法_第5张图片

你可能感兴趣的:(深度学习,算法,计算机视觉,深度学习)