-

Computer Science

Visual/Medical Anomaly Detection, Real-Time Face Recognition, Video Frame

"Trail-125" 헌터커브 구경하기

Codes

디렉토리에 널부러진 파일들로부터 비슷한 얼굴을 검색하다

H.BIN.KIM 2022. 5. 26. 13:22

face_recognition : https://github.com/ageitgey/face_recognition

dlib 기반 얼굴 인식 오픈소스 라이브러리. 따라서 dlib와 그에 필요한 cmake 설치가 필요하다. 

설치 방법은 해당 레포에 한글 번역본으로도 올라와있다. 

 

사용 :

각 변수에 타깃 얼굴 이미지 경로와 디렉토리 경로를 입력한다. 

결과물은 csv파일로 저장된다.

기본적으로는 얼굴 임베딩 벡터간 거리를 측정하여 출력한다. 낮을수록 유사한 것으로 보면 된다. 

 

얼굴 관련 데이터셋으로 실험할 때 가끔 쓸 일이 있을지도 모른다. 

import os
import face_recognition
import pandas
from tqdm import tqdm

target = 'D:/****.png'
src_path = 'D:/****'
dst_csv = 'D:/****/output.csv'
t_img = face_recognition.load_image_file(target)
t_encoding = face_recognition.face_encodings(t_img, model='small')

match_scores = {}
for fn in tqdm(os.listdir(src_path)):
    f_img = face_recognition.load_image_file(os.path.join(src_path, fn))
    f_encoding = face_recognition.face_encodings(f_img, model='small')
    if f_encoding:
        match_scores.update({fn: face_recognition.face_distance(t_encoding, f_encoding[0])})

df = pandas.DataFrame.from_dict(match_scores)  # 얼굴 임베딩 거리 (클수록 안비슷)
df.T.to_csv(dst_csv)  # csv 표로 출력