对于SGM算法代价聚合的理解

聚合函数
这个聚合函数会给人一种错觉,假设求视差d下的p点的聚合代价就得求前一个点视差d-1,d,d+1…的聚合代价,然后又得求前前一个点的聚合代价。这样求下去就是指数级别的运算。实际上这里需要利用动态规划的思想,从第一个点开始计算而不是简单的递归。
比如我们的视差范围d是5-10。聚合路径是从左到右,如下图。
在这里插入图片描述

我们从a点开始计算,利用初始代价即可,然后比较出最小值,假设d=6时代价值最小。则b点的聚合代价就是L1=Cost(d(a)=6)+Cost(d(b)=5)+P1,L2=Cost(d(a)=6)+Cost(d(b)=6),L3=Cost(d(a)=6)+Cost(d(b)=7)+P1,L4=Cost(d(a)=6)+Cost(d(b)=8)+P2,L5=Cost(d(a)=6)+Cost(d(b)=9)+P2,
L6=Cost(d(a)=6)+Cost(d(b)=10)+P2。
min(L1,L2,L3,L4,L5,L6)即为b点的最优聚合代价,假设算出来L3(也就是d=7)最小,c点的聚合代价L1=Cost(d(a)=6)+Cost(d(b)=7)+P1+Cost(d©=5)+P2,剩下的以此类推就行。最后算出p点的聚合代价后暂时不计算最小值,等到所有路径下p点的聚合代价都计算出来后按照d=5,d=6…相加后再统一比较大小,即可算出p点的最优视差。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SGM(Semi-Global Matching)算法是一种常用的立体匹配算法,它的代价聚合步骤是其中一个核心的步骤。以下是该步骤的详细介绍: 1. 代价计算:首先,需要对左右两张图像进行特征提取,比如使用SIFT算法提取图像的关键点和描述符,然后计算左右两张图像上对应的特征点之间的代价,通常使用灰度差、梯度差等方式计算代价。 2. 代价聚合代价聚合的目的是将左右两张图像上的代价相加,得到一个总代价SGM算法采用了一种称为动态规划的策略对代价进行聚合。具体来说,算法从左到右、从上到下遍历每一个像素,对于每个像素,从左上角到右下角的8个方向上的代价进行聚合,得到一个代价矩阵。然后,从这个代价矩阵中选择最小的一个代价作为当前像素的总代价。 3. 聚合路径计算代价聚合之后,需要计算最优匹配路径。SGM算法采用了一种称为路径追踪(Path Tracing)的方式来计算聚合路径。具体来说,从右下角开始,向左上角遍历,每次选择代价最小的一个方向作为路径,直到到达左上角。 4. 视差计算:最后,根据聚合路径,可以计算出每个像素的视差值,即左右两张图像上对应像素的水平位移量。 总之,SGM算法代价聚合步骤是一种动态规划思想的应用,通过将每个像素周围的代价相加,得到一个总代价,然后根据最小总代价计算最优匹配路径,最终计算出每个像素的视差值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值