Object Detection Architectures
As arquiteturas de detecção de objetos são os projetos de rede que transformam pixels em caixas e rótulos. Conheça o backbone, o neck, a head e as principais famílias de detectores.
As arquiteturas de deteção de objetos são designs de rede que transformam uma imagem numa lista de caixas delimitadoras, rótulos de classe e pontuações de confiança. Quase todos os detetores modernos são construídos com um backbone, um neck e uma head, e os designs diferem sobretudo na forma como geram caixas candidatas — por propostas de regiões, uma grelha densa ou consultas aprendidas — e na forma como removem previsões duplicadas, com supressão não máxima (NMS) ou correspondência um-a-um. Essas escolhas determinam a precisão e a velocidade de um detetor, bem como a facilidade com que pode ser implementado em hardware de edge. Deteção de objetos designa a tarefa, e a head de deteção é uma parte da arquitetura.
Backbone, neck e head#
O backbone extrai características. É uma rede neural convolucional, como ResNet ou CSPDarknet, ou um transformer de visão, muitas vezes pré-treinado para classificação no ImageNet, e reduz a resolução da imagem por etapas, fazendo com que os seus mapas de características percam resolução e ganhem conteúdo semântico com a profundidade. O neck, normalmente uma rede de pirâmide de características (FPN) com um percurso adicional de baixo para cima, como em PANet, combina mapas profundos e superficiais para que cada escala de saída contenha detalhes finos e contexto. A head prevê caixas e pontuações de classe em cada localização de cada escala, normalmente com strides 8, 16 e 32, para que o mapa mais fino encontre objetos pequenos e o mais grosseiro encontre objetos grandes. As três partes de um detetor real podem ser identificadas na definição do seu modelo:
from ultralytics import YOLO
# Carrega YOLO26n e divide as suas camadas da mesma forma que o YAML do modelo
model = YOLO("yolo26n.pt")
layers = model.model.model
n_backbone = len(model.model.yaml["backbone"])
# O backbone extrai características, o neck combina escalas e a última camada é a head
print("Backbone:", [type(m).__name__ for m in layers[:n_backbone]])
print("Neck:", [type(m).__name__ for m in layers[n_backbone:-1]])
print("Head:", type(layers[-1]).__name__, "at strides", model.model.stride.tolist())A lista do backbone mostra camadas Conv com stride e blocos C3k2, que terminam num pooling SPPF e num bloco de atenção C2PSA; o neck executa camadas Upsample, Concat e C3k2 de cima para baixo e camadas Conv, Concat e C3k2 com stride de volta para cima; e uma head Detect faz previsões com strides 8, 16 e 32.
Famílias de detetores#
- Detetores de duas etapas: Uma rede de propostas de regiões sugere algumas centenas de regiões candidatas, e uma segunda head classifica e refina cada uma, como em Faster R-CNN (2015) e Mask R-CNN (2017).
- Detetores de uma etapa baseados em anchors: SSD (2016), YOLOv2 a YOLOv5 e RetinaNet (2017) preveem deslocamentos em relação a caixas anchor predefinidas em cada célula da grelha, numa única passagem.
- Detetores sem anchors: FCOS (2019) e YOLOv8 (2023) preveem as distâncias de um ponto às quatro extremidades da caixa; CenterNet (2019) prevê os centros das caixas como picos num mapa de calor, com uma largura e altura para cada um; e YOLOX (2021) trouxe a família YOLO de volta às previsões sem anchors, pelo que nenhum deles precisa de ajustar anchors.
- Detectores Transformer no estilo DETR: o DETR (2020) decodifica um conjunto fixo de consultas de objetos aprendidas e as associa individualmente aos objetos anotados, portanto sua saída não precisa de NMS; o Deformable DETR alcançou maior precisão com 10 vezes menos épocas de treinamento, e o RT-DETR tornou o projeto capaz de operar em tempo real em 2023.
- Detetores CNN sem NMS: YOLOv10 (2024) treina uma head um-a-um juntamente com uma head um-para-muitos e executa apenas a head um-a-um durante a inferência, pelo que as suas caixas não precisam de NMS.
- Detectores de vocabulário aberto: Grounding DINO e YOLO-World substituem a camada de classificação fixa por incorporações de texto, para detectar classes especificadas no momento da inferência.
Escolher uma arquitetura#
Benchmarks como a precisão média média (mAP) no COCO classificam a precisão, mas o hardware de destino e os objetos nas imagens geralmente determinam o projeto. YOLO26 é uma CNN de estágio único e sem âncoras com os dois tipos de cabeça: aplica NMS à sua ramificação de um para muitos por padrão, nms=False ativa a ramificação de um para um, e seus arquivos YAML dos modelos incluem variantes P2 e P6 que adicionam uma saída de stride 4 ou stride 64.
- Edge e vídeo em tempo real: Detetores CNN pequenos são bem compilados para runtimes como TensorRT e OpenVINO, e uma head sem NMS elimina uma etapa de pós-processamento cujo custo aumenta com o número de candidatos.
- Objetos pequenos: imagens aéreas e de inspeção precisam de um nível de saída mais detalhado, como stride 4, ou de inferência em blocos, que executa o detector em recortes sobrepostos.
- Catálogos de produtos em constante mudança: Os detetores de vocabulário aberto encontram um novo produto a partir de um comando de texto, sem imagens anotadas desse produto.
- Objetos rodados: Navios, veículos e edifícios em imagens de satélite ajustam-se melhor a caixas orientadas, que acrescentam uma saída de ângulo à head.










