YOLOv4: Deteção de objetos de alta velocidade e precisão#
Bem-vindo à página de documentação da Ultralytics para o YOLOv4, um detector 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 proporcionar o equilíbrio ideal entre velocidade e precisão, tornando-o uma excelente escolha para muitas aplicações.
Diagrama de arquitetura do YOLOv4. Mostra o design de rede complexo do YOLOv4, incluindo os componentes de backbone, neck e head, e as suas camadas interconectadas para uma deteção de objetos em tempo real ideal.
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 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 a gestão de processos autónoma e redução de intervenção humana. O seu funcionamento em unidades de processamento gráfico (GPUs) convencionais permite a utilização em massa a um preço acessível, sendo concebido para funcionar em tempo real numa GPU convencional, exigindo apenas uma GPU para o treino.
Arquitetura#
O YOLOv4 utiliza várias funcionalidades inovadoras que funcionam em conjunto para otimizar o seu desempenho. Estas incluem Conexões Residuais Ponderadas (WRC), conexões Cross-Stage-Partial (CSP), Normalização por mini-Batch Cruzada (CmBN), treino autoadversário (SAT), ativação Mish, aumento de dados Mosaic, regularização DropBlock e 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 é utilizado para prever classes e caixas delimitadoras de 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 inclui habitualmente vários caminhos de baixo para cima e de cima para baixo. A parte head é utilizada para realizar as deteções e classificações finais de objetos.
Bag of Freebies#
O YOLOv4 também utiliza métodos conhecidos como "bag of freebies", que são técnicas que melhoram a precisão do modelo durante o treino sem aumentar o custo de inferência. O aumento de dados é uma técnica comum de bag of freebies 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 (ajustar o brilho, contraste, matiz, saturação e ruído de uma imagem) e distorções geométricas (adicionar escala aleatória, corte, inversão e rotação). Estas técnicas ajudam o modelo a generalizar melhor para diferentes tipos de imagens.
Funcionalidades e Desempenho#
O YOLOv4 foi concebido para proporcionar uma velocidade e precisão ideais na deteção de objetos. A arquitetura do YOLOv4 inclui o CSPDarknet53 como o backbone, o PANet como o neck e o YOLOv3 como a cabeça de deteção. Este design permite que o YOLOv4 execute a deteção de objetos a uma velocidade impressionante, tornando-o adequado para aplicações em tempo real. O YOLOv4 também se destaca na 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, tais como o YOLOv5 e o YOLOv7, o YOLOv4 mantém uma posição forte 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 é suportado nativamente pelo pacote Python da Ultralytics: não existem pesos pré-treinados yolov4.pt publicados em ultralytics/assets nem arquivos YAML ultralytics/cfg/models/v4/. Esta página é mantida como referência arquitetónica. Os utilizadores interessados em executar o YOLOv4 devem consultar diretamente o repositório GitHub do YOLOv4 para obter instruções de instalação e utilização.
Aqui tens uma breve visão geral dos passos típicos que poderás seguir para usar o YOLOv4:
-
Visita o repositório GitHub do YOLOv4: https://github.com/AlexeyAB/darknet.
-
Segue as instruções fornecidas no ficheiro README para a instalação. Isto envolve, tipicamente, clonar o repositório, instalar as dependências necessárias e configurar quaisquer variáveis de ambiente necessárias.
-
Assim que a instalação estiver concluída, podes treinar e usar o modelo conforme as instruções de utilização fornecidas no repositório. Isto envolve, habitualmente, preparar o teu conjunto de dados, configurar os parâmetros do modelo, treinar o modelo e depois usar o modelo treinado para realizar a deteção de objetos.
Tem em atenção que os passos específicos podem variar dependendo do teu caso de uso específico e do estado atual do repositório YOLOv4. Portanto, é altamente recomendável consultar diretamente as instruções fornecidas no repositório GitHub do YOLOv4.
Para treino e inferência no âmbito da estrutura Ultralytics, consulta o YOLO11 ou o YOLO26.
Conclusão#
O YOLOv4 é um modelo de deteção de objetos potente e eficiente que atinge um equilíbrio entre velocidade e precisão. A sua utilização de funcionalidades exclusivas e técnicas de bag of freebies durante o treino permite-lhe ter um desempenho excelente 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 um forte concorrente, especialmente quando o desempenho em tempo real é uma prioridade. Embora a Ultralytics se concentre atualmente em suportar 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 no 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 do YOLOv4 pode ser encontrado no arXiv. Os autores tornaram o seu trabalho publicamente disponível, e o código-fonte pode ser acedido no GitHub. Agradecemos os seus esforços em fazer avançar o campo e tornar o seu trabalho acessível à comunidade em geral.
FAQ#
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. Atinge um equilíbrio ideal entre velocidade e precisão, tornando-o 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 Cross-Stage-Partial (CSP) e treino autoadversário (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 principais: o backbone, o neck e o head. O backbone, que pode ser constituído por modelos como VGG, ResNet ou CSPDarknet53, é pré-treinado para prever classes e caixas delimitadoras. O neck, utilizando o PANet, conecta mapas de características de diferentes fases para uma extração de dados abrangente. Por fim, o head, que utiliza configurações do YOLOv3, efetua as deteções finais de objetos. O YOLOv4 também emprega técnicas de "bag of freebies", como aumento de dados mosaic e regularização DropBlock, otimizando ainda mais a sua velocidade e precisão.
"Bag of freebies" refere-se a métodos que melhoram a precisão de 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 (ajustar brilho, contraste, etc.) e distorções geométricas (escala, corte, inversão, 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 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 para a inferência. Isto torna-o acessível e prático para várias aplicações, desde sistemas de recomendação até à gestão de processos autónoma, reduzindo assim 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 GitHub oficial do YOLOv4. Segue as instruções de instalação fornecidas no ficheiro README, que normalmente incluem clonar o repositório, instalar dependências e configurar variáveis de ambiente. Uma vez 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. Uma vez que a Ultralytics não suporta atualmente o YOLOv4, recomenda-se consultar diretamente o GitHub do YOLOv4 para obteres a orientação mais atualizada e detalhada.