小编mar*_*rol的帖子

深度估计的准确性 - 立体视觉

我正在研究立体视觉,我对这个问题中深度估计的准确性很感兴趣.这取决于几个因素,如:

  • 适当的立体声校准(旋转,平移和失真提取),
  • 图像分辨率,
  • 相机和镜头质量(失真少,色彩捕捉正确),
  • 两个图像之间的匹配功能.

假设我们没有低价相机和镜头(没有廉价的网络摄像头等).

我的问题是,我们在这个领域可以实现的深度估算的准确性是多少?谁知道真正的立体视觉系统能够准确地工作?我们可以实现1 mm的深度估算精度吗?

我的问题还针对opencv中实现的系统.您达到了什么准确度?

opencv computer-vision stereo-3d

14
推荐指数
2
解决办法
2万
查看次数

即使在不应该改变的情况下,stereoCalibrate() 也会改变焦距

我注意到即使我已经设置了适当的标志(即 CV_CALIB_FIX_FOCAL_LENGTH),opencvstereoCalibrate() 也会改变相机矩阵中的焦距。我正在使用两个相同的相机,它们在镜头上机械设置了相同的焦距,而且我知道传感器尺寸,因此我可以手动计算内部相机矩阵,我实际上是做什么的。

这里有一些立体声校准程序的输出 - 立体声校准(stereoCalibrate()之前和之后的相机矩阵)。

    std::cout << "Before calibration: " << std::endl;
    std::cout << "C1: " << _cameraMatrixA << std::endl;
    std::cout << "C2: " << _cameraMatrixB << std::endl;

    double error = cv::stereoCalibrate(objectPoints, imagePointsA, imagePointsB, _cameraMatrixA, _distCoeffsA, _cameraMatrixB, _distCoeffsB, _imageSize,
        R, T, E, F, 
        cv::TermCriteria((cv::TermCriteria::COUNT + cv::TermCriteria::EPS), 30, 9.999999999999e-7), CV_CALIB_FIX_FOCAL_LENGTH | CV_CALIB_FIX_PRINCIPAL_POINT);

    std::cout << "After calibration: " << std::endl;
    std::cout << "C1: " << _cameraMatrixA << std::endl;
    std::cout << "C2: " << _cameraMatrixB << std::endl;
Run Code Online (Sandbox Code Playgroud)

校准前:

C1: [6203.076923076923, 0, 1280; …

c++ opencv stereo-3d

5
推荐指数
1
解决办法
2784
查看次数

标签 统计

opencv ×2

stereo-3d ×2

c++ ×1

computer-vision ×1