Spaces:
Sleeping
Sleeping
from transformers import CLIPProcessor, CLIPModel | |
from PIL import Image | |
import requests | |
import streamlit as st | |
import os | |
#from dotenv import load_dotenv | |
# Carregar variáveis de ambiente | |
#load_dotenv() | |
# Obter o token da API do Hugging Face | |
api_key = os.environ.get('API_KEY') # Substitua pelo seu token | |
# Inicializar o pipeline com o modelo desejado | |
model_name = "openai/clip-vit-base-patch32" | |
processor = CLIPProcessor.from_pretrained(model_name, use_auth_token=api_key) | |
model = CLIPModel.from_pretrained(model_name, use_auth_token=api_key) | |
def classify_image(image, descriptions): | |
inputs = processor(text=descriptions, images=image, return_tensors="pt", padding=True) | |
outputs = model(**inputs) | |
logits_per_image = outputs.logits_per_image | |
probs = logits_per_image.softmax(dim=1) | |
return probs | |
# Interface do Streamlit | |
st.title("Modelo de Classificação de Imagens") | |
# Carregar imagem | |
uploaded_file = st.file_uploader("Escolha uma imagem...(Cavalo, Cachorro, Criança, Gato)", type=["jpg", "jpeg", "png"]) | |
if uploaded_file is not None: | |
image = Image.open(uploaded_file) | |
st.image(image, caption='Imagem Carregada', use_column_width=True) | |
# Definir descrições | |
descriptions = ["uma foto de um gato", "uma foto de um cachorro", "uma foto de um cavalo", "uma foto de uma criança"] | |
# Classificar imagem | |
probs = classify_image(image, descriptions) | |
# Mostrar resultados | |
st.write("Resultados da classificação:") | |
for description, prob in zip(descriptions, probs[0]): | |
st.write(f"{description}: {prob:.4f}") | |