- Redes Convolucionales (CNN) para Visión por Computadora
Redes Convolucionales (CNN) para Visión por Computadora
Las redes convolucionales (CNN o ConvNets) son la columna vertebral del aprendizaje profundo aplicado a imágenes. A diferencia de las redes totalmente conectadas, las CNN preservan la estructura espacial de los píxeles y aprenden patrones jerárquicos: bordes, texturas, formas y objetos completos.
1. Capas convolucionales y kernels
La capa convolucional aplica un filtro (kernel) deslizante sobre la imagen de entrada. Cada kernel detecta una característica específica: bordes verticales, horizontales, texturas. La operación es un producto punto entre el kernel y una pequeña región de entrada.
- Kernel (filtro): matriz pequeña de pesos aprendibles (ej. 3×3, 5×5). Se desplaza por la imagen con un paso (stride).
- Mapa de características (feature map): resultado de aplicar un kernel a toda la entrada. Cada mapa resalta la presencia de una característica.
- Profundidad: se usan varios kernels (ej. 32, 64) para capturar múltiples características en paralelo.
2. Pooling (submuestreo)
El pooling reduce la dimensionalidad espacial de los mapas de características, manteniendo la información más relevante. Esto disminuye el número de parámetros y controla el sobreajuste.
- Max pooling: toma el valor máximo en una ventana (ej. 2×2). Es el más común.
- Average pooling: promedia los valores de la ventana.
- Global average pooling: reduce cada mapa a un solo valor, usado antes de la capa final.
3. Arquitecturas clásicas
Varias arquitecturas han marcado hitos en la visión por computadora. Aquí las dos más fundacionales:
| Arquitectura | Año | Innovación clave |
|---|---|---|
| LeNet-5 | 1998 | CNN para dígitos manuscritos. Capas: Conv -> Pool -> Conv -> Pool -> FC. |
| AlexNet | 2012 | Revolucionó ImageNet. Uso de ReLU, dropout, GPU y data augmentation. |
LeNet-5 sentó las bases: convolución, pooling, y capas totalmente conectadas. AlexNet demostró la escalabilidad de las CNN con grandes conjuntos de datos y hardware paralelo.
4. Aplicación práctica: diagnóstico por imágenes médicas
Las CNN se aplican con éxito a la detección de tumores en radiografías, tomografías y resonancias. Un flujo típico:
- Preprocesamiento: normalización, ecualización del histograma, y redimensionamiento.
- Arquitectura: CNN con capas convolucionales seguidas de dropout y una capa final con sigmoide (binario) o softmax (multiclase).
- Métrica: sensibilidad (recall) y especificidad son críticas en diagnóstico.
Ejemplo de un bloque convolucional simple en PyTorch:
import torch.nn as nn
model = nn.Sequential(
nn.Conv2d(in_channels=1, out_channels=32, kernel_size=3),
nn.ReLU(),
nn.MaxPool2d(2),
nn.Flatten(),
nn.Linear(32 * 13 * 13, 128),
nn.ReLU(),
nn.Linear(128, 2) # dos clases: tumor / sano
)
5. Data augmentation (aumento de datos)
Para evitar el sobreajuste en datos médicos (a menudo escasos), se generan variaciones artificiales de las imágenes de entrenamiento:
- Rotaciones, desplazamientos, zoom, volteo horizontal.
- Cambios de brillo, contraste, ruido gaussiano.
- Uso de bibliotecas como
torchvision.transformsoimgaug.
6. Transfer learning (aprendizaje por transferencia)
En lugar de entrenar desde cero, se parte de una CNN preentrenada en ImageNet (o en un conjunto médico grande). Se reemplaza la última capa y se ajustan (fine-tune) los pesos.
- Ventajas: requiere menos datos y tiempo de entrenamiento; mejor generalización.
- Estrategias: congelar capas tempranas (bordes universales) y solo entrenar las últimas capas.
7. Mapas de características: visualización
Las CNN no son cajas negras: podemos visualizar los mapas de activación de cada capa para entender qué aprenden.
# Ejemplo hipotético de extracción de mapas
activations = model.features(input_image)
print(activations.shape) # (batch, canales, alto, ancho)
Los primeros mapas detectan bordes y colores, los intermedios texturas y partes de objetos, y los últimos representan conceptos semánticos.
Resumen clave: Las CNN extraen características visuales mediante convoluciones y pooling, apiladas en arquitecturas profundas. Su aplicación al diagnóstico médico, potenciada con data augmentation y transfer learning, permite detectar tumores y anomalías con precisión creciente. La conexión con RNNs abre la puerta a sistemas que integran visión y secuencias (ej. reportes radiológicos generados automáticamente).
No hay comentarios por ahora.
Compartir este contenido
Compartir enlace
Compartir en redes sociales
Compartir por correo electrónico
Please iniciar sesión para compartir esto Artículo por correo electrónico.