Creando tu propio clasificador de imágenes utilizando Python y Tensorflow

Posted by


En este tutorial, te guiaré paso a paso para crear tu primer clasificador de imágenes utilizando Python y TensorFlow. TensorFlow es una poderosa biblioteca de código abierto desarrollada por Google para cómputo numérico y aprendizaje automático. Con TensorFlow, podemos construir redes neuronales profundas para realizar tareas como clasificación de imágenes.

Paso 1: Instalar TensorFlow

Lo primero que necesitas hacer es instalar TensorFlow en tu máquina. Puedes instalar TensorFlow usando pip, el administrador de paquetes de Python. Simplemente ejecuta el siguiente comando en tu terminal:

pip install tensorflow

Paso 2: Preparar tus datos

Para este tutorial, utilizaremos un conjunto de datos de flores, que contiene imágenes de flores de diferentes clases. Puedes descargar el conjunto de datos de flores de este enlace. Una vez que hayas descargado y descomprimido el conjunto de datos, asegúrate de tener una estructura de directorios como la siguiente:

flowers_dataset/
    class_1/
        image1.jpg
        image2.jpg
        ...
    class_2/
        image1.jpg
        image2.jpg
        ...
    ...

Paso 3: Crear un modelo de clasificación de imágenes

A continuación, crearemos un modelo de clasificación de imágenes utilizando TensorFlow. Para ello, utilizaremos una red neuronal convolucional (CNN), que es un tipo de red neuronal especialmente diseñada para trabajar con imágenes. A continuación, se muestra un ejemplo de cómo puedes construir un modelo de CNN utilizando TensorFlow:

import tensorflow as tf
from tensorflow.keras import layers, models

model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3)),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(128, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Flatten(),
    layers.Dense(128, activation='relu'),
    layers.Dense(5, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

En este código, creamos un modelo de CNN con tres capas de convolución seguidas de capas de pooling y capas densas para la clasificación. Asegúrate de ajustar el tamaño de las imágenes y el número de clases para que coincida con tu conjunto de datos.

Paso 4: Entrenar el modelo

Una vez que hayas construido tu modelo, puedes entrenarlo en tus datos utilizando el método fit de TensorFlow. Asegúrate de preprocesar tus datos de entrada antes de entrenar el modelo. Aquí tienes un ejemplo de cómo puedes entrenar tu modelo:

from tensorflow.keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
    'flowers_dataset',
    target_size=(150, 150),
    batch_size=32,
    class_mode='sparse'
)

model.fit(
    train_generator,
    epochs=10
)

Este código utiliza un generador de imágenes para preprocesar y cargar imágenes desde el directorio flowers_dataset. Entrenamos el modelo en el generador durante 10 épocas.

Paso 5: Evaluación del modelo

Una vez que hayas entrenado tu modelo, puedes evaluar su rendimiento en un conjunto de datos de prueba. Puedes hacerlo utilizando el método evaluate de TensorFlow. Aquí tienes un ejemplo de cómo puedes evaluar tu modelo:

test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_directory(
    'flowers_dataset',
    target_size=(150, 150),
    batch_size=32,
    class_mode='sparse',
    shuffle=False
)

loss, accuracy = model.evaluate(test_generator)
print('Test accuracy:', accuracy)

Conclusión

¡Felicidades! Acabas de crear tu primer clasificador de imágenes con Python y TensorFlow. En este tutorial, aprendiste a cargar y procesar datos de imágenes, construir y entrenar un modelo de clasificación de imágenes con TensorFlow y evaluar su rendimiento en un conjunto de datos de prueba. ¡Ahora estás listo para explorar y expandir tus conocimientos en el fascinante mundo del aprendizaje automático!

0 0 votes
Article Rating
47 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@RingaTech
1 month ago

Ya tengo cursos!
Aprende a programar desde cero con Python:
https://www.domestika.org/es/courses/5228-introduccion-a-la-programacion-con-python/ringatech
Aprende IA desde cero con Python:
https://www.domestika.org/es/courses/5239-introduccion-a-la-ia-con-python/ringatech

También puedes seguir mi lista de reproducción aquí en Youtube para más videos de IA:
https://youtube.com/playlist?list=PLZ8REt5zt2Pn0vfJjTAPaDVSACDvnuGiG

@alexbarretogranada4633
1 month ago

No me deja descargar el dataset de Pet finder 🙁

@oscarlely
1 month ago

Excelente trabajo muchas gracias por el video 👌

@adan9975
1 month ago

Muy guay como lo explicas. Como aprendiste IA, a parte de la universidad alguna recomendación?

@joseluistovar3825
1 month ago

Excelente Explicación. Con las redes neuronales podemos resolver el tema de asignación de salones de clase a Docentes en con sus horarios de clases por día?

@valeriaf.2560
1 month ago

Está cañona tu didáctica! Mil tnx por el video

@devdev2088
1 month ago

lo que quiero saber es que hacer cuando eh un archivo de Kaggle , tengo un archivo comprimido de Images de Retinopatia Diabetica y dentro de la carpeta existen carpetas testing y training . ¿qué hago con ellos? ¿ya no necesito volver a clasificar en Testing y training ?

@aitorserrano6030
1 month ago

gracias por el vídeo

@gmolleda
1 month ago

Buenas, excelente.
CORRIJO, en el vídeo sobre exportar explicas que hay que añadir un signo de admiración ! al principio de la línea en COLAB para ejecutar un comando para GNU/Linux. No lo había visto pero ciertamente aparece ese símbolo aquí también.
En el minuto 18:30, en la orden para convertir de h5 a js me salía el error:
tensorflowjs_converter –input_format keras modelo_exportado.h5 tfjs_target_dir
^
SyntaxError: invalid syntax

@arieldiaz932
1 month ago

Genio

@Honduras2full
1 month ago

Que genial 😍¿alguien tiene el video para crear la web?

@alejandronicolas1279
1 month ago

Qué tipo de pc debe ser para tener una red de 10000 neuronas ?

@raflilion001
1 month ago

no entendí bien como es que la función pasa de 255 a 0 y 1

@leonelrossi857
1 month ago

Gracias, me animaste a seguir aprediendo

@PabloRamirezA
1 month ago

😁 Cada vez que veo tu video siempre termino aclarando alguna duda, gracias bro….

@luisfernandomotatomoreno1299
1 month ago

@yersonochoa17
1 month ago

Ya pasó un año desde este video, pero aún te doy las gracias por compartir esto, haces que ver estos temas emocione

@JavierMontoto
1 month ago

Buenas, gran video! ¿Cuál es la herramienta que usas para la visualizacion de el aprendizaje automático? Gracias!

@juliobrugo4234
1 month ago

Gran pero gran PROFE Ringa Tech. Algo complejo explicado de la manera mas simple! Genio total

@raulravanal4105
1 month ago

muy bueno el video!!