Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Identificando objetos con MobileNetV2

Bueno, ajusté un poco el código del profesor para ver un ranking de 3 predicciones que da la máquina.

Código:

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

# Subir la imagen
uploaded = files.upload()
imagen_path = list(uploaded.keys())[0]

# Cargar y convertir la imagen
imagen = cv2.imread(imagen_path)
imagen_rgb = cv2.cvtColor(imagen, cv2.COLOR_BGR2RGB)

# Cargar el modelo
modelo = MobileNetV2(weights="imagenet")

# Preprocesar
imagen_redimensionada = cv2.resize(imagen_rgb, (224, 224))
imagen_array = np.expand_dims(imagen_redimensionada, axis=0)
imagen_array = preprocess_input(imagen_array)

# Predecir
predicciones = modelo.predict(imagen_array)
top3 = decode_predictions(predicciones, top=3)[0]

print("Top 3 predicciones:")
for i, (id, label, confianza) in enumerate(top3, start=1):
    print(f"  {i}. {label}: {confianza*100:.1f}%")

Imagen subida:
Un perro pegado a la cámara

Output:

Top 3 predicciones:
  1. wallaby: 13.7%
  2. kelpie: 11.1%
  3. Pembroke: 4.6%

De esos tres, "Kelpie" es el más cercano por ser una raza de perro, pero la respuesta era un Shiba Inu. Si no hubiera puesto esos 3 resultados, no podría haber visto una respuesta más cercana