============================================
CLASSIFICAÇÃO DE IMAGENS COM MOBILENETV2
============================================
from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input, decode_predictions
import numpy as np
import cv2
from google.colab import files
from PIL import Image
import matplotlib.pyplot as plt
1. Fazer upload da imagem
uploaded = files.upload()
imagem_path = list(uploaded.keys())[0] # Pega o nome do arquivo enviado
2. Carregar a imagem usando OpenCV
imagem = cv2.imread(imagem_path)
imagem_rgb = cv2.cvtColor(imagem, cv2.COLOR_BGR2RGB)
3. Carregar o modelo MobileNetV2 pré-treinado (ImageNet)
modelo = MobileNetV2(weights="imagenet")
4. Pré-processar a imagem para o formato esperado pelo modelo
imagem_redimensionada = cv2.resize(imagem_rgb, (224, 224))
imagem_array = np.expand_dims(imagem_redimensionada, axis=0)
imagem_array = preprocess_input(imagem_array)
5. Fazer a previsão
predicoes = modelo.predict(imagem_array)
6. Decodificar a predição (top 1)
label = decode_predictions(predicoes, top=1)
classe_identificada = label[0][0][1]
confianca = label[0][0][2]
print(f"Objeto identificado: {classe_identificada} (confiança: {confianca:.2f})")
7. Exibir a imagem com o rótulo previsto
plt.imshow(imagem_rgb)
plt.axis('off')
plt.title(f"Predição: {classe_identificada} ({confianca:.2f})")
plt.show()