问题描述
我有多个帧,并且已经使用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 (将#修改为@)