常见的立体匹配算法介绍
1)根据采用图像表示的基元不同,立体匹配算法分为:
A、区域立体匹配算法(可获取稠密视差图。缺点:受图像的仿射畸变和辐射畸变影响较大;像素点约束窗口的大小与形状选择比较困难,选择过大,在深度不连续处,视差图中会出现过度平滑现象;选择过小,对像素点的约束比较少,图像信息没有得到充分利用,容易产生误匹配。)
B、基于特征的立体匹配算法(可获得稀疏的视差图,经差值估计可获得稠密视差图。可提取点、线、面等局部特征,也可提取多边形和图像结构等全局特征。缺点:特征提取易受遮挡、光线、重复纹理等影响较大;差值估计计算量大)
C、基于相位立体匹配算法(假定在图像对应点中,其频率范围内,其局部相位是相等的,在频率范围内进行视差估计)
2)依据采用最优化理论方法的不同,立体匹配算法可以分为:
A、局部的立体匹配算法
B、全局的立体匹配算法
三、匹配基元(match primitive)
目前匹配算法中所采用的匹配基元可以分成两大类:
1)在所有图象像素点上抽取量测描述子
A、像素灰度值(最简单、直接,但必须在同一光照条件下获得)
B、局部区域灰度函数(主要是利用求得在各种大小不同窗口中灰度分布的导数信息,描述像素点周围的结构矢量。)
C、卷积图象符号(利用各种大小算子与图象进行卷积,用灰度梯度局部极大值或极小值作为特征信息,描述整个图像)
2)图像特征
A、过零点
B、边缘(由于边缘是图像特征位置的标志,对灰度值的变化不敏感,边缘是图像匹配的重要特征和描述子)
C、角点(虽然其没有明确的数学定义,但大家普遍认为角点,即二维图像亮度变化剧烈的点或边缘曲线上曲率极值点)
四、区域匹配算法
基本原理是给定在一幅图像上的某一点,选取该像素点邻域内的一个子窗口,在另一幅图像中的一个区域内,根据某种相似性判断依据,寻找与子窗口图像最为相似的子图,而其匹配的子图中对应的像素点就为该像素的匹配点。
一般单纯的区域匹配都遇到如下限制:
1)针对弱纹理或存在重复纹理的区域,匹配结果不好
2)该算法不适应于深度变化剧烈的场景
3)对光照、对比度和噪声比较敏感
4)子窗体的大小很难选择
五、特征匹配算法
特征的匹配算法,主要是基于几何特征信息(边缘、线、轮廓、兴趣点、角点和几何基元等),针对几何特征点进行视差估计,所以先要提取图像的特征点,尽而利用这些特征点的视差值信息来重建三维空间场景。
匹配所需要的主要步骤:图像预处理、提取特征、特征点的匹配获取稀疏视差图,如果想得到稠密的视差图,需要采用插值的方法。
六、全局匹配算法
全局立体匹配算法主要是采用了全局的优化理论方法估计视差,建立全局能量函数,通过最小化全局能量函数得到最优视差值。
全局匹配算法得到的结果比较准确,但是其运行时间比较长,不适合实时运行。主要的算法有图割(graph cuts)、信念传播(belief propagation)、动态规划等算法。
七、局部匹配算法(个人觉得跟区域匹配类似,角度不同而已)
主要是采用局部优化方法进行视差值估计,局部立体匹配算法有 SAD,SSD 等算法,与全局立体匹配算法一样,也是通过能量最小化方法进行视差估计,但是,在能量函数中,只有数据项,而没有平滑项。
主要分为三类:自适应窗体立体匹配算法、自适应权值的立体匹配算法和多窗体立体匹配算法。
八、立体匹配约束
1)极线约束
2)唯一性约束
3)视差连续性约束
4)顺序一致性约束
5)相似性约束
九、相似性判断标准
1)像素点灰度差的平方和,即 SSD
2)像素点灰度差的绝对值和,即 SAD
3)归一化交叉相关,简称 NCC
4) 零均值交叉相关,即 ZNCC
5)Moravec 非归一化交叉相关,即 MNCC
6) Kolmogorov-Smirnov 距离,即 KSD
7)Jeffrey 散度
8)Rank 变换(是以窗口内灰度值小于中心像素灰度值的像素个数来代替中心像素的灰度值)
9)Census 变换(是根据窗口内中心像素灰度与其余像素灰度值的大小关系得一串位码,位码长度等于窗口内像素个数减一)
十、评价参数
立体匹配算法是一个病态问题,一般通过建立能量函数,利用最小化能量函数,和一些约束条件,采用最优化理论方法进行求解方程。
公认的定量评价参数有:均方根误差(Root-mean-squared)和误匹配率(percentage of bad matching pixels)
原文:https://blog.csdn.net/hankerbit/article/details/80555910
常见的立体匹配算法介绍相关推荐
- 局部立体匹配算法介绍及代码实现
作者I dulingwen@CSDN 编辑I 3D视觉开发者社区 01 什么是局部匹配算法?优势如何? 局部(Local)立体匹配是相对于半全局以及全局(Non-Local)立体匹配算法而言的,它不构 ...
- 立体匹配十大概念综述---立体匹配算法介绍
from:https://blog.csdn.net/wintergeng/article/details/51049596 一.概念 立体匹配算法主要是通过建立一个能量代价函数,通过此能量代价函数最 ...
- Cross-Scale Cost Aggregation for Stereo Matching立体匹配算法介绍
最近,研究了下CVPR2014上的一篇基于多尺度代价聚合的立体匹配算法,这个作者提供了原代码,运行了下,发现效果真心不错,不开后端处理的话,时间在0.4s左右.这个算法比较牛逼的有两点: 1:结合多尺 ...
- 双目立体匹配算法:SGM
一.简介 立体匹配旨在为校正后的左右视图提供稠密的匹配对,这种问题称为"stereo correspondence problem".有大量的算法用于求解立体匹配问题,根据Sc ...
- 基于深度学习算法和传统立体匹配算法的双目立体视觉
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 01 立体视觉是什么? 在开始之前,我相信很多站友都会有这个疑问, ...
- 双目立体匹配算法:Patch Match Stereo实用详解教程
来源:CSDN 作者:dulingwen 01 简介 我们知道,现有立体匹配算法一般被分类为局部算法.全局算法和半全局算法,其中局部算法和半全局算法是应用最为广泛的.在局部算法中,一个最简单的做法就是 ...
- python立体匹配误匹配率_立体匹配算法(Stereo Matching)及其在OpenCV中的应用
模拟人的两只眼睛的Stereo相机最近变得很受欢迎.通过对stereo相机拍摄的左右两张图进行匹配找出视差图,可以还原物体的3D信息. 立体匹配(Stereo matching)的步骤如下: 1: 预 ...
- 双目立体匹配算法漫谈
双目立体匹配算法漫谈 双目立体匹配算法漫谈 前提 一些基本假设 框架 matching cost computation cost (support) aggregation;代价聚合 双目立体匹配算 ...
- python立体匹配评价,sad立体匹配算法的Python实现,SAD,PYTHON
SAD立体匹配算法的PYTHON实现 这是第一次发CSDN博客,因为在机器视觉的学习中CSDN帮助了我很多,那么我也应该为CSDN社区做一些贡献,所以本文将介绍我用python实现的SAD匹配算法. ...
- 兵器工业计算机应用研究所刘培志,一种双目视觉立体匹配算法_2
和第六伺服电机.第一伺服电机.第二伺服电机和第三伺服电机分别驱动第一摄像装置上 下运动.绕光轴运动和左右运动,第四伺服电机.第五伺服电机和第六伺服电机分别驱动第 二摄像装置上下运动.绕光轴运动和左右运 ...
最新文章
- Mask Rcnn训练自己的航拍数据集
- 【青少年编程】黄羽恒:漫天飞雪
- unix编程艺术的设计原则
- JCO与bapi的联合使用
- 二十年后我发明了保姆机器人作文_我想发明保姆机器人作文700字
- WireSkark(六)
- linux ssh非交互脚本,Linux expect非交互式执行脚本
- 备战数学建模12-模糊综合评价模型
- 致远V8.1 协同 最新版
- O2O新猜想:如果商家这样做,还需要团购平台吗
- maftools: 可视化maf文件的神器
- python的数据处理
- 必看:C语言高效学习方法(附经典试题详解)
- arr.map()的使用
- Kubernetes Scheduler源码分析--启动过程与多队列缓存(续)
- 八大基本数据类型(primitive type)
- oracle 获取每周五,oracle如何根据传入的时间参数,得到这个参数所在周的周一至周五的日期和星期数...
- 小米3com.android.phone是什么,小米3NFC是什么意思以及NFC功能怎么设置使用
- [Excel]Excel函数和用法(4)——查找字符串,SEARCH和FIND函数
- 免费分享一个粉丝做的毕业设计学生宿舍管理系统!