YOLOv4: Deteção de objectos precisa e a alta velocidade
Bem-vindo à página de documentação Ultralytics para 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. Apresentando o intrincado design de rede do YOLOv4, incluindo os componentes de espinha dorsal, pescoço e 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 caraterísticas inovadoras que trabalham em conjunto para otimizar o seu desempenho. Estas incluem 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, e CIoU loss. Estas caraterísticas são combinadas para obter resultados topo de gama.
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 caraterísticas de diferentes fases e inclui normalmente vários caminhos ascendentes e vários caminhos descendentes. A parte da cabeça é utilizada para efetuar 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, cortes, inversões e rotações aleatórias). Estas técnicas ajudam o modelo a generalizar-se melhor para diferentes tipos de imagens.
Caraterí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. Esta conceção permite que o YOLOv4 efectue 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 termos de precisão, alcançando resultados de última geração em benchmarks de deteção de objectos.
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 pode seguir para utilizar o YOLOv4:
-
Visite o repositório GitHub do YOLOv4: https://github.com/AlexeyAB/darknet.
-
Siga 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.
-
Uma vez concluída a instalação, pode 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.
Tenha em atenção que os passos específicos podem variar consoante o seu caso de utilização específico e o estado atual do repositório YOLOv4. Por conseguinte, recomenda-se vivamente que consulte 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 potente e eficiente que estabelece um equilíbrio entre velocidade e precisão. A sua utilização de caraterísticas únicas e de técnicas de "saco de brindes" durante a formação 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:
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, o que o torna altamente adequado para aplicações em tempo real. A arquitetura do YOLOv4 incorpora várias caraterísticas inovadoras, como as Weighted-Residual-Connections (WRC), as Cross-Stage-Partial-connections (CSP) e o Self-adversarial-training (SAT), entre outras, para obter resultados de ponta. Se estiver à 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 caraterísticas de diferentes fases para uma extração de dados abrangente. Finalmente, a cabeça, que utiliza 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?
O termo "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, você deve visitar o repositório oficial do YOLOv4 no GitHub. Siga as instruções de instalação fornecidas no arquivo 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, pode treinar o modelo preparando o seu conjunto de dados, configurando os parâmetros do modelo e seguindo as instruções de utilização fornecidas. Uma vez que Ultralytics não suporta atualmente o YOLOv4, recomenda-se que consulte diretamente o GitHub do YOLOv4 para obter as orientações mais actualizadas e detalhadas.