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 num GPU convencional, necessitando apenas de um GPU para 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 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

O que é o YOLOv4 e porque devo utilizá-lo para a deteção de objectos?

YOLOv4, que significa "You Only Look Once version 4", é um modelo de deteção de objectos em tempo real de última geração desenvolvido por Alexey Bochkovskiy em 2020. Consegue um equilíbrio ótimo entre velocidade e precisão, tornando-o altamente adequado para aplicações em tempo real. A arquitetura do YOLOv4 incorpora várias características inovadoras, como Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) e Self-adversarial-training (SAT), entre outras, para obter resultados de última geração. Se estás à procura de um modelo de alto desempenho que funcione eficientemente em GPUs convencionais, o YOLOv4 é uma excelente escolha.

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?

O YOLOv4 foi concebido para otimizar a velocidade e a precisão, tornando-o ideal para tarefas de deteção de objectos em tempo real que exigem um desempenho rápido e fiável. Funciona eficientemente em GPUs convencionais, necessitando apenas de uma para treino e inferência. Isto torna-o acessível e prático para várias aplicações, desde sistemas de recomendação a gestão de processos autónomos, reduzindo assim a necessidade de configurações de hardware extensas e tornando-o uma solução económica para a deteção de objectos em tempo real.

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.



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

Comentários