YOLO (You Only Look Once) é uma família de sistemas de detecção de objetos em tempo real baseados em redes neurais convolucionais. Introduzido pela primeira vez por Joseph Redmon e colegas em 2015, o YOLO passou por múltiplas iterações e se tornou um dos frameworks de detecção de objetos mais amplamente utilizados. O nome reflete o design central do algoritmo: ele requer apenas uma passagem de propagação direta pela rede neural para fazer previsões, em contraste com técnicas anteriores baseadas em propostas de regiões, como o R-CNN, que exigiam milhares de passagens para uma única imagem.
Diferente de métodos anteriores que aplicavam modelos a uma imagem em múltiplas localizações e escalas, o YOLO aplica uma única rede neural à imagem inteira. A rede divide a imagem em uma grade de regiões e prevê caixas delimitadoras e probabilidades de classe para cada região. Essas previsões são ponderadas por pontuações de confiança, permitindo detecção rápida e precisa em uma única avaliação.
Visão Geral
A arquitetura do YOLO é construída em torno de uma rede neural convolucional que processa a imagem completa em uma passagem. A imagem é dividida em uma grade S × S, onde cada célula é responsável por prever caixas delimitadoras e pontuações de confiança. Se o centro da caixa delimitadora de um objeto cair dentro de uma célula, essa célula é considerada como "contendo" o objeto. Cada célula prevê B caixas delimitadoras, juntamente com pontuações de confiança que refletem tanto a probabilidade de um objeto estar presente quanto a precisão da caixa prevista.
A saída da rede para cada célula inclui probabilidades de classe condicionais (a probabilidade de que a célula contenha um objeto de uma determinada classe, dado que ela contém pelo menos um objeto) e parâmetros de caixa delimitadora(coordenadas centrais, largura e altura). Múltiplas caixas delimitadoras por célula permitem que o modelo se especialize em diferentes formatos de objetos, como objetos esbeltos versus robustos. A arquitetura original do YOLO consistia em 24 camadas convolucionais seguidas por 2 camadas totalmente conectadas. Durante o treinamento, para cada célula que contém uma caixa delimitadora de verdade fundamental, apenas a caixa prevista com a maior interseção sobre união(IoU) com a verdade fundamental é usada para descida de gradiente. A função de perda incentiva o modelo a alinhar as coordenadas da caixa prevista com a verdade fundamental, definir as probabilidades de classe corretas e suprimir falsos positivos.
Predecessores e Contexto
Antes do YOLO, sistemas de detecção de objetos como R-CNN e OverFeat dependiam de propostas de regiões ou abordagens de varredura multi-escala. OverFeat, um modelo influente inicial, treinava uma rede neural para classificação e depois adicionava uma rede de regressão para prever os cantos das caixas delimitadoras. Na inferência, ele executava a rede de classificação sobre muitos níveis de zoom e recortes, gerando milhares de caixas candidatas que eram posteriormente mescladas. Esse processo era computacionalmente caro e lento.
O YOLO abordou essas ineficiências reformulando a detecção como um único problema de regressão. Em vez de escanear a imagem múltiplas vezes, o YOLO processa a imagem inteira em uma passagem direta, tornando-o significativamente mais rápido enquanto mantém precisão competitiva. Essa mudança permitiu aplicações em tempo real em análise de vídeo, robótica e direção autônoma.
Versões
A série YOLO pode ser dividida em duas partes. A parte original, mantida por Joseph Redmon, inclui YOLOv1, YOLOv2 e YOLOv3. Essas versões foram lançadas em um site dedicado e se tornaram amplamente adotadas tanto na pesquisa quanto na indústria.
YOLOv1
YOLOv1, introduzido em 2015, estabeleceu o framework central. Ele dividia a imagem em uma grade S × S, com cada célula prevendo B caixas delimitadoras e pontuações de confiança. A saída da rede para cada célula incluía probabilidades de classe e coordenadas de caixa. A implementação original usava S = 7 e B = 2, resultando em 98 caixas delimitadoras por imagem. Apesar de sua velocidade, o YOLOv1 tinha limitações na detecção de objetos pequenos e no manuseio de objetos sobrepostos, que versões posteriores abordaram.
###YOLOv2 e YOLOv3
YOLOv2, também conhecido como YOLO9000, introduziu melhorias como normalização em lote, caixas de âncora e treinamento multi-escala. Ele podia detectar mais de 9,000 categorias de objetos alavancando classificação hierárquica. YOLOv3 melhorou ainda mais a precisão usando uma arquitetura mais profunda com conexões residuais e previsões multi-escala, permitindo melhor detecção de objetos pequenos. Essas versões solidificaram a reputação do YOLO como um detector em tempo real de última geração.
Impacto e Aplicações
A velocidade e eficiência do YOLO o tornaram uma escolha popular para aplicações em tempo real, incluindo vigilância por vídeo, veículos autônomos e robótica. Seu design de passagem única é particularmente adequado para dispositivos de borda e sistemas embarcados, onde recursos computacionais são limitados. O framework também influenciou pesquisas subsequentes em detecção de objetos, inspirando muitas variantes e adaptações.
A partir do início dos anos 2020, o YOLO continua a ser ativamente desenvolvido pela comunidade de pesquisa, com versões mais novas como YOLOv4, YOLOv5 e iterações posteriores introduzindo otimizações adicionais. Essas versões frequentemente incorporam técnicas da pesquisa em aprendizado profundo e redes neurais, como mecanismos de atenção e estratégias de treinamento melhoradas. O legado do YOLO reside em sua demonstração de que detecção em tempo real é alcançável sem sacrificar a precisão, tornando-o uma pedra angular da visão computacional moderna.