Fast R-CNN

O Fast R-CNN é a evolução do r-cnn, criado para resolver o gargalo extremo de lentidão ao processar imagens, introduzindo o compartilhamento de computação convolucional e a técnica de RoI Pooling.

Como o Fast R-CNN resolveu os problemas do R-CNN

No R-CNN original, a rede passava independentemente por ~2.000 regiões propostas, o que era muito redundante e lento. O Fast R-CNN mudou esse paradigma:

  1. Compartilhamento de Features: Em vez de recortar a imagem 2.000 vezes, a imagem inteira é passada pela CNN uma única vez para produzir um único feature map gigante.

  2. Projeção da Proposta: O algoritmo de Selective Search ainda propõe as ~2.000 regiões, mas agora essas coordenadas são projetadas diretamente em cima do feature map já calculado, e não na imagem original.

  3. RoI Pooling: Para cada região no feature map (que tem tamanhos variados), aplica-se a camada de Region of Interest Pooling, que converte a região para um tamanho fixo (essencial para as camadas densas finais). Nota: O RoI Pooling seria depois melhorado pelo roi-align no Mask R-CNN devido a problemas de arredondamento.

  4. Rede Multi-task: As SVMs lentas foram substituídas por uma camada Softmax, permitindo que a classificação e o refinamento do bounding box fossem treinados juntos na mesma rede. Isso é feito otimizando uma função de perda (Loss) conjunta (Multi-task Loss):

    L(p,u,tu,v)=Lcls(p,u)+λ[u1]Lloc(tu,v)L(p, u, t^u, v) = L_{cls}(p, u) + \lambda [u \ge 1] L_{loc}(t^u, v)

    Eq. 1: Função de perda multitarefa unificando classificação e regressão.

    Onde:

    • pp: distribuição de probabilidade calculada pela Softmax sobre as categorias da rede.
    • uu: rótulo real (ground truth) da classe (u=0u=0 representa fundo/background).
    • tut^u: offsets (ajustes) preditos pelo regressor de bounding box para a classe uu.
    • vv: offsets reais (ground truth) da bounding box.
    • λ\lambda: hiperparâmetro de balanceamento entre classificação e localização.
    • [u1][u \ge 1]: função indicadora que ativa a perda de regressão apenas se a proposta for um objeto real (ignorando fundos).

Vantagens e a Nova Limitação

  • Treinamento End-to-End: Classificador e regressor agora são treinados simultaneamente.
  • Muito mais rápido: Cerca de 200x mais rápido que o R-CNN clássico em tempo de inferência (processando uma imagem em ~2 segundos).

⚠️ O Gargalo Remanescente: A única coisa que ainda impedia o Fast R-CNN de rodar em tempo real era a dependência do Selective Search para propor regiões (que rodava na CPU). Esse problema foi resolvido posteriormente pelo faster-r-cnn.

Achados do paper original (Girshick, 2015)

O artigo não propõe apenas a arquitetura — ele testa decisões de design que valem como princípios reutilizáveis:

  • Treinar todas as camadas convolucionais importa em redes muito profundas: congelar as camadas conv do VGG16 (imitando o SPP-net, que não propagava gradiente através do Spatial Pyramid Pooling) derruba o mAP de 66.9% para 61.4%. Atualizar a partir da conv3_1 já captura quase todo o ganho.
  • Softmax substitui as SVMs sem perda: o classificador softmax treinado ponta a ponta iguala ou supera (+0.1 a +0.8 mAP) o pipeline SVM pós-hoc com hard negative mining — eliminando o treinamento multi-estágio do r-cnn.
  • Multi-task loss melhora até a classificação pura: treinar classificação e regressão de bounding box juntos melhora o mAP mesmo quando a regressão é desligada no teste (+0.8 a +1.1 pontos) — as tarefas se reforçam pela representação compartilhada.
  • Escala única basta para redes profundas: pirâmides de imagem em 5 escalas adicionam ganho marginal de mAP com grande custo computacional; a rede aprende invariância de escala diretamente dos dados (s = 600px).
  • Truncated SVD comprime as FCs quase de graça: fatorar as matrizes das camadas fully connected reduz mais de 30% do tempo de detecção com queda de apenas 0.3 ponto de mAP — pois as FCs respondem por ~45% do tempo de inferência quando há ~2000 RoIs.
  • Mais propostas ≠ melhor detecção: subir de 1k para 10k propostas por imagem faz o mAP subir e depois cair; propostas esparsas (Selective Search) superam caixas densas (45k/imagem), que derrubam o mAP para ~53%. ⚠️ O paper mostra ainda que Average Recall não se correlaciona com mAP quando se varia o número de propostas — proxy metrics devem ser usados com cuidado.

Referências e ferramentas


Relacionadas: r-cnn · faster-r-cnn · roi-align · ablation-study

Construído com Eleventy · busca por Lunr.js