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:
-
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.
-
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.
-
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.
-
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):
Eq. 1: Função de perda multitarefa unificando classificação e regressão.
Onde:
- : distribuição de probabilidade calculada pela Softmax sobre as categorias da rede.
- : rótulo real (ground truth) da classe ( representa fundo/background).
- : offsets (ajustes) preditos pelo regressor de bounding box para a classe .
- : offsets reais (ground truth) da bounding box.
- : hiperparâmetro de balanceamento entre classificação e localização.
- : 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.
Relacionadas: r-cnn · faster-r-cnn · roi-align