DETR (Transformer para DETecção — DEtection TRansformer)

Visão geral

DETR (DEtection TRansformer) é um detector de objetos baseado em transformador (transformer) introduzido pelo Facebook AI em 2020 que reformula a detecção de objetos (object detection) como um problema de predição direta de conjuntos (direct set prediction). Em vez de gerar muitas caixas candidatas (âncoras (anchors)) e depois eliminar duplicatas com Supressão Não Máxima (Non-Maximum Suppression, NMS), o DETR prediz um conjunto de detecções de tamanho fixo em uma única passagem direta (forward pass) e aprende a torná-las únicas usando correspondência bipartida (bipartite matching) durante o treinamento.

Esse design tornou o DETR notável por ser:

  • Ponta a ponta (end-to-end): uma única rede treinada com uma única perda (sem pós-processamento (post-processing) projetado manualmente).
  • Sem âncoras (anchor-free): sem caixas âncora, sem geração de propostas.
  • Sem Supressão Não Máxima (NMS) (tipicamente): a unicidade é tratada pelo objetivo baseado em correspondência, em vez de supressão pós-hoc.

O DETR também deu origem a uma grande família de modelos posteriores que melhoram a velocidade de treinamento, o desempenho em objetos pequenos e o raciocínio multiescala (multi-scale), mantendo a ideia central de “predição de conjuntos com consultas”.

Se você está familiarizado com detectores clássicos como Faster R-CNN, SSD ou YOLO, o DETR representa uma mudança conceitual: ele trata a detecção de objetos mais como modelagem de sequência/conjunto (sequence/set modeling) com uma Arquitetura Transformer.

Por que o DETR era necessário (motivação)

Detectores tradicionais geralmente seguem um padrão:

  1. Gerar muitas caixas candidatas (âncoras, propostas, predições densas).
  2. Pontuar e refiná-las.
  3. Usar heurísticas como Supressão Não Máxima (NMS) para remover duplicatas.

Isso funciona bem, mas introduz complexidade:

  • O design de âncoras depende das estatísticas do conjunto de dados (tamanhos/proporções).
  • Predições densas produzem muitas caixas duplicadas.
  • A Supressão Não Máxima (NMS) é uma etapa de pós-processamento “quase não diferenciável” e adiciona necessidade de ajuste.

O objetivo do DETR foi simplificar o pipeline fazendo com que o modelo aprenda diretamente o problema de desduplicação.

Ideia central: detecção de objetos como predição de conjuntos

O DETR prediz N slots (slots) de objetos (por exemplo, N = 100) independentemente de quantos objetos existam na imagem. Cada slot produz:

  • Um rótulo de classe (incluindo um rótulo especial “sem objeto” (“no object”) / de fundo)
  • Uma caixa delimitadora (x/y do centro + largura/altura, normalizados em [0,1])

Como as saídas formam um conjunto, a ordem não importa. Mas redes neurais produzem tensores ordenados, então o DETR usa um procedimento de treinamento que torna a saída invariante a permutações (permutation-invariant).

Correspondência bipartida (bipartite matching) (atribuição húngara (Hungarian assignment))

Durante o treinamento, suponha que uma imagem tenha M objetos de verdade-terreno, e o modelo produza N predições (N >= M). O DETR encontra a melhor atribuição um-para-um entre objetos de verdade-terreno e slots preditos usando um algoritmo de correspondência bipartida (comumente o algoritmo húngaro (Hungarian algorithm)).

  • Cada objeto de verdade-terreno é associado a exatamente um slot predito.
  • Predições não associadas são treinadas para se tornarem “sem objeto”.
  • Por ser um-para-um, o modelo é desencorajado a produzir duplicatas.

Este é o mecanismo-chave que em grande parte remove a necessidade de Supressão Não Máxima (NMS): predições duplicadas não são úteis sob correspondência um-para-um.

Componentes do modelo

O DETR tem três partes principais:

  1. Uma rede-base (backbone) de CNN para extrair um mapa de características (feature map)
  2. Um codificador–decodificador do transformador (transformer encoder–decoder)
  3. Um conjunto de consultas de objeto (object queries) aprendidas que conduzem a decodificação

1) Rede-base (extrator de características)

O DETR tipicamente usa uma rede-base padrão de Redes Neurais Convolucionais como ResNet-50/ResNet-101 (frequentemente pré-treinada em ImageNet).

  • Imagem de entrada → mapa de características F com forma aproximadamente (C, H, W)
  • Uma convolução 1×1 frequentemente projeta os canais para a dimensão do transformador d (por exemplo, 256)

