Contents — find the section you need
Tentativas de introduzir Transformers na segmentação semântica já existiam antes do SegFormer, mas muitas dependiam de codificações posicionais e decodificadores complexos. Portanto, enfrentavam dois problemas: a precisão podia cair quando a resolução do teste diferia da resolução do treinamento, e o custo computacional podia aumentar consideravelmente. SegFormer (Xie, Wang, Yu, Anandkumar, Alvarez e Luo, NeurIPS 2021) resolve ambos os problemas com um design notavelmente simples: um codificador hierárquico sem codificação posicional e um decodificador All-MLP que não utiliza convolução. Este artigo examina, passo a passo, por que esse design funciona, com base no artigo original (arXiv:2105.15203).
Este artigo é baseado no artigo original “SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers” (Xie et al., NeurIPS 2021, arXiv:2105.15203).
0. O que você aprenderá
- Os problemas que o SegFormer se propôs a resolver em modelos de segmentação baseados em Transformers anteriores
- Como o codificador hierárquico MiT (Mix Transformer) funciona sem codificação posicional
- Por que um decodificador feito apenas de MLPs, sem nenhuma convolução, ainda pode atingir alta precisão
- mIoU medido, contagem de parâmetros e custo computacional para B0–B5 em Cityscapes e ADE20K
- Como escolher um modelo na prática, incluindo robustez à corrupção de imagem
1. O que é SegFormer?
O SegFormer é um modelo de segmentação semântica que combina um codificador Transformer hierárquico (MiT) sem codificação posicional com um decodificador All-MLP leve que não utiliza convolução. Sua ideia central é redesenhar a divisão de trabalho entre codificador e decodificador: uma vez que o codificador tenha produzido características em múltiplas resoluções, o decodificador pode ser bastante simplificado.
2. Por que esse projeto foi necessário?
Usar um Vision Transformer (ViT) diretamente como codificador para segmentação semântica cria dois problemas. Primeiro, as características produzidas pelo ViT têm apenas uma resolução. Objetos podem ter muitos tamanhos diferentes em uma mesma imagem, e modelos de segmentação convencionais baseados em CNN, como FCN e U-Net, resolvem isso combinando características em múltiplas resoluções. Um ViT que produz apenas uma resolução perde essa capacidade de representação multiescala.
O segundo problema é a dependência da codificação posicional. O ViT divide uma imagem em patches e os envia para um Transformer, mas o próprio Transformer não possui informações sobre a localização de cada patch na imagem. Portanto, uma codificação posicional fixa ou aprendida deve ser adicionada separadamente. Como essa codificação é construída para a resolução de entrada usada durante o treinamento, uma imagem com resolução diferente no momento da inferência requer interpolação da codificação posicional, o que pode reduzir a precisão. A segmentação geralmente requer entradas de resolução mais alta do que a detecção, tornando essa dependência da resolução particularmente problemática.
O SegFormer resolve ambos os problemas em sua origem, usando um codificador hierárquico e eliminando completamente a codificação posicional.
3. Qual é a entrada?
Assim como em outros modelos de segmentação, a entrada é uma imagem RGB x \in \mathbb{R}^{H \times W \times 3}. O SegFormer é avaliado em imagens de alta resolução (1024×2048) para o Cityscapes e em imagens em torno de 512×512 para o ADE20K. Enquanto o ViT realiza a subamostragem com patches grosseiros de 16×16, o codificador do SegFormer começa com patches tão pequenos quanto 4×4, preservando mais detalhes no início da extração de características.
4. O que ele prevê?
A saída é um mapa de segmentação com 1/4 da resolução de entrada, com a classe de cada pixel representada como \hat{y} \in \mathbb{R}^{\frac{H}{4} \times \frac{W}{4} \times N_{cls}} (N_{cls} é o número de classes). Em seguida, ele é retornado à resolução original usando interpolação por vizinho mais próximo ou um método similar. A ideia central é que, se o codificador criar características multiescala suficientemente ricas, o decodificador precisará apenas de uma combinação de camadas lineares simples para integrá-las e convertê-las em uma máscara precisa.
5. Arquitetura básica
O SegFormer consiste em dois blocos principais: um codificador MiT (Mix Transformer) que extrai características em quatro resoluções e um decodificador All-MLP que combina essas características e gera uma máscara de segmentação.
Figura 1 — O codificador MiT produz características em quatro resoluções (1/4, 1/8, 1/16 e 1/32), e o decodificador All-MLP as combina usando apenas camadas lineares para criar uma máscara de segmentação. A única convolução está na Mix-FFN do codificador; o decodificador é literalmente composto inteiramente de camadas lineares.
Como o codificador constrói características em quatro resoluções antecipadamente, o decodificador pode obter uma máscara precisa com processamento quase mínimo: alinhar as características e combiná-las. Essa divisão de trabalho é o principal motivo pelo qual o SegFormer mantém um número total de parâmetros baixo.
6. Detalhes técnicos dos componentes
Fusão de patches sobrepostos — uma hierarquia de quatro estágios
Em vez de dividir a imagem em patches apenas uma vez, como faz o ViT, o codificador MiT reduz gradualmente a resolução em quatro estágios. As resoluções de saída são 1/4, 1/8, 1/16 e 1/32 da entrada, reproduzindo a estrutura hierárquica usada por redes neurais convolucionais (CNNs) como a ResNet.
O método de particionamento de patches também difere dos patches não sobrepostos do ViT: patches adjacentes se sobrepõem quando são mesclados. O primeiro estágio usa tamanho de kernel K=7, passo S=4 e preenchimento P=3; os estágios posteriores usam K=3, S=2, P=1. A sobreposição preserva a continuidade local entre os limites dos patches — a informação compartilhada por patches vizinhos — enquanto o mapa de características é reduzido.
Autoatenção Eficiente
A autoatenção multi-cabeças comum requer computação O(N^2) para uma sequência de comprimento N. Como N se torna muito grande para segmentação de alta resolução, isso representa um gargalo significativo. O SegFormer introduz a Redução de Sequência, que comprime as sequências de Chave e Valor por uma taxa de redução R antes de calcular a atenção.
As sequências K, V são reduzidas de comprimento N para N/R antes de serem usadas. A taxa de redução R para os Estágios 1–4 é definida como [64, 16, 4, 1]: os estágios superficiais têm alta resolução e sequências longas, portanto, são comprimidos agressivamente; os estágios profundos têm resolução mais baixa e sequências mais curtas, portanto, não são comprimidos. Isso reduz o custo computacional de O(N^2) para O(N^2/R) e torna a autoatenção viável mesmo para entradas de alta resolução.
Mix-FFN — como a codificação posicional é eliminada
O SegFormer pode evitar completamente a codificação posicional porque mistura uma convolução 3×3 na rede feed-forward (FFN), criando o Mix-FFN.
A convolução 3×3 utiliza preenchimento com zeros na borda da imagem. Essa borda preenchida vaza indiretamente uma pista sobre "onde estou na imagem" para a convolução, de modo que a informação posicional é incorporada às características simplesmente passando pelo Mix-FFN, sem uma codificação posicional explícita. Como resultado, testar em uma resolução diferente da resolução de treinamento não requer interpolação de uma codificação posicional, o que poderia reduzir a precisão.
Decodificador totalmente em MLP — por que a convolução é desnecessária
O decodificador consiste nas quatro etapas a seguir, usando literalmente apenas camadas lineares (MLPs).
-
Unificar canais: mapear cada característica de estágio F_i para a mesma contagem de canais C com uma camada linear independente.
-
Aumento de resolução e concatenação: aumente a resolução de cada característica para 1/4 da resolução e concatene-as ao longo da dimensão do canal.
- Fusão: mapeie a característica concatenada de 4C dimensões para C dimensões com uma camada linear.
- Previsão: gere uma máscara de segmentação com um canal para cada classe usando uma camada linear final.
O artigo original apoia este projeto com uma análise do campo receptivo efetivo (ERF). Decodificadores baseados em CNN, como o DeepLabv3+, precisam de mecanismos complexos — convoluções dilatadas e pooling multiescala — para obter um campo receptivo amplo e alcançar alta precisão. Em contraste, o codificador MiT adquire naturalmente ERFs locais em estágios superficiais e ERFs não locais que cobrem toda a imagem em estágios profundos por meio de autoatenção, sem mecanismos adicionais. Como o próprio codificador já constrói características contendo informações em escalas locais e globais, o decodificador não precisa de um mecanismo complexo de expansão do campo receptivo. Essa é a razão teórica pela qual uma simples combinação de camadas lineares é suficiente.
Procedimento de treinamento
O artigo original utiliza uma configuração de treinamento simples, sem truques especiais. O codificador MiT é pré-treinado no ImageNet-1K, enquanto o decodificador é treinado a partir de uma inicialização aleatória. O algoritmo AdamW é usado para otimização, com a taxa de aprendizado decaindo a partir de um valor inicial de 0,00006 sob um esquema polinomial (decaimento em lei de potência com coeficiente 1,0). O número de iterações é de 160 mil no ADE20K e no Cityscapes e de 80 mil no COCO-Stuff. O aumento de dados no treinamento se limita a redimensionamento aleatório com uma proporção de 0,5 a 2,0, inversão horizontal aleatória e recorte aleatório (512×512 para ADE20K, 1024×1024 para Cityscapes e 640×640 para B5 no ADE20K). O artigo afirma explicitamente que não utiliza técnicas amplamente adotadas, como OHEM (Online Hard Example Mining), perdas auxiliares ou perdas balanceadas por classe. O objetivo é demonstrar que o codificador MiT e o decodificador All-MLP podem atingir um mIoU alto sem esses recursos adicionais.
7. Comparação de variantes do modelo
O SegFormer está disponível em seis tamanhos, de MiT-B0 a MiT-B5. A seguir, estão os resultados medidos para Cityscapes e ADE20K relatados na Tabela 2 do artigo original.
| Modelo | Parâmetros | FLOPs do Cityscapes | mIoU (MS) do Cityscapes | FLOPs ADE20K | ADE20 mil milhões |
|---|---|---|---|---|---|
| SegFormer-B0 | 3,8 milhões | 125,5G | 76,2 | 8,4G | 37,4 |
| SegFormer-B1 | 13,1 milhões | 243,7G | 78,5 | 15,9G | 42,2 |
| SegFormer-B2 | 24,2 milhões | 717.1G | 81,0 | 62,4G | 46,5 |
| SegFormer-B3 | 44,0 milhões | 962,9G | 81,7 | 79,0G | 49,4 |
| SegFormer-B4 | 64,1 milhões | 1240,6G | 82,3 | 95,7G | 50,3 |
| SegFormer-B5 | 84,7M | 1460,4G | 84,0 | 183,3G | 51,0 |
Fonte: Tabela 2 do artigo original (Xie et al., NeurIPS 2021). O mIoU do Cityscapes foi medido com testes multiescala e de inversão esquerda-direita (MS). A contagem de parâmetros inclui o codificador e o decodificador completos; mesmo para o B5, o decodificador representa apenas cerca de 4% do total. Para referência, o B5 atinge 82,4 mIoU com testes de escala única (SS) e 84,0 com testes MS.
O artigo compara esses resultados com o estado da arte da época e relata que o SegFormer-B4 atinge 50,3% de mIoU no ADE20K com 64,1 milhões de parâmetros, superando o melhor método daquele período em 2,2 pontos percentuais com um modelo quase cinco vezes menor. O B0 mantém um mIoU prático de 76,2 no Cityscapes com apenas 3,8 milhões de parâmetros, e os números comprovam seu design orientado a bordas.
8. Suas dificuldades
A maioria das fraquezas do SegFormer são comuns a modelos baseados em Transformers em geral. Primeiro, modelos maiores (B3 e superiores) têm altos custos de treinamento e inferência. O número de operações de ponto flutuante (FLOPs) no Cityscapes aumenta de 125,5G para o B0 para 1460,4G para o B5, um aumento de mais de dez vezes. Para segmentação de alta resolução, esse crescimento pode dificultar a operação em tempo real.
A dependência de dados de pré-treinamento em larga escala também é importante. O codificador MiT é pré-treinado no ImageNet-1K, portanto, a qualidade e a quantidade de dados de ajuste fino afetam fortemente a transferência para domínios que diferem substancialmente dos dados de pré-treinamento, como imagens médicas ou de satélite.
Objetos muito pequenos e estruturas finas — por exemplo, fios e placas de sinalização — também não são fundamentalmente fáceis para o SegFormer. A Fusão de Patches Sobrepostos reduz a resolução em 4×4 mesmo no primeiro estágio, de modo que estruturas com apenas alguns pixels de largura podem perder informações antes de atingir estágios mais profundos.
Ao mesmo tempo, a avaliação de robustez no Cityscapes-C relatada no artigo original é um ponto forte evidente. Para imagens corrompidas com ruído gaussiano adicionado, o SegFormer-B5 registra uma melhoria relativa máxima de mIoU de 588% em relação ao DeepLabv3+ com uma arquitetura Xception-71; para corrupção semelhante à neve, a melhoria relativa máxima é de 295%. Essas medições demonstram maior tolerância à corrupção de imagens do que os modelos convencionais baseados em CNN. Acredita-se que essa robustez se deva ao fato de a autoatenção ser menos suscetível à influência de ruídos locais.
9. Como escolher um modelo na prática
Para dispositivos de borda e processamento em tempo real, o SegFormer-B0 ou B1 é uma escolha realista. O B0 equilibra precisão e compacidade com 3,8 milhões de parâmetros e 76,2 mIoU no Cityscapes, tornando viável sua implementação em dispositivos embarcados e drones.
Para aplicações como reconhecimento de áreas transitáveis em direção autônoma, onde imagens de alta resolução e precisão consistente são necessárias, o B2 ou B3 geralmente representam um compromisso razoável. O B4 e o B5 possuem a maior precisão, mas seus FLOPs no Cityscapes excedem 1200G, portanto, a inferência em tempo real em uma GPU veicular geralmente requer otimização, como quantização ou conversão para TensorRT.
Para análise de precisão offline de imagens médicas ou de satélite, a precisão tem prioridade sobre o desempenho em tempo real. Os níveis B4 ou B5 são apropriados, com ajustes finos em dados específicos do domínio, conforme necessário.
Para ambientes externos com frequentes mudanças de clima ou iluminação, como robôs agrícolas e câmeras de vigilância externas, a robustez medida no Cityscapes-C é uma vantagem prática. Comparado a modelos baseados em CNN com precisão semelhante, espera-se que o SegFormer perca menos precisão em caso de corrupção de imagem.
Para aprender Detecção de Objetos e Segmentação Semântica desde os fundamentos, consulte “Uma Introdução à Detecção de Objetos e Segmentação Semântica”. Para tendências recentes em segmentação, consulte “Tendências Tecnológicas em Segmentação Semântica”.
10. Resumo em três linhas
-
O SegFormer combina um codificador hierárquico (MiT) que produz características multiescala sem codificação posicional com um decodificador All-MLP que não usa convolução.
-
A convolução 3×3 no Mix-FFN vaza implicitamente informações posicionais, eliminando a necessidade de codificação posicional, enquanto o amplo campo receptivo efetivo do Transformer possibilita um decodificador MLP simples.
-
A família varia de B0 (3,8 milhões de parâmetros, 76,2 mIoU no Cityscapes) a B5 (84,7 milhões, 84,0 mIoU), e os resultados medidos também comprovam sua robustez à corrupção de imagens.
Referências
- SegFormer: Design simples e eficiente para segmentação semântica com Transformers (NeurIPS 2021, arXiv:2105.15203)
- Artigo do SegFormer no arXiv (texto completo)
- Implementação oficial do SegFormer (NVlabs/SegFormer, GitHub)
- Anais do NeurIPS 2021: SegFormer
Como as saídas da classificação e segmentação de imagens diferem?
A classificação prevê um rótulo para toda a imagem.
imagem, enquanto a segmentação prevê um rótulo para cada pixel. Objetos pequenos e limites não devem ser avaliados apenas com precisão em nível de imagem.
Comentários
Entre na sua conta para continuar.
Ainda não há dados.