使用 face_recognition 识别两张人脸照片的相似度
Face Recognition 简介
Face Recognition 是一个基于 Dlib 的 Python 库,它简化了人脸识别的操作。它封装了人脸检测、编码和比较的功能,非常易于使用。GitHub 主页地址是 https://github.com/ageitgey/face_recognition 。
使用最近很火的汪峰新女友森林北李巧的照片测试。
图片 L1 和 L2 对比,face distance 为 0.393,相似度为 60.69%。
Python 源码
import face_recognition
# 加载两张人脸照片
image1 = face_recognition.load_image_file("images/S1.jpg")
image2 = face_recognition.load_image_file("images/L3.png")
# 获取人脸特征向量
face_encoding1 = face_recognition.face_encodings(image1)[0]
face_encoding2 = face_recognition.face_encodings(image2)[0]
# 计算两张人脸特征向量之间的距离
face_distance = face_recognition.face_distance([face_encoding1], face_encoding2)[0]
# 计算相似度
similarity = (1 - face_distance) * 100
print(f"Face Distance: {face_distance}")
print(f"Similarity: {similarity:.2f}%")
注意事项
face_recognition 的人脸识别是基于业内领先的 C++开源库 dlib中的深度学习模型,用 Labeled Faces in the Wild 人脸数据集进行测试,有高达 99.38% 的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
Labeled Faces in the Wild 是美国麻省大学安姆斯特分校(University of Massachusetts Amherst) 制作的人脸数据集,该数据集包含了从网络收集的13,000多张面部图像。