首页 > 解决方案 > 使用openCV提取带有固定相机的运动球体的X、Y、Z位置

问题描述

我是opencv的新手,我想在我的项目中应用姿势估计。基本上,我想做的是提取球体的 X、Y、Z 位置。检测球体的相机位于固定位置,而球体相对于世界参考系在空间中移动。

我知道您必须先进行相机校准才能提取此处讨论的内在和外在参数:youtube.com/watch?v=HoBKG82A9xs

我在这里找到了一个很好的参考资料,它实际上解释了我想在我的项目中做什么: https ://www.fdxlabs.com/calculate-xyz-real-world-coordinates-from-a-single-camera-using-opencv / 但是,z 位置是固定的,并且在这个项目中是已知的。此外,项目中的透视校准是在一个固定的平面上完成的。这意味着检测仅在该特定平面上是准确的。

现在我的问题是我将如何将它应用到在空间中移动的球体中?或者您能建议一种不同的方法来准确提取 X、Y、Z 位置吗?我需要使用两个相机还是一个就可以了?

标签: pythonopencvimage-processingcomputer-visionopencv3.0

解决方案


当然,当涉及到 3D 坐标时,可以使用 2 个摄像头进行深度预测。但是,我建议你尝试一件事。由于您正在跟踪一个球体,因此您可以轻松跟踪 X 和 Y 坐标。如果工作环境是固定的,您可以根据球体的面积创建 Z 坐标公式。当您远离相机时,区域将减小,Z 坐标将增加。您可以通过 try-n-error 方法设计公式,如果我将球体移动 1 英尺,将减少多少面积。

如果工作环境发生变化,您可以在使用开始时添加校准阶段。类似于在开始预测之前保持球体为 0 级,将其拉回 1 英尺。将其向前推 1 英尺。


推荐阅读