Isso mantém o trabalho do transformador focado em raciocínio global, em vez de visão de baixo nível.

2) Codificação posicional

Transformadores são invariantes a permutações, mas a estrutura espacial importa em imagens. O DETR adiciona codificações posicionais 2D (2D positional encodings) ao mapa de características achatado antes de alimentá-lo ao codificador.

Escolha comum no DETR original:

  • Embeddings posicionais fixos senoidais ou aprendidos sobre (H, W).

3) Codificador do transformador

O codificador consome as características de imagem achatadas:

  • Achatar (H, W) em uma sequência de comprimento S = H×W
  • Aplicar autoatenção (self-attention) de múltiplas cabeças (multi-head) + camadas de avanço direto (feed-forward)

O codificador constrói contexto global, permitindo que qualquer localização espacial atenda a qualquer outra. Essa é uma grande diferença em relação a detectores puramente convolucionais.

Tradeoff: autoatenção completa é quadrática no comprimento da sequência (O(S^2)), o que se torna caro para características em alta resolução.

4) Consultas de objeto

O DETR introduz N vetores aprendidos chamados consultas de objeto (por exemplo, 100 consultas). Eles não correspondem a localizações fixas na imagem. Em vez disso, são slots que podem se ligar a objetos por meio de atenção.

Intuição:

  • Cada consulta aprende “como procurar um objeto” e se especializa durante o treinamento.
  • Consultas competem via a perda de correspondência para cobrir objetos distintos.

5) Decodificador do transformador

O decodificador recebe:

  • Memória do codificador (características da imagem)
  • Consultas de objeto

e produz N embeddings decodificados. Cada camada do decodificador inclui:

  • Autoatenção entre consultas (permite que as consultas se coordenem e evitem duplicatas)
  • Atenção cruzada (cross-attention) das consultas para as características de imagem codificadas (permite que cada consulta “observe” regiões relevantes)
  • Camadas de avanço direto

6) Cabeças de predição

Para cada embedding de consulta decodificada, o DETR prediz:

  • Logits de classe (class logits): K + 1 classes (incluindo “sem objeto”)
  • Caixa: (cx, cy, w, h) por meio de um perceptron multicamadas (multi-layer perceptron, MLP) + função sigmoide (sigmoid) para [0,1]

Objetivo de treinamento (perda de conjunto (set loss))

A perda do DETR tem dois estágios conceituais:

  1. Associar predições à verdade-terreno (atribuição um-para-um)
  2. Supervisionar pares associados e fundo para slots não associados

Custo de correspondência

Para cada slot predito i e objeto de verdade-terreno j, define-se um custo como:

  • Custo de classificação (por exemplo, -log p_i(class_j))
  • Custo de distância de caixa (por exemplo, L1 em (cx, cy, w, h))
  • Custo de sobreposição (por exemplo, 1 - GIoU(box_i, box_j))

O algoritmo húngaro encontra a atribuição que minimiza o custo total.

Termos de perda

Uma vez associado:

  • Perda de classificação: entropia cruzada (cross-entropy) sobre K+1 classes
    • Predições não associadas são rotuladas como sem objeto
    • A classe sem objeto frequentemente recebe peso menor para lidar com desbalanceamento
  • Perda de regressão de caixa:
    • Perda L1 (L1 loss) nos parâmetros de caixa normalizados
    • Perda de IoU generalizado (Generalized IoU, GIoU) para incentivar boa sobreposição e gradientes estáveis

Essa “perda de conjunto” é uma das características definidoras do DETR: ela ensina o modelo o que predizer e quantas predições devem corresponder a objetos reais.

Comportamento em inferência (por que a Supressão Não Máxima (NMS) geralmente é desnecessária)

Em tempo de inferência (inference):

  1. Execute o modelo uma vez → N predições.
  2. Descarte predições cuja classe seja sem objeto ou cuja confiança esteja abaixo de um limiar.
  3. As caixas restantes são as detecções.

Como o treinamento impõe atribuições um-para-um, o modelo tende a não produzir muitas caixas duplicadas para o mesmo objeto — então a Supressão Não Máxima (NMS) frequentemente não é necessária.

Dito isso, na prática:

  • Algumas implementações ainda aplicam filtragem leve.
  • Certas variantes no estilo DETR podem opcionalmente usar Supressão Não Máxima (NMS) dependendo do design, mas isso não é fundamental.

Exemplo prático: como é um pipeline de DETR

Aqui vai um esboço simplificado em estilo PyTorch de inferência:

