RoI Align

Region of Interest Align

O RoI Align é uma operação avançada de pooling que resolve o desalinhamento espacial em detecção de objetos e segmentação, sendo fundamental para modelos como o Mask R-CNN.

O Problema que o RoI Align Resolve

Antes do RoI Align, a arquitetura padrão (como no Faster R-CNN) utilizava o RoI Pooling. O problema crítico do RoI Pooling era a quantização (arredondamento).

Quando uma rede propõe uma região de interesse (ex: uma caixa com coordenadas flutuantes, como x = 10.4, y = 20.8), o RoI Pooling faz o seguinte:

  1. Arredonda essas coordenadas para se alinharem à grade de pixels do feature map (ex: x = 10, y = 21).
  2. Ao dividir essa região em bins (ex: 7x7), arredonda novamente para forçar o encaixe na grade inteira.

⚠️ Esse duplo arredondamento gera um desalinhamento espacial severo. Para classificação funciona, mas para segmentação de instâncias, onde a precisão deve ser ao nível do pixel para gerar máscaras, esse erro destrói as bordas dos objetos.

Como o RoI Align Funciona?

O RoI Align elimina completamente a quantização.

  1. Coordenadas Flutuantes: Mantém os valores contínuos da região de interesse.
  2. Divisão Exata: Divide a região em bins mantendo o tamanho fracionado exato.
  3. Interpolação Bilinear: Para cada bin, o RoI Align amosta 4 pontos regulares. Como não caem num “pixel” inteiro, ele utiliza interpolação bilinear (calcula o valor exato baseado nos 4 pixels vizinhos mais próximos no feature map contínuo).
  4. Agregação: Aplica max/average pooling nos valores interpolados.

Resumo em Entrevistas

“O RoI Align é uma técnica de extração de features que usa interpolação bilinear em vez de arredondamentos para mapear regiões propostas para um feature map fixo. Evita a perda de alinhamento espacial do RoI Pooling, sendo crucial para tarefas de pixel exato como a segmentação no Mask R-CNN.”


Relacionadas: Mask R-CNN · object-detection · faster-r-cnn

Construído com Eleventy · busca por Lunr.js