Descubra cómo los mapas de características actúan como los ojos de las CNN. Aprenda cómo Ultralytics utiliza estas representaciones internas para detect y potenciar la visión artificial.
Un mapa de características es el resultado 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 por computadora (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 red neuronal convolucional (CNN), transformando los valores de píxeles sin procesar en abstracciones significativas que facilitan tareas como la detección y clasificación de objetos.
La creación de un mapa de características se basa en la operación matemática conocida como convolución. Durante este proceso, una pequeña matriz de parámetros aprendibles, denominada núcleo o filtro, se desliza a lo largo de los datos de entrada. En cada posición, el núcleo realiza una multiplicación y suma por elementos, lo que da como resultado un único valor en la cuadrícula de salida.
Los mapas de características son la sala de máquinas de las aplicaciones modernas de IA, ya que permiten a los sistemas interpretar datos visuales con una comprensión similar a la humana .
Aunque los mapas de características son estructuras internas, comprender sus dimensiones es fundamental a la hora de diseñar arquitecturas. El siguiente PyTorch muestra 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}")
Es útil distinguir los mapas de características de términos similares para evitar confusiones durante el entrenamiento del modelo:
En arquitecturas avanzadas como YOLO26, los mapas de características desempeñan un papel fundamental en la «columna vertebral» y la «cabeza» del modelo. La columna vertebral extrae características a diferentes escalas (pirámide de características), lo que garantiza que el modelo pueda detect objetos pequeños detect grandes detect forma eficaz. Los usuarios que utilizan la Ultralytics para el entrenamiento pueden visualizar el rendimiento de estos modelos, observando indirectamente la eficacia de los mapas de características subyacentes a través de métricas como la precisión y la recuperación. La optimización de estos mapas implica un entrenamiento exhaustivo con conjuntos de datos anotados, a menudo utilizando técnicas como la extracción de características para transferir el conocimiento de los modelos preentrenados a nuevas tareas.