Faster R-CNN
O Faster R-CNN (Ren et al., 2015) consolidou a era moderna da detecção de objetos, evoluindo diretamente do fast-r-cnn para integrar todas as etapas do processo em uma única e unificada rede fim-a-fim (end-to-end).
O Contexto Evolutivo
Historicamente, o pipeline evoluiu tentando eliminar gargalos de performance computacional:
- R-CNN: Passava recortes da imagem um por um pela rede neural. (Inviável e lento).
- Fast R-CNN (e spp-net): Passava a imagem uma única vez pela rede, reaproveitando o mapa de features gerado usando roi-pooling. Resolveu o gargalo da rede, mas expôs um novo problema: a geração das Region Proposals (algoritmo Selective Search, rodando na CPU) tornou-se o gargalo, levando segundos por imagem.
O Trunfo: Region Proposal Network (RPN)
O salto de genialidade do Faster R-CNN foi jogar fora o Selective Search e substituí-lo por uma Region Proposal Network (RPN) totalmente convolucional.
A RPN é uma rede minúscula que desliza (sliding window) uma janela de sobre o mapa de features convolucional gerado pela espinha dorsal (backbone). Cada janela é codificada em um vetor curto (-d no backbone ZF, -d no VGG-16) que alimenta duas camadas irmãs. Para cada posição, a rede usa o conceito de Anchor Boxes (caixas âncora pré-definidas em várias escalas e proporções) para prever:
- Objectness Score: Um número indicando a probabilidade de haver qualquer objeto ali (fundo vs. objeto).
- Bounding Box Regression: Ajustes precisos (deltas) em para enquadrar perfeitamente a âncora ao redor da massa do objeto.
Anchor Boxes e Invariância à Translação
As âncoras são caixas de referência centradas em cada posição da janela deslizante. O paper usa 3 escalas (áreas de , e pixels) e 3 proporções (, , ), totalizando âncoras por posição — cerca de âncoras por imagem. Assim, a camada de classificação tem saídas (objeto/fundo por âncora) e a de regressão, (os deltas por âncora).
O desenho é invariante à translação: se o objeto se move na imagem, a mesma função prevê a proposta na nova posição. Isso contrasta com métodos anteriores (MultiBox), cujas âncoras fixas por k-means exigiam uma camada de saída com ordem de magnitude mais parâmetros (M vs. M com VGG-16) — e mais risco de overfitting em datasets pequenos como o PASCAL VOC.
⚠️ Armadilha prática: âncoras que cruzam a borda da imagem devem ser ignoradas no treinamento (não contribuem para a perda). Sem isso, seus termos de erro grandes e incorrigíveis impedem a convergência. No teste, as caixas que cruzam a borda são simplesmente cortadas (clipped) para os limites da imagem.
Rotulagem das Âncoras
Durante o treino, cada âncora recebe um rótulo binário:
- Positiva: a âncora com maior IoU com uma caixa ground-truth, ou qualquer âncora com IoU com alguma caixa real.
- Negativa: âncora não-positiva com IoU para todas as caixas reais.
- Ignorada: tudo que fica no meio do caminho não contribui para a perda.
Como as negativas dominam, o mini-batch amostra âncoras por imagem mantendo proporção de até entre positivas e negativas.
A função de perda (Loss Function) da RPN também é do tipo multi-task, e otimiza essas duas saídas simultaneamente:
Eq. 1: Função de Perda da Region Proposal Network (RPN).
Onde:
- : índice da âncora sendo avaliada no lote.
- : probabilidade predita de a âncora ser um objeto.
- : ground truth binário ( se a âncora for objeto, se for fundo). Uma âncora é considerada objeto se tiver um IoU alto.
- : vetor com os 4 deltas preditos do bounding box.
- : vetor de ground truth contendo os deltas perfeitos da caixa.
- : função de perda de classificação (geralmente log loss binária).
- : função de perda de regressão espacial (Smooth L1).
- : termos de normalização.
- : hiperparâmetro de balanceamento.
- O termo garante que a regressão só seja calculada e penalizada se a âncora for de fato um objeto ().
A Unificação Fim-a-Fim
O pulo do gato é que a RPN compartilha o mesmo mapa de features convolucionais da rede de detecção final. Ou seja, gerar as propostas de região tornou-se um processo praticamente sem custo (leva apenas milissegundos).
As propostas geradas pela RPN passam por Non-Maximum Suppression (NMS, com IoU fixo em ) para eliminar redundâncias, e apenas as propostas mais bem ranqueadas pelo score de objectness seguem adiante. Elas são então enviadas para uma camada de roi-pooling, que extrai vetores fixos para passar pelas camadas finais, onde a rede classifica (é um cachorro ou um carro?) e faz o refinamento final da bounding box.
Treinamento Alternado em 4 Passos
Treinar RPN e Fast R-CNN juntas de uma vez não converge trivialmente, pois o detector depende de propostas fixas. A solução pragmática do paper é a alternating optimization:
- Treina a RPN sozinha (inicializada com pesos pré-treinados na ImageNet).
- Treina o Fast R-CNN separadamente, usando as propostas da RPN do passo 1 — as duas redes ainda não compartilham convoluções.
- Reinicializa a RPN com os pesos do detector, congela as convoluções compartilhadas e ajusta só as camadas exclusivas da RPN. Agora as redes compartilham features.
- Ajusta só as camadas fully-connected do Fast R-CNN, mantendo as convoluções congeladas. Resultado: uma única rede unificada.
Resultados e Lições da Ablação
Com VGG-16, o sistema atinge 5 fps (198ms por imagem, contra 1830ms do pipeline com Selective Search) com de mAP no PASCAL VOC 2007 — e 17 fps com o backbone ZF. Os experimentos de ablação do paper valem tanto quanto os números finais:
- Sem a camada
cls(sem ranking por objectness), o mAP desaba de para com 100 propostas — o score de confiança é o que garante a qualidade do topo do ranking. - Sem a camada
reg(âncoras cruas, sem regressão), o mAP cai para — as âncoras sozinhas não bastam; a regressão é o que refina as posições. - Two-stage vence one-stage: emular o estilo OverFeat (janelas densas em um único estágio) derruba o mAP em pontos, justificando a cascata proposta → detecção.
Referências e ferramentas
- Ren, S., He, K., Girshick, R., Sun, J. “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks” (2015). arXiv:1506.01497 — paper original.
- github.com/ShaoqingRen/faster_rcnn — implementação oficial (Caffe).
Relacionadas: fast-r-cnn · spp-net · roi-pooling · ablation-study · evolucao-mask-rcnn