# Pseudocode: DETR-like inference
images = preprocess(batch)                 # (B, 3, H, W)

features = backbone(images)                # (B, C, H', W')
features = proj_1x1(features)              # (B, d, H', W')
pos = positional_encoding(features)        # (B, d, H', W')

memory = transformer_encoder(features, pos)  # (B, S, d), S = H'*W'
queries = learnable_queries.repeat(B, 1, 1)  # (B, N, d)

hs = transformer_decoder(queries, memory, pos)  # (B, N, d)

class_logits = class_head(hs)              # (B, N, K+1)
boxes = sigmoid(box_head(hs))              # (B, N, 4) in [0,1]

probs = softmax(class_logits, dim=-1)
scores, labels = probs[..., :-1].max(dim=-1)   # exclude no-object
keep = scores > 0.5

detections = (boxes[keep], labels[keep], scores[keep])

Em uso real, você também:

  • Converteria (cx, cy, w, h) para (x1, y1, x2, y2)
  • Reescalaria as caixas para as coordenadas de pixel originais
  • Usaria pré-processamento específico do conjunto de dados e mapeamentos de rótulos

Perspectiva teórica: por que a correspondência bipartida importa

Uma dificuldade central em detecção é que não há uma ordenação natural de objetos. O DETR resolve isso ao:

  • Tratar as saídas como um conjunto
  • Usar correspondência para alinhar cada objeto de verdade-terreno com exatamente uma predição
  • Penalizar predições restantes como fundo

Isso se alinha bem a como transformadores lidam com sequências, mas adapta esse mecanismo a saídas não ordenadas. Também torna o objetivo de treinamento mais “estruturado” do que classificação/regressão densa independente em cada localização de âncora.

Pontos fortes do DETR

Design limpo, ponta a ponta

Sem engenharia de âncoras, redes de propostas ou ajuste de Supressão Não Máxima (NMS). Isso torna o DETR conceitualmente elegante e mais fácil de modificar para novas tarefas (por exemplo, segmentação).

Forte raciocínio global

Atenção permite interações de longo alcance — útil para:

  • cenas lotadas (coordenação entre consultas)
  • desambiguação contextual (por exemplo, distinguir objetos similares pelo entorno)

Extensão natural para outras saídas estruturadas

Consultas no estilo DETR e perdas de conjunto se traduzem bem para:

  • segmentação por instância
  • segmentação panóptica
  • predição estruturada do tipo pontos-chave (com adaptações)

Limitações e tradeoffs

Convergência lenta (DETR original)

O DETR original frequentemente exigia cronogramas de treinamento muito mais longos do que detectores convencionais para alcançar bom desempenho. Motivos incluem:

  • Aprender localização baseada em atenção do zero é mais difícil do que começar a partir de âncoras/propostas.
  • A correspondência introduz dinâmicas não triviais no início do treinamento.

Dificuldade com objetos pequenos e multiescala

O DETR original usava um mapa de características de escala única da rede-base (tipicamente um estágio de baixa resolução). Objetos pequenos podem ser difíceis de detectar sem características multiescala.

Custo do codificador do transformador em alta resolução

Autoatenção completa sobre tokens H×W escala mal. Isso motiva variantes de atenção esparsa ou deformável.

Número fixo de consultas

Se uma imagem contiver mais objetos do que N, o DETR pode deixar alguns de fora. Na prática, N=100 é suficiente para conjuntos de dados no estilo COCO, mas para cenas extremamente densas você pode aumentar N ao custo de computação adicional.

Extensões comuns e melhorias na “família DETR”

Um grande corpo de trabalhos posteriores mantém o arcabouço de consultas + predição de conjuntos, mas melhora eficiência e acurácia.

Deformable DETR (grande upgrade prático)

Deformable DETR substitui atenção densa sobre todos os tokens espaciais por atenção deformável (deformable attention), em que cada consulta atende a um pequeno conjunto de pontos de amostragem ao longo de mapas de características multiescala.

Benefícios:

  • Convergência muito mais rápida (frequentemente uma ordem de grandeza menos épocas)
  • Melhor desempenho em objetos pequenos
  • Menor custo de atenção

Esta é uma das variantes de DETR mais usadas na prática.

Conditional DETR

Melhora a atenção cruzada do decodificador ao tornar a atenção condicional ao conteúdo da consulta, de um modo que ajuda na localização espacial.

Efeito:

  • Convergência de treinamento mais rápida
  • Melhor alinhamento entre consultas e regiões espaciais

DAB-DETR (Dynamic Anchor Boxes)

