Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Faça como eu fiz: identificando objetos com MobileNetV2

import tensorflow as tf
from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input, decode_predictions
from tensorflow.keras.preprocessing import image
import numpy as np

# Carregamento de modelo:
model = MobileNetV2(weights="imagenet")

# Upload manual da imagem:
from google.colab import files
uploaded = files.upload()

# Substituação do nome do arquivo:
img_path = list(uploaded.keys())[0]

# Pré-processamento:
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)

# Predição:
preds = model.predict(x)
print("Classe prevista:", decode_predictions(preds, top=1)[0][0])


 gato-britanico-de-cabelo-curto-vermelho-sentado-em-fundo-branco-mostrando-patas-e-cauda-olhando-para-a-camera_946110-18437.avif(image/avif) - 63292 bytes, last modified: 18/06/2026 - 100% done
Saving gato-britanico-de-cabelo-curto-vermelho-sentado-em-fundo-branco-mostrando-patas-e-cauda-olhando-para-a-camera_946110-18437.avif to gato-britanico-de-cabelo-curto-vermelho-sentado-em-fundo-branco-mostrando-patas-e-cauda-olhando-para-a-camera_946110-18437 (2).avif
1/1 ━━━━━━━━━━━━━━━━━━━━ 2s 2s/step
Classe prevista: ('n02123159', 'tiger_cat', np.float32(0.3381788))
1 resposta

Olá, Andressa! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o MobileNetV2 para classificação de imagens com Python, utilizou muito bem o preprocessamento para adequar os dados e ainda compreendeu a importância da predição para identificar classes em imagens.

Uma dica interessante para o futuro é aplicar o top=3 no decode_predictions para visualizar mais opções de classes previstas. Assim:

print("Top 3 classes previstas:", decode_predictions(preds, top=3)[0])

Isso faz a exibição das três classes mais prováveis, permitindo uma análise mais completa dos resultados.

Complementando o conhecimento abordado nessa atividade, algumas boas práticas são:

  • Verificação do formato da imagem: garantir que esteja compatível com o modelo.
  • Interpretação dos resultados: analisar probabilidades para entender a confiança do modelo.
  • Uso de diferentes arquiteturas: testar ResNet, Inception ou EfficientNet para comparar desempenho.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: Você acha mais interessante trabalhar com modelos pré-treinados para acelerar resultados ou treinar modelos do zero para maior personalização e controle dos parâmetros?

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!