0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

几种经典的双目匹配的算法

新机器视觉 来源:新机器视觉 2023-07-04 11:33 次阅读

在深度相机的主流技术方案Structure Light,ToF,Stereo Dual)中,主动双目成像方案可以基于低成本的硬件,获得高分辨率、高精度的深度图像,但是立体匹配算法(stereo matching)复杂,对计算资源消耗很大。那我们介绍下几种经典的双目匹配的算法。

【双目匹配】

双目立体视觉理论建立在对人类视觉系统研究的基础上,通过双目立体图象的处理,获取场景的三维信息,其结果表现为深度图,再经过进一步处理就可得到三维空间中的景物,实现二维图象到三维空间的重构。Marr-Poggio-Grimson [1] 最早提出并实现了一种基于人类视觉系统的计算视觉模型及算法。双目立体视觉系统中,获取深度信息的方法比其它方式(如由影到形方法)较为直接,它是被动方式的,因而较主动方式(如程距法)适用面宽,这是它的突出特点。

双目立体视觉系统中,深度信息的获得是分如下两步进行的:

(1) 在双目立体图象间建立点点对应,

(2) 根据对应点的视差计算出深度。

第一部分,也就是对应点问题,是双目立体视觉的关键; 第二部分是摄像机模型问题。双目立体视觉模型中,双摄像机彼此参数一致,光轴平行且垂直于基线,构成一共极性 (epipolar) 结构,这样做是为了缩小对应的搜索空间,只有水平方向的视差,简化了对应过程

b0472802-174a-11ee-962d-dac502259ad0.png

【立体匹配算法介绍】

BM

其中minDisparity是控制匹配搜索的第一个参数,代表了匹配搜苏从哪里开始,numberOfDisparities表示最大搜索视差数uniquenessRatio表示匹配功能函数,这三个参数比较重要,可以根据实验给予参数值。

该方法速度最快,一副320*240的灰度图匹配时间为31ms

b08493fe-174a-11ee-962d-dac502259ad0.jpgb0aaba48-174a-11ee-962d-dac502259ad0.png

SBGM

SGBM算法 Stereo Processing by Semiglobal Matching and Mutual Information

作为一种全局匹配算法,立体匹配的效果明显好于局部匹配算法,但是同时复杂度上也要远远大于局部匹配算法。算法主要是参考Stereo Processing by Semiglobal Matching and Mutual Information。

通过选取每个像素点的disparity,组成一个disparity map,设置一个和disparity map相关的全局能量函数,使这个能量函数最小化,以达到求解每个像素最优disparity的目的。

能量函数形式如下:

b0ce80a4-174a-11ee-962d-dac502259ad0.png

D指disparity map。E(D)是该disparity map对应的能量函数。

p, q代表图像中的某个像素

Np 指像素p的相邻像素点(一般认为8连通)

C(p, Dp)指当前像素点disparity为Dp时,该像素点的cost

P1 是一个惩罚系数,它适用于像素p相邻像素中dsparity值与p的dsparity值相差1的那些像素。

P2 是一个惩罚系数,它适用于像素p相邻像素中dsparity值与p的dsparity值相差大于1的那些像素。

I[.]函数返回1如果函数中的参数为真,否则返回0

利用上述函数在一个二维图像中寻找最优解是一个NP-complete问题,耗时过于巨大,因此该问题被近似分解为多个一维问题,即线性问题。而且每个一维问题都可以用动态规划来解决。因为1个像素有8个相邻像素,因此一般分解为8个一维问题。

b0e2a7b4-174a-11ee-962d-dac502259ad0.jpg

b10136fc-174a-11ee-962d-dac502259ad0.png

OpenCV中自带了BM和SBGM,效果对比如下图:

b1225896-174a-11ee-962d-dac502259ad0.jpg

GC

GC算法 算法文献:Realistic CG Stereo Image Dataset with Ground Truth Disparity Maps

b13e99d4-174a-11ee-962d-dac502259ad0.png

SAD

SAD(Sum of absolute differences)是一种图像匹配算法。基本思想:差的绝对值之和。此算法常用于图像块匹配,将每个像素对应数值之差的绝对值求和,据此评估两个图像块的相似度。该算法快速、但并不精确,通常用于多级处理的初步筛选。

基本流程

输入:两幅图像,一幅Left-Image,一幅Right-Image 对左图,依次扫描,选定一个锚点:

(1)构造一个小窗口,类似于卷积核; (2)用窗口覆盖左边的图像,选择出窗口覆盖区域内的所有像素点; (3)同样用窗口覆盖右边的图像并选择出覆盖区域的像素点; (4)左边覆盖区域减去右边覆盖区域,并求出所有像素点灰度差的绝对值之和; (5)移动右边图像的窗口,重复(3)-(4)的处理(这里有个搜索范围,超过这个范围跳出); (6)找到这个范围内SAD值最小的窗口,即找到了左图锚点的最佳匹配的像素块。

b15d2412-174a-11ee-962d-dac502259ad0.jpg

【匹配陷阱】

以下几种情形生成的深度图像可能会有缺陷:

(1) 光学失真和噪声(亮度、色调、饱和度等失衡)

(2) 平滑表面的镜面反射

高光处无细节,无特征点。

(3) 投影缩减(Foreshortening)

摄影测量学中的一个概念,指物体近大远小。由于相对左右照相机距离的不同,看到的同一个物体在左右视图中的投影尺寸也会不同,造成匹配障碍。

(4) 透视失真(Perspective distortions)

由于镜头畸变造成的被摄物体失真。譬如画面中的鼻子被拉长。

