Stride y padding en convoluciones

Resumen

Las convoluciones son la herramienta que te permite resaltar bordes, texturas y patrones complejos dentro de una imagen, y entender cómo configurarlas con parámetros como stride y padding marca la diferencia entre un procesamiento básico y uno realmente útil para visión por computador. Si trabajas con redes neuronales convolucionales, dominar estos ajustes te da control fino sobre lo que tu modelo aprende.

Antes de entrar en materia, vale la pena recordar el flujo de trabajo: conectarte al entorno, importar librerías y decidir si vas a usar CPU o GPU. En Google Colab tienes esa opción disponible y conviene revisarla desde el inicio [0:11].

¿Cómo se configura un notebook para aplicar convoluciones?

La preparación define la calidad del experimento. Necesitas tres elementos básicos antes de tocar un kernel.

  • Conectarte al entorno de ejecución y verificar si está activa la CPU o la GPU.
  • Importar las librerías necesarias para el procesamiento de imágenes.
  • Cargar las imágenes con las que vas a trabajar, ya sea sintéticas o propias.

En la práctica, puedes trabajar con tres tipos de imágenes: una imagen sintética con gradiente horizontal, la letra P que se viene usando como referencia, y una imagen propia como el logo de Platzi o incluso una radiografía [0:25]. Para cargarla, das clic en archivos, arrastras la imagen, copias su ruta con clic derecho y la pegas en la celda de carga y procesamiento.

¿Qué es una convolución en procesamiento de imágenes? Es una operación que combina una imagen con un kernel mediante una suma de productos punto, aplicada región por región, para resaltar características como bordes o texturas.

¿Qué hace el filtro Sobel sobre distintos tipos de imagen?

El filtro Sobel detecta bordes y su comportamiento cambia según la imagen de entrada. Eso lo convierte en un buen punto de partida para entender qué hace realmente un kernel [1:05].

Cuando aplicas Sobel sobre el gradiente horizontal, el resultado se ve plano porque no hay bordes que detectar: la transición del negro al blanco es continua. En cambio, sobre la letra P los bordes aparecen marcados con claridad. Y en el logo de Platzi, una imagen a color que primero se convierte a escala de grises, el filtro resalta bordes y texturas con definición.

Aquí viene un detalle clave: cuando aplicas una convolución a una imagen a color, la operación se ejecuta sobre los tres canales RGB. Por eso al visualizar el resultado puedes ver un canal por separado, como el canal R (rojo), o un promedio de los tres [1:48].

¿Para qué sirven el stride y el padding en una convolución?

Más allá de la imagen y el kernel, hay dos parámetros que cambian por completo el resultado y el rendimiento de la operación.

¿Qué es el stride y cómo afecta el procesamiento?

El stride es el paso con el que el kernel recorre la imagen. Por defecto, la convolución se aplica píxel a píxel, pero puedes configurarla para avanzar de dos en dos, de tres en tres o más [2:18].

  • Stride de 1: recorrido píxel por píxel, máximo detalle.
  • Stride de 2: salta un píxel entre cada operación, procesamiento más rápido.
  • Stride de 4: deforma la imagen y resalta características distintas a las originales.

Un stride mayor agiliza el procesamiento pero sacrifica resolución. Es un balance que decides según el objetivo del modelo.

¿Qué es el padding y por qué se usa?

El padding resuelve un problema concreto: qué hacer cuando el kernel cae sobre una esquina o un borde de la imagen y no tiene suficientes píxeles vecinos para multiplicar [2:42]. La solución es rellenar los bordes con ceros.

¿Para qué sirve el padding de 1 en una convolución? Se usa para mantener la forma original de la imagen después de aplicar el kernel, evitando que la salida quede más pequeña que la entrada.

Con un stride de 1 y padding de 1 conservas las dimensiones originales. Si subes el stride a 4 y el padding a 2, la imagen se deforma y aparecen patrones que antes no eran visibles.

¿Cómo trabajan los filtros múltiples sobre una misma imagen?

No estás limitado a un solo kernel. Puedes aplicar varios filtros en paralelo y comparar resultados [3:30]. Un caso típico es usar el filtro Sobel vertical y el filtro Sobel horizontal al mismo tiempo, cada uno con su propio kernel y un padding de 1.

Al ejecutar ambos sobre la misma imagen, ocurre algo que parece contraintuitivo: el filtro Sobel vertical detecta bordes horizontales, y el filtro Sobel horizontal detecta bordes verticales. No es un error, es la forma en que el kernel actúa matemáticamente sobre la imagen [4:08]. La orientación del kernel responde a las transiciones perpendiculares a su eje.

¿Por qué un filtro Sobel vertical detecta bordes horizontales? Porque el kernel está diseñado para responder a cambios bruscos de intensidad en la dirección perpendicular a su orientación, lo que matemáticamente captura los bordes contrarios al nombre del filtro.

Con esto ya tienes el panorama de cómo detectar patrones con convoluciones ajustando kernel, stride, padding y múltiples filtros. El siguiente paso es decidir qué hacer con esos patrones, y ahí entran las funciones de activación. ¿Qué imagen vas a usar para tu primer experimento con Sobel?