Inteligência artificial, sem ruído.
Tutoriais4 min

PANet: Como encurtar o caminho entre features rasas e profundas melhora a detecção de objetos

Entenda como a Path Aggregation Network (PANet) resolve a limitação da FPN adicionando um caminho bottom-up que preserva informação espacial nas camadas profundas — com implementação completa em PyTorch.

PANet: Como encurtar o caminho entre features rasas e profundas melhora a detecção de objetos

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.

PANet: ilustração conceitual de rede neural com pirâmides de features
Ilustração conceitual: quando as pirâmides de features vão de baixo para cima. Foto: Hugo Delauney / Unsplash.

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.

Arquitetura completa da PANet com backbone FPN e caminho bottom-up
Arquitetura da PANet: (a) backbone com FPN, (b) caminho bottom-up, (c) pooling adaptativo, (d) predição de bounding boxes, (e) fusão fully-connected para segmentação. Fonte: Liu et al., 2018.

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.

Bloco de construção do caminho bottom-up da PANet com downsampling e soma elemento a elemento
Bloco de construção do caminho bottom-up: convolução 3×3 com stride 2 para downsampling, seguida de soma elemento a elemento com Pᵢ₊₁ e convolução 3×3 + ReLU para produzir Nᵢ₊₁. Fonte: Liu et al., 2018.

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.

R
Sobre o autorRedação Noticiai

Equipe editorial dedicada a explicar inteligência artificial com clareza, independência e contexto.