Imágenes para clasificar
Código para clasificar imágenes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
import os import tensorflow as tf import numpy as np # Función para preprocesar la imagen def preprocess_image(image_path): img = tf.io.read_file(image_path) img = tf.image.decode_image(img, channels=3) img = tf.image.resize(img, (299, 299)) # Ajusta el tamaño de la imagen según el modelo InceptionResNetV2 img = tf.keras.applications.inception_resnet_v2.preprocess_input(img) return img # Función para cargar y clasificar la imagen def classify_image(image_path): # Carga del modelo InceptionResNetV2 pre-entrenado model = tf.keras.applications.InceptionResNetV2(include_top=True, weights='imagenet') # Preprocesamiento de la imagen img = preprocess_image(image_path) img = np.expand_dims(img, axis=0) # Clasificación de la imagen predictions = model.predict(img) predicted_classes = tf.keras.applications.inception_resnet_v2.decode_predictions(predictions, top=5)[0] return predicted_classes def main(): # Ruta del directorio con las imágenes a clasificar directory_path = '/imagenes/' # Obtener lista de archivos en el directorio image_files = [file for file in os.listdir(directory_path) if file.lower().endswith(('.jpg', '.jpeg'))] # Clasificar cada imagen en el directorio for image_file in image_files: # Construir la ruta completa de la imagen image_path = os.path.join(directory_path, image_file) # Clasificar la imagen predicted_classes = classify_image(image_path) print("Predictions for", image_path) for i, (imagenet_id, label, score) in enumerate(predicted_classes): print("{}. {}: {:.2f}%".format(i+1, label, score*100)) print("\n") if __name__ == "__main__": main() |