1
resposta

[Projeto] Faça como eu fiz: identificando objetos com MobileNetV2

Nesta atividade, foi utilizado o modelo MobileNetV2, já pré-treinado com a base ImageNet, para identificar objetos em imagens. Primeiro, a imagem foi carregada no Google Colab e redimensionada para o tamanho esperado pelo modelo, que é 224x224 pixels. Em seguida, a imagem passou por um pré-processamento para ficar no formato adequado para a rede neural.

Depois disso, o modelo realizou a predição e retornou as classes mais prováveis para o objeto presente na imagem, juntamente com o nível de confiança de cada uma. Assim, foi possível classificar automaticamente a imagem enviada utilizando uma rede neural convolucional já treinada.

Neste link está o código executado:
https://github.com/Moquiuti/fundamentos-ia-investigando-algoritmos-abordagens-machine-learning/blob/main/identificando_objetos_com_MobileNetV2.ipynb

E Aqui o código desenvolvido:

import numpy as np
import matplotlib.pyplot as plt

from google.colab import files
from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2, preprocess_input, decode_predictions
from tensorflow.keras.preprocessing import image

# 1. Carregando o modelo pré-treinado
modelo = MobileNetV2(weights='imagenet')
print("Modelo carregado com sucesso.")

# 2. Upload da imagem
uploaded = files.upload()

# 3. Pegando o nome do arquivo enviado
nome_arquivo = list(uploaded.keys())[0]

# 4. Carregando e exibindo a imagem
img = image.load_img(nome_arquivo, target_size=(224, 224))
img_array = image.img_to_array(img)

plt.imshow(img)
plt.axis('off')
plt.title("Imagem enviada")
plt.show()

# 5. Pré-processando a imagem
img_array = np.expand_dims(img_array, axis=0)
img_array = preprocess_input(img_array)

# 6. Fazendo a predição
predicoes = modelo.predict(img_array)
resultado = decode_predictions(predicoes, top=3)[0]

print("Principais previsões:")
for i, (codigo, classe, probabilidade) in enumerate(resultado, 1):
    print(f"{i}. {classe} - {probabilidade:.2%}")

# 7. Exibindo a principal classe identificada
classe_principal = resultado[0][1]
confianca = resultado[0][2]

print(f"\nClasse identificada: {classe_principal}")
print(f"Confiança da predição: {confianca:.2%}")

Respeitosamente.

1 resposta

Oi, Leandro! Como vai?

Agradeço por compartilhar.

Gostei da sua explicação do fluxo completo, desde o pré-processamento da imagem até a interpretação das previsões do modelo. Sua organização do código também ficou bem clara, o que ajuda bastante a entender como o MobileNetV2 trabalha na prática com classificação de imagens.

Continue explorando esse tipo de aplicação, pois isso fortalece muito sua base em IA.

Dica: experimente testar o modelo com diferentes imagens e comparar os níveis de confiança das previsões; você pode fazer isso alterando apenas a imagem de entrada e observando como o modelo se comporta em cada caso.

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