3

我正在使用 OpenCV 的 SGBM 实现构建视差图。特别是,我使用的是 OpenCV 2.4.9 版。目前,我正在使用以下参数:

int numberOfDisparities = 64;
sgbm.preFilterCap = 25;
sgbm.SADWindowSize = 14;
sgbm.P1 = 8*sgbm.SADWindowSize*sgbm.SADWindowSize;
sgbm.P2 = 32*sgbm.SADWindowSize*sgbm.SADWindowSize;
sgbm.minDisparity = 0;
sgbm.numberOfDisparities = numberOfDisparities; 
sgbm.uniquenessRatio = 10;
sgbm.speckleWindowSize = 100;
sgbm.speckleRange = 2;
sgbm.disp12MaxDiff = 1;
sgbm.fullDP = false;

但是,结果并没有我需要的那么好: 剥离的地面差异 正如你所看到的,地面出现了条纹,这导致我正在使用的障碍物检测算法出现问题,这是论文快速可靠的障碍物检测和分割 for cross -国家导航。问题是,由于这些条带具有相当恒定的差异,这意味着它们几乎垂直于地面,算法将它们分类为障碍物。

我对平滑参数 P1 和特别是 P2 进行了一点尝试,测试增加 P2 是否可以改善它,但似乎并没有解决问题,所以我只是按照 OpenCV 示例的建议离开了。

这些图像来自 KITTI 数据集,我下载的它们已经被纠正,所以我放弃了错误的校准或相机对齐。

我想知道这是否可能是由于地面没有纹理,尽管我希望不会,因为如果是这样,这意味着我将不得不更改障碍物检测算法。

有任何想法吗?

4

0 回答 0