CupidAI / app.py
suinY00N's picture
Update app.py
52b0325 verified
raw
history blame
No virus
1.05 kB
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()