YOLOv4: deteção de objetos rápida e precisa#
Bem-vindo à página da documentação da Ultralytics sobre o YOLOv4, um detetor de objetos em tempo real de última geração, lançado em 2020 por Alexey Bochkovskiy em https://github.com/AlexeyAB/darknet. O YOLOv4 foi concebido para oferecer o equilíbrio ideal entre velocidade e precisão, o que o torna uma excelente escolha para muitas aplicações.
Diagrama da arquitetura YOLOv4. Apresenta o complexo desenho da rede YOLOv4, incluindo os componentes backbone, neck e head, e as respetivas camadas interligadas para uma deteção de objetos em tempo real otimizada.
Introdução#
YOLOv4 significa You Only Look Once versão 4. É um modelo de deteção de objetos em tempo real, desenvolvido para resolver as limitações de versões anteriores do YOLO, como o YOLOv3, e de outros modelos de deteção de objetos. Ao contrário de outros detetores de objetos baseados em redes neurais convolucionais (CNN), o YOLOv4 aplica-se não só a sistemas de recomendação, mas também à gestão autónoma de processos e à redução da intervenção humana. A execução em unidades de processamento gráfico convencionais (GPUs) permite uma utilização em larga escala a um custo acessível. Além disso, foi concebido para funcionar em tempo real numa GPU convencional e requer apenas uma GPU desse tipo para o treino.
Arquitetura#
O YOLOv4 utiliza várias funcionalidades inovadoras que, em conjunto, otimizam o seu desempenho. Entre elas estão Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), ativação Mish, aumento de dados Mosaic, regularização DropBlock e a função de perda CIoU. Estas funcionalidades combinam-se para alcançar resultados de última geração.
Um detetor de objetos típico é composto por várias partes, incluindo a entrada, o backbone, o neck e o head. O backbone do YOLOv4 é pré-treinado no ImageNet e é usado para prever as classes e as caixas delimitadoras dos objetos. O backbone pode ser baseado em vários modelos, incluindo VGG, ResNet, ResNeXt ou DenseNet. A parte neck do detetor recolhe mapas de características de diferentes etapas e inclui, geralmente, vários percursos ascendentes e descendentes. A parte head é usada para realizar as deteções e classificações finais dos objetos.
Conjunto de vantagens gratuitas#
O YOLOv4 também utiliza métodos conhecidos como «conjunto de vantagens gratuitas», que são técnicas que melhoram a precisão do modelo durante o treino sem aumentar o custo da inferência. O aumento de dados é uma técnica comum deste conjunto, usada na deteção de objetos, que aumenta a variabilidade das imagens de entrada para melhorar a robustez do modelo. Alguns exemplos de aumento de dados incluem distorções fotométricas (ajustar o brilho, o contraste, a tonalidade, a saturação e o ruído de uma imagem) e distorções geométricas (aplicar redimensionamento, recorte, inversão e rotação aleatórios). Estas técnicas ajudam o modelo a generalizar melhor para diferentes tipos de imagens.
Funcionalidades e desempenho#
O YOLOv4 foi concebido para otimizar a velocidade e a precisão na deteção de objetos. A arquitetura do YOLOv4 inclui CSPDarknet53 como backbone, PANet como neck e YOLOv3 como cabeça de deteção. Este desenho permite ao YOLOv4 detetar objetos a uma velocidade impressionante, tornando-o adequado para aplicações em tempo real. O YOLOv4 também se destaca pela precisão, alcançando resultados de última geração em benchmarks de deteção de objetos, como o COCO.
Em comparação com outros modelos da família YOLO, como o YOLOv5 e o YOLOv7, o YOLOv4 mantém uma posição sólida no equilíbrio entre velocidade e precisão. Embora os modelos mais recentes possam oferecer certas vantagens, as inovações arquitetónicas do YOLOv4 continuam a torná-lo relevante para muitas aplicações que exigem desempenho em tempo real.
Exemplos de uso#
O YOLOv4 é um modelo baseado em Darknet e não é compatível de forma nativa com o pacote Python da Ultralytics: não há pesos pré-treinados yolov4.pt publicados em ultralytics/assets nem ficheiros YAML ultralytics/cfg/models/v4/. Esta página é mantida como referência arquitetónica. Quem tiver interesse em executar o YOLOv4 deve consultar diretamente o repositório GitHub do YOLOv4 para obter instruções de instalação e utilização.
Segue-se uma breve visão geral dos passos habituais para usar o YOLOv4:
-
Visita o repositório GitHub do YOLOv4: https://github.com/AlexeyAB/darknet.
-
Segue as instruções de instalação fornecidas no ficheiro README. Normalmente, isso implica clonar o repositório, instalar as dependências necessárias e configurar as variáveis de ambiente necessárias.
-
Depois de concluída a instalação, podes treinar e usar o modelo de acordo com as instruções de utilização fornecidas no repositório. Normalmente, isso implica preparar o conjunto de dados, configurar os parâmetros do modelo, treiná-lo e, em seguida, usá-lo para realizar a deteção de objetos.
Tem em atenção que os passos específicos podem variar consoante o teu caso de utilização e o estado atual do repositório YOLOv4. Por isso, recomendamos vivamente que consultes diretamente as instruções fornecidas no repositório GitHub do YOLOv4.
Para treino e inferência no framework Ultralytics, consulta o YOLO11 ou o YOLO26.
Conclusão#
O YOLOv4 é um modelo de deteção de objetos poderoso e eficiente, que equilibra velocidade e precisão. A utilização de funcionalidades exclusivas e de técnicas do conjunto de vantagens gratuitas durante o treino permite-lhe ter um excelente desempenho em tarefas de deteção de objetos em tempo real. Qualquer pessoa com uma GPU convencional pode treinar e usar o YOLOv4, tornando-o acessível e prático para uma vasta gama de aplicações, incluindo sistemas de vigilância, veículos autónomos e automação industrial.
Para quem procura implementar a deteção de objetos nos seus projetos, o YOLOv4 continua a ser uma opção sólida, especialmente quando o desempenho em tempo real é prioritário. Embora a Ultralytics se concentre atualmente no suporte a versões mais recentes do YOLO, como o YOLO11 e o YOLO26, as inovações arquitetónicas introduzidas no YOLOv4 influenciaram o desenvolvimento destes modelos posteriores.
Citações e agradecimentos#
Gostaríamos de reconhecer os autores do YOLOv4 pelas suas contribuições significativas para o campo da deteção de objetos em tempo real:
@misc{bochkovskiy2020yolov4,
title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
year={2020},
eprint={2004.10934},
archivePrefix={arXiv},
primaryClass={cs.CV}
}O artigo original sobre o YOLOv4 está disponível no arXiv. Os autores disponibilizaram publicamente o seu trabalho, e o código pode ser consultado no GitHub. Agradecemos os seus esforços para fazer avançar o campo e tornar o seu trabalho acessível a uma comunidade mais ampla.
Perguntas frequentes#
YOLOv4, sigla de «You Only Look Once versão 4», é um modelo de deteção de objetos em tempo real de última geração, desenvolvido por Alexey Bochkovskiy em 2020. Alcança um equilíbrio ideal entre velocidade e precisão, o que o torna muito adequado para aplicações em tempo real. A arquitetura do YOLOv4 integra várias funcionalidades inovadoras, como Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) e Self-adversarial-training (SAT), entre outras, para alcançar resultados de última geração. Se procuras um modelo de alto desempenho que funcione com eficiência em GPUs convencionais, o YOLOv4 é uma excelente escolha.
A arquitetura do YOLOv4 inclui vários componentes principais: o backbone, o neck e o head. O backbone, que pode ser baseado em modelos como VGG, ResNet ou CSPDarknet53, é pré-treinado para prever classes e caixas delimitadoras. O neck, que utiliza PANet, liga mapas de características de diferentes etapas para uma extração de dados abrangente. Por fim, o head, que utiliza configurações do YOLOv3, realiza as deteções finais de objetos. O YOLOv4 também recorre a técnicas do «conjunto de vantagens gratuitas», como o aumento de dados Mosaic e a regularização DropBlock, otimizando ainda mais a velocidade e a precisão.
«Conjunto de vantagens gratuitas» refere-se a métodos que melhoram a precisão do YOLOv4 durante o treino sem aumentar o custo da inferência. Estas técnicas incluem várias formas de aumento de dados, como distorções fotométricas (ajuste do brilho, contraste, etc.) e distorções geométricas (redimensionamento, recorte, inversão e rotação). Ao aumentar a variabilidade das imagens de entrada, estes aumentos ajudam o YOLOv4 a generalizar melhor para diferentes tipos de imagens, melhorando assim a sua robustez e precisão sem comprometer o desempenho em tempo real.
O YOLOv4 foi concebido para otimizar a velocidade e a precisão, o que o torna ideal para tarefas de deteção de objetos em tempo real que exigem um desempenho rápido e fiável. Funciona de forma eficiente em GPUs convencionais e precisa de apenas uma para o treino e a inferência. Isto torna-o acessível e prático para várias aplicações, desde sistemas de recomendação até à gestão autónoma de processos, reduzindo a necessidade de configurações de hardware extensas e tornando a deteção de objetos em tempo real uma solução económica.
Para começares a usar o YOLOv4, visita o repositório oficial do YOLOv4 no GitHub. Segue as instruções de instalação fornecidas no ficheiro README, que normalmente incluem clonar o repositório, instalar as dependências e configurar as variáveis de ambiente. Depois da instalação, podes treinar o modelo preparando o conjunto de dados, configurando os parâmetros do modelo e seguindo as instruções de utilização fornecidas. Como a Ultralytics não dá suporte ao YOLOv4 atualmente, recomendamos que consultes diretamente o GitHub do YOLOv4 para obteres as orientações mais recentes e detalhadas.