使用 openCV 使用固定相机提取移动球体的 X、Y、Z 位置



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

我知道您必须先进行相机校准才能提取内在和外在参数,如下所述:youtube.com/watch?v=HoBKG82A9xs

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

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

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

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

最新更新