Consejos para el manejo de imágenes
Clase 6 de 25 • Curso de Redes Neuronales Convolucionales con Python y Keras
Contenido del curso
Clase 6 de 25 • Curso de Redes Neuronales Convolucionales con Python y Keras
Contenido del curso
Henry Mendiburu Díaz
Diaz Mauricio
Jose Luis Junior Perez Gil
Diaz Mauricio
Henry Mendiburu Díaz
Diaz Mauricio
Rafael Betancur
Diaz Mauricio
Joaquin Romero Flores
Jose Barboza
Raul Perez-Alejo Neyra
David Rodriguez Postigo
Brayan Alexis Lechon Andrango
Joel Alejandro Tovar Ramos
Brian Chuquiruna
Jhon Freddy Tavera Blandon
Ricardo Cruz
Mario Alexander Vargas Celis
Jorge Armando Delgado Muñoz
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.
Gracias
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.
Interesante
Chevere
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])
Gracias
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.
bien bien!
El profesor recomienda, si se entrena con imagenes de 28x28, las imágenes de entrada sean tambien de 28x28. Entonces si tengo una imagende 56x56, asumo que hay que redimensionar antes de hacer la predicción. ¿Cierto?
Hola
Si lo mas conveniente es que la redimensiones.
Hola 👋🏻
Si lo mejor seria que redimensiones tu set de datos porque como se ve en el Curso de Fundamentos de Redes Neuronales con Python y Keras el hacer este cambio facilita el entrenamiento del modelo.
Kaggle tambien ofrece TPU, pero en este curso no son usadas. alguien sabe la razon? tengo entendido que la TPU acelera aun mas los entrenamientos
¿Data augmentation se debe aplicar solamente a las imágenes de entrenamiento? ó ¿Tambien se debe aplicar a las imágenes del test?
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
Ajuste de tamaño
Convoluciones
Experimenta con diferentes tamaños de kernel y número de filtros para capturar características a diferentes escalas y niveles de abstracción
Si es que queremos ver de manera grafica el concepto de canales, aquí un ejemplo con 3 canales.
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