Salta para o conteúdo

YOLOv4: Deteção de objectos precisa e a alta velocidade

Bem-vindo à página de documentação Ultralytics para o YOLOv4, um detetor de objectos 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 da arquitetura do YOLOv4 Diagrama da arquitetura do YOLOv4. Apresenta o intrincado design de rede do YOLOv4, incluindo os componentes da espinha dorsal, do pescoço e da cabeça, e as suas camadas interligadas para uma deteção óptima de objectos em tempo real.

Introdução

YOLOv4 significa You Only Look Once versão 4. Trata-se de um modelo de deteção de objectos em tempo real desenvolvido para resolver as limitações das versões anteriores do YOLO , como o YOLOv3 e outros modelos de deteção de objectos. Ao contrário de outros detectores de objectos baseados em redes neuronais convolucionais (CNN), o YOLOv4 não é apenas aplicável a sistemas de recomendação, mas também à gestão de processos autónomos e à redução de entradas humanas. O seu funcionamento em unidades de processamento gráfico (GPU) convencionais permite uma utilização em massa a um preço acessível, e foi concebido para funcionar em tempo real numa GPU convencional, necessitando apenas de uma GPU para o treino.

Arquitetura

O YOLOv4 utiliza várias características inovadoras que trabalham em conjunto para otimizar o seu desempenho. Estas incluem Ligações-Residuais-Ponderadas (WRC), Ligações-Parciais-Cruzadas (CSP), Normalização de Mini-Lotes-Cruzados (CmBN), Treino Auto-Adversarial (SAT), Ativação de erros, Aumento de dados em mosaico, Regularização DropBlock e Perda CIoU. Estas características são combinadas para obter resultados de última geração.

Um detetor de objectos típico é composto por várias partes, incluindo a entrada, a espinha dorsal, o pescoço e a cabeça. A espinha dorsal do YOLOv4 é pré-treinada no ImageNet e é utilizada para prever classes e caixas delimitadoras de objectos. A espinha dorsal pode ser de vários modelos, incluindo VGG, ResNet, ResNeXt ou DenseNet. A parte do pescoço do detetor é utilizada para recolher mapas de características de diferentes fases e inclui normalmente vários caminhos ascendentes e vários caminhos descendentes. A parte da cabeça é utilizada para fazer as detecções e classificações finais dos objectos.

Saco de brindes

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 da inferência. O aumento de dados é uma técnica comum de "bag of freebies" utilizada na deteção de objectos, 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 (ajustando o brilho, o contraste, a tonalidade, a saturação e o ruído de uma imagem) e distorções geométricas (adicionando escalas aleatórias, recortando, invertendo e rodando). Estas técnicas ajudam o modelo a generalizar-se melhor para diferentes tipos de imagens.

Características e desempenho

O YOLOv4 foi concebido para uma velocidade e precisão óptimas na deteção de objectos. A arquitetura do YOLOv4 inclui a CSPDarknet53 como espinha dorsal, a PANet como pescoço e o YOLOv3 como cabeça de deteção. Este design permite que o YOLOv4 realize a deteção de objectos a uma velocidade impressionante, tornando-o adequado para aplicações em tempo real. O YOLOv4 também se destaca em precisão, alcançando resultados de última geração em benchmarks de deteção de objetos.

Exemplos de utilização

No momento em que este artigo foi escrito, Ultralytics não suporta atualmente os modelos YOLOv4. Por conseguinte, qualquer utilizador interessado em utilizar o YOLOv4 terá de consultar diretamente o repositório GitHub do YOLOv4 para obter instruções de instalação e utilização.

Segue-se uma breve descrição dos passos típicos que poderás seguir para utilizar o YOLOv4:

  1. Visita o repositório GitHub do YOLOv4: https://github.com/AlexeyAB/darknet.

  2. Segue as instruções fornecidas no ficheiro README para a instalação. Normalmente, isso envolve a clonagem do repositório, a instalação das dependências necessárias e a configuração de quaisquer variáveis de ambiente necessárias.

  3. 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 a preparação do conjunto de dados, a configuração dos parâmetros do modelo, o treino do modelo e, em seguida, a utilização do modelo treinado para efetuar a deteção de objectos.

Tem em atenção que os passos específicos podem variar consoante o teu caso de utilização específico e o estado atual do repositório YOLOv4. Por conseguinte, recomenda-se vivamente que consultes diretamente as instruções fornecidas no repositório GitHub do YOLOv4.

Lamentamos qualquer inconveniente que isto possa causar e esforçar-nos-emos por atualizar este documento com exemplos de utilização para Ultralytics assim que o suporte para YOLOv4 for implementado.

Conclusão

O YOLOv4 é um modelo de deteção de objectos poderoso e eficiente que consegue um equilíbrio entre velocidade e precisão. A sua utilização de características únicas e de técnicas de "bag of freebies" durante o treino permite-lhe ter um excelente desempenho em tarefas de deteção de objectos 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.

Citações e agradecimentos

Gostaríamos de agradecer aos autores do YOLOv4 pelas suas contribuições significativas no domínio da deteção de objectos 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 a base de código pode ser acedida no GitHub. Agradecemos os seus esforços para fazer avançar o campo e tornar o seu trabalho acessível à comunidade em geral.



Criado em 2023-11-12, Atualizado em 2024-01-07
Autores: glenn-jocher (6), sergiuwaxmann (1)

Comentários