使用立体相机从视差图进行深度重建

Posted

技术标签:

【中文标题】使用立体相机从视差图进行深度重建【英文标题】:Depth reconstruction from disparity map using stereo camera 【发布时间】:2018-06-27 11:53:16 【问题描述】:

我正在根据视差图进行深度重建。我使用 OpenCV 来校准我的立体相机,然后对图像进行不失真和校正。我使用 LibELAS 来计算视差图。

我的问题是:根据 OpenCV 文档 (https://docs.opencv.org/3.1.0/dd/d53/tutorial_py_depthmap.html),深度是由 depth = Baseline*focal_length/disparity 计算的。但是根据 Middlebury 数据集(http://vision.middlebury.edu/stereo/data/scenes2014/),深度是由depth = baseline * focal_length / (disparity + doffs) 计算的。 “doffs”是“主要点的 x 差,doffs = cx1 - cx0”。

“doffs”是什么意思?如何从 OpenCV 校准中获得“doffs”?

【问题讨论】:

【参考方案1】:

OpenCV-Calibration 为您提供两个相机的内在矩阵。这些是具有以下样式的 3x3 矩阵:(来自 doc)

  fx  0  cx
  0  fy  cy
  0   0   1

cxcy 是您的主要观点的坐标。从那里您可以按照您的说明计算doffs。对于理想的相机,这些参数是图像的中心。但在真实的相机中,它们在几个像素上有所不同。

【讨论】:

以上是关于使用立体相机从视差图进行深度重建的主要内容,如果未能解决你的问题,请参考以下文章

双目三维重建系统(双目标定+立体校正+双目测距+点云显示)Python

opencv三维重建深度怎么不随视场变化

如何使用立体视觉对室内环境进行准确的 3D 重建?

Playing with OpenCV

Playing with OpenCV

立体相机如何创建好的深度图?