Sigmoidal
  • Home
  • MentoriaNOVO
  • Cursos
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
  • English
  • Home
  • MentoriaNOVO
  • Cursos
  • Blog
  • Sobre Mim
  • Contato
Sem Resultado
Ver Todos Resultados
Sigmoidal
Sem Resultado
Ver Todos Resultados

DETR para Detecção de Objetos: Como Funciona

Carlos Melo por Carlos Melo
agosto 20, 2026
em Deep Learning, Tutoriais, Visão Computacional
0
12
VIEWS
Publicar no LinkedInCompartilhar no FacebookCompartilhar no Whatsapp

É 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:

  1. Backbone convolucional: uma CNN, como a ResNet-50, transforma a imagem em um mapa compacto de características visuais.
  2. 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.
  3. Decoder Transformer: um conjunto fixo de object queries consulta a memória produzida pelo encoder.
  4. Cabeças de predição: cada saída do decoder produz probabilidades de classe e uma caixa no formato centro, largura e altura normalizados.
Diagrama do fluxo do DETR com backbone CNN, encoder, decoder, cabeças de predição e conjunto de saídas

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.

Matriz de custo entre oito object queries e três objetos, com as associações ótimas destacadas

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.

Cena sintética com três caixas previstas após a associação um-para-um

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.
CompartilharCompartilharEnviar
Post Anterior

Segundo Cérebro com Claude Code e Obsidian

Carlos Melo

Carlos Melo

Engenheiro de Visão Computacional graduado em Ciências Aeronáuticas pela Academia da Força Aérea (AFA) e Mestre em Engenharia Aeroespacial pelo Instituto Tecnológico de Aeronáutica (ITA).

Relacionado Artigos

Carlos Melo ao lado de uma representação de um segundo cérebro conectado ao Claude e ao Obsidian
IA Generativa

Segundo Cérebro com Claude Code e Obsidian

por Carlos Melo
agosto 19, 2026
Carlos Melo diante de um projeto de detecção e segmentação em uma cena urbana
Carreira

7 Projetos de Visão Computacional para Portfólio

por Carlos Melo
agosto 18, 2026
Deep Learning

YOLO para detecção de objetos em imagens térmicas

por Carlos Melo
agosto 17, 2026
Tutoriais

Aplicação do SLAM para criação de mapas 3D: do conceito ao ORB-SLAM3

por Carlos Melo
agosto 13, 2026
Data Science

Data Science para Drones

por Carlos Melo
agosto 13, 2026

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Últimos dias para o Curso de Inteligência Artificial para Drones Últimos dias para o Curso de Inteligência Artificial para Drones Últimos dias para o Curso de Inteligência Artificial para Drones

Mais Populares

  • Cientista de Dados: Salário em 2026 (Júnior, Pleno e Sênior)

    101 compartilhamentos
    Compartilhar 40 Tweet 25
  • Geometria da Formação de Imagens: Matrizes, Transformações e Sistemas de Coordenadas

    446 compartilhamentos
    Compartilhar 178 Tweet 112
  • O Que é Amostragem e Quantização no Processamento de Imagens

    70 compartilhamentos
    Compartilhar 28 Tweet 18
  • Fundamentos da Formação da Imagem

    214 compartilhamentos
    Compartilhar 86 Tweet 54
  • Introdução ao MediaPipe e Pose Estimation

    576 compartilhamentos
    Compartilhar 230 Tweet 144
  • Em Alta
  • Comentários
  • Mais Recente
Como Tratar Dados Ausentes com Pandas

Como Tratar Dados Ausentes com Pandas

agosto 13, 2019
Introdução ao MediaPipe e Pose Estimation

Introdução ao MediaPipe e Pose Estimation

julho 15, 2023
Como usar o DALL-E 2 para gerar imagens a partir de textos

Como usar o DALL-E 2 para gerar imagens a partir de textos

dezembro 25, 2022

ORB-SLAM 3: Tutorial Completo para Mapeamento 3D e Localização em Tempo Real

abril 10, 2023
Como Analisar Ações da Bolsa com Python

Como Analisar Ações da Bolsa com Python

15
Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

Setembro Amarelo: Análise do Suicídio no Brasil, com Data Science

13
Como Aprender Data Science?

Como Aprender Data Science?

9
Qual o Cenário de Data Science no Brasil hoje?

Qual o Cenário de Data Science no Brasil hoje?

8
DETR associando consultas do Transformer a pedestre, ciclista, carro, ônibus e semáforo em uma cena urbana

DETR para Detecção de Objetos: Como Funciona

agosto 20, 2026
Carlos Melo ao lado de uma representação de um segundo cérebro conectado ao Claude e ao Obsidian

Segundo Cérebro com Claude Code e Obsidian

agosto 19, 2026
Carlos Melo diante de um projeto de detecção e segmentação em uma cena urbana

7 Projetos de Visão Computacional para Portfólio

agosto 18, 2026

YOLO para detecção de objetos em imagens térmicas

agosto 17, 2026
Instagram Youtube LinkedIn Twitter
Sigmoidal

O melhor conteúdo técnico de Data Science, com projetos práticos e exemplos do mundo real.

Seguir no Instagram

Categorias

  • Aeroespacial
  • Artigos
  • Blog
  • Carreira
  • Cursos
  • Data Science
  • Deep Learning
  • Destaques
  • Entrevistas
  • IA Generativa
  • Livros
  • Machine Learning
  • Notícias
  • Python
  • Sinais Biomédicos
  • Teoria
  • Tutoriais
  • Visão Computacional
  • Youtube

Navegar por Tags

algebra-linear camera calibration carreira chatgpt cientista de dados cnn computer vision Cursos dados desbalanceados data science data science na prática decision tree deep learning deploy detecção de objetos gradient descent IA generativa inteligência artificial jupyter kaggle keras livros machine learning matplotlib openai opencv pandas portfólio profissão python pytorch random forest reconstrução 3d redes neurais redes neurais convolucionais regressão linear regressão logística scikit-learn sklearn tensorflow tutorial visão computacional vídeo youtube árvore de decisão

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

Sem Resultado
Ver Todos Resultados
  • Home
  • Mentoria
  • Cursos
  • Blog
  • Sobre Mim
  • Contato
  • English

© 2024 Sigmoidal - Aprenda Data Science, Visão Computacional e Python na prática.