首页 > 编程语言 >双目相机立体匹配算法概述

双目相机立体匹配算法概述

时间:2024-07-27 09:54:30浏览次数:10  
标签:立体匹配 双目 相机 算法 CNN 原理 全局 视差

这里写目录标题

双目相机立体匹配算法概述

双目立体匹配是计算机视觉中的一个重要研究方向,其目的是通过两个摄像头拍摄的图像来恢复场景的三维信息。本文将对传统算法和深度学习算法进行概述。

1.算法分类

在这里插入图片描述

2.传统算法

2.1 局部算法

局部算法主要基于窗口匹配的思想,计算左右图像中对应窗口的相似度。

  • SAD(Sum of Absolute Differences)
    原理:计算左右图像对应窗口像素差的绝对值之和,值越小表示匹配度越高。

  • SSD(Sum of Squared Differences)
    原理:计算左右图像对应窗口像素差的平方和,同样值越小表示匹配度越高。

  • NCC(Normalized Cross-Correlation)
    原理:计算左右图像对应窗口的归一化互相关,值越大表示匹配度越高。

2.2 全局算法

全局算法通常将立体匹配问题建模为能量最小化问题,考虑整个图像的一致性。

  • 图割算法(Graph Cuts)
    原理:将立体匹配问题转化为图论中的最小割问题,通过最小化能量函数来获得最优视差图。

  • 信念传播算法(Belief Propagation)
    原理:通过迭代地在图像的像素网格上传递"信念"来优化能量函数,最终得到全局最优的视差图。

2.3 半全局算法

半全局算法试图在局部算法的效率和全局算法的准确性之间取得平衡。

  • SGM(Semi-Global Matching)
    原理:在多个(通常是8或16个)方向上进行一维的路径代价聚合,然后将这些路径的代价进行加和,选择具有最小聚合代价的视差值。

3.深度学习算法

3.1 基于CNN的方法

  • MC-CNN(Matching Cost Convolutional Neural Network)
    在这里插入图片描述

原理:使用Siamese网络结构学习匹配代价,然后使用传统的代价聚合和优化方法得到最终视差图。

  • GC-Net(Geometry and Context Network)
    在这里插入图片描述

原理:端到端的3D卷积神经网络,直接从立体图像对预测视差图,无需显式的特征提取和匹配过程。

  • PSMNet(Pyramid Stereo Matching Network)
    在这里插入图片描述

原理:采用金字塔池化模块和3D CNN来规范化代价体积。首先使用共享权重的CNN提取特征,然后通过空间金字塔池化模块获取全局上下文信息。最后,使用3D CNN对代价体积进行规范化,得到最终的视差图。PSMNet能够有效地处理纹理较少的区域和遮挡问题。

3.2 基于GAN的方法

  • StereoGAN
    在这里插入图片描述

原理:使用生成对抗网络来学习立体匹配,生成器负责生成视差图,判别器负责判断生成的视差图是否合理。

3.3 基于transformer的方法

  • STTR(Stereo Transformer)
    在这里插入图片描述

原理:利用transformer的自注意力机制来建立左右图像间的对应关系,能够捕捉长距离依赖。

4.总结

传统算法在计算效率和特定场景下的表现上仍有优势,而深度学习算法在复杂场景下通常能获得更好的性能。未来的研究方向可能集中在如何结合传统算法和深度学习算法的优势,以及如何提高算法在实际应用中的鲁棒性和效率。

5.参考文献

[1]Scharstein, D., & Szeliski, R. (2002). A taxonomy and evaluation of dense two-frame stereo correspondence algorithms. International journal of computer vision, 47(1), 7-42.
[2]Hirschmuller, H. (2005, June). Accurate and efficient stereo processing by semi-global matching and mutual information. In 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05) (Vol. 2, pp. 807-814). IEEE.
[3]Zbontar, J., & LeCun, Y. (2016). Stereo matching by training a convolutional neural network to compare image patches. The journal of machine learning research, 17(1), 2287-2318.
[4]Kendall, A., Martirosyan, H., Dasgupta, S., Henry, P., Kennedy, R., Bachrach, A., & Bry, A. (2017). End-to-end learning of geometry and context for deep stereo regression. In Proceedings of the IEEE International Conference on Computer Vision (pp. 66-75).
[5]Li, C., & Wand, M. (2016). Precomputed real-time texture synthesis with markovian generative adversarial networks. In European conference on computer vision (pp. 702-716). Springer, Cham.
[6]Li, X., Liu, S., De Mello, S., Wang, X., Kautz, J., & Yang, M. H. (2020). Joint stereo matching and optical flow estimation in feature space. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 12690-12699).
[7][Chang, J. R., & Chen, Y. S. (2018). Pyramid stereo matching network. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 5410-5418).

标签:立体匹配,双目,相机,算法,CNN,原理,全局,视差
From: https://blog.csdn.net/m0_59257547/article/details/140584861

相关文章

  • opencv - py_calib3d - py_calibration 相机校准
    文章目录CameraCalibration相机校准目标基础知识代码设置校准去失真1.使用**cv.undistort()**2.使用**remapping**重新投影误差CameraCalibration相机校准目标在本节中,我们将学习相机造成的失真类型如何找到相机的内在和外在属性如何根据这些属性消除图......
  • 松下相机相关软件推荐
    松下相机准备工具Ps和Lr官网(https://www.adobe.com/cn/creativecloud/roc/business.html)版本自行选择,我这边提供一下自行用的破解好的,或者你也可以使用破解工具当然有钱还是支持正版破解教程说明链接(https://www.cnblogs.com/FRIM/p/17774124.html)CameraRaw官......
  • 0204-可移动相机
    环境Time2022-11-17WSL-Ubuntu22.04Rust1.65.0前言说明参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html目标将相机的位置和远近参数化,可以调节相机的位置。叉乘//向量的叉乘pubfncross(self,other:Vector3)->Vector3{Vector3{......
  • android audio 相机按键音加载与修改
    相机按键音资源,加载文件路径:frameworks/av/services/camera/libcameraservice/CameraService.cpp按键音,加载函数: voidCameraService::loadSoundLocked(sound_kindkind){   ATRACE_CALL();     LOG1("CameraService::loadSoundLockedref=%d",mSoundRe......
  • 3.1、matlab双目相机标定实验
    1、双目相机标定原理及流程双目相机标定是将双目相机系统的内外参数计算出来,从而实现双目视觉中的立体测量和深度感知。标定的目的是确定各个摄像头的内部参数(如焦距、主点、畸变等)和外部参数(如相机位置、朝向等),以便将双目相机捕获的图像转换为三维空间坐标。双目相机标定的......
  • 0197-封装相机逻辑
    环境Time2022-11-16WSL-Ubuntu22.04Rust1.65.0前言说明参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html目标重构相机部分逻辑,将其单独提到一个类中,保持逻辑不变。camera.rsusesuper::ray::Ray;usesuper::vector3::{Point3,Vector3};pub......
  • 【相机标定】标定板介绍以及优缺点分析
    【相机标定】标定板介绍以及优缺点分析背景介绍附赠自动驾驶最全的学习资料和量产经验:链接准确标定像机对于所有的机器/计算机视觉的成功应用都是非常重要的。然而,对于标定板,有不同的模式可供选择。为了方便进行选择,本文将解释每种方法的主要好处。标定板的选择,有Charu......
  • 多相机视觉系统的坐标系统标定与统一及其应用
    多相机视觉系统的坐标系统标定与统一及其应用导语:随着机器视觉应用的日益广泛,大幅面 多相机 视觉系统的需求越来越多,主要应用方向为大幅面高精度的定位与测量和场景拼接等。多相机视觉系统的难点在于多相机坐标系的统一. 可以分为两类,一是相机视野间无重叠部分,二是相......
  • OpenCV MEI相机模型(全向模型)
    文章目录一、简介二、实现代码三、实现效果参考文献一、简介对于针孔相机模型,由于硬件上的限制(如进光量等),他的视野夹角往往有效区域只有140度左右,因此就有研究人员为每个针孔相机前面再添加一个镜片,如下所示:通过折射的方式增加了相机成像的视野,虽然仍然......
  • 在WPF中使用WriteableBitmap对接工业相机及常用操作
    写作背景写这篇文章主要是因为工业相机(海康、大恒等)提供的.NET开发文档和示例程序都是用WinForm项目来说明举例的,而在WPF项目中对图像的使用和处理与在WinForm项目中有很大不同。在WinForm中用System.Drawing.Bitmap来处理图像,而在WPF中是用System.Windows.Media.Imaging.Writeab......