Backbone
Um backbone é a rede pré-treinada na base de um modelo de visão que transforma píxeis em mapas de características a várias escalas para o neck e o head.
Um backbone é a parte de uma rede neural que transforma a entrada bruta em mapas de características para o restante do modelo. Em visão computacional, o backbone costuma ser uma rede neural convolucional (CNN) ou um Transformer de visão (ViT) pré-treinado em um grande conjunto de dados, como o ImageNet. As camadas posteriores, normalmente um neck e uma head específica para a tarefa, convertem suas características em rótulos de classe, caixas delimitadoras, máscaras ou pontos-chave. Backbone, encoder e extrator de características são usados muitas vezes como sinônimos; encoder é o nome habitual em modelos encoder-decoder, como o U-Net.
Como funciona um backbone#
Um backbone de visão processa uma imagem em etapas. Cada etapa aplica uma pilha de blocos de convolução ou atenção, depois reduz pela metade a resolução espacial e, normalmente, aumenta o número de canais, de modo que uma entrada de 640×640 se transforma em um mapa de 80×80 com stride 8, um mapa de 40×40 com stride 16 e um mapa de 20×20 com stride 32. As primeiras etapas respondem a bordas, cores e texturas. As etapas posteriores respondem a partes e objetos inteiros, pois cada posição de saída cobre um campo receptivo maior da imagem de entrada. Os modelos de detecção e segmentação usam as três últimas etapas e as passam a um neck, como uma rede de pirâmide de características (FPN), que permite ao modelo encontrar objetos pequenos no mapa de alta resolução e objetos grandes no mapa de baixa resolução.
Backbone versus neck versus head#
A maioria das arquiteturas modernas de detecção de objetos divide-se em três partes, e os limites entre elas são importantes ao substituir componentes ou congelar camadas.
- Backbone: Realiza a extração de características, produzindo mapas de características em várias resoluções. Ele contém conhecimento visual geral que pode ser transferido entre tarefas e conjuntos de dados.
- Neck: Combina as escalas do backbone para que cada nível de saída carregue tanto detalhes espaciais finos quanto informações semânticas de alto nível. A FPN adiciona um caminho de cima para baixo, e a PANet acrescenta depois um segundo caminho, de baixo para cima. Modelos de classificação geralmente não têm neck e agrupam a etapa final do backbone em um único vetor.
- Head: Transforma cada mapa de características combinado em saídas da tarefa. Uma head de detecção prevê caixas e pontuações de classe, e as heads de segmentação e pose preveem máscaras e pontos-chave a partir do mesmo tipo de características.
Famílias comuns de backbones#
- ResNet: As conexões residuais permitem que o sinal ignore blocos, possibilitando treinar redes com até 152 camadas, e um conjunto de modelos ResNet venceu a tarefa de classificação do ILSVRC 2015. O ResNet-50 continua sendo um backbone de referência padrão para comparar detectores.
- CSPNet: As redes Cross Stage Partial enviam apenas parte dos canais de cada etapa pelos blocos dessa etapa e, no final, mesclam novamente o restante, reduzindo a computação em 20% com precisão no ImageNet igual ou melhor. O CSPDarknet53, backbone do YOLOv4, é construído com essas etapas.
- ConvNeXt: Uma ResNet modernizada com escolhas de projeto inspiradas nos Transformers, como kernels grandes e menos camadas de normalização, que alcança 87,8% de precisão top-1 no ImageNet e supera o Swin Transformer na detecção COCO.
- ViT e Swin Transformer: Um ViT simples mantém uma única resolução do início ao fim, por isso os modelos de detecção costumam usar o Swin, que calcula a atenção em janelas locais deslocadas e produz uma hierarquia de etapas semelhante à de uma CNN.
- Backbones fundacionais autossupervisionados: O DINOv3 treina um ViT de 7 bilhões de parâmetros com 1,7 bilhão de imagens não rotuladas, e suas características alcançam bons resultados em tarefas densas, como segmentação e estimativa de profundidade, mantendo o backbone congelado.
Backbones pré-treinados e aprendizado por transferência#
Treinar um backbone do zero exige um conjunto de dados grande e um cronograma longo, por isso a maioria dos projetos começa com pesos pré-treinados. Esse tipo de aprendizado por transferência funciona porque bordas, texturas e formas aprendidas em um conjunto de dados são úteis para a maioria dos outros. Com um conjunto de dados pequeno e próximo do domínio de pré-treinamento, congelar o backbone preserva essas características gerais, reduz o sobreajuste e diminui a memória de treinamento, pois as camadas congeladas não armazenam gradientes nem o estado do otimizador. Com um conjunto de dados grande ou de um domínio distante, como imagens de raio X ou térmicas, também fazer o ajuste fino do backbone permite que suas características se adaptem. No YOLO26, o backbone abrange as camadas 0–10 (convoluções com stride, blocos C3k2, um bloco de agrupamento SPPF e um bloco de atenção C2PSA), e o argumento de treinamento freeze=11 congela todas elas, de modo que o treinamento atualiza apenas o neck e a cabeça de detecção, configuração detalhada no guia de ajuste fino.
from ultralytics import YOLO
# Carrega um modelo de detecção YOLO26 pré-treinado no COCO
model = YOLO("yolo26n.pt")
# Ajusta o modelo com um conjunto de dados pequeno e todo o backbone (camadas 0-10) congelado
results = model.train(data="coco8.yaml", epochs=3, imgsz=640, freeze=11)O treinador registra Freezing layer 'model.0.conv.weight' antes da primeira época, além de uma linha correspondente para cada outro parâmetro nas camadas 0–10, que permanecem fixos enquanto o neck e a head aprendem com os novos dados.










