De onde o YOLO pega o contexto global? Como consegue fazer isso e porque os R - CNN não conseguiam?

O modelo YOLO consegue extrair o contexto global porque as suas camadas convolucionais mais profundas capturam campos receptivos (receptive fields) maiores da imagem
. Em vez de analisar pedaços isolados, ele processa a imagem inteira de uma só vez através de uma única rede. À medida que a informação flui para as camadas mais profundas, cada neurônio passa a "enxergar" áreas cada vez maiores da imagem original, permitindo que as predições finais considerem simultaneamente o objeto e o cenário ao seu redor
.
Os modelos da família R-CNN não conseguiam fazer isso de forma eficiente devido à sua arquitetura baseada em estágios e "propostas de regiões"
. O funcionamento deles obrigava a rede a focar apenas em áreas restritas:
No R-CNN original, o algoritmo literalmente recortava cerca de 2.000 pedaços da imagem de entrada (propostas de regiões) e passava cada um desses recortes de forma independente pela rede neural para ser classificado
.
Nas evoluções Fast e Faster R-CNN, embora a imagem inteira passasse junta pelas primeiras camadas convolucionais para economizar processamento, o modelo ainda aplicava uma operação de recorte (Crop / RoI pooling) diretamente sobre os mapas de características para isolar apenas as caixas suspeitas
. O classificador final só avaliava o que estava dentro desse recorte
.
A grande diferença: Ao isolar e classificar apenas uma caixa recortada (como os R-CNNs fazem), a rede perde a visão do que está em volta daquele objeto
. É por isso que abordagens baseadas em regiões têm uma tendência maior a cometer "erros de fundo" (confundir uma textura no cenário com um objeto). O YOLO, por nunca recortar a imagem e tratar a detecção como uma regressão única onde as últimas camadas têm o contexto de toda a cena, compreende muito melhor a diferença entre o que é um objeto de fato e o que é apenas o fundo da imagem
.
