인코딩 목록과 샘플 이미지의 얼굴 인코딩을 비교하고 싶습니다.
#init empty dictionary for each folder name
dictionary = {name:[] for name in os.listdir(ROOT)}
#saves encodings in a list to the dictionary with corresponding names
for folder in os.listdir(ROOT):
for image in os.listdir(os.path.join(ROOT,folder)):
img = face_recognition.load_image_file(f"{ROOT}/{folder}/{image}")
dictionary[folder].append(face_recognition.face_encodings(img))
#dict looks something like this: {name:[encoding1,encoding2....]}
#sample image
my_image = face_recognition.load_image_file("vedank.jpg")
face_encodings = face_recognition.face_encodings(my_image,face_recognition.face_locations(my_image))
#taking user input to access dictionary values
user = input("enter your username")
#print results of face comparison
print(face_recognition.compare_faces(np.array(face_encodings[0]),np.array(dictionary[user])))
다음은 'my_image'의 인코딩을 다른 두 이미지의 인코딩과 비교하는 출력입니다.
[array([ True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True]), array([ True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True, True,
True, True])]
여러 부울 값을 얻는 이유는 무엇입니까? (전체 사전 프로세스를 거치지 않고) 수동으로 두 이미지를로드하여 두 이미지를 비교하려고하면 단일 부울 값이 표시됩니다.
편집 : 나는 그것을 가지고 놀아 보았고 인코딩을 목록에 추가하는 것이 문제를 일으키는 것처럼 보입니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
목록에 인코딩을 추가하면 크기가 원본 (1,128)에서 (1,1,128)으로 변경되는 것이 무슨 일인지 알아 냈습니다.
이것은 작동했습니다.
np.array(input_list).reshape(-1,128)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다