(5) 低纹理(Low texture)

无细节。主动纹理光可以解决这一问题。

b22348c2-174a-11ee-962d-dac502259ad0.jpg

(6) 重复纹理(Repetitive/ambiguous patterns)

高度相似的特征点描述向量接近,行扫描时难以判断哪一个是对应的特征点。

(7) 透明物体

同低纹理。

(8) 重叠和非连续

纹理中断,不利于行查找。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 摄像机
    +关注

    关注

    3

    文章

    1421

    浏览量

    58990
  • 硬件
    +关注

    关注

    11

    文章

    2922

    浏览量

    64773
  • 三维空间
    +关注

    关注

    0

    文章

    17

    浏览量

    7430

原文标题:【3D视觉】立体匹配成像算法BM,SGBM,GC,SAD一览

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    双目立体视觉三大算法原理及其代码实现

    双目立体视觉中常用的基于区域的局部匹配准则主要有图像序列中对应像素差的绝对值之和SAD(sum of absolute differences)、对应像素差的平方之和SSD(sum of squared differences)及半全局
    发表于 07-01 09:34 1242次阅读
    <b class='flag-5'>双目</b>立体视觉三大<b class='flag-5'>算法</b>原理及其代码实现

    双目影像密集匹配算法的综合分析

    自适应权重法是推动局部密集匹配算法发展的关键。自2006年Yoon等[53]首次提出可以在匹配质量与全局匹配算法相媲美的局部
    的头像 发表于 11-27 10:29 886次阅读
    <b class='flag-5'>双目</b>影像密集<b class='flag-5'>匹配</b><b class='flag-5'>算法</b>的综合分析

    双目立体视觉原理大揭秘(一)

    的三维坐标值了。把该三维坐标值输入机器人控制系统,机器人就可以智能的实现避障了。在这部分中用到了“立体匹配算法,其实该算法是和双目标定相结合,该
    发表于 11-21 16:20

    【Firefly RK3399试用申请】基于双目摄像头的视觉景深算法开发

    双目视觉硬件等设计的试用。相信板子的厂家也非常乐于看到这个配套的硬件产生。3.整个项目涉及:双目景深算法的开发,里面有包含了双目摄像头的畸变校准,极坐标的特征
    发表于 08-21 12:42

    LabVIEW开发自动驾驶的双目测距系统

    基于LabVIEW的双目测距系统。LabVIEW是NI公司的可视化编程软件,它具有强大的数据处理和图像分析能力,能够实现高效的图像处理和匹配算法。 该系统通过灰度值金字塔算法进行图像
    发表于 12-19 18:02

    双目视觉立体匹配算法研究

    双日视觉是计算机视觉领域的一个重要组成部分。双目视觉研究中的关键技术摄像机标定和立体匹配一直是研究的热点。本文由两部分组成,分别对双目视觉的算法和未标定图
    发表于 08-14 16:41 0次下载

    多模式匹配算法的性能分析

    多模式匹配算法效率直接影响入侵检测系统的性能和效率。在分析研究经典的AC算法、WM算法和ExB算法
    发表于 12-31 17:20 0次下载

    C语言经典算法

    C语言经典算法--助你解决算法问题C语言经典算法
    发表于 03-23 14:30 27次下载

    一种快速双目立体匹配方法_梅金燕

    一种快速双目立体匹配方法_梅金燕
    发表于 03-19 11:46 0次下载

    双目立体匹配的四个步骤解析

    双目立体匹配可划分为四个步骤:匹配代价计算、代价聚合、视差计算和视差优化。
    的头像 发表于 08-31 10:08 4806次阅读

    双目立体计算机视觉的立体匹配研究综述

    双目立体视觉技术具有成本低、适用性广的优点,在物体识别、目标检测等方面应用广泛,成为计算机视觉领域的研究热点。立体匹配双目立体视觉技术中的核心算法,对实现物体三维重建具有重要作用。在
    发表于 04-12 09:47 3次下载
    <b class='flag-5'>双目</b>立体计算机视觉的立体<b class='flag-5'>匹配</b>研究综述

    一种基于PatchMatch的半全局双目立体匹配算法

    近年来双目立体匹配技术发展迅速,高精度、高分辨率、大视差的应用需求无疑对该技术的计算效率提出了更高的要求。由于传统立体匹配算法固有的计算复杂度正比于视差范围,已经难以满足高分辨率、大视
    发表于 04-20 11:31 13次下载
    一种基于PatchMatch的半全局<b class='flag-5'>双目</b>立体<b class='flag-5'>匹配</b><b class='flag-5'>算法</b>

    几个经典的立体匹配算法的评价指标和数据集

    事实上,有一些算法的流程比较混合——比如今天我将介绍的一个经典立体匹配算法,它总体来说是局部法的流程,但其中也有少量模块在进行视差优化的过程。
    的头像 发表于 09-07 15:40 2062次阅读

    一文读懂经典双目稠密匹配算法SGM

    最近来看看一些双目稠密匹配算法。说来惭愧,SGM在航测领域是很重要的算法(当然也是最好的双目稠密匹配
    的头像 发表于 12-15 15:12 931次阅读

    双目立体匹配的四个步骤

    根据Schrstein和Szeliski的总结,双目立体匹配可划分为四个步骤: 匹配代价计算、代价聚合、视差计算和视差优化 。 一 、匹配代价计算
    的头像 发表于 06-28 16:59 717次阅读
    <b class='flag-5'>双目</b>立体<b class='flag-5'>匹配</b>的四个步骤