Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Classificador de Imagens com MobileNetV2

Segue:

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

# Para o Upload de uma imagem
uploaded = files.upload()
imagem_path = list(uploaded.keys())[0]  

# Carregando a imagem usando OpenCV
imagem = cv2.imread(imagem_path)
imagem_rgb = cv2.cvtColor(imagem, cv2.COLOR_BGR2RGB)

# Carregando o modelo MobileNetV2 pré-treinado
modelo = MobileNetV2(weights="imagenet")

# Pré-processando 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)

# Fazendo a previsão da classe
predicoes = modelo.predict(imagem_array)
label = decode_predictions(predicoes)

# Exibindo a classe identificada
print("Objeto identificado:", label[0][0][1])  
2 respostas
solução!

Olá, Anderson! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso do MobileNetV2 para classificação de imagens, utilizou muito bem o OpenCV para pré-processamento e ainda compreendeu a importância do preprocess_input para adequar os dados ao modelo.

Uma dica interessante para o futuro é exibir também a probabilidade da classe prevista. Assim:

print("Objeto identificado:", label[0][0][1], "com probabilidade de", round(label[0][0][2]*100, 2), "%")

Isso faz com que a saída seja mais informativa, mostrando não apenas a classe, mas também o nível de confiança do modelo.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Valeu! Muito obrigado pela dica e ajuste!