import gradio as gr from transformers import pipeline from PIL import Image # 이미지 인식 파이프라인 로드 model = pipeline("image-classification", model="google/vit-base-patch16-224") def classify_image(uploaded_image): # 업로드된 이미지가 PIL 이미지 객체가 아닌 경우 변환 if not isinstance(uploaded_image, Image.Image): # 업로드된 이미지가 PIL 이미지 객체가 아니면, 이 부분을 처리하는 로직 추가 # 예: uploaded_image = Image.open(io.BytesIO(uploaded_image)) raise ValueError("Uploaded image is not a PIL Image object.") predictions = model(uploaded_image) return {prediction['label']: prediction['score'] for prediction in predictions} # Gradio 인터페이스 생성 iface = gr.Interface(fn=classify_image, inputs=gr.Image(), outputs=gr.Label(num_top_classes=3), title="이미지 분류기", description="이미지를 업로드하면, 사물을 인식하고 최상위 3개의 분류 결과를 출력합니다.") # 인터페이스 실행 iface.launch()