ROI Pooling
Region of Interest Pooling
Técnica fundamental da arquitetura de detecção de objetos, popularizada por modelos clássicos como o Fast R-CNN.
O que é e Contexto Prático
ROI Pooling (Region of Interest Pooling) é uma operação crucial em redes neurais. Seu objetivo é extrair mapas de características (feature maps) de tamanho fixo a partir de regiões de interesse (ROIs) que possuem tamanhos variados.
Em detecção de objetos baseada em regiões (Region-Based CNNs), uma imagem passa primeiro por uma rede convolucional (backbone) que gera um mapa de características global. Paralelamente, algoritmos sugerem “caixas” (ROIs) onde objetos podem estar. Como essas ROIs têm proporções e tamanhos diferentes, elas não podem ser diretamente alimentadas a camadas totalmente conectadas (Fully Connected Layers), que exigem entradas de tamanho fixo. O ROI Pooling resolve isso dividindo a ROI projetada em um grid fixo (ex: ) e extraindo o valor máximo (Max Pooling) de cada subdivisão.
🧮 Fundamentação Matemática (Densa)
Seja um mapa de características e uma região de interesse delimitada pelas coordenadas contínuas projetadas no mapa de características a partir da imagem original (com um fator de escala ).
A projeção sofre um primeiro arredondamento (quantização) para obter coordenadas discretas no feature map:
Eq. 1: Projeção das coordenadas contínuas para a malha discreta do feature map.
Onde:
- : coordenadas contínuas da região de interesse na imagem original.
- : fator de escala (stride) entre a imagem original e o feature map.
- : coordenadas quantizadas projetadas no feature map.
- e : operações de arredondamento para baixo (piso) e para cima (teto), respectivamente. O tamanho da ROI quantizada no feature map é e .
O objetivo é obter uma saída de dimensão fixa (ex: ). Para isso, dividimos a ROI em um grid de tamanho fixo. Cada bin (onde e ) abrange uma sub-janela cujas coordenadas limites sofrem um segundo arredondamento:
Eq. 2: Cálculo dos limites verticais e horizontais para cada sub-janela (bin) do ROI.
Onde:
- : dimensões fixas desejadas para a saída.
- : altura e largura da ROI quantizada no feature map.
- : índices da sub-janela na grade de saída.
- : coordenadas dos limites de cada sub-janela no feature map.
A operação de Max Pooling é então aplicada para produzir o valor da saída no canal :
Eq. 3: Operação de Max Pooling aplicada a cada bin do ROI para gerar a saída fixa.
Onde:
- : valor do pixel de saída no canal e posição do grid.
- : valor do pixel no feature map original no canal e coordenadas espaciais .
- : operação matemática que seleciona o valor máximo dentro dos limites da sub-janela.
🎯 Quando usar
- Parte inerente da construção de modelos clássicos two-stage como Fast R-CNN.
- Extração de representações vetoriais de regiões específicas de uma imagem.
⚠️ Trade-offs e Armadilhas: Como visto na matemática acima, as operações de e introduzem erros de quantização (misalignment). A posição real da bounding box e a posição dos pixels agrupados perdem o alinhamento sub-pixel. Para tarefas de alta precisão (ex: segmentação de instâncias), o roi-align substitui esses arredondamentos por amostragem via interpolação bilinear.
Relacionadas: object-detection · fast-r-cnn