O que é R-CNN? Uma visão geral rápida
Aprende sobre RCNN e seu impacto na detecção de objetos. Abordaremos seus principais componentes, aplicações e papel no avanço de técnicas como Fast RCNN e YOLO.

Object detection é uma tarefa de visão computacional que consegue reconhecer e localizar objetos em imagens ou vídeos para aplicações como autonomous driving, surveillance e medical imaging. Métodos anteriores de deteção de objetos, como o detetor Viola-Jones e Histogram of Oriented Gradients (HOG) com Support Vector Machines (SVM), dependiam de características criadas manualmente e de janelas deslizantes. Estes métodos frequentemente enfrentavam dificuldades para detetar com precisão objetos em cenas complexas com múltiplos objetos de várias formas e tamanhos.
As Convolutional Neural Networks baseadas em regiões (R-CNN) mudaram a forma como abordamos a deteção de objetos. É um marco importante na história da visão computacional. Para entender como modelos como o Ultralytics YOLOv8 surgiram, precisamos primeiro de compreender modelos como o R-CNN.
Criado por Ross Girshick e a sua equipa, a arquitetura do modelo R-CNN gera propostas de regiões, extrai caraterísticas com uma Convolutional Neural Network (CNN) pré-treinada, classifica objetos e refina caixas delimitadoras. Embora possa parecer intimidante, até ao final deste artigo, terás uma compreensão clara de como o R-CNN funciona e porque é tão impactante. Vamos dar uma vista de olhos!
Como o R-CNN funciona?#
O processo de detecção de objetos do modelo R-CNN envolve três etapas principais: gerar propostas de região, extrair características e classificar objetos enquanto refina suas caixas delimitadoras. Vamos percorrer cada etapa.

Fig 1. Como o R-CNN funciona.
Propostas de região: A espinha dorsal do R-CNN#
Na primeira etapa, o modelo R-CNN escaneia a imagem para criar inúmeras propostas de região. Propostas de região são áreas potenciais que podem conter objetos. Métodos como a Busca Seletiva (Selective Search) são usados para observar vários aspectos da imagem, como cor, textura e forma, dividindo-a em diferentes partes. A Busca Seletiva começa dividindo a imagem em partes menores e, em seguida, mescla partes semelhantes para formar áreas de interesse maiores. Esse processo continua até que cerca de 2.000 propostas de região sejam geradas.

Fig 2. Como a Selective Search funciona.
Essas propostas de região ajudam a identificar todos os possíveis pontos onde um objeto pode estar presente. Nas etapas seguintes, o modelo pode processar com eficiência as áreas mais relevantes, focando nessas áreas específicas em vez de toda a imagem. O uso de propostas de região equilibra a abrangência com a eficiência computacional.
Extração de características da imagem: Capturando os detalhes#
A próxima etapa no processo de detecção de objetos do modelo R-CNN é extrair características das propostas de região. Cada proposta de região é redimensionada para um tamanho consistente que a CNN espera (por exemplo, 224x224 pixels). O redimensionamento ajuda a CNN a processar cada proposta com eficiência. Antes da deformação, o tamanho de cada proposta de região é ligeiramente expandido para incluir 16 pixels de contexto adicional ao redor da região, para fornecer mais informações circundantes para uma melhor extração de características.
Uma vez redimensionadas, essas propostas de região são alimentadas em uma CNN como a AlexNet, que geralmente é pré-treinada em um conjunto de dados grande como o ImageNet. A CNN processa cada região para extrair vetores de características de alta dimensão que capturam detalhes importantes, como bordas, texturas e padrões. Esses vetores de características condensam as informações essenciais das regiões. Eles transformam os dados brutos da imagem em um formato que o modelo pode usar para análises posteriores. Classificar e localizar objetos com precisão nos estágios seguintes depende dessa conversão crucial de informações visuais em dados significativos.

Fig 3. Extrair caraterísticas de uma proposta de região usando o AlexNet.
Classificação de objetos: Identificando objetos detectados#
A terceira etapa é classificar os objetos dentro dessas regiões. Isso significa determinar a categoria ou classe de cada objeto encontrado dentro das propostas. Os vetores de características extraídos são então passados por um classificador de aprendizado de máquina.
No caso do R-CNN, Máquinas de Vetores de Suporte (SVMs) são comumente usadas para esse propósito. Cada SVM é treinada para reconhecer uma classe de objeto específica analisando os vetores de características e decidindo se uma determinada região contém uma instância dessa classe. Essencialmente, para cada categoria de objeto, existe um classificador dedicado verificando cada proposta de região para aquele objeto específico.
Durante o treinamento, os classificadores recebem dados rotulados com amostras positivas e negativas:
- Amostras positivas: Regiões que contêm o objeto alvo.
- Amostras negativas: Regiões sem o objeto.
Os classificadores aprendem a distinguir entre essas amostras. A regressão de caixa delimitadora refina ainda mais a posição e o tamanho dos objetos detectados, ajustando as caixas delimitadoras inicialmente propostas para corresponder melhor aos limites reais do objeto. O modelo R-CNN pode identificar e localizar objetos com precisão combinando a classificação e a regressão de caixa delimitadora.

