【问题标题】:Distance between the camera and a recognized "object"相机和识别的“物体”之间的距离
【发布时间】:2012-06-21 09:05:01
【问题描述】:

我想计算我的相机和识别的“物体”之间的距离。 例如,识别的“对象”是白板上的黑色矩形贴纸。我知道矩形 (x,y) 的值。

有没有一种方法可以用我的原始矩形的值和我用相机拍摄的矩形的图片的值来计算距离?

我在论坛中搜索了答案,但没有一个被指定来计算这些属性的距离。

我正在研究 Aldebaran Robotics 的一个名为 Nao 的机器人,我打算使用 OpenCV 来识别黑色矩形。

【问题讨论】:

  • 矩形是否面向相机,或者可能是一个角度?不管怎样,我建议你从一个圆圈开始。
  • 它可能是一个角度,不一定是一个矩形......重点是:如何测量2D物体与图片的距离,知识2D 形状属性。但我会保证你的建议!谢谢!

标签: geometry computer-vision computer-science trigonometry nao-robot


【解决方案1】:

如果您可以计算目标图像所占据的角度,那么到目标的距离应该与该角度的cot(即1/tan)成正比。您应该会发现图像中的像素数与角度大致对应,但我怀疑它是否完全是线性的,尤其是近距离。

您的相机镜头的行为可能会影响此测量,因此这将取决于您的确切设置。

为什么不在几个距离测量目标的大小,并绘制散点图?然后,您可以将曲线拟合到数据中,以获得特定系统的 size->distance 函数。如果您的相机接近“理想”相机,那么您应该会发现此图类似于 cot,并且您应该能够找到 ab 的值以匹配 dist = a * cot (b * width)

如果您尝试这个实验,为什么不在这里发布答案,让其他人从中受益?

[编辑:关于“理想”相机的说明]

要让相机图像看起来“逼真”,图像应该近似投影到眼前的平面上(因为我们通过将平面图像放在眼前来查看相机图像)。想象一下,在您的眼前举起一张描图纸,然后在纸上勾勒出物体的轮廓。 this page 上的第二张图显示了我的意思。您可以将实现这一目标的相机描述为“理想”相机。

当然,在现实生活中,相机不是通过描图纸工作的,而是通过镜头工作的。很复杂的镜头。看看this page上的镜头图。由于各种原因,您可能会花费一生的时间来学习,因此要创建一个与描图纸示例在所有条件下都可以工作的镜头完全相同是非常棘手的。从this wiki page 开始,如果您想了解更多信息,请继续阅读。

因此您不太可能计算出像素长度和距离之间的精确关系:您应该测量它并拟合曲线。

【讨论】:

  • 非常感谢您的回复!我真的很喜欢你的想法,我应该考虑一下... 一个问题:为什么我的图表看起来像一张婴儿床?我把它想象成一个线性图(因为当我移动到矩形时,它变得线性(?)更大)。 (对不起,如果我的问题听起来很愚蠢!:/)
  • P.S.:这个“理想”的相机东西对我来说是新的,你能给我一个链接,我可以在哪里阅读它?
  • 为什么它不是线性的:想象你正在看着一棵树,同时将它远离。如果树的角高度线性减少,那么它会在有限的时间内下降到零。相反,它会变得越来越小,但越来越慢,无论你走多远,它都不会完全消失。
  • 谢谢!现在很清楚为什么它不是线性的!也感谢“理想”相机的补充!可能会在下周左右发布我关于您建议的曲线方法的结果!
  • 抱歉没有回信。我仍在项目中,但 OpenCV 并不像我想象的那么容易(至少对于第一次使用的用户......)。 :) 作为临时解决方案,我在机器人上使用了激光和声纳传感器来避免与物体碰撞,并在 20 厘米外的墙壁前停下。
【解决方案2】:

这是一个很大的话题。如果您想从单个图像开始,请查看 A. Criminisi 的 this old paper。如需深入了解,请阅读他的博士学位。论文。然后开始在“射影几何”部分使用 OpenCV 例程。

【讨论】:

【解决方案3】:

我也一直致力于图像/对象识别。我刚刚发布了一个 python 编程的 android 应用程序(移植到 android),它可以识别物体、人、汽车、书籍、徽标、树木、花朵......任何东西:) 它还显示了它“思考”的思维过程:) 我已经把它作为 99 美分在谷歌游戏上的测试。 有兴趣的可以看下这个链接,还有一段视频: https://play.google.com/store/apps/details?id=com.davecote.androideyes

享受吧! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 2022-11-23
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    相关资源
    最近更新 更多