import face_recognition
from os import walk
import json

image1 = face_recognition.load_image_file('handsome.png')
encodings1 = face_recognition.face_encodings(image1)[0]


basePath = "./william"
res1 = []
index = 1

arr = []
for (dirpath, dirnames, filenames) in walk(basePath):
    arr.extend(filenames)
    break

for filename in arr:
    imgPath = basePath + "/" + filename
    image2 = face_recognition.load_image_file(imgPath)
    rec = face_recognition.face_encodings(image2)
    if(len(rec) == 0):
        res1.append({
            "name": filename,
            "similarity": 0
        })
        continue
    encodings2 = rec[0]
    similarity = str(face_recognition.face_distance([encodings1], encodings2)[0])
    res1.append({
        "name": filename,
        "similarity": similarity
    })
    print("img: " + filename + " index: " +  str(index) + " similarity: "+ similarity)
    index+=1

sortedArr = sorted(res1, key=lambda x: float(x['similarity']))

fo = open("result.txt", "w")

fo.write(json.dumps(sortedArr))
 
fo.close()

 安装依赖:

pip install setuptools
pip install -i  https://pypi.tuna.tsinghua.edu.cn/simple face_recognition
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

 

 posted on 2024-02-24 00:06  laremehpe  阅读(29)  评论(0编辑  收藏  举报