查找面部地标之间的欧氏距离

问题描述

我有多个帧,并且已经使用Retinaface检测到每个帧中的面部。我想使用它们的地标来跟踪这些面孔。

要找到2个地标之间的相似性,我尝试计算Eucledian距离:

输入:

landmark_1 = [1828,911],[1887,913],[1841,942],[1832,974],[1876,976]
landmark_2 = [1827,928],926],[1848,963],[1836,992],[1884,990]

在引用其他链接之后,我编写了以下函数,但是产生的值非常高:

def euclidean_dist(vector_x,vector_y):
    vector_x,vector_y = np.array(vector_x),np.array(vector_y)
    if len(vector_x) != len(vector_y):
        raise Exception('Vectors must be same dimensions')
    ans = sum((vector_x[dim] - vector_y[dim]) ** 2 for dim in range(len(vector_x)))
    return np.sqrt(np.sum(ans**2))

输出:

euclidean_dist(landmark_1,landmark_2)
>> 1424.9424549784458

(在这种情况下,期望值较小)

我猜代码只能用于一维矢量,但是我真的被卡在这里了。任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)