Fig 4. Um exemplo de regressão de caixa delimitadora. (fonte: towardsdatascience.com)
Juntando tudo: Refinando detecções com NMS#
Após as etapas de classificação e regressão de caixa delimitadora, o modelo frequentemente gera várias caixas delimitadoras sobrepostas para o mesmo objeto. A Supressão Não-Máxima (NMS) é aplicada para refinar essas detecções, mantendo as caixas mais precisas. O modelo elimina caixas redundantes e sobrepostas aplicando o NMS e mantém apenas as detecções com maior confiança.
O NMS funciona avaliando as pontuações de confiança (indicando quão provável é que um objeto detectado esteja realmente presente) de todas as caixas delimitadoras e suprimindo aquelas que se sobrepõem significativamente a caixas com pontuações mais altas.

Fig 5. Um exemplo de supressão não-máxima. (fonte: towardsdatascience.com)
Aqui está um detalhamento das etapas no NMS:
- Ordenação: As caixas delimitadoras são classificadas por suas pontuações de confiança em ordem decrescente.
- Seleção: A caixa com a pontuação mais alta é selecionada, e todas as caixas que se sobrepõem significativamente (com base na Interseção sobre União, IoU) a ela são removidas.
- Iteração: Este processo se repete para a próxima caixa com maior pontuação e continua até que todas as caixas tenham sido processadas.
Resumindo, o modelo R-CNN detecta objetos gerando propostas de região, extraindo características com uma CNN, classificando objetos e refinando suas posições com regressão de caixa delimitadora e usando a Supressão Não-Máxima (NMS) para manter apenas as detecções mais precisas.
O R-CNN é um marco na detecção de objetos#
O R-CNN é um modelo emblemático na história da detecção de objetos porque introduziu uma nova abordagem que melhorou muito a precisão e o desempenho. Antes do R-CNN, os modelos de detecção de objetos lutavam para equilibrar velocidade e precisão. O método do R-CNN de gerar propostas de região e usar CNNs para extração de características permite a localização e identificação precisas de objetos dentro de imagens.
O R-CNN abriu caminho para modelos como Fast R-CNN, Faster R-CNN e Mask R-CNN, que melhoraram ainda mais a eficiência e a precisão. Ao combinar aprendizado profundo com análise baseada em regiões, o R-CNN estabeleceu um novo padrão na área e abriu possibilidades para várias aplicações do mundo real.
Transformando imagens médicas com R-CNN#
Um caso de uso interessante do R-CNN é em medical imaging. Os modelos R-CNN têm sido utilizados para detetar e classificar diferentes tipos de tumores, tais como brain tumors, em exames médicos como ressonâncias magnéticas e tomografias computorizadas. A utilização do modelo R-CNN em imagem médica melhora a precisão do diagnóstico e ajuda os radiologists a identificar malignidades numa fase precoce. A capacidade do R-CNN de detetar até tumores pequenos e em fase inicial pode fazer uma diferença significativa no tratamento e prognóstico de doenças como o cancro.

Fig 6. Deteção de tumores cerebrais usando RCNN.
O modelo R-CNN pode ser aplicado a outras tarefas de imagem médica, além da deteção de tumores. Por exemplo, pode identificar fraturas, detetar doenças da retina em exames oculares e analisar imagens pulmonares para condições como pneumonia e COVID-19. Independentemente do problema médico, a deteção precoce pode conduzir a better patient outcomes. Ao aplicar a precisão do R-CNN na identificação e localização de anomalias, os prestadores de healthcare podem melhorar a fiabilidade e a velocidade dos diagnósticos médicos. Com a deteção de objetos a otimizar o processo de diagnóstico, os doentes podem beneficiar de planos de tratamento atempados e precisos.
Limitações do R-CNN e seus sucessores#
Embora impressionante, o R-CNN tem certas desvantagens, como alta complexidade computacional e tempos de inferência lentos. Essas desvantagens tornam o modelo R-CNN inadequado para aplicações em tempo real. Separar propostas de região e classificações em etapas distintas pode levar a um desempenho menos eficiente.
Ao longo dos anos, surgiram vários modelos de detecção de objetos que abordaram essas preocupações. O Fast R-CNN combina propostas de região e extração de características de CNN em uma única etapa, acelerando o processo. O Faster R-CNN introduz uma Rede de Proposta de Região (RPN) para otimizar a geração de propostas, enquanto o Mask R-CNN adiciona segmentação em nível de pixel para detecções mais detalhadas.

Fig 7. Comparando R-CNN, Fast R-CNN, Faster R-CNN e Mask R-CNN.
Por volta da mesma altura do Faster R-CNN, a série YOLO (You Only Look Once) começou a avançar na deteção de objetos em tempo real. Os modelos YOLO predizem caixas delimitadoras e probabilidades de classe numa única passagem pela rede. Por exemplo, o Ultralytics YOLOv8 oferece melhor precisão e velocidade com funcionalidades avançadas para muitas tarefas de visão computacional.
Principais pontos#
O RCNN mudou o jogo na visão computacional, mostrando como o aprendizado profundo pode mudar a detecção de objetos. Seu sucesso inspirou muitas ideias novas na área. Embora modelos mais recentes como Faster R-CNN e YOLO tenham surgido para corrigir as falhas do RCNN, sua contribuição é um enorme marco que é importante lembrar.
À medida que a pesquisa continua, veremos modelos de detecção de objetos ainda melhores e mais rápidos. Esses avanços não apenas melhorarão a forma como as máquinas entendem o mundo, mas também levarão ao progresso em muitas indústrias. O futuro da detecção de objetos parece empolgante!
Queres continuar a explorar sobre IA? Torna-te parte da community da Ultralytics! Explora o nosso GitHub repository para ver as nossas inovações mais recentes em inteligência artificial. Vê as nossas soluções de IA que abrangem vários setores como agriculture e manufacturing. Junta-te a nós para aprender e progredir!






