Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Identificando objetos con MobileNetV2

Mi solución a presentar será:

==========================================================

CLASIFICACIÓN DE IMÁGENES CON MOBILENETV2

==========================================================

Importar bibliotecas

import numpy as np
import cv2
import matplotlib.pyplot as plt

from google.colab import files
from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.applications.mobilenet_v2 import (
preprocess_input,
decode_predictions
)

==========================================================

PASO 1: Cargar la imagen

==========================================================

uploaded = files.upload()

imagen_path = list(uploaded.keys())[0]

Leer la imagen

imagen = cv2.imread(imagen_path)

Convertir de BGR a RGB

imagen = cv2.cvtColor(imagen, cv2.COLOR_BGR2RGB)

Mostrar la imagen

plt.imshow(imagen)
plt.title("Imagen cargada")
plt.axis("off")
plt.show()

==========================================================

PASO 2: Cargar el modelo preentrenado

==========================================================

modelo = MobileNetV2(weights="imagenet")

==========================================================

PASO 3: Preprocesar la imagen

==========================================================

imagen_redimensionada = cv2.resize(imagen, (224, 224))

imagen_array = np.expand_dims(imagen_redimensionada, axis=0)

imagen_array = preprocess_input(imagen_array)

==========================================================

PASO 4: Realizar la predicción

==========================================================

predicciones = modelo.predict(imagen_array)

resultado = decode_predictions(predicciones, top=1)

clase = resultado[0][0][1]
confianza = resultado[0][0][2]

print("=" * 50)
print("RESULTADO DE LA CLASIFICACIÓN")
print("=" * 50)

print(f"Objeto identificado : {clase}")
print(f"Confianza : {confianza:.2%}")

Explicación

En esta actividad se utilizó el modelo MobileNetV2, una red neuronal convolucional preentrenada con el conjunto de datos ImageNet, que contiene millones de imágenes pertenecientes a miles de categorías.

Primero, se cargó una imagen desde Google Colab utilizando la función files.upload(). Luego, la imagen fue convertida al formato RGB y redimensionada a 224 × 224 píxeles, ya que este es el tamaño requerido por MobileNetV2.

Posteriormente, se aplicó el preprocesamiento mediante la función preprocess_input(), la cual normaliza los valores de los píxeles para que sean compatibles con el modelo.

Una vez preparada la imagen, se realizó la predicción utilizando el modelo preentrenado. Finalmente, con la función decode_predictions() se obtuvo la clase del objeto identificado y el porcentaje de confianza asociado a la predicción.

Conclusión

El uso de modelos preentrenados como MobileNetV2 permite desarrollar aplicaciones de clasificación de imágenes sin necesidad de entrenar una red neuronal desde cero. Gracias al preprocesamiento adecuado y al conocimiento previamente adquirido por el modelo sobre el conjunto de datos ImageNet, fue posible identificar automáticamente el objeto presente en la imagen con un alto nivel de precisión. Esta técnica es ampliamente utilizada en aplicaciones de visión por computadora, reconocimiento de objetos, automatización industrial y sistemas inteligentes de clasificación.

1 respuesta

Hola, George. ¿Cómo vas?

Gracias por compartir tus reflexiones y aprendizajes con la comunidad Alura.

Me gustó la forma en que organizaste tu solución y la explicación de cada etapa del proceso. Principalmente, relacionaste el preprocesamiento de la imagen con el funcionamiento de MobileNetV2 y explicaste claramente cómo se obtiene la predicción y el nivel de confianza.

Sigue practicando con diferentes imágenes para observar cómo cambia el resultado según el contenido y la calidad de la imagen. ✨

¡Saludos y buenos estudios!

No olvides marcar esta publicación como solucionada. ¡Es una gran ayuda para toda la comunidad! ✓ ¡Mucho éxito en tus estudios!