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.