2013-02-04 130 views
0

我想将检测到的脸部矩形转换成3D坐标。我有我的摄像头的内在参数和我的头部尺寸,我如何使用投影方程确定深度Z?opencv人脸检测2D到3D

X = FX X/Z + U

Y = FY Y/Z + V

我明白FX Fy和UV是固有参数,以及XY通过我的头部尺寸,XY给定由检测到的面部矩形给出。似乎只有一个方程式足以确定Z.如何使用它们两个?或者我错了?

回答

0

你是正确的,你并不是严格需要他们两个来计算深度。但是,您可能想要同时使用它们来提高准确性。

要记住的另一件事是,如果您的相机没有垂直看待测量的平面物体(例如脸部),则其中一个或两个测量值可能对计算深度没有用处。例如,如果您的相机正在仰望矩形,则只有宽度才是衡量深度的好方法,因为高度被视角所压缩。尽管如此,我认为这对于脸部检测器来说并不重要,因为无论如何都假定脸部的比例是固定的?

+0

是的,它是固定的,因为如果脸不朝向相机,它不会被发现。我的进一步的问题是如何使用这个深度Z在OpenGL 3D Coordinate中定位面部矩形?我使用solvePnP来获得翻译矩阵,并将其用在MODELVIEW中。但它并不完全在我想要的位置,尽管当我移动头部时轴线正在移动。还有其他方法吗? –