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 la salida fundamental que se produce cuando un filtro convolucional procesa una imagen de entrada o una capa anterior dentro de una red neuronal. En el contexto de la visión artificial (CV), estos mapas sirven como representación interna de los datos y destacan patrones específicos, como bordes, texturas o formas geométricas complejas que el modelo ha aprendido a reconocer. En esencia, los mapas de características actúan como los «ojos» de una red neuronal convolucional (CNN), transformando los valores de píxel sin procesar en abstracciones significativas que facilitan tareas como la detección de objetos 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 convolución. Durante este proceso, una pequeña matriz de parámetros entrenables, denominada núcleo o filtro, se desliza por los datos de entrada. En cada posición, el núcleo realiza una multiplicación elemento a elemento y una suma, lo que da como resultado un único valor en la cuadrícula de salida.
- Activación de patrones: Cada filtro se entrena 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 intensa.
- Jerarquía espacial: En las arquitecturas de aprendizaje profundo (DL), los mapas de características se organizan jerárquicamente. Las primeras capas producen mapas que detectan detalles de bajo nivel, como líneas y curvas de detección de bordes. Las capas más profundas combinan estos mapas simples para formar representaciones de alto nivel de objetos complejos, como caras o vehículos.
- Cambios de dimensionalidad: A medida que los datos avanzan por la red, operaciones como las capas de pooling suelen reducir las dimensiones espaciales (altura y anchura) de los mapas de características, al tiempo que aumentan la profundidad (número de canales). Este proceso, denominado a menudo reducción de dimensionalidad, ayuda al modelo a centrarse en la presencia de las características en lugar de en su ubicación exacta en los píxeles.
Aplicaciones en el mundo real#
Los mapas de características son el núcleo operativo de las aplicaciones modernas de IA y permiten a los sistemas interpretar datos visuales con una comprensión similar a la humana.
- Diagnóstico médico: En el análisis de imágenes médicas, los modelos utilizan mapas de características para procesar radiografías o escáneres de MRI. Los primeros mapas pueden destacar los contornos óseos, mientras que los mapas más profundos identifican anomalías como tumores o fracturas, ayudando a los médicos en escenarios de IA en la atención sanitaria.
- 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 al ordenador integrado del vehículo distinguir entre carriles, peatones y señales de tráfico en tiempo real, algo fundamental para que los vehículos autónomos funcionen 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 muestra cómo una única 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}")Diferenciación de conceptos relacionados#
Es útil distinguir los mapas de características de términos similares para evitar confusiones durante el entrenamiento del modelo:
- Mapa de características frente a filtro: Un filtro (o núcleo) es la herramienta utilizada para explorar la imagen; contiene los pesos del modelo. El mapa de características es el resultado de esa exploración. 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 segmentación semántica. En cambio, los embeddings suelen ser vectores 1D aplanados que capturan el significado semántico, pero descartan la disposición espacial, y se utilizan a menudo en tareas de búsqueda por similitud.
- Mapa de características frente a activación: Una función de activación (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 el «head» del modelo. El backbone extrae características a distintas escalas (pirámide de características), lo que garantiza que el modelo pueda detectar eficazmente objetos pequeños y grandes. Los usuarios que utilizan Ultralytics Platform para entrenar pueden visualizar el rendimiento de estos modelos y observar indirectamente la eficacia de los mapas de características subyacentes mediante métricas como la precisión y el recall. para optimizar estos mapas implica un entrenamiento exhaustivo con conjuntos de datos anotados, utilizando a menudo técnicas como la extracción de características para transferir conocimientos de modelos preentrenados a nuevas tareas.









