Mask R-CNN
O Mask R-CNN (He et al., 2017) é a extensão natural do faster-r-cnn, criado não apenas para detectar objetos (desenhar caixas), mas para realizar Segmentação de Instância (Instance Segmentation) — identificando os pixels exatos que pertencem a cada objeto de forma individualizada.
Como Funciona
A genialidade do Mask R-CNN foi manter o fluxo veloz do Faster R-CNN e adicionar uma pequena rede paralela (branch) encarregada exclusivamente de predizer uma máscara binária (pixel a pixel) para o objeto delimitado pela região proposta.
- Backbone e RPN: Idêntico ao faster-r-cnn. Extrai features da imagem e gera propostas de região (Region Proposals).
- RoI Align: Onde antes se usava roi-pooling (que sofria com erros de quantização severos para alinhamento em nível de pixel), o Mask R-CNN introduziu o RoIAlign. O RoIAlign usa interpolação bilinear espacial para calcular com precisão de sub-pixel o valor exato no mapa de features, mantendo o alinhamento perfeito sem arredondamentos destrutivos.
- Cabeças Paralelas (Heads): A região extraída alimenta dois caminhos independentes:
- Branch Principal: O caminho clássico para classificação e bounding box regression.
- Branch de Máscara: Uma pequena rede totalmente convolucional (FCN) que gera máscaras binárias independentes para cada uma das classes possíveis.
🧮 Fundamentação Matemática (Loss Tripartite)
O treinamento ocorre otimizando simultaneamente três tarefas distintas através de uma função de perda global combinada:
Eq. 1: Função de perda tripartite do Mask R-CNN.
Onde:
- : perda total da rede.
- : perda de classificação da ROI (o que é o objeto).
- : perda de regressão da bounding box (onde estão os limites estritos da caixa).
- : perda média de entropia cruzada binária (BCE) focada especificamente em predizer a máscara correta para a região.
A Matemática da Branch de Máscara
A branch de máscara gera uma saída de dimensão , indicando máscaras binárias de resolução (uma máscara autônoma para cada uma das classes conhecidas).
Ao contrário da segmentação semântica tradicional (onde todas as classes competem pelo mesmo pixel em um Softmax global multinomial), o Mask R-CNN desacopla completamente a classificação da máscara, aplicando Sigmoid isoladamente.
Eq. 2: Entropia cruzada binária (BCE) por pixel isolada para a classe verdadeira.
Onde:
- : a classe real (ground truth) do objeto (identificada na marcação de treino).
- : rótulo real binário do pixel ( se o pixel for do objeto, se for fundo).
- : probabilidade (saída do ativador Sigmoid) de o pixel pertencer ao objeto na máscara da classe .
- : número total de pixels na grade da máscara gerada ().
Apenas a máscara associada à classe verdadeira do objeto () contribui ativamente para a perda , ignorando totalmente as máscaras geradas para as outras classes. Esse desacoplamento evita interferências matemáticas e foi o segredo dos resultados espetaculares de segmentação do modelo.
Relacionadas: faster-r-cnn · roi-pooling · roi-align