A Feature Pyramid Network (FPN) revolucionou a detecção de objetos ao enriquecer mapas de características rasos com informação semântica das camadas profundas. Mas os autores do artigo Path Aggregation Network for Instance Segmentation (2018) identificaram uma limitação importante: enquanto a FPN resolve o problema das camadas superficiais, os mapas profundos continuam carentes de informação espacial. A PANet (Path Aggregation Network) resolve essa lacuna com uma ideia elegante: um caminho bottom-up adicional que encurta drasticamente a distância entre features de baixo e alto nível.

O problema que a FPN não resolveu
Em uma CNN tradicional, as camadas mais profundas produzem mapas com alta informação semântica (sabem o quê está na imagem), mas com baixa informação espacial (não sabem onde exatamente). As camadas mais rasas têm o perfil oposto: muita precisão espacial, pouca compreensão semântica.
A FPN resolve isso para as camadas rasas: ela injeta semântica das camadas profundas nas superficiais através de um caminho top-down com conexões laterais. O resultado são features como P₂, P₃, P₄ e P₅ — todas com 256 canais — onde até os mapas mais rasos carregam informação semântica rica.
Mas há um problema: as camadas profundas continuam perdendo informação espacial. O tensor C₂ precisa atravessar mais de 100 camadas de convolução para chegar a P₅. Nesse percurso longo, os detalhes espaciais se degradam — e a FPN não faz nada para remediar isso.
A solução da PANet: caminho bottom-up
Os autores da PANet propuseram adicionar uma pirâmide de features invertida sobre a FPN existente. Em vez de ir de cima para baixo, esse novo caminho vai de baixo para cima (bottom-up), transportando informação espacial das camadas rasas para as profundas.

O mecanismo é engenhoso: o tensor N₂ (que é essencialmente igual a P₂) é submetido a uma convolução 3×3 com stride 2 para reduzir sua dimensão espacial pela metade. Em seguida, esse tensor reduzido é combinado com P₃ via soma elemento a elemento. O resultado passa por outra convolução 3×3 com ReLU, gerando N₃. O processo se repete até chegar a N₅.
A mágica está no atalho criado: enquanto na FPN pura o tensor C₂ percorre 100+ camadas até P₅, na PANet ele atravessa apenas cerca de 10 camadas pelo caminho bottom-up até N₅. A informação espacial é muito melhor preservada.

Implementação em PyTorch
O artigo original de Muhammad Ardi inclui uma implementação completa from scratch que vale a pena estudar. A arquitetura é composta por três módulos:
1. Backbone CNN
Uma CNN simples com 5 blocos convolucionais que retorna os mapas C₂, C₃, C₄ e C₅. Cada bloco reduz a resolução espacial pela metade (via MaxPooling com stride 2) enquanto dobra o número de canais. Para uma entrada 3×224×224, os tensores de saída têm dimensões:
- C₂: 256 canais, 56×56
- C₃: 512 canais, 28×28
- C₄: 1024 canais, 14×14
- C₅: 2048 canais, 7×7
2. FPN (top-down pathway)
A FPN aplica convoluções laterais 1×1 para unificar todos os tensores C em 256 canais e, em seguida, combina-os via upsampling (vizinho mais próximo, fator 2×) e soma elemento a elemento. O resultado são os tensores P₂ a P₅, todos com 256 canais, prontos para alimentar a PANet.
3. PANet (bottom-up pathway)
Este é o coração da arquitetura. O módulo recebe P₂–P₅ e produz N₂–N₅:
- N₂ = P₂ (sem processamento — é o ponto de partida)
- Cada Nᵢ seguinte é gerado por: downsample(Nᵢ₋₁) + Pᵢ → Conv3×3 + ReLU → Nᵢ
- Todas as convoluções mantêm 256 canais
- Stride 2 no downsampling reduz a resolução espacial pela metade a cada passo
O resultado final são features N₂ a N₅ com as mesmas dimensões espaciais que P₂ a P₅, mas agora todas as camadas — rasas e profundas — possuem tanto informação semântica quanto espacial de alta qualidade.
Por que isso importa
A PANet se tornou um componente fundamental em arquiteturas modernas de detecção de objetos. O YOLOv4, por exemplo, adotou uma variante chamada PAN (sem o pooling adaptativo) em seu neck. Modelos como EfficientDet e Mask R-CNN também se beneficiam de caminhos de features bidirecionais.
O insight central — de que encurtar o caminho entre features de diferentes níveis preserva informação — é um princípio que transcende a visão computacional. Ele ecoa as skip-connections do ResNet e antecipa conceitos que apareceriam depois em transformers de visão.
O artigo completo — com todos os codeblocks, outputs de tensor e a classe BackboneNeck que une CNN + FPN + PANet em um único forward pass — está disponível no Towards Data Science. O código também está no GitHub do autor.
Descubra mais sobre noticiAI
Assine para receber nossas notícias mais recentes por e-mail.



