【问题标题】:How to compute the true depth given a disparity map of rectified images?给定校正图像的视差图,如何计算真实深度?
【发布时间】:2018-10-22 04:10:49
【问题描述】:

我已经为给定的校正立体对计算了一个视差图!我可以使用公式计算我的深度

z = (baseline * focal) / (disparity * p)

假设基线、焦距和像素常数 p 是已知的,并且我为两张图像使用了相同的相机。 现在我的视差可能在 -32..128[pixel] 的范围内。当我使用上面的公式时,对于我的 0 差异值,我将得到无穷大/除以零。当我将视差值移动到 1..161 时,我选择了任意视差值的范围,这是一个问题,因为函数 1/disparity 将在 1..161 或 100..260 处给出完全不同的值间距这甚至不是线性的。所以我什至不会重建到(线性)规模,因为规模变化是非线性的。

我如何确定我的视差必须位于哪个区域才能使用上述公式进行度量重建? 还是根本不可能用上面的公式和修正后的图像来度量地重建一些东西?如果是这样,为什么?

(我知道我可以重新投影到我未校正的图像并进行三角测量,但我特别想知道为什么或如果上面的公式不可能。感谢任何可以帮助我的人!)

【问题讨论】:

  • 您的装备是否经过公制校准,或者您只是在进行投影重建?
  • 感谢您的回答!在我的特殊情况下,我没有校准矩阵 K,但我有像素常数 p。但是即使我有校准矩阵 K,上面的公式也不能确定度量重建,不是吗? (我能想象的唯一可能的事情是,如果我有一个给定视差的 z 值,我可以将我的视差值转移到相应的值范围)
  • [注意:对我来说,知道度量深度是否可以用这个公式确定是很重要的]
  • 您在另一篇文章中写道,使用上述公式从校正图像重建是投影的。 “相对于观察校正图像的理想相机,平行相机公式为您提供给定像素的深度”。 - 但是我不是只是严格地转换了我的图像,使它仍然是公制的吗?校正后的图像对和理想的立体图像对之间的确切区别是什么?并且在理想的立体声对设置中是否有可能获得负差异(这也导致了上述问题)?如果您有时间澄清这一点,请提前致谢!
  • 我面临着类似的问题。你是怎么得到 P 的值的?

标签: computer-vision triangulation depth 3d-reconstruction disparity-mapping


【解决方案1】:

您可以查看此图表以找到它们的关系:

参考http://web.stanford.edu/class/cs231a/lectures/lecture6_stereo_systems.pdf

【讨论】:

    【解决方案2】:

    我做了更多研究,认为我现在可以回答我的问题。我认为在 cmets 中我们彼此交谈了一些。也许现在我的意思更清楚了。

    并行设置: 公式z = (baseline * focal) / (disparity * p) 只能在图像由并行相机设置捕获时使用。如果相机真正平行,则不可能有正负差异。所以你不会得到 0 的视差值。在那种情况下,0 只对应于无穷远处的一个点。如果存在真正的并行设置,则此公式可用于度量重构。

    融合设置: 实际上,您的图像大部分是由融合的相机设置捕获的。这意味着在立体对图像中存在一个收敛点,其视差值为 0。该点前面和该点后面的视差符号将不同。这意味着您的差异包含在收敛点的负值、正值和等于零的值。尽管您的图像已被校正,但您不能使用上述公式,因为图像是由融合立体相机设置捕获的。无法将您的差异转换为“仅正符号值”以正确使用公式。然而,使用移位值的结果将与正确的 3-D 重建“某种相似”,但会因未知变换而奇怪地缩放和扭曲。

    【讨论】:

    • “奇怪地缩放和扭曲”没有回答这个问题。
    • 好吧,把这句话读到最后。 “……通过未知的转变。”您无法简单地量化结果的失真,因为它取决于特定的图像。另外,题主并没有问到这方面的问题。
    【解决方案3】:

    问题在于,校正通常会缩放和旋转您的图像,因此您不能仅从校正后的左摄像头向前推进项目深度并获得度量重建。相反,您需要撤消对对应关系的更正。您可以通过计算将视差映射到 3D 的投影矩阵 Q 来做到这一点。请参阅 OpenCV 文档中有关 stereoRectify 和 reprojectImageTo3D 的文档。

    对于几点,或者要了解发生了什么,您可以逐步进行。以配方形式:

    • 对于校正后的左侧图像中的每个像素 (x, y),查找校正后右侧的相应像素的视差:(x', y') = (x + d, y)
    • 对 (x, y) 和 (x', y') 应用整流单应性 H 和 H' 的逆,得到原始图像坐标中的 (u, v) 和 (u', v')。
    • 反向投影这些像素并与光线相交。

    【讨论】:

    • 感谢您的澄清。我完全理解你概述的方法。而且我知道这是获得度量重建的“真实(也许是唯一)方式”。尽管如此,我的部分问题仍未得到解答:您能否验证我的陈述是否正确?校正后的立体对的图片无法像理想的立体对那样捕捉场景。尽管相同的世界点具有相同的 y 像素坐标,但给定的图像信息并不真正适合转换(校正)的相机设置,因此计算出的 3D 坐标与公制坐标不同。
    • 这意味着只有当你有一个不需要校正的理想相机设置并且相机以你只有一个从左图像/相机开始的正视差。当您的视差包含负值时,即使使用理想的设置,您的深度比例也会被错误地计算。
    • 恐怕你写的东西对我来说意义不大。几乎不存在完美平行的立体装置,尤其是在现代传感器的分辨率下。为了说服自己是这种情况,请计算对于普通的 DSLR 传感器和镜头,以 1/2 米的基线在一行像素内注册两个相机(或一个相机平移)所需的精度。在实验室工作台之外很难做到。
    猜你喜欢
    • 2014-05-27
    • 2016-05-01
    • 2020-01-26
    • 2022-11-21
    • 2016-08-16
    • 2013-10-13
    • 2016-08-18
    • 2021-01-14
    • 2013-11-24
    相关资源
    最近更新 更多