标签: python numpy opencv math
我有一张被网络摄像头捕获的脸部照片,我想知道检测到的脸部与网络摄像头之间的距离。
要达到同样的目的,我正在尝试找出由两个眼中心和一个鼻尖形成的三角形区域,并观察当我从相机移开已知距离时该区域的变化。但是,我的尝试并不成功。
在计算面部与摄像头之间的距离时需要帮助。请注意,我将使用的任何方法都应该独立于人,因为我无法控制要走在镜头前的人
答案 0 :(得分:0)
我尝试构建如下所示的人脸特征三角形:
然后我使用了以下公式:
其中“ d”是距离,ax和ay是相机参数。 和分别是“捕获的面部”和真实面部中特征角度的区域。
让我们假设,在距离(d1)处检测到人脸并计算出。现在,我已离开相机5厘米,并将该距离视为(d2),并注意到在捕获的面部上形成的三角形区域。
使用上述两个方程,ax,ay和是常数,并求解如下:
。在这里,我还假设在现实世界中,特征三角形的面积将保持不变,并且因人而异。
现在我们有了K值,我们可以使用以下公式计算检测到的脸部距离:
请让我知道这种方法是否可行