Introduz um prior de caixa mais explícito na representação de consulta (as consultas carregam parâmetros de caixa “tipo âncora” que são refinados).

Efeito:

  • Ajuda na estabilização e na convergência
  • Ainda permanece em grande parte ponta a ponta e baseado em consultas

DN-DETR (treinamento com remoção de ruído (denoising training))

Adiciona um objetivo de remoção de ruído (denoising objective) ao injetar versões ruidosas de caixas/rótulos de verdade-terreno como consultas adicionais de treinamento, ensinando o modelo a reconstruí-las.

Efeito:

  • Acelera significativamente o treinamento
  • Melhora a estabilidade da correspondência no início do treinamento

Variantes de duas etapas / híbridas

Alguns modelos geram melhores propostas iniciais (ou inicializam consultas a partir de características do codificador), mantendo a predição de conjuntos.

Efeito:

  • Melhor revocação e convergência
  • Simplicidade um pouco menos “pura” em comparação ao DETR original

Redes-base mais fortes e receitas modernas de treinamento

Muitos ganhos também vêm de:

  • Redes-base multiescala (por exemplo, pirâmides de características (feature pyramids))
  • Melhores aumentações (augmentations)
  • Perdas melhoradas (por exemplo, variantes de perda focal (focal loss))
  • Estratégias de pré-treinamento (pretraining)

Aplicações práticas

Detectores no estilo DETR são úteis quando você quer:

  • Integração limpa em um pipeline de treinamento ponta a ponta
  • Detecções estáveis e sem duplicatas sem pós-processamento pesado
  • Uma arquitetura flexível que se estende a outras tarefas estruturadas de visão

Áreas comuns de aplicação incluem:

  • Direção autônoma / robótica: objetos em contexto; integração com pilhas de planejamento
  • Análise de vídeo: detecção de pessoas/veículos; raciocínio consistente baseado em consultas pode combinar bem com rastreamento
  • Imagem médica: lesões ou estruturas anatômicas em que engenharia de âncoras é inconveniente
  • Compreensão de documentos: detecção de elementos de layout (tabelas, figuras) em que contexto global ajuda

Em ambientes de produção, Deformable DETR ou outras variantes otimizadas frequentemente são preferidas ao DETR original devido a considerações de velocidade e acurácia.

Notas de implementação e dicas

Escolhendo o número de consultas

  • Comece com N=100 (linha de base comum).
  • Aumente se as cenas forem densas (com algum custo computacional).
  • Se N for pequeno demais, a revocação pode ficar limitada.

Limiarização de confiança

Como não há uma etapa de Supressão Não Máxima (NMS), um limiar de confiança bem escolhido importa. A calibração pode variar por conjunto de dados e receita de treinamento.

Dados e aumentação

O DETR se beneficia de aumentação forte, mas transformações geométricas agressivas demais podem desestabilizar a regressão de caixas se não forem cuidadosamente ajustadas.

Sinais para depuração

Coisas úteis para monitorar:

  • Fração de consultas preditas como “sem objeto”
  • Qualidade da correspondência no início do treinamento (a maioria das caixas de verdade-terreno está sendo associada?)
  • GIoU médio / erro L1 médio em pares associados

Relação com o panorama mais amplo de detecção de objetos

Dentro de Detecção de Objetos, o DETR representa uma mudança de “geração densa de candidatos + filtragem” para “predição direta de conjuntos”. Ele se conecta naturalmente a:

  • Arquitetura Transformer (atenção codificador–decodificador, codificações posicionais)
  • Paradigmas de predição baseados em consultas usados mais tarde em arquiteturas de segmentação e detecção

Na prática, modelos modernos no estilo DETR são uma escolha forte quando você quer um detector flexível e ponta a ponta e está disposto a adotar os tradeoffs de treinamento/custo computacional de transformadores — ou usar descendentes otimizados como Deformable DETR.

Resumo

O DETR é um detector de objetos baseado em transformador que:

  • Prediz um conjunto de tamanho fixo de detecções usando consultas de objeto aprendidas
  • Usa correspondência bipartida para atribuir predições à verdade-terreno durante o treinamento
  • Elimina âncoras e tipicamente remove a necessidade de Supressão Não Máxima (NMS)
  • Oferece um arcabouço limpo, ponta a ponta, com forte raciocínio global

Seus principais pontos fracos (originalmente convergência lenta e suporte limitado a multiescala) foram amplamente endereçados por extensões como Deformable DETR, treinamento com remoção de ruído e designs multiescala — tornando a família DETR um ramo importante e prático dos sistemas modernos de detecção.