No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Consejos para el manejo de imágenes

6/25
Recursos

Aportes 8

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Cabe mencionar que las imagenes pueden tener hasta 4 canales: Red, Green, Blue, Alfa, donde Alfa es la trasparencia, este formato se denomina RGBA.

Keras (tf.keras.preprocessing.image_dataset_from_directory) puede trabajar con estos formatos: “grayscale”, “rgb”, “rgba”. Default: “rgb”. Whether the images will be converted to have 1, 3, or 4 channels.

https://keras.io/api/preprocessing/image/

Una aplicacion de Redes neuronales convolucionales, en donde el color no importa y es mejor trabajar en escala de grises, es en la deteccion de neumonía en imagenes de radiografias de torax.

Un pequeño código para chequear la predicción de una sola imagen:

image_selected = 10

img = train_images[image_selected ]
img = image.img_to_array(img)
img = np.expand_dims(img, axis = 0)

print(model.predict(img))

print(train_labels[image_selected])

Consejos para el manejo de imágenes

  • Una imagen es una composición de pixeles.

  • Los pixeles poseen un rango número que va del 0 al 255, siendo 0 el más oscuro y 255 es más claro.

  • Las maquinas lo que realmente interpreta es una composición matricial la cual representan las instrucciones de composición de un color.

Recomendaciones al trabajar con imágenes

  • No todas las imágenes manejan escala de grises.

  • La mayoría de las imágenes manejan escala de colores que les añade una complejidad extra que se representa con la composición de 3 canales que , además, añade tiempo de cómputo: del inglés “red”, “green”, “blue” siendo la base de la combinación RGB rojo, verde y azul.

  • Trabaja las imágenes primero y de ser posible (siempre y cuando el color no importe) en escala de grises para así ahorrar tiempo de cómputo.

Si por ejemplo, trabajas en un algoritmo que se encarga de distinguir y clasificar ciertas partes de una carretera, pues en este escenario el color tiene una relevancia para optimizar o no importe en el proceso.

Siempre manejar una escala de dimensiones definidas para tus imágenes. Con esto, se busca que el algoritmo pre-entrenado no entre en conflicto al momento de recibir canales extras y no puede llegar a comprenderlos.

Al manejar imágenes en redes neuronales convolucionales, especialmente en escala de grises, es importante considerar algunos consejos clave:
Pre-procesamiento de imágenes

Normalización de valores

  • Antes de alimentar la red, normaliza los valores de los píxeles dividiendo cada valor por 255 para asegurar que estén en un rango entre 0 y 1

Ajuste de tamaño

  • Asegúrate de que todas las imágenes tengan el mismo tamaño para facilitar el procesamiento y la compatibilidad con la red

Convoluciones

  • Las convoluciones son esenciales en las CNN para detectar características clave en las imágenes. Utiliza filtros para escanear la imagen y extraer patrones relevantes

Experimenta con diferentes tamaños de kernel y número de filtros para capturar características a diferentes escalas y niveles de abstracción

Manejar imágenes en proyectos de aprendizaje profundo y procesamiento de imágenes puede ser un desafío, pero hay varias prácticas y consejos que pueden ayudarte a optimizar el proceso. Aquí tienes algunos: \### 1. \*\*Preprocesamiento de Imágenes\*\* \- \*\*Redimensionamiento\*\*: Asegúrate de que todas las imágenes tengan las mismas dimensiones
Quiero usar CNN para procesar datos obtenidos de un amplificador de EEG. Al final, la salida de un dispositivo de estos es una archivo de texto con una matriz de NxM, donde N es el número de canales y M el número de muestras o instantes de tiempo, y cada valor corresponde al voltaje de ese canal en ese instante de tiempo. Para mi aplicación, tengo varios cortes de una sola grabación de EEG de al rededor de 1seg de duración, conocidas como epochs o trials. Al final, tendría una especie de tensor en donde tengo el número de trials x el número de canales x el número de muestras en un segundo. Mi pregunta es ¿esta estructura es válida para usar este tipo de datos como entrenamiento? y adicionalmente ¿cómo hago para organizar y cargar esos archivos desde el disco duro de mi pc a un notbook en la nube? Tal vez mi máquina no sea lo suficientemente potente para entrenar la red neuronal de manera local