import gradio as gr import face_recognition import numpy as np from PIL import Image def match_faces(image1, image2): # 이미지에서 얼굴 인식 및 특징 추출 face_encoding1 = face_recognition.face_encodings(image1)[0] face_encoding2 = face_recognition.face_encodings(image2)[0] # 두 얼굴 간의 유사도 측정 (유클리디안 거리) distance = np.linalg.norm(face_encoding1 - face_encoding2) # 거리를 사용하여 유사도를 백분율로 변환 (단순화된 추정치 사용) # 거리가 0이면 100% 유사, 거리가 커질수록 유사도는 낮아짐 # 유사도 계산을 위한 단순화된 공식. 실제 사용시에는 적절한 조정이 필요할 수 있음 similarity = max(0, 100 - distance * 20) return f"유사도: {similarity:.2f}%" # Gradio 인터페이스 생성 iface = gr.Interface(fn=match_faces, inputs=[gr.inputs.Image(shape=(224, 224)), gr.inputs.Image(shape=(224, 224))], outputs="text") iface.launch()