YOLOv4: deteção de objetos de alta velocidade e precisão#
Bem-vindo à página da documentação da Ultralytics sobre o YOLOv4, um detetor de objetos de última geração em tempo real lançado em 2020 por Alexey Bochkovskiy em https://github.com/AlexeyAB/darknet. O YOLOv4 foi concebido para proporcionar o equilíbrio ideal entre velocidade e precisão, sendo uma excelente escolha para muitas aplicações.
Diagrama da arquitetura do YOLOv4. Apresenta o design de rede complexo do YOLOv4, incluindo os componentes backbone, neck e head, bem como as respetivas camadas interligadas para uma deteção de objetos ideal em tempo real.
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 das 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 neuronais convolucionais (CNN), o YOLOv4 não é apenas aplicável a sistemas de recomendação, mas também à gestão autónoma de processos e à redução da intervenção humana. O seu funcionamento em unidades de processamento gráfico convencionais (GPUs) permite uma utilização em larga escala a um preço acessível, e foi concebido para funcionar em tempo real numa GPU convencional, necessitando apenas de uma GPU desse tipo para o treino.
Arquitetura#
YOLOv4 utiliza vários recursos inovadores que trabalham em conjunto para otimizar o seu desempenho. Estes incluem Conexões Residuais Ponderadas (WRC), Conexões Parciais entre Estágios (CSP), mini-Normalização em Lotes Cruzada (CmBN), Treino Autoadversarial (SAT), Ativação Mish, aumento de dados Mosaic, regularização DropBlock e perda CIoU. Estes recursos são combinados para alcançar resultados de vanguarda.
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 é utilizado para prever as classes e as caixas delimitadoras dos objetos. O backbone pode ser proveniente de vários modelos, incluindo VGG, ResNet, ResNeXt ou DenseNet. A parte neck do detetor é utilizada para recolher mapas de características de diferentes fases e normalmente inclui vários caminhos ascendentes e vários caminhos descendentes. A parte head é utilizada 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 desse conjunto, utilizada 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 (ajuste do brilho, contraste, matiz, saturação e ruído de uma imagem) e distorções geométricas (aplicação de 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 proporcionar velocidade e precisão ideais na deteção de objetos. A arquitetura do YOLOv4 inclui CSPDarknet53 como backbone, PANet como neck e YOLOv3 como head de deteção. Este design permite ao YOLOv4 realizar deteção de 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.
Quando comparado 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 algumas vantagens, as inovações arquiteturais do YOLOv4 continuam a torná-lo relevante para muitas aplicações que exigem desempenho em tempo real.
Exemplos de utilização#
O YOLOv4 é um modelo baseado em Darknet e não é suportado nativamente pelo pacote Python da Ultralytics: não existem pesos pré-treinados yolov4.pt publicados em ultralytics/assets nem ficheiros YAML ultralytics/cfg/models/v4/. Esta página é mantida como referência arquitetural. Os utilizadores interessados em executar o YOLOv4 devem consultar diretamente o repositório do YOLOv4 no GitHub para obter instruções de instalação e utilização.
Segue-se uma breve descrição geral dos passos típicos que podes seguir para utilizar o YOLOv4:
-
Visita o repositório do YOLOv4 no GitHub: https://github.com/AlexeyAB/darknet.
-
Segue as instruções fornecidas no ficheiro README para a instalação. Normalmente, isto envolve clonar o repositório, instalar as dependências necessárias e configurar as variáveis de ambiente necessárias.
-
Quando a instalação estiver concluída, podes treinar e utilizar o modelo de acordo com as instruções de utilização fornecidas no repositório. Normalmente, isto envolve preparar o teu conjunto de dados, configurar os parâmetros do modelo, treinar o modelo e, em seguida, utilizar o modelo treinado 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 do YOLOv4. Por isso, recomendamos vivamente que consultes diretamente as instruções fornecidas no repositório do YOLOv4 no GitHub.
Para treino e inferência no âmbito da framework da Ultralytics, consulta o YOLO11 ou o YOLO26.
Conclusão#
O YOLOv4 é um modelo de deteção de objetos potente e eficiente que equilibra velocidade e precisão. A utilização de funcionalidades únicas 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. O YOLOv4 pode ser treinado e utilizado por qualquer pessoa com uma GPU convencional, 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 pretende implementar a deteção de objetos nos seus projetos, o YOLOv4 continua a ser uma opção forte, especialmente quando o desempenho em tempo real é prioritário. Embora a Ultralytics se concentre atualmente no suporte de versões mais recentes do YOLO, como o YOLO11 e o YOLO26, as inovações arquiteturais 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 a área 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 do YOLOv4 pode ser consultado no arXiv. Os autores disponibilizaram publicamente o seu trabalho, e a base de código pode ser acedida no GitHub. Agradecemos os seus esforços para fazer avançar a área e tornar o seu trabalho acessível à comunidade em geral.
Perguntas frequentes#
O YOLOv4, que significa "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 altamente adequado para aplicações em tempo real. A arquitetura do YOLOv4 incorpora várias funcionalidades inovadoras, como conexões residuais ponderadas (WRC), conexões parciais entre fases (CSP) e treino auto-adversarial (SAT), entre outras, para alcançar resultados de última geração. Se procuras um modelo de alto desempenho que funcione de forma eficiente em GPUs convencionais, o YOLOv4 é uma excelente escolha.
A arquitetura do YOLOv4 inclui vários componentes essenciais: o backbone, o neck e o head. O backbone, que pode utilizar 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 fases para uma extração abrangente de dados. Por fim, o head, que utiliza configurações do YOLOv3, realiza as deteções finais dos objetos. O YOLOv4 também utiliza técnicas do "conjunto de vantagens gratuitas", como o aumento de dados Mosaic e a regularização DropBlock, otimizando ainda mais a sua velocidade e precisão.
"Conjunto de vantagens gratuitas" refere-se a métodos que melhoram a precisão do treino do YOLOv4 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 aumentarem 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 seu desempenho em tempo real.
O YOLOv4 foi concebido para otimizar tanto a velocidade como a precisão, tornando-o 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, necessitando apenas de 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-o uma solução económica para a deteção de objetos em tempo real.
Para começares a utilizar o YOLOv4, deves visitar 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 de instalado, podes treinar o modelo preparando o teu conjunto de dados, configurando os parâmetros do modelo e seguindo as instruções de utilização fornecidas. Como a Ultralytics não suporta atualmente o YOLOv4, recomenda-se que consultes diretamente o GitHub do YOLOv4 para obter as orientações mais recentes e detalhadas.