一、单目视觉测距和双目视觉测距简介
1、单目视觉测距
模型:深度估计(Depth Estimation)
-
原理:通过深度学习模型(如MonoDepth2、MiDaS)或传统的计算机视觉方法(如单目相机结合物体大小推断)估计场景深度。
-
实现方式:
-
使用卷积神经网络(CNN)或Transformer模型,从单张图像预测像素级深度信息。
-
需要大量带深度信息的标注数据进行训练,如KITTI、NYU Depth等数据集。
-
2、双目视觉测距
模型:立体匹配(Stereo Matching)
-
原理:基于视差计算(Disparity Calculation),通过两个摄像头的图像视差计算目标距离。
-
计算步骤:
-
通过SGBM(Semi-Global Block Matching)或深度学习模型(如PASMNet、GA-Net)获取视差图。
-
结合摄像头参数(基线长度、焦距)使用公式:
其中:
-
d:目标距离
-
f:摄像头焦距
-
B:摄像头基线距离
-
disparity:视差
-
-
二、深度学习在双目视觉测距领域的应用
1、视差图计算阶段
这是深度学习应用最广泛的阶段。传统方法(如SGBM、BM等)在复杂场景下效果不佳。
(1)什么是视差图?
- 视差图(Disparity Map)是表示同一场景在不同视角下图像中对应点之间水平位移的图
- 每个像素值代表该点在左右图像中的水平位移(视差值)
- 视差越大,表示物体距离相机越近
- 视差越小,表示物体距离相机越远
(2)视差图的特点
- 灰度图像:每个像素值表示视差大小
- 颜色越亮:表示视差越大(物体越近)
- 颜色越暗:表示视差越小(物体越远)
- 黑色区域:表示无法计算视差(遮挡或无效区域)
(3)深度学习方法(如PSMNet、GCNet等)可以:
- 更好地处理遮挡区域
- 提高视差计算的准确性
- 减少计算时间
- 更好地处理弱纹理区域
2、特征提取阶段
使用卷积神经网络(CNN)提取更鲁棒的特征
相比传统SIFT、SURF等特征,深度学习特征:
- 具有更强的表达能力
- 对光照变化更鲁棒
- 计算速度更快
3、视差图优化阶段
使用深度学习模型进行视差图的后处理可以:
- 填充视差空洞
- 平滑视差图
- 提高视差图的连续性
4、深度估计阶段
直接使用端到端的深度估计网络
例如:
- MonoDepth2
- DeepStereo
- 这些方法可以直接从双目图像估计深度图
深度学习应用于测距领域的主要优势:
- 精度更高:相比传统方法,深度学习方法的精度显著提升
- 鲁棒性更强:对复杂场景、光照变化等具有更好的适应性
- 速度更快:通过GPU加速,可以实现实时处理
- 端到端训练:可以直接优化最终目标