【双目视觉】 立体匹配算法原理之“代价空间与聚合、视差计算”

简介: 【双目视觉】 立体匹配算法原理之“代价空间与聚合、视差计算”

预备知识


  1. 【双目视觉】 理想条件下计算物体距离_什么都只会一点的博客-CSDN博客
  2. 【双目视觉】 立体匹配算法原理之“代价函数”_什么都只会一点的博客-CSDN博客


image-20220809154728317.png


代价空间


f3311e9e0afea3e8f1f33fdb06ad5ac5.png


C A D ( x , y , d ) = ∣ I L ( x , y ) − I R ( x − d , y ) |


82b0443c5387f9b17cdcd15b14e22798.gif


d是移动像素的大小。以左图为基准。下面以左图的一个像素点P为例


1.d=0,右图不移动,计算C A D 0

2.d=1,右图向右移动一个像素点,再计算C A D 1

3.d=2,右图向右移动一个像素点,再计算C A D 2

4.…(d++,不断执行)…

5.最后得到代价空间


代价聚合


🔥目的:对代价空间进行滤波,使边界平滑


Box Filtering(均值滤波)


image.png


N:窗口像素个数


效果:


e64ffd9b085d5552c129c2ceb7b986a4.png


Bilateral filter


Bilateral filter就是输入的代价,乘以一个高斯函数,实现平滑


cb2db9820b40ac112728d9bd643b6fab.png


效果:


4e63528b7938a9205b11336c89dc2dd7.png


Cross-based local stereo matching(自适应形状)


任意选取一个像素点,横向、纵向扩张,直到遇到颜色差异较大的地方才停下来。然后在扩张后的像素点,重复上述操作。这样,因为能及时发现边界,就能大概判断出一整块区域的视差图


f3cce640a875ed1a57319514dc994c55.png

e12ab9ffd58c2175db7ae70f59121ebf.png


🚀Semi-Global Matching


能量函数


image.png


当D p − D q = 1 时,我们就取∑ q ∈ N p P 1   T [ ∣ D p − D q ∣ = 1 ]

当D p − D q > 1 时,我们就取∑ q ∈ N p P2  T [ ∣ D p − D q ∣ >1 ]


优化步骤


1.计算代价空间;(AD, BT, Census, MI, ….)


2.代价聚合


方向r上的路径代价


image.png


当d=0时,L r ( p , d ) = C ( p , d ) − mink L r ( p − r , k )

当|d|=1时,L r ( p , d ) = C ( p , d ) + P 1 − mink Lr ( p − r , k )

当|d|=i时,L r ( p , d ) = C ( p , d ) + P 2 − mink L r ( p − r , k )


Lr ( p − r , d )是该像素点左侧,最优代价。即当d=i时,左侧有最优代价,那么就C ( p , d ) + P 2


各个方向的总聚合代价


S ( p , d ) = ∑ L r ( p , d )


例如opencv收录的sgbm算法,就是计算了下面5条路径的代价


9fe6f93258dcf6c07ee7a513431350b1.png


3.WTA


Winner-Take-All,赢家通吃


即我们发现在这条视差方向r上,纵轴(聚合后的代价)最小,那么我们就取出视差值(d=18)


91977437d48eb0e14df6edd0eee11846.png


4.视差后处理


相关文章
|
2月前
|
算法 机器人
基于SOA海鸥优化算法的PID控制器最优控制参数计算matlab仿真
本课题研究基于海鸥优化算法(SOA)优化PID控制器参数的方法,通过MATLAB仿真对比传统PID控制效果。利用SOA算法优化PID的kp、ki、kd参数,以积分绝对误差(IAE)为适应度函数,提升系统响应速度与稳定性。仿真结果表明,SOA优化的PID控制器在阶跃响应和误差控制方面均优于传统方法,具有更快的收敛速度和更强的全局寻优能力,适用于复杂系统的参数整定。
机器学习/深度学习 算法 自动驾驶
509 0
|
2月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
467 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
3月前
|
机器学习/深度学习 算法 文件存储
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
神经架构搜索(NAS)正被广泛应用于大模型及语言/视觉模型设计,如LangVision-LoRA-NAS、Jet-Nemotron等。本文回顾NAS核心技术,解析其自动化设计原理,探讨强化学习、进化算法与梯度方法的应用与差异,揭示NAS在大模型时代的潜力与挑战。
887 6
神经架构搜索NAS详解:三种核心算法原理与Python实战代码
|
3月前
|
传感器 算法 定位技术
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
KF,EKF,IEKF 算法的基本原理并构建推导出四轮前驱自主移动机器人的运动学模型和观测模型(Matlab代码实现)
134 2
|
3月前
|
算法
离散粒子群算法(DPSO)的原理与MATLAB实现
离散粒子群算法(DPSO)的原理与MATLAB实现
192 0
|
4月前
|
机器学习/深度学习 人工智能 编解码
AI视觉新突破:多角度理解3D世界的算法原理全解析
多视角条件扩散算法通过多张图片输入生成高质量3D模型,克服了单图建模背面细节缺失的问题。该技术模拟人类多角度观察方式,结合跨视图注意力机制与一致性损失优化,大幅提升几何精度与纹理保真度,成为AI 3D生成的重要突破。
413 0
|
1月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
141 8
|
1月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
153 8
|
1月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
203 0

热门文章

最新文章