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