确定从网络摄像头捕获的面部距离

时间:2018-10-21 06:30:32

标签: python numpy opencv math

我有一张被网络摄像头捕获的脸部照片,我想知道检测到的脸部与网络摄像头之间的距离。

enter image description here

要达到同样的目的,我正在尝试找出由两个眼中心和一个鼻尖形成的三角形区域,并观察当我从相机移开已知距离时该区域的变化。但是,我的尝试并不成功。

在计算面部与摄像头之间的距离时需要帮助。请注意,我将使用的任何方法都应该独立于人,因为我无法控制要走在镜头前的人

1 个答案:

答案 0 :(得分:0)

我尝试构建如下所示的人脸特征三角形:

enter image description here

然后我使用了以下公式:enter image description here

其中“ d”是距离,ax和ay是相机参数。 enter image description hereenter image description here分别是“捕获的面部”和真实面部中特征角度的区域。

让我们假设,在距离(d1)处检测到人脸并计算出enter image description here。现在,我已离开相机5厘米,并将该距离视为(d2),并注意到在捕获的面部上形成的三角形区域。

使用上述两个方程,ax,ay和enter image description here是常数,并求解如下:

enter image description here。在这里,我还假设在现实世界中,特征三角形的面积将保持不变,并且因人而异。

现在我们有了K值,我们可以使用以下公式计算检测到的脸部距离:

enter image description here

请让我知道这种方法是否可行