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

Imágen de perfil

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


Python

Publicado el 14 de Diciembre del 2023 por Hilario (124 códigos)
191 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
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 14 de Diciembre del 2023gráfica de visualizaciones de la versión: V-0
192 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 (1)

14 de Diciembre del 2023
estrellaestrellaestrellaestrellaestrella
Hello all dear buyers Nice to see you here !!!

* I am always have available ccv & ccv fullz info for business . I also find bin age and state with infor

* I would like to recommend some other products besides ccv i have DL front and back passport real 100% no copy can proof if you want . office company good invoice , leads , aws smtp rackspace , mail password live check domain …. facebook dating account , rdp , shell cpanel , info ssn dob good credit scored i look up ssn dob with age military & all states in us.

* I sell dumps track 1/2 without pin and with pin United States America , United Kingdom … Account bank login with email access & balance .

* I am looking for those who are interested buy , just contact me when you really believe and please dont waste time with us if you ask me for test info first , i accept payment through Bitcoin - Paypal (friend as family method only) Perfecmoney & cash app … You will get replace if the information I sent you is not displayed .

* After payment wait I confirm the transaction some minutes will send information right away .

* I can guarantee you there’s no quality problem with our products . I also can send proof if I can trust you . After I verify you are a good buyer we will make money together .

* If this is what you are looking for then what are you waiting for or contact me and I will sell info the best for you .

* We are making money and you love it too so Your business has been the key ingredients to both success …. We waiting for your cooperation .

* You contact me through icq or WhatsApp and Email ( online 24/7 ) :
* ICQ number : 699813842
* Email : [email protected]
* WhatsApp number : +84706601847
* Telegram : @Mrfrabk

* If there are mistakes please forgive me sincerely thank you for taking the time to read my post •
Responder

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