# =========================================
# PASSO 1: CARREGAR E PREPARAR A IMAGEM
# =========================================
from google.colab import files
from tensorflow.keras.utils import load_img, img_to_array
import numpy as np
import matplotlib.pyplot as plt
uploaded = files.upload()
# Pega o nome do primeiro arquivo enviado
image_path = list(uploaded.keys())[0]
# Carrega a imagem já redimensionando para 224x224
img = load_img(image_path, target_size=(224, 224))
# Mostra a imagem
plt.imshow(img)
plt.axis("off")
plt.title("Imagem carregada")
plt.show()
# Converte a imagem para array
img_array = img_to_array(img)
# Adiciona a dimensão do batch: (1, 224, 224, 3)
img_array = np.expand_dims(img_array, axis=0)
# =========================================
# PASSO 2: CARREGAR O MODELO PRÉ-TREINADO
# =========================================
from tensorflow.keras.applications import MobileNetV2
model = MobileNetV2(weights="imagenet")
# =========================================
# PASSO 3: PRÉ-PROCESSAMENTO DA IMAGEM
# =========================================
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input
img_preprocessed = preprocess_input(img_array)
print("Formato da imagem após pré-processamento:", img_preprocessed.shape)
print("Pré-processamento concluído com sucesso.")
# =========================================
# PASSO 4: FAZER A PREVISÃO
# =========================================
from tensorflow.keras.applications.mobilenet_v2 import decode_predictions
# Fazer previsão
predictions = model.predict(img_preprocessed)
# Decodificar resultados (top 3)
decoded = decode_predictions(predictions, top=1)[0]
# Exibir resultados
print("Resultados da classificação:\n")
for i, (codigo, nome, prob) in enumerate(decoded):
print(f"{i+1}. {nome} ({prob*100:.2f}%)")