É possível detectar todos os objetos de uma imagem sem gerar milhares de propostas e sem eliminar caixas duplicadas com Non-Maximum Suppression? O DETR para detecção de objetos mostrou que sim ao formular a tarefa como a predição direta de um conjunto.
Apresentado por Nicolas Carion e colaboradores no artigo End-to-End Object Detection with Transformers, o DETR combina uma rede convolucional, um Transformer encoder-decoder e uma função de custo baseada em matching bipartido. A arquitetura substitui vários componentes projetados manualmente por um treinamento global de ponta a ponta.
Neste artigo, você verá como essa mudança funciona e acompanhará um experimento reproduzível com oito object queries, três objetos reais e o algoritmo húngaro. O notebook executado contém o código, os gráficos e todos os valores apresentados a seguir.
Código do Artigo
Acesse o código-fonte deste artigo gratuitamente.
Informe seu email para acessar o código:
✓ Seu código está pronto!
Abrir no Google Colab →Como o DETR para detecção de objetos reformula o problema?
Detectores anteriores ao DETR normalmente decompõem a tarefa em etapas. Uma rede produz propostas ou predições densas, cada candidato recebe uma classe e uma caixa, e um procedimento posterior remove sobreposições redundantes. Esse desenho alcançou resultados importantes, como mostra a evolução do Faster R-CNN na detecção de objetos, mas exige decisões específicas sobre associação, amostragem e pós-processamento.
O DETR parte de outra representação: a saída desejada é um conjunto sem ordem de pares formados por classe e caixa delimitadora. Se uma imagem possui três objetos, três posições da saída devem representá-los uma única vez. As demais posições recebem a classe especial sem objeto.
Essa formulação altera a pergunta feita durante o treinamento. Em vez de avaliar cada candidato de maneira independente e tratar duplicatas depois, o modelo precisa encontrar uma correspondência global entre o conjunto previsto e o conjunto anotado. É nesse ponto que o matching bipartido se torna parte central da arquitetura.
Quais componentes formam a arquitetura do DETR?
O fluxo original pode ser organizado em quatro blocos principais:
- Backbone convolucional: uma CNN, como a ResNet-50, transforma a imagem em um mapa compacto de características visuais.
- Encoder Transformer: o mapa é projetado para uma dimensão comum, recebe codificação posicional e é convertido em uma sequência de tokens visuais com contexto global.
- Decoder Transformer: um conjunto fixo de object queries consulta a memória produzida pelo encoder.
- Cabeças de predição: cada saída do decoder produz probabilidades de classe e uma caixa no formato centro, largura e altura normalizados.

O DETR converte a detecção em uma predição direta de conjunto. O matching bipartido é aplicado durante o treinamento.
Na configuração de referência do código oficial, o Transformer possui seis camadas no encoder, seis no decoder, dimensão interna de 256 e oito cabeças de atenção. O modelo usa 100 queries no COCO, o que define o número máximo de posições de saída, não o número de objetos que obrigatoriamente aparecerá em cada imagem.
A codificação posicional continua necessária porque a atenção, isoladamente, não preserva a posição de cada token. Na versão didática implementada no notebook, um mapa de 10 × 15 × 64 é convertido em uma sequência de 150 × 64. Canais senoidais distintos registram variações horizontais e verticais, permitindo que o Transformer relacione conteúdo e localização.
Esse princípio é semelhante ao empregado em classificadores visuais baseados em atenção, mas a saída cumpre outra função. Se você quiser revisar a tokenização de imagens antes de avançar, consulte a implementação de Vision Transformer com Python.
O que são object queries?
As object queries são vetores aprendíveis que funcionam como posições de detecção. Cada query atravessa o decoder, realiza atenção sobre as características da imagem e produz uma hipótese composta por classe e caixa.
É importante evitar uma interpretação excessivamente literal. Uma query não precisa representar permanentemente “carros”, “objetos grandes” ou “o canto superior esquerdo”. Sua saída depende da imagem e do estado aprendido pelo modelo. A maneira mais segura de entendê-la é como um slot treinável que participa da construção do conjunto final.
Como existem mais queries do que objetos na maioria das imagens, muitas saídas devem indicar sem objeto. No exemplo do notebook, são usadas oito queries para uma cena com três objetos. Depois do matching, três recebem alvos reais e cinco recebem o alvo de fundo.
Também não é apenas a interação entre queries que elimina o NMS. O resultado depende do sistema completo: predição em conjunto, associação um-para-um e função de perda aplicada aos pares selecionados. Essa supervisão ensina o modelo a reservar uma única predição para cada objeto anotado.
Como funciona o matching húngaro no DETR?
Durante o treinamento, ainda não sabemos qual query deve responder por cada objeto. O DETR resolve esse problema construindo uma matriz de custo entre todas as queries e todos os objetos anotados.
No código oficial, cada par recebe três componentes:
- Custo de classe: favorece queries que atribuem alta probabilidade à classe correta.
- Distância L1: mede a diferença entre as quatro coordenadas das caixas.
- Custo GIoU: avalia a qualidade geométrica da sobreposição, inclusive quando as caixas não se interceptam.
Os pesos de referência são 1 para classe, 5 para L1 e 2 para GIoU. O trecho abaixo reproduz essa composição no notebook:
custo_classe = -probabilidades[:, classes_gt]
custo_l1 = np.abs(
caixas_preditas[:, None, :] - caixas_gt[None, :, :]
).sum(axis=-1)
custo_giou = -giou_pareado(caixas_preditas, caixas_gt)
matriz_custo = custo_classe + 5 * custo_l1 + 2 * custo_giou
queries, objetos = linear_sum_assignment(matriz_custo)
O linear_sum_assignment encontra a combinação global de menor custo. Uma escolha local poderia atribuir duas queries ao mesmo objeto e deixar outra anotação sem responsável; a solução bipartida impõe uma correspondência um-para-um.

Os contornos verdes indicam os três pares escolhidos pelo algoritmo húngaro.
No experimento, a query 0 foi associada ao objeto vermelho com custo -2,605, a query 2 ao objeto azul com custo -2,768, e a query 4 ao objeto verde com custo -2,849. Queries duplicadas tinham classes plausíveis, mas caixas e probabilidades que produziram custos globais maiores.
O que os outputs do notebook demonstram?
A cena sintética foi construída com três retângulos e caixas normalizadas no formato (centro_x, centro_y, largura, altura). As oito queries simuladas produzem hipóteses próximas, duplicadas ou destinadas à classe sem objeto.
Após a associação, a função de perda apresentou os seguintes valores:
Loss de classificação: 0.1934 Loss L1: 0.0163 Loss GIoU: 0.0606 Loss total: 0.3961 Queries associadas: 3 Queries sem objeto: 5
A loss de classificação considera todas as queries, mas reduz o peso relativo da classe sem objeto para 0,1, seguindo a configuração de referência. As perdas L1 e GIoU são calculadas apenas para os pares que receberam objetos reais.

Somente uma query supervisiona cada objeto: query 0 para vermelho, query 2 para azul e query 4 para verde.
Esses números não representam o desempenho de uma rede treinada em um benchmark. Eles verificam, em uma situação controlada, a lógica da associação e da loss. Essa separação é importante: o notebook ensina o mecanismo matemático sem apresentar uma simulação como se fosse inferência de um modelo pré-treinado.
Quais são as limitações do DETR original?
A simplicidade conceitual do DETR veio acompanhada de duas limitações relevantes: convergência lenta e desempenho inferior em objetos pequenos. Na comparação apresentada pelos autores do Deformable DETR, o DETR com ResNet-50 alcançou 42,0 AP após 500 épocas no COCO, enquanto o Faster R-CNN com FPN atingiu o mesmo AP em 109 épocas. Para objetos pequenos, os valores foram 20,5 AP e 26,6 AP, respectivamente.
O Deformable DETR respondeu a esses problemas limitando a atenção a um pequeno conjunto de pontos de amostragem e incorporando características multiescala. Na mesma comparação, a variante alcançou 43,8 AP em 50 épocas.
Trabalhos posteriores preservaram a predição em conjunto e modificaram a inicialização, o refinamento de caixas e o treinamento. O DINO, por exemplo, relatou 49,4 AP em 12 épocas e 51,3 AP em 24 épocas com ResNet-50 e características multiescala. Portanto, o valor histórico do DETR não está apenas em uma configuração específica, mas no paradigma que originou uma família inteira de detectores.
Quando essa arquitetura é especialmente útil?
O DETR é uma referência importante quando você precisa compreender ou desenvolver detectores end-to-end, explorar atenção global e trabalhar com tarefas que se beneficiam de uma representação em conjunto. A arquitetura também oferece uma base natural para extensões de segmentação e para modelos multimodais que associam regiões e linguagem.
Isso não significa que ela substitua automaticamente todos os detectores convolucionais ou modelos de tempo real. Latência, hardware, tamanho dos objetos, disponibilidade de dados e custo de treinamento continuam determinantes. Em aplicações de borda, por exemplo, uma arquitetura mais compacta pode ser a escolha correta mesmo quando um detector baseado em Transformer apresenta maior acurácia em outro cenário.
O ponto central é reconhecer o problema que o DETR resolveu: ele mostrou que a detecção pode ser treinada como uma predição estruturada de conjunto, com associação global e sem NMS no pipeline original de inferência.
Takeaways
- Detecção torna-se predição de conjunto: o DETR produz classes e caixas em paralelo a partir de um número fixo de queries.
- Object queries são slots treináveis: elas participam da construção das hipóteses, mas não possuem uma especialização semântica fixa.
- O matching é global e um-para-um: o algoritmo húngaro escolhe a combinação de menor custo entre queries e objetos anotados.
- A loss combina classe e geometria: classificação, distância L1 e GIoU supervisionam as saídas selecionadas.
- Queries excedentes aprendem sem objeto: no notebook, três queries foram associadas e cinco receberam o alvo de fundo.
- O paradigma continuou evoluindo: Deformable DETR e DINO reduziram a convergência lenta e melhoraram o desempenho, especialmente em escalas menores.









