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:
- Arredonda essas coordenadas para se alinharem à grade de pixels do feature map (ex:
x = 10, y = 21). - 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.
- Coordenadas Flutuantes: Mantém os valores contínuos da região de interesse.
- Divisão Exata: Divide a região em bins mantendo o tamanho fracionado exato.
- 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).
- 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