Feature Maps
Explora cómo los mapas de características actúan como los ojos de las CNN. Aprende cómo Ultralytics YOLO26 utiliza estas representaciones internas para detectar patrones e impulsar la visión artificial.
Un mapa de características es el resultado fundamental producido cuando un convolutional filter procesa una imagen de entrada o una capa anterior dentro de una red neuronal. En el contexto de computer vision (CV), estos mapas sirven como la representación interna de los datos, resaltando patrones específicos como bordes, texturas o formas geométricas complejas que el modelo ha aprendido a reconocer. Esencialmente, los mapas de características actúan como los "ojos" de una Convolutional Neural Network (CNN), transformando los valores de píxeles en bruto en abstracciones significativas que facilitan tareas como la object detection y la clasificación.
El mecanismo detrás de los mapas de características#
La creación de un mapa de características está impulsada por la operación matemática conocida como convolution. Durante este proceso, una pequeña matriz de parámetros aprendibles, llamada kernel o filtro, se desliza a través de los datos de entrada. En cada posición, el kernel realiza una multiplicación y una suma elemento por elemento, lo que da como resultado un solo valor en la cuadrícula de salida.
- Activación de patrones: Cada filtro está entrenado para buscar una característica específica. Cuando el filtro encuentra esa característica en la entrada, el valor resultante en el mapa de características es alto, lo que indica una activación fuerte.
- Jerarquía espacial: En las arquitecturas de deep learning (DL), los mapas de características se organizan jerárquicamente. Las capas iniciales producen mapas que detectują detalles de bajo nivel como líneas y curvas de edge detection. Las capas más profundas combinan estos mapas simples para formar representaciones de alto nivel de objetos complejos, como rostros o vehículos.
- Cambios de dimensionalidad: A medida que los datos avanzan a través de la red, operaciones como las pooling layers suelen reducir las dimensiones espaciales (altura y anchura) de los mapas de características mientras aumentan la profundidad (número de canales). Este proceso, a menudo llamado dimensionality reduction, ayuda a que el modelo se centre en la presencia de características en lugar de en su ubicación exacta de píxeles.
Aplicaciones en el mundo real#
Los mapas de características son la sala de máquinas de las aplicaciones modernas de IA, permitiendo a los sistemas interpretar datos visuales con una comprensión similar a la humana.
- Diagnóstico médico: En el medical image analysis, los modelos utilizan mapas de características para procesar radiografías o resonancias magnéticas. Los mapas iniciales pueden resaltar los contornos de los huesos, mientras que los mapas más profundos identifican anomalías como tumores o fracturas, ayudando a los médicos en escenarios de AI in healthcare.
- Navegación autónoma: Los vehículos autónomos dependen en gran medida de los mapas de características generados por sensores visuales. Estos mapas permiten que el ordenador de abordo del vehículo distinga entre carriles, peatones y señales de tráfico en tiempo real, lo cual es fundamental para que los autonomous vehicles operen de forma segura.
Trabajar con mapas de características en Python#
Aunque los mapas de características son estructuras internas, comprender sus dimensiones es crucial al diseñar arquitecturas. El siguiente ejemplo de PyTorch demuestra cómo una sola capa convolucional transforma una imagen de entrada en un mapa de características.
import torch
import torch.nn as nn
# Define a convolution layer: 1 input channel, 1 output filter, 3x3 kernel
conv_layer = nn.Conv2d(in_channels=1, out_channels=1, kernel_size=3, bias=False)
# Create a random dummy image (Batch Size=1, Channels=1, Height=5, Width=5)
input_image = torch.randn(1, 1, 5, 5)
# Pass the image through the layer to generate the feature map
feature_map = conv_layer(input_image)
print(f"Input shape: {input_image.shape}")
# The output shape will be smaller (3x3) due to the kernel size and no padding
print(f"Feature Map shape: {feature_map.shape}")Distinguir conceptos relacionados#
Es útil distinguir los mapas de características de términos similares para evitar confusiones durante el model training:
- Mapa de características frente a filtro: Un filtro (o kernel) es la herramienta utilizada para escanear la imagen; contiene los model weights. El mapa de características es el resultado de ese escaneo. Puedes pensar en el filtro como la "lente" y en el mapa de características como la "imagen" capturada a través de esa lente.
- Mapa de características frente a embedding: Aunque ambos representan datos, los mapas de características suelen conservar estructuras espaciales (altura y anchura) adecuadas para la semantic segmentation. En contraste, los embeddings suelen ser vectores unidimensionales aplanados que capturan el significado semántico pero descartan la disposición espacial, y se utilizan a menudo en tareas de similarity search.
- Mapa de características frente a activación: Una activation function (como ReLU) se aplica a los valores dentro de un mapa de características para introducir no linealidad. El mapa existe tanto antes como después de esta operación matemática.
Relevancia para los modelos de Ultralytics#
En arquitecturas avanzadas como YOLO26, los mapas de características desempeñan un papel fundamental en el "backbone" y la "head" del modelo. El backbone extrae características a diferentes escalas (pirámide de características), asegurando que el modelo pueda detectar objetos tanto pequeños como grandes de manera efectiva. Los usuarios que aprovechan la Ultralytics Platform para el entrenamiento pueden visualizar cómo funcionan estos modelos, observando indirectamente la eficacia de los mapas de características subyacentes a través de métricas como la accuracy y el recall. Para optimizar estos mapas implica un entrenamiento exhaustivo en conjuntos de datos anotados, utilizando a menudo técnicas como feature extraction para transferir conocimientos de modelos preentrenados a nuevas tareas.






