opencv深度图精度

opencv深度图精度,opencv,3d,computer-vision,Opencv,3d,Computer Vision,我想用带有opencv的3d立体摄像手机测量到物体的距离。我正在寻找一个公式,该公式将根据焦距、两台摄像机之间的距离、图像分辨率和被测对象的大小来测量距离测量的精度。 通过谷歌搜索,我发现了以下公式: d=Z^2*p/(f*b) Z-到物体的距离,p-视差精度,f-焦距,b-基线(摄像机之间的距离) 我知道基线和焦距,但我不知道视差的准确性。 这是我需要的配方吗?如果是,我如何找到视差精度 谢谢。如果您查看中公式8后面的段落,您可以看到它们的视差精度为0.18*10^-6m。进一步阅读,我得出结

我想用带有opencv的3d立体摄像手机测量到物体的距离。我正在寻找一个公式,该公式将根据焦距、两台摄像机之间的距离、图像分辨率和被测对象的大小来测量距离测量的精度。 通过谷歌搜索,我发现了以下公式:

d=Z^2*p/(f*b)

Z-到物体的距离,p-视差精度,f-焦距,b-基线(摄像机之间的距离)

我知道基线和焦距,但我不知道视差的准确性。 这是我需要的配方吗?如果是,我如何找到视差精度


谢谢。

如果您查看中公式8后面的段落,您可以看到它们的视差精度为0.18*10^-6m。进一步阅读,我得出结论,他们使用的视差精度是所用相机CCD上两个像素之间的距离,单位为m。对于分辨率为640X480的1/4“CCD(3.2mm×2.4mm)(非常旧的VGA相机),这将是5*10^-6。我不知道LG Optimus 3D的传感器大小,但假设1/4”CCD和2592像素水平分辨率,视差精度的基线将是:1.23*10^-6,深度精度为10米,约为0.85米。我觉得这很合理。如果CCD较小,则会提高(即精度值降低)


这是假设两个立体图像之间的特征完全匹配的最低可能值。这个值只是表示您的立体声对的物理限制。

我意识到这已经晚了一年,但以防万一有人发现了

公式如下:

dD=dD*D^2/fB

其中:

  • dd
    =视差错误
  • dD
    =深度错误
  • D
    =深度
  • f
    =焦距
  • B
    =基线
如果
f=6mm=0.006m
B=24mm=0.024m
D=10m
dd
为1像素[现在我们称之为
p
,但通常约为1.4um]

在中插入所有数字将给出:

dD=p*10^2/(0.006*0.024)~694444 p

对于
p=1.4um,dD=0.97m
(约为9.7%)

现在假设你们的对应关系是单像素误差。您可以进行亚像素搜索,并根据图像中的噪声级别和纹理,获得亚像素精确对应。在这种情况下,你的准确度会好一点

请注意,此公式适用于错误。视差和深度之间的映射如下所示:

d=fB/d

其中:

  • d
    =差异
  • D
    =深度
  • f
    =焦距
  • B
    =基线
类似地,将数字插入会给出:

d=(0.006*0.024/10)m=0.0000144 m=0.0144 mm=14.4 um

如果假设像素大小约为
1.4um
,则
14.4um
约为10像素。这与上面的误差一致——这意味着1像素的误差大约代表10%

距离10米的汽车在左右传感器之间移动了10个像素


我希望这能有所帮助。

谢谢。我试图得到这个价值的粗略估计,看看我的项目是否可行。我目前的目标手机是LG optimus 3d。它的焦距是6毫米,基线是24毫米。我想计算10米处的距离测量误差。即使我假设视差误差只有1个像素,这也没有意义(或者是真的吗?)d=10000^2*1/(24*6)=~694米。。。我做错了什么?好吧,我的第一个错误是这不是米。但我还是不明白这是什么意思。。。。我的第二个错误是这个值明显低于1(这是一个比率,而不是像素值)。一辆车在10米处的视差值的估计值是多少?你从哪里找到这个公式的?嗨,唐,我的问题是关于视差误差的。它是用作典型值还是根据已知的传感器参数计算得出的?