我计划制作一个相当大的面孔/嵌入数据库。我想知道排序嵌入列表的最佳方法,我还想知道搜索列表中最相似的脸的最佳方法。我正在使用deepface进行面部识别和身份识别。
假设df['embeddings']
有您想要匹配的所有嵌入的集合
face_embedding
是与
最接近的匹配项定义距离函数
def find_distance(x):
if x is not None:
return distance.euclidean(x.detach().numpy(), face_embedding.detach().numpy())
else:
return None
将距离函数应用于数据框架的'embeddings'列
df['distance'] = df['embeddings'].apply(find_distance)
查找最接近匹配的索引
closest_index = df['distance'].idxmin()
return closest_index