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 stands for You Only Look Once version 4. It is a real-time object detection model developed to address the limitations of previous YOLO versions like YOLOv3 and other object detection models. Unlike other convolutional neural network (CNN) based object detectors, YOLOv4 is not only applicable for recommendation systems but also for standalone process management and human input reduction. Its operation on conventional graphics processing units (GPUs) allows for mass usage at an affordable price, and it is designed to work in real-time on a conventional GPU while requiring only one such GPU for training.

Arquitetura

YOLOv4 makes use of several innovative features that work together to optimize its performance. These include Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic data augmentation, DropBlock regularization, and CIoU loss. These features are combined to achieve state-of-the-art results.

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 um 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.

FAQ

What is YOLOv4 and why should I use it for object detection?

YOLOv4, which stands for "You Only Look Once version 4," is a state-of-the-art real-time object detection model developed by Alexey Bochkovskiy in 2020. It achieves an optimal balance between speed and accuracy, making it highly suitable for real-time applications. YOLOv4's architecture incorporates several innovative features like Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), and Self-adversarial-training (SAT), among others, to achieve state-of-the-art results. If you're looking for a high-performance model that operates efficiently on conventional GPUs, YOLOv4 is an excellent choice.

Como é que a arquitetura do YOLOv4 melhora o seu desempenho?

A arquitetura do YOLOv4 inclui vários componentes-chave: a espinha dorsal, o pescoço e a cabeça. A espinha dorsal, que pode ser constituída por modelos como VGG, ResNet ou CSPDarknet53, é pré-treinada para prever classes e caixas delimitadoras. O pescoço, utilizando a PANet, liga mapas de características de diferentes fases para uma extração de dados abrangente. Finalmente, a cabeça, que utiliza as configurações do YOLOv3, faz as detecções finais de objectos. O YOLOv4 também emprega técnicas de "bag of freebies" como o aumento de dados em mosaico e a regularização DropBlock, optimizando ainda mais a sua velocidade e precisão.

O que é um "saco de brindes" no contexto do YOLOv4?

"Saco de brindes" 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 de 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.

Porque é que o YOLOv4 é considerado adequado para a deteção de objectos em tempo real em GPUs convencionais?

YOLOv4 is designed to optimize both speed and accuracy, making it ideal for real-time object detection tasks that require quick and reliable performance. It operates efficiently on conventional GPUs, needing only one for both training and inference. This makes it accessible and practical for various applications ranging from recommendation systems to standalone process management, thereby reducing the need for extensive hardware setups and making it a cost-effective solution for real-time object detection.

Como posso começar a utilizar o YOLOv4 se Ultralytics não o suporta atualmente?

Para começar a usar 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 a clonagem do repositório, a instalação de dependências e a configuração de 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. Como o Ultralytics não suporta atualmente o YOLOv4, recomenda-se consultar diretamente o GitHub do YOLOv4 para obter as orientações mais atualizadas e detalhadas.


📅 Created 11 months ago ✏️ Updated 17 days ago

Comentários