Redes Neurais Convolucionais Baseadas em Regiões (R-CNN) são uma família de modelos de aprendizado de máquina para visão computacional, especificamente detecção e localização de objetos. O objetivo original da R-CNN era receber uma imagem de entrada e produzir um conjunto de caixas delimitadoras como saída, onde cada caixa delimitadora contém um objeto e também a categoria (por exemplo, carro ou pedestre) do objeto. Em geral, as arquiteturas R-CNN realizam busca seletiva sobre mapas de características gerados por uma CNN.
A R-CNN foi estendida para realizar outras tarefas de visão computacional, como rastreamento de objetos a partir de uma câmera montada em drone, localização de texto em uma imagem e detecção de objetos no Google Lens. A Mask R-CNN também é uma das sete tarefas no MLPerf Training Benchmark, uma competição para acelerar o treinamento de redes neurais.
História
O desenvolvimento da R-CNN passou por várias versões importantes. A R-CNN original foi introduzida em novembro de 2013, seguida pela Fast R-CNN em abril de 2015 e pela Faster R-CNN em junho de 2015. A Mask R-CNN chegou em março de 2017, estendendo o framework para segmentação de instâncias. Em dezembro de 2017, foi proposta a Cascade R-CNN, que treina com limiares crescentes de Intersecção sobre União (IoU, também conhecida como índice de Jaccard), tornando cada estágio mais seletivo contra falsos positivos próximos. Em junho de 2019, a Mesh R-CNN adicionou a capacidade de gerar uma malha 3D a partir de uma imagem 2D.
Arquitetura
A família R-CNN compartilha uma arquitetura comum baseada em propostas de regiões e extração de características convolucionais. A ideia central é gerar regiões candidatas de objetos, extrair características usando uma CNN e classificar cada região.
Busca Seletiva
Dada uma imagem (ou um mapa de características semelhante a uma imagem), a busca seletiva (também chamada de Agrupamento Hierárquico) primeiro segmenta a imagem usando o algoritmo de Felzenszwalb e Huttenlocher (2004). Em seguida, ela mescla iterativamente regiões vizinhas semelhantes com base na compatibilidade de cor, textura, tamanho e forma, produzindo um conjunto de hipóteses de localização de objetos. O algoritmo procede da seguinte forma:
- Segmentar a imagem em regiões iniciais R = {r1, ..., rn}.
- Inicializar um conjunto de similaridades S = ∅.
- Para cada par de regiões vizinhas (ri, rj), calcular a similaridade s(ri, rj) e adicionar a S.
- Enquanto S não estiver vazio:
- Obter a maior similaridade s(ri, rj) = max(S).
- Mesclar as regiões correspondentes rt = ri ∪ rj.
- Remover de S as similaridades envolvendo ri e rj.
- Calcular as similaridades entre rt e seus vizinhos, adicionar a S.
- Adicionar rt a R.
- Extrair as caixas de localização de objetos L de todas as regiões em R.
R-CNN
Com a R-CNN original, a predição segue um processo de duas etapas. Uma etapa de pré-processamento por busca seletiva gera um grande conjunto de objetos candidatos (tipicamente até 2000), conhecidos como regiões de interesse (ROI). Essas são encaminhadas a uma CNN, que prediz uma pontuação de classe do objeto e uma estimativa de caixa delimitadora independentemente para cada ROI. Importante: os ROIs são fortemente filtrados para remover candidatos em excesso. A filtragem começa removendo ROIs atribuídos à categoria de fundo, uma categoria especializada pontuada pela CNN juntamente com outras categorias. Os ROIs restantes frequentemente sofrem de duplicação intensa, pois múltiplos ROIs cobrindo o mesmo objeto são todos atribuídos a categorias que não são de fundo. Isso é resolvido por uma etapa heurística de supressão não máxima (NMS).
Fast R-CNN
Enquanto a R-CNN original calculava independentemente as características da rede neural em cada uma das até duas mil regiões de interesse, a Fast R-CNN executa a rede neural uma única vez sobre a imagem inteira. No final da rede há um módulo ROIPooling, que recorta cada ROI do tensor de saída da rede, o remodela e o classifica. Como na R-CNN original, a Fast R-CNN usa busca seletiva para gerar suas propostas de região.
Faster R-CNN
A Faster R-CNN integra a geração de ROIs dentro da própria rede neural, eliminando a necessidade de busca seletiva externa. Isso torna o modelo totalmente treinável de ponta a ponta e significativamente mais rápido.
Mask R-CNN
Enquanto as versões anteriores focavam na detecção de objetos, a Mask R-CNN adiciona segmentação de instâncias, produzindo uma máscara de segmentação para cada objeto detectado. A Mask R-CNN também substituiu o ROIPooling por um novo método chamado ROIAlign, que pode representar frações de pixel, melhorando a precisão da localização.
Aplicações e Impacto
Os modelos R-CNN foram amplamente adotados em aplicações de visão computacional, incluindo direção autônoma, vigilância e busca de imagens. A arquitetura influenciou modelos subsequentes de detecção de objetos e permanece um conceito fundamental em aprendizado profundo para visão. O benchmark MLPerf inclui a Mask R-CNN como uma tarefa padrão para avaliar o desempenho de treinamento, destacando sua importância prática.
Ver Também
Referências
- Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. CVPR.
- Girshick, R. (2015). Fast R-CNN. ICCV.
- Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: Towards real-time object detection with region proposal networks. NeurIPS.
- He, K., Gkioxari, G., Dollár, P., & Girshick, R. (2017). Mask R-CNN. ICCV.
Leitura Adicional
- Parthasarathy, Dhruv (2017-04-27). "A Brief History of CNNs in Image Segmentation: From R-CNN to Mask R-CNN". Medium. Acessado em 2024-09-11.