CHOIHYUNWOO's picture
Upload app.py
f18ff45 verified
import gradio as gr
from transformers import pipeline
# 1. Hugging Face์—์„œ ๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
# ์ฒ˜์Œ ์‹คํ–‰ ์‹œ ๋ชจ๋ธ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋А๋ผ ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
print("๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘์ž…๋‹ˆ๋‹ค...")
pipeline_clf = pipeline("image-classification", model="yangy50/garbage-classification")
# 2. ๋ถ„๋ฅ˜ ํ•จ์ˆ˜ ์ •์˜ (์ด๋ฏธ์ง€๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜)
def classify_image(image):
# ๋ชจ๋ธ์ด ์˜ˆ์ธกํ•œ ๊ฒฐ๊ณผ(๋ฆฌ์ŠคํŠธ)๋ฅผ ๊ฐ€์ ธ์˜ด
predictions = pipeline_clf(image)
# Gradio๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ {'๋ผ๋ฒจ': ํ™•๋ฅ }
# ์˜ˆ: {'plastic': 0.98, 'metal': 0.02}
return {p['label']: p['score'] for p in predictions}
# 3. Gradio ์ธํ„ฐํŽ˜์ด์Šค ๋งŒ๋“ค๊ธฐ
iface = gr.Interface(
fn=classify_image, # ์‹คํ–‰ํ•  ํ•จ์ˆ˜
inputs=gr.Image(type="pil"), # ์ž…๋ ฅ: ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ
outputs=gr.Label(num_top_classes=3), # ์ถœ๋ ฅ: ์ƒ์œ„ 3๊ฐœ ๋ผ๋ฒจ ํ‘œ์‹œ
title="์“ฐ๋ ˆ๊ธฐ ๋ถ„๋ฅ˜๊ธฐ (Garbage Classifier)",
description="์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ์ข…์ด, ํ”Œ๋ผ์Šคํ‹ฑ, ์œ ๋ฆฌ, ๊ธˆ์† ๋“ฑ์œผ๋กœ ๋ถ„๋ฅ˜ํ•ด์ค๋‹ˆ๋‹ค."
)
# 4. ์•ฑ ์‹คํ–‰
if __name__ == "__main__":
iface.launch()