gpt4 book ai didi

OpenCV stereoCalibrate 返回高 RMS 误差

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:29 27 4
gpt4 key购买 nike

我在使用 OpenCV 计算立体声对的校正时遇到一些问题:stereoCalibrate 返回高均方根误差,我得到了错误的校正对。我尝试了我的整改程序和 opencv 提供的 stereo_calib.cpp。它们都返回类似的均方根误差。另外,我用 opencv/sample/cpp 中的示例立体声对运行我的程序,我得到了正确校正的图像。所以我认为问题出在我拍摄立体照片的方式上,这可能吗?

我使用 Htc Evo 3D(3D 智能手机)的立体相机拍摄棋盘图案。我尝试更改数字和用作输入的图片集,但我得到的最小立体校准均方根值约为 1.5,并且校正后的图像完全错误。
是否有任何“建议”的方法来拍摄一组照片进行校准?谢谢,安德里亚

最佳答案

检查检测到的棋盘图案对(例如使用 drawChessboardCorners)。在某些情况下,两个图像中点的顺序不同(见图;在上图中,图案是从右到左识别的,在下图中是从左到右识别的)。如果是这种情况,则这些点不再相互对应。这会导致 stereoCalibrate 中的平均重投影误差较高。当使用 calibrateCamera 分别检查每个相机的图像时,内部函数的 rms 同时可能非常低,因为立体图像中的不同顺序在这里无关紧要。

enter image description here

我通过检查找到的棋盘图案并删除以不同顺序检测到图案的图像对解决了这个问题。在我的例子中,这将 rms 从 15(只有一对或几对错误)提高到小于 1。在这些对更频繁地损坏或使用更高分辨率的图像(具有更多像素)时,错误会更高,我猜猜。

另一种解决方案可能是使用 ArUco 和 ChArUco 模式,其中顺序不应有歧义,但我尚未测试该方法。

关于OpenCV stereoCalibrate 返回高 RMS 误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23826541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com