SGBM结合KITTI数据集设置参数详解

对于SGBM算法原理不多介绍啦,这里只是结合KITTI标准数据集以及opencv环境下,介绍SGBM参数的含义以及设置。
(感谢开放的学术环境,这里也只是对王泽远硕士的论文进行学习和总结,若有侵权部分,请联系作者删除。)
opencv中对于SGBM算法需要设置很多参数,这些参数都会或多或少的影响到最终匹配结果。概括来说,把这些参数分为三类:

1.预处理滤波参数

这部分参数对输入图像进行预处理,来消减光照不均匀、噪声等因素的影响。
preFilterType:预处理滤波器类型。有两种可选类型:CV_STEREO_BM_NORMALIZED_RESPONSE(归一化响应) 或者 CV_STEREO_BM_XSOBEL(水平方向Sobel算子,默认类型), 该参数为 int 型;
preFilterSize:预处理滤波器窗口大小。
preFilterCap:预处理滤波器的截断值。预处理的输出值仅保留[-preFilterCap, preFilterCap]范围内的值,参数范围:1 - 31。

2.SGBM状态参数

SADWindowSize:SAD窗口大小,容许范围是[1,11],一般应该在 3x3 至 11x11 之间,参数必须是奇数,int 型;
minDispariy:最小视差;
numberofDisparities:最大视差值与最小视差值之差;
PI,P2:控制视差变化平滑性的参数:根据半全局立体匹配优化函数的定义,选取较大的P1、P2值会较平滑的视差结果。P1是用来惩罚相邻像素点视差增减变化;P2是用来约束视差连续性的惩罚系数;
fullDP:决定是否使用双通道动态编程算法提高运算效率的布尔值参数。

3.处理参数

textureTheshold:低纹理区域的判断阈值。
uniquenessRatio:视差唯一性百分比。
speckleWindowSize:检查视差连通区域变化度的窗口大小。
speckeRange:视差变化阈值,当窗口内视差变化大于阈值时,该窗口内的视差清零

对与KITTI数据集,采用下表参数设置可以得到个较好的效果。

设置KITTI数据集
图像分辨率1241*376
preFilterType63
SADWindowSize11
P1SADWindowSizeSADWindowSize4
P2SADWindowSizeSADWindowSize32
minDispariy0
numberofDisparities64
uniquenessRatio10
speckleWindowSize100
spckleRange32
FullDP1

效果图如下:
SGBM结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值