SSD (Single Shot MultiBox Detector) é um modelo de aprendizado profundo para detecção de objetos que realiza classificação e localização em uma única passagem direta de uma rede neural. Diferente de detectores de dois estágios, que primeiro propõem regiões e depois as classificam, o SSD discretiza o espaço de saída das caixas delimitadoras em um conjunto de caixas padrão com diferentes proporções de aspecto e escalas, pontuando cada uma para cada categoria de objeto. Esse design permite alta precisão enquanto mantém velocidades de processamento em tempo real, tornando-o uma escolha popular para aplicações em direção autônoma, robótica e videovigilância.
O modelo foi introduzido em um artigo de 2016 por Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu e Alexander C. Berg, intitulado "SSD: Single Shot MultiBox Detector". O trabalho foi apresentado na Conferência Europeia de Visão Computacional (ECCV) em Amsterdã, Países Baixos. Os autores eram afiliados à Universidade da Carolina do Norte em Chapel Hill, Zoox, Google e Universidade de Michigan.
Arquitetura
O SSD é construído sobre uma rede base (tipicamente uma VGG-16 truncada ou ResNet) que extrai mapas de características da imagem de entrada. Sobre essa base, camadas convolucionais adicionais são adicionadas, reduzindo progressivamente a resolução espacial enquanto aumentam o número de canais. Essas camadas extras produzem mapas de características em múltiplas escalas, variando de mapas grandes (por exemplo, 38x38 para uma entrada de 300x300) a mapas pequenos (por exemplo, 1x1).
Para cada célula em cada mapa de características, o SSD prevê um conjunto fixo de caixas delimitadoras padrão (também chamadas de priors ou âncoras). Essas caixas padrão têm diferentes proporções de aspecto (por exemplo, 1:1, 1:2, 2:1) e escalas, escolhidas para corresponder à distribuição de tamanhos de objetos nos dados de treinamento. Para cada caixa padrão, a rede produz quatro deslocamentos (centro x, centro y, largura, altura) relativos à caixa padrão, além de um conjunto de pontuações de classe (incluindo uma classe de fundo).
Treinamento
Durante o treinamento, o SSD associa cada caixa de verdade fundamental (ground-truth) às caixas padrão que têm a maior interseção sobre união (IoU), bem como a qualquer caixa padrão com IoU acima de um limiar (tipicamente 0,5). Essa estratégia de correspondência garante que cada caixa de verdade fundamental seja atribuída a pelo menos uma caixa padrão para treinamento positivo. A função de perda é uma soma ponderada de uma perda de localização (perda L1 suave nos deslocamentos das caixas) e uma perda de confiança (entropia cruzada softmax sobre as pontuações de classe).
Uma técnica chave de treinamento é a mineração de exemplos negativos difíceis (hard negative mining), onde a proporção de amostras negativas para positivas é limitada a 3:1. Isso é necessário porque a grande maioria das caixas padrão corresponde ao fundo. O modelo também utiliza aumento de dados, incluindo recortes aleatórios, distorções de cor e inversões horizontais, para melhorar a generalização.
Detecção em múltiplas escalas
Uma das principais inovações do SSD é o uso de mapas de características em múltiplas escalas para detecção. Detectores de disparo único anteriores, como o YOLO (You Only Look Once), usavam apenas o mapa de características final, o que limitava sua capacidade de detectar objetos pequenos. Ao usar mapas de características de diferentes profundidades, o SSD pode detectar objetos de vários tamanhos: camadas rasas com alta resolução capturam objetos pequenos, enquanto camadas profundas com baixa resolução capturam objetos grandes.
Essa abordagem é computacionalmente eficiente porque evita a necessidade de um estágio separado de proposta de região. Todo o pipeline de detecção é uma única rede convolucional de alimentação direta, que pode ser otimizada de ponta a ponta usando retropropagação padrão.
Variantes e impacto
Desde sua introdução, o SSD inspirou várias variantes. O DSSD (Deconvolutional Single Shot Detector) adiciona camadas de deconvolução para melhorar a detecção de objetos pequenos. O FSSD (Feature Fusion Single Shot Multibox Detector) funde características de diferentes camadas antes da predição. Outros trabalhos adaptaram o SSD para domínios específicos, como detecção de faces (por exemplo, SSH - Single Stage Headless) e detecção de texto.
O SSD foi amplamente adotado na indústria e na academia. Ele é implementado em frameworks importantes de aprendizado profundo, como TensorFlow (via API de Detecção de Objetos) e PyTorch (via torchvision). O equilíbrio entre velocidade e precisão do modelo o tornou um padrão de referência para detecção em tempo real, frequentemente comparado com YOLO e Faster R-CNN. Em meados da década de 2020, arquiteturas mais recentes como EfficientDet e YOLOv8 superaram o SSD em velocidade e precisão, mas o SSD continua sendo um marco histórico importante no desenvolvimento da detecção eficiente de objetos.
Limitações
Apesar de seus pontos fortes, o SSD tem limitações conhecidas. A detecção de objetos pequenos permanece desafiadora, especialmente quando os objetos estão densamente agrupados ou têm proporções de aspecto incomuns. O conjunto fixo de caixas padrão pode ser subótimo para formas de objetos incomuns. Além disso, o modelo requer ajuste cuidadoso das escalas e proporções de aspecto das âncoras para cada novo conjunto de dados, o que pode ser demorado. Trabalhos posteriores abordaram algumas dessas questões por meio de redes de pirâmide de características e âncoras aprendíveis.