我最近一直在研究 KITTI 数据集——特别是立体声子部分。我尝试使用 OpenCV SGBM 方法复制结果。我使用了与 KITTI 网站的 OpenCV 结果页面上指定的所有相同参数。
从视觉上看,视差图看起来不错,并且与 KITTI-OpenCV 评估页面上发布的结果非常相似。但是,当我尝试使用基本事实计算训练数据集的误差时,误差始终为 100%。
OpenCV SGBM-立体计算函数的最大像素值大约为 1000 左右,其中几个图像(大约 5 个图像对)具有更高的值。我相信该函数返回的输出是 int16 类型的。我正在使用 devkit 中给出的评估函数计算错误,当我读取基本事实(GT)并打印出它们范围高达 ~32k 的最大值时。评估函数将 GT 和估计的视差图像除以 256,然后计算绝对差。如果差异大于 3,并且如果单个错误大于 GT 值的 5%,则该像素被计为坏/错误像素,并且总错误以此类坏像素占总像素的百分比给出。由于范围如此不同,如果我使用上述过程,通常所有像素最终都会高于错误阈值。那么,我是否需要对 OpenCV SGBM 的输出进行任何缩放,或者在生成差异/计算错误时我是否遗漏了什么?