Explore como os mapas de características atuam como os olhos das CNNs. Saiba como Ultralytics usa essas representações internas para detect e potencializar a visão computacional.
Um mapa de características é o resultado fundamental produzido quando um filtro convolucional processa uma imagem de entrada ou uma camada anterior dentro de uma rede neural. No contexto da visão computacional (CV), esses mapas servem como a representação interna dos dados, destacando padrões específicos, como bordas, texturas ou formas geométricas complexas que o modelo aprendeu a reconhecer. Essencialmente, os mapas de características atuam como os «olhos» de uma rede neural convolucional (CNN), transformando valores de pixels brutos em abstrações significativas que facilitam tarefas como detecção e classificação de objetos.
A criação de um mapa de características é impulsionada pela operação matemática conhecida como convolução. Durante esse processo, uma pequena matriz de parâmetros aprendíveis, chamada kernel ou filtro, desliza pelos dados de entrada. Em cada posição, o kernel realiza multiplicação e soma por elemento, resultando em um único valor na grelha de saída.
Os mapas de características são a sala de máquinas das aplicações modernas de IA, permitindo que os sistemas interpretem dados visuais com uma compreensão semelhante à humana .
Embora os mapas de características sejam estruturas internas, compreender as suas dimensões é crucial ao projetar arquiteturas. O seguinte PyTorch demonstra como uma única camada convolucional transforma uma imagem de entrada num 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}")
É útil distinguir mapas de características de termos semelhantes para evitar confusão durante o treinamento do modelo:
Em arquiteturas avançadas como o YOLO26, os mapas de características desempenham um papel fundamental na «espinha dorsal» e na «cabeça» do modelo. A espinha dorsal extrai características em diferentes escalas (pirâmide de características), garantindo que o modelo possa detect objetos pequenos detect grandes detect forma eficaz. Os utilizadores que utilizam a Ultralytics para treino podem visualizar o desempenho desses modelos, observando indiretamente a eficácia dos mapas de características subjacentes por meio de métricas como precisão e recuperação. A otimização desses mapas envolve um extenso treino em conjuntos de dados anotados, muitas vezes utilizando técnicas como extração de características para transferir conhecimento de modelos pré-treinados para novas tarefas.