python实现高精度人脸比对的代码
时间: 2023-07-24 16:57:25 浏览: 115
以下是一个使用Python实现高精度人脸比对的示例代码。该代码使用了face_recognition库进行人脸检测和人脸特征提取,使用numpy库计算特征向量的相似度,使用Pillow库在图像中标出人脸位置和相似度。
```python
import face_recognition
import numpy as np
from PIL import Image, ImageDraw
# 加载图像和人脸特征
image1 = face_recognition.load_image_file("image1.jpg")
image2 = face_recognition.load_image_file("image2.jpg")
face1 = face_recognition.face_encodings(image1)[0]
face2 = face_recognition.face_encodings(image2)[0]
# 计算人脸特征向量的相似度
similarity = np.dot(face1, face2)
# 在图像中标出人脸位置和相似度
draw = ImageDraw.Draw(image1)
face_locations = face_recognition.face_locations(image1)
for (top, right, bottom, left), sim in zip(face_locations, [similarity]):
draw.rectangle(((left, top), (right, bottom)), outline=(0, 0, 255))
draw.text((left, top - 20), f"Similarity: {sim:.2f}", fill=(0, 0, 255))
# 显示图像
image1.show()
```
在上面的代码中,首先使用face_recognition库加载图像和人脸特征。然后,使用np.dot()函数计算两个人脸特征向量的点积,得到它们的相似度。最后,使用Pillow库中的ImageDraw类在图像中标出人脸位置和相似度,并显示图像。
请注意,以上代码仅为示例,实际应用中可能需要对人脸检测和特征提取进行优化,以提高准确率和效率。
阅读全文