File size: 1,226 Bytes
beacc91 112b1af beacc91 bad91ae beacc91 52b0325 beacc91 4ccd918 beacc91 52b0325 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
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์ ๊ฐ๊น์ธ์๋ก ๋น์ทํจ)
# ์ ์ฌ๋๋ฅผ ๋ฐฑ๋ถ์จ๋ก ๋ณํ (์ด ๋ฐฉ์์ ์์ ๋ก, ์ค์ ์์ฉ์์ ๋ ์ ๊ตํ ๋ฐฉ๋ฒ์ด ํ์ํ ์ ์์)
# ์ฐธ๊ณ : 0.6์ ๊ฒฝํ์ ์ผ๋ก ์ผ๊ตด์ด ๋งค์ฐ ๋น์ทํ๋ค๊ณ ํ๋จ๋๋ ์๊ณ๊ฐ์
๋๋ค. ์ด ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ์ฌ๋๋ฅผ ๊ณ์ฐํฉ๋๋ค.
similarity = max(0, 100 - (distance / 0.6) * 100)
return f"๋ ์ผ๊ตด์ ์ ์ฌ๋๋ {similarity:.2f}% ์
๋๋ค."
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()
|