Código de Python - Capas de Agrupación (Pooling).

Filtrado por el tag: forex-python
<<>>
Imágen de perfil

Capas de Agrupación (Pooling).gráfica de visualizaciones


Python

Publicado el 14 de Diciembre del 2023 por Hilario (144 códigos)
417 visualizaciones desde el 14 de Diciembre del 2023
Aula_68_EP_IA.py
************************************************************************
Proponemos este nuevo ejercicio prosiguiendo con el aprendizaje sobre convoluciones y max pooling, en el tratamiento de una imagen en OpenCV.
Esquemáticamente este ejercicio implementas varios conceptos importantes:

*Carga de la imagen con cv2
*Conversión a escala de grises
*Definición de un kernel de convolución 3x3
*Aplicación de múltiples convoluciones en loops (8 iteraciones)
*Reducción del tamaño de la imagen con max pooling después de cada convolución
*Impresión de los valores de píxeles resultantes
*Visualización de la imagen original vs la imagen procesada
*Adicionalmente, la función que imprime los valores de pixeles con sus índices es muy útil para inspeccionar los cambios paso a paso después de cada iteración.

La salida debe mostrar efectivamente cómo se suaviza y resalta el contraste en la imagen resultado, después de aplicar las capas de convolución y pooling.

En resumen, el código trata de ser sencillo y didáctico, para mostrar el efecto que tiene aplicar una CNN sobre imágenes. En este caso con 8 convoluciones.

El ejercicio permite modificar parametros para observar nuevos valores y matices en la imagen.

El siguiente paso sería, en otro ejercicio, la aplanación de los valores obtenidos para pasar y entregarlos a una red neuronal con capas Completamente Conectadas (Densas):

Esto quiere decir que después de las capas de convolución y agrupación, la red puede incluir capas completamente conectadas. En estas capas, todas las neuronas están conectadas entre sí, para optener el resultado final que pretendemos en el modelo que vayamos a crear.

Eso tendrá cabida, como dije, en un próximo ejercicio.

*****************************************************************************
Figure_1

Requerimientos

Este ejercicio fue realizado en una plataforma LInux, concretamente en: Ubuntu 20.04.6 LTS.
Editado con Sublime text.

El ejercicio se ejecuta bajo consola linux, con este comando:
python3 Aula_68_EP_IA.py


Aunque por defecto podrían estar cargadas en python3 las librerias, para su funcionamiento, son necesarias la importacion de las siguientes:

import cv2
import numpy as np
import matplotlib.pyplot as plt

V-0

Publicado el 14 de Diciembre del 2023gráfica de visualizaciones de la versión: V-0
418 visualizaciones desde el 14 de Diciembre del 2023
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
import cv2
import numpy as np
import matplotlib.pyplot as plt
 
# Cargar la imagen, deberás poner la ruta de enlace exixtente en tu ordenador.
imagen_path = "/home/python/python/flor.jpg"
imagen = cv2.imread(imagen_path)
 
# Convertir la imagen a escala de grises
imagen_gris = cv2.cvtColor(imagen, cv2.COLOR_BGR2GRAY)
 
# Definir el kernel de convolución
kernel = np.ones((3, 3), np.float32) / 9
 
# Función para imprimir los valores de los píxeles con índices
def imprimir_valores_pixels_con_indices(imagen):
    alto, ancho = imagen.shape
    for i in range(alto):
        for j in range(ancho):
            print(f"Pixel ({i}, {j}): {imagen[i, j]}")
 
# Aplicar 8 convoluciones seguidas de max pooling
for i in range(8):
    imagen_gris = cv2.filter2D(imagen_gris, -1, kernel)
    imagen_gris = cv2.resize(imagen_gris, (0, 0), fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR)
 
# Imprimir valores de píxeles con índices después de todas las iteraciones
print("Valores de píxeles con índices después de convoluciones y pooling:")
imprimir_valores_pixels_con_indices(imagen_gris)
 
# Mostrar la imagen original y la salida después de convoluciones y pooling
plt.figure(figsize=(12, 6))
 
plt.subplot(1, 3, 1)
plt.imshow(cv2.cvtColor(imagen, cv2.COLOR_BGR2RGB))
plt.title('Imagen Original')
 
plt.subplot(1, 3, 2)
plt.imshow(imagen_gris, cmap='gray')
plt.title('Salida después de convoluciones y pooling')
 
plt.show()



Comentarios sobre la versión: V-0 (0)


No hay comentarios
 

Comentar la versión: V-0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7467