精华内容
下载资源
问答
  • 立体匹配

    千次阅读 2019-08-13 10:33:25
    立体匹配是立体视觉研究中的关键部分。其目标是在两个或多个视点中匹配相应像素点,计算视差。通过建立一个能量代价函数,对其最小化来估计像素点的视差,求得深度。 概述 点P和Q,映射到左相机OR像面上的同一点p...

    立体匹配是立体视觉研究中的关键部分。其目标是在两个或多个视点中匹配相应像素点,计算视差。通过建立一个能量代价函数,对其最小化来估计像素点的视差,求得深度。
    概述


    点P和Q,映射到左相机OR像面上的同一点p≡q,只要找到p和q在右相机OT像面上的对应点就可以通过三角计算估计深度。找到对应点的过程,即立体匹配。
    为了找到对应点,需要增加约束,最常用的是极线约束。


    P和Q映射到左相机QR像面上的同一点p≡q,直线pq上的点对应点一定位于右像面的直线p’q’上,p’q’即为直线pq的极线,这就是极线约束。


    接下来就可以根据视差估计深度,然后通过Graph cuts算法给每一个像素点分配视差从而得到深度图,不再详细说明。
    分类

    根据采用图像表示的基元不同,分为:
    1.区域立体匹配算法
    给定一幅图像上的一点,选取该点邻域内的一个子窗口,在另一幅图像中的一个区域内,根据某种相似性,寻找与子窗口图像最相似的窗口,得到的匹配窗口中对应的像素点就为该像素的匹配点。可获得稠密视差图。
    2.基于特征的立方匹配算法
    基于几何特征信息(边缘、线、轮廓、兴趣点、角点和几何基元等)提取图像的几何特征点,针对几何特征点进行视差估计,利用得到的视差信息重建三维空间场景。可获得稀疏视差图,通过插值可获得稠密视差图。
    3.基于相位立体匹配算法
    假设在图像对应点中,其频率范围内局部相位相等,在频率范围内进行视差估计。

    根据采用的最优化理论方法,分为:
    1.局部立体匹配算法
    主要分为自适应立体匹配算法、自适应权值的立体匹配算法和多窗体立体匹配算法。
    2.全局立体匹配算法
    采用全局优化理论方法估计视差,建立全局能量函数,通过最小化全局能量函数得到最优视差值。主要算法有Graph cuts,belief propagation,动态规划等。

    下图是立体匹配算法及其优缺点的总结

     

    立体匹配重要网站:http://www.p-chao.com/2016-09-26/%e7%ab%8b%e4%bd%93%e8%a7%86%e8%a7%89benchmark-middlebury/

    一位作者个人博客:https://sites.google.com/site/hgjeoncv/publications

    展开全文
  • 动态规划 立体匹配 半全局立体匹配

    热门讨论 2015-06-14 20:48:54
    根据论文Accurate and Efficient Stereo Processing by Semi-Global Matching and Mutual Information写的双目立体匹配代码,matlab编写方便阅读,带测试图片,注意算法只实现了4个方向,即左右,右左,上下,下上四...
  • 最新的立体匹配综述文献,内容很全面和基础,基本攘括了以往常用的立体匹配方法。可作为学习和深入了解立体匹配的参考。
  • 立体匹配matlab

    2020-10-15 16:17:03
    立体匹配matlab (stereo matching matlab )
  • 立体匹配基础

    2016-11-06 17:15:58
    介绍立体匹配技术,图很给力
  • 立体匹配概述

    2017-03-09 19:46:12
    很好的立体匹配的概述,总结的很全面。
  • 立体匹配设计图

    2017-08-28 17:42:24
    双目立体匹配
  • 双目立体匹配步骤详解

    万次阅读 多人点赞 2018-10-23 09:44:47
    根据Schrstein和Szeliski的总结,双目立体匹配可划分为四个步骤:匹配代价计算、代价聚合、视差计算和视差优化。


      根据Schrstein和Szeliski的总结,双目立体匹配可划分为四个步骤:匹配代价计算、代价聚合、视差计算和视差优化

    Step1 匹配代价计算


      匹配代价计算的目的是衡量待匹配像素与候选像素之间的相关性。两个像素无论是否为同名点,都可以通过匹配代价函数计算匹配代价,代价越小则说明相关性越大,是同名点的概率也越大。

      每个像素在搜索同名点之前,往往会指定一个视差搜索范围D(Dmin ~ Dmax),视差搜索时将范围限定在D内,用一个大小为W×H×D(W为影像宽度,H为影像高度)的三维矩阵C来存储每个像素在视差范围内每个视差下的匹配代价值。矩阵C通常称为DSI(Disparity Space Image)。

      匹配代价计算的方法有很多,传统的摄影测量中,使用灰度绝对值差(AD,Absolute Differences)1、灰度绝对值差之和(SAD,Sum of Absolute Differences)、归一化相关系数(NCC,Normalized Cross-correlation)等方法来计算两个像素的匹配代价;计算机视觉中,多使用互信息(MI,Mutual Information)法2 3、Census变换(CT,Census Transform)法4 5、Rank变换(RT, Rank Transform)法6 7、BT(Birchfield and Tomasi)法8 等作为匹配代价的计算方法。不同的代价计算算法都有各自的特点,对各类数据的表现也不尽相同,选择合适的匹配代价计算函数是立体匹配中不可忽视的关键步骤。

    图1 DSI示意图(C(x,y,d)代表像素(x,y)在视差为d时的匹配代价)

    Step2 代价聚合


       代价聚合的根本目的是让代价值能够准确的反映像素之间的相关性。上一步匹配代价的计算往往只会考虑局部信息,通过两个像素邻域内一定大小的窗口内的像素信息来计算代价值,这很容易受到影像噪声的影响,而且当影像处于弱纹理或重复纹理区域,这个代价值极有可能无法准确的反映像素之间的相关性,直接表现就是真实同名点的代价值非最小。

      而代价聚合则是建立邻接像素之间的联系,以一定的准则,如相邻像素应该具有连续的视差值,来对代价矩阵进行优化,这种优化往往是全局的,每个像素在某个视差下的新代价值都会根据其相邻像素在同一视差值或者附近视差值下的代价值来重新计算,得到新的DSI,用矩阵S来表示。

      实际上代价聚合类似于一种视差传播步骤,信噪比高的区域匹配效果好,初始代价能够很好的反映相关性,可以更准确的得到最优视差值,通过代价聚合传播至信噪比低、匹配效果不好的区域,最终使所有影像的代价值都能够准确反映真实相关性。常用的代价聚合方法有扫描线法、动态规划法、SGM算法中的路径聚合法等。

    图1:代价聚合前后视差图示意图

    Step3 视差计算


      视差计算即通过代价聚合之后的代价矩阵S来确定每个像素的最优视差值,通常使用赢家通吃算法(WTA,Winner-Takes-All)来计算,如图2所示,即某个像素的所有视差下的代价值中,选择最小代价值所对应的视差作为最优视差。这一步非常简单,这意味着聚合代价矩阵S的值必须能够准确的反映像素之间的相关性,也表明上一步代价聚合步骤是立体匹配中极为关键的步骤,直接决定了算法的准确性。

    图2 赢家通吃(WTA)算法示意图

    Step4 视差优化


      视差优化的目的是对上一步得到的视差图进行进一步优化,改善视差图的质量,包括剔除错误视差、适当平滑以及子像素精度优化等步骤,一般采用左右一致性检查(Left-Right Check)算法剔除因为遮挡和噪声而导致的错误视差;采用剔除小连通区域算法来剔除孤立异常点;采用中值滤波(Median Filter)、双边滤波(Bilateral Filter)等平滑算法对视差图进行平滑;另外还有一些有效提高视差图质量的方法如鲁棒平面拟合(Robust Plane Fitting)、亮度一致性约束(Intensity Consistent)、局部一致性约束(Locally Consistent)等也常被使用。

      由于WTA算法所得到的视差值是整像素精度,为了获得更高的子像素精度,需要对视差值进行进一步的子像素细化,常用的子像素细化方法是一元二次曲线拟合法,通过最优视差下的代价值以及左右两个视差下的代价值拟合一条一元二次曲线,取二次曲线的极小值点所代表的视差值为子像素视差值。如图3所示。

    图3 二次曲线拟合法子像素位置计算示意图

      局部匹配算法的步骤一般包括匹配代价计算、代价聚合和视差计算三个步骤,全局算法则包括匹配代价计算,视差计算与视差优化三个步骤,半全局算法SGM则四个步骤都有。

    恒叨立码之立体匹配
    SGM
    理论恒叨系列

    【恒叨立码】【理论恒叨】【立体匹配系列】经典SGM:(1)匹配代价计算之互信息(MI))
    【恒叨立码】【理论恒叨】【立体匹配系列】经典SGM:(2)匹配代价计算之Census变换
    【恒叨立码】【理论恒叨】【立体匹配系列】经典SGM:(3)代价聚合(Cost Aggregation)
    【恒叨立码】【理论恒叨】【立体匹配系列】经典SGM:(4)视差计算、视差优化

    码上教学系列

    【恒叨立码】【码上实战】【立体匹配系列】经典SGM:(1)框架与类设计
    【恒叨立码】【码上实战】【立体匹配系列】经典SGM:(2)代价计算
    【恒叨立码】【码上实战】【立体匹配系列】经典SGM:(3)代价聚合
    【恒叨立码】【码上实战】【立体匹配系列】经典SGM:(4)代价聚合2
    【恒叨立码】【码上实战】【立体匹配系列】经典SGM:(5)视差优化
    【恒叨立码】【码上实战】【立体匹配系列】经典SGM:(6)视差填充
    【恒叨立码】【码上实战】【立体匹配系列】经典SGM:(7)弱纹理优化

    恒叨立码之立体匹配 -- PatchMatch
    PatchMatch
    理论恒叨系列

    【恒叨立码】【理论恒叨】【立体匹配系列】经典PatchMatch: (1)Slanted support windows倾斜支持窗模型
    【恒叨立码】【理论恒叨】【立体匹配系列】经典PatchMatch: (2)基于PatchMatch的视差估计
    【恒叨立码】【理论恒叨】【立体匹配系列】经典PatchMatch: (3)后处理(一致性检查与视差填充)


    1. KANADE T, KANO H, KIMURA S, et al. Development of a video-rate stereo machine: Ieee/rsj International Conference on Intelligent Robots and Systems 95. ‘human Robot Interaction and Cooperative Robots’, Proceedings, 2002[C]. ↩︎

    2. KIM J, KOLMOGOROV V, ZABIH R. Visual Correspondence Using Energy Minimization and Mutual Information: IEEE International Conference on Computer Vision, 2003. Proceedings, 2008[C]. ↩︎

    3. EGNAL G. Mutual Information as a Stereo Correspondence Measure[J]. Technical Reports, 2000. ↩︎

    4. MA L, LI J, MA J, et al. A Modified Census Transform Based on the Neighborhood Information for Stereo Matching Algorithm: Seventh International Conference on Image and Graphics, 2013[C]. ↩︎

    5. BAIK Y K, JO J H, LEE K M. Fast Census Transform-based Stereo Algorithm using SSE2: The 12th Korea-Japan Joint Workshop on Frontiers of Computer Vision, Tokushima, Japan, 2006[C]. ↩︎

    6. GU Z, SU X, LIU Y, et al. Local stereo matching with adaptive support-weight, rank transform and disparity calibration[J]. Pattern Recognition Letters, 2008,29(9):1230-1235. ↩︎

    7. BANKS J, BENNAMOUN M, KUBIK K, et al. A constraint to improve the reliability of stereo matching using the rank transform: Acoustics, Speech, and Signal Processing, 1999. on 1999 IEEE International Conference, 1999[C]. ↩︎

    8. BIRCHFIELD S, TOMASI C. A Pixel Dissimilarity Measure That Is Insensitive to Image Sampling[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 1998,20(4):401-406. ↩︎

    展开全文
  • 立体匹配---立体匹配过程

    万次阅读 2017-05-31 21:00:08
    立体匹配就4个步骤:匹配代价计算,代价聚合,计算视差,视差精化。 代价计算:常用的就是基于像素点匹配代价计算,一般有AD, SD,TAD什么的,基于区域的匹配代价计算一般有SAD,SSD, STAD之类的。匹配代价计算会...

    立体匹配就4个步骤:匹配代价计算,代价聚合,计算视差,视差精化

    匹配代价计算: 一般是通过计算左右两图对应像素3个通道的灰度值差来决定匹配代价的,常用的就是基于像素点匹配代价计算,一般有AD, SD,TAD什么的,基于区域的匹配代价计算一般有SAD,SSD, STAD之类的。匹配代价计算会生成一个disparity space image,也就是DSI。这个DSI是一个三维的空间,也就是每一个视差,得到一张代价图。假如视差范围是0~16,则会得到17幅代价图。视差搜索范围就是MiddleBurry网站上的stereo pair值,也就是说在视差范围内(比如0-16)内搜索匹配代价,得到17张匹配代价图,然后找到匹配代价最小的对应的视差值就是此像素对应的视差。

    代价聚合:其实就是一个滤波的过程,对每一幅代价图进行聚合,最简单的就是采用boxfilter。第一步代价计算只是得到了图像上所有孤立像素的视差值,但是这些时差值都是孤立的,引入了过多噪声,比如一片区域的视差值都是10,可是引入噪声后就会导致这一片的视差值都不一样,那么就需要一个滤波的过程,也就是我们所说的局部立体匹配方法,即采用窗口卷积达到局部滤波的目的。

    计算视差:常用的方法就是WTA算法(局部),对于图像中的同一个点,选出17幅代价图中匹配代价最小的那张图,该幅图对应的视差值就选取为最终的视差。或者在全局立体匹配中采用能量函数的方法,分为数据项和平滑项,数据项其实就是代价计算,平滑项就是代价聚合,只不过窗口大小是整幅图像,也可以试试如果把平滑项前面的系数lamda设为0,那么得到的结果和单纯代价计算的局部立体匹配是一样的。

    视差精化:也就是对得到的视差进行优化的过程,如:左右一致性检测、区域投票等;这步其实是很多立体匹配的遮羞布,比如用遮挡处理,中值滤波,左右一致性检测等,都能使最后的是视差图提升1%左右,它是很多论文的遮羞布。但是不可否认的是,立体匹配最关键的步骤仍然是代价计算和代价聚合步骤。

    在立体匹配方法中,基于全局和局部的算法有些区别。不过基本步骤都差不多。有些时候,基于局部的算法,第一步和第二步是合并在一起进行的,基于全局的算法,会跳过第二步。

    展开全文
  • 立体匹配SGM代码

    2017-05-02 16:25:52
    立体匹配SGM代码
  • SGM立体匹配

    热门讨论 2015-12-15 09:09:49
    采用多路动态规划算法实现的双目立体匹配,采用了8个方向,针对PC进行了优化,多线程实现,可以得到精确的视差图像
  • 立体匹配相关.zip

    2020-05-03 16:35:10
    包含20余篇立体匹配领域的经典论文,都是近五年深度学习与立体匹配相结合的顶会文章,可以结合博客里的论文阅读笔记学习。
  • 基于段树的成本匹配用于立体匹配
  • 立体匹配方法基础

    2016-05-30 20:22:27
    立体匹配方法基础,主要讲述了一些立体匹配的研究背景和意义,可以作为一个科普ppt
  • 双目立体匹配

    2013-12-02 19:03:16
    立体匹配 cpp opencv 双目标定
  • 快速立体匹配算法

    2018-08-02 09:28:06
    双目立体匹配算法的学习代码,可以直接执行,可用于初学者学习其思想。
  • 立体匹配ZNCC

    2015-03-26 22:31:06
    关于立体匹配的算法,配有测试的图片,通过插值的方法获得比较稠密的视差效果。
  • [spdmap, dcost, pcost, wcost] = 立体匹配(imgleft, imgright, windowsize, disparity, spacc) 包含的标准图像来自[1] D. Scharstein 和 R. Szeliski。 密集两帧立体对应算法的分类和评估。 国际计算机视觉杂志,...
  • 立体匹配综合论文集

    热门讨论 2016-07-31 21:17:13
    立体匹配综合论文集,包含立体匹配领域的各类经典论文合集
  • 立体匹配算法

    2013-04-26 23:00:17
    立体匹配算法 值得初学者看看
  • DP立体匹配.rar

    2020-06-03 18:59:10
    包含两部分: (1)DP求最短路径 (2)DP算法进行立体匹配
  • 立体匹配 立体匹配指:在两个不同的摄像机视图中匹配一个三维点。注意:只能在两个摄像机视图重叠的可视区域中进行计算(这就是为什么将摄像机尽可能前向平行放置)。 OpenCV提供两种立体匹配的算法,块匹配...

    开始学习立体视觉,记录一下。

    立体匹配

    立体匹配指:在两个不同的摄像机视图中匹配一个三维点。注意:只能在两个摄像机视图重叠的可视区域中进行计算(这就是为什么将摄像机尽可能前向平行放置)。

    OpenCV提供两种立体匹配的算法,块匹配(block matching,BM)和半全局块匹配算法(semi-global block matching,SGBM)
    其中SGBM慢一些,但是更可靠和准确。

    cv::StereoBM和cv::StereoSGBM(这个两个算法的主要功能相同,但是他们有各自的接口;他们初始化算法的信息有略微的不同,但是没有公共的接口,没有共同的虚拟基类。但是这两个类都有一个共同的父类,StereoMatcher;StereoMatch类又继承于Algorithm)
    基础功能:将两个图像,一个左图像,一个右图像,转换为单个深度图像。


    目前的处理器速度下,通常可以运行相对较高的分辨率,即使在只有CPU的实现中,视频的实时处理可以接受的帧速率运行BM,相比之下,SGBM需要多于一个数量级的计算时间,因此通常被认为不适合实时视频应用。但是有SGBM的FPGA的实现,可以在甚至非常大的图像中以很高的速度运行。

    块匹配:

    cv::StereoBM

    将三步骤,作用于无畸变、标定立体图相对。
    1.预过滤。使图像亮度归一化,并增强纹理;
    2.使用SAD窗口,沿着水平极线进行匹配查找;
    3.后置滤波。用来消除不良对应匹配。

    半全局块匹配

    展开全文
  • 立体匹配.rar

    2017-12-20 10:14:26
    基于金字塔NCC的立体匹配算法。文件中带有图片可以进行实验。适合初学者进行实验。
  • 基于SAD的立体匹配

    2018-05-31 22:40:33
    基于SAD的立体匹配,经过实测,匹配效果不错,是初学立体视觉不可多得的资料,下载从速
  • census 立体匹配算法c++实现 可直接运行或进行修改

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,513
精华内容 7,805
关键字:

立体匹配