A detecção de objetos em imagens e vídeos é uma das tarefas mais desafiadoras no campo da visão computacional e inteligência artificial. Nos últimos anos, o algoritmo YOLO (You Only Look Once) revolucionou essa área, oferecendo uma abordagem inovadora e eficiente para a identificação e localização de objetos em tempo real. Neste artigo, vamos explorar o que é o YOLO, como ele funciona e como ele se diferencia dos métodos tradicionais de detecção de objetos, como os utilizados em redes neurais convolucionais (CNNs).
Antes do surgimento do YOLO, as técnicas tradicionais de detecção de objetos eram baseadas em classificadores regionais e redes neurais convolucionais (CNNs). Esses métodos, conhecidos como “deep learning clássico”, operavam dividindo a imagem em várias regiões menores e aplicando classificadores em cada uma delas. Esse processo, embora eficaz, é frequentemente lentificador e exige uma quantidade significativa de poder computacional, o que limita sua aplicação em cenários de tempo real ou em dispositivos com hardware restrito.
Além disso, esses modelos dependem de estratégias de múltiplas etapas, o que pode gerar atrasos e inconsistências na detecção. A visão computacional em tempo real era um desafio, especialmente em aplicações como veículos autônomos, monitoramento de segurança e análise de vídeos ao vivo.
O YOLO (You Only Look Once) foi desenvolvido para resolver essas limitações. Ao contrário das abordagens anteriores, o YOLO transforma o problema de detecção de objetos em uma tarefa de regressão única, em que toda a imagem é processada de uma vez. Em vez de analisar a imagem em partes ou aplicar múltiplos classificadores, o YOLO divide a imagem em uma grade e, para cada célula da grade, prevê as caixas delimitadoras e as probabilidades das classes dos objetos presentes. Isso permite que o modelo faça a detecção de múltiplos objetos em uma única passagem, sem a necessidade de examinar várias regiões da imagem.
Velocidade: O principal benefício do YOLO é sua capacidade de realizar detecção de objetos em tempo real. Isso é possível porque o modelo processa a imagem de forma global, em vez de trabalhar em várias etapas. Essa abordagem resulta em um tempo de inferência muito mais rápido, o que é crucial para muitas aplicações práticas, como vigilância, drones e carros autônomos.
Precisão e Eficiência: Ao prever simultaneamente várias classes e caixas delimitadoras para objetos em uma única operação, o YOLO alcança um bom equilíbrio entre precisão e velocidade. Ele consegue detectar objetos de diferentes tamanhos e formas de maneira eficiente, com menos sobrecarga computacional comparado a outros métodos.
Desempenho em Tempo Real: Devido à sua estrutura simplificada, o YOLO é capaz de rodar em dispositivos com limitações de hardware, como câmeras de segurança e drones, sem sacrificar a qualidade da detecção. Dependendo do hardware utilizado, é possível até realizar detecção de objetos em vídeos em alta resolução.
Modelo Unificado: Diferente de outras abordagens, que exigem treinamento de vários modelos ou etapas para cada fase do processo, o YOLO oferece uma solução end-to-end, onde o treinamento é realizado em uma única rede neural, tornando o processo mais eficiente e direto.
O YOLO usa uma rede neural convolucional (CNN) para analisar a imagem como um todo. A rede é treinada para dividir a imagem em uma grade de células (geralmente 7x7 ou 13x13 dependendo da resolução da entrada). Cada célula é responsável por detectar objetos cujo centro esteja dentro da célula. A saída do modelo inclui:
Ao realizar todas essas operações em uma única execução, o YOLO é capaz de reduzir significativamente o tempo de processamento e permitir a detecção em tempo real.
O YOLO tem sido amplamente adotado em várias áreas devido à sua eficácia e rapidez. Algumas das aplicações mais notáveis incluem:
Desde a sua criação, o YOLO passou por várias atualizações e melhorias. As versões mais recentes, como o YOLOv4 e YOLOv5, trouxeram avanços significativos em termos de precisão, eficiência e flexibilidade. Cada nova versão aprimora a capacidade do algoritmo de detectar objetos em diferentes contextos e com diferentes tipos de imagens, além de otimizar o uso de recursos computacionais.
A versão YOLOv5, por exemplo, trouxe melhorias em design de rede, treinamento de dados e suporte a diferentes dispositivos. Com o tempo, versões mais novas como YOLOv7 e YOLOv8 continuaram a melhorar a velocidade, a precisão e a robustez do modelo
Veja também:
Redes Neurais e Deep Learning impulsionam a automação industrial