Ir para o conteúdo

YOLOv4: Detecção de Objetos de Alta Velocidade e Precisão

Bem-vindo à página de documentação Ultralytics para o YOLOv4, um detetor 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 projetado para fornecer o equilíbrio ideal entre velocidade e precisão, tornando-o uma excelente escolha para muitas aplicações.

Diagrama da arquitetura YOLOv4 Diagrama da arquitetura YOLOv4. Apresentando o intrincado design de rede do YOLOv4, incluindo os componentes de backbone, neck e head, e as suas camadas interligadas para uma ótima deteção de objetos em tempo real.

Introdução

YOLOv4 significa You Only Look Once versão 4. É um modelo de detecção de objetos em tempo real desenvolvido para superar as limitações das versões anteriores do YOLO, como o YOLOv3, e de outros modelos de detecção de objetos. Ao contrário de outros detectores de objetos baseados em redes neurais convolucionais (CNN), o YOLOv4 não é aplicável apenas a sistemas de recomendação, mas também ao gerenciamento de processos independentes e à redução da intervenção humana. Sua operação em unidades de processamento gráfico (GPUs) convencionais permite o uso em massa a um preço acessível, e ele é projetado para funcionar em tempo real em uma GPU convencional, exigindo apenas uma GPU para o treinamento.

Arquitetura

YOLOv4 utiliza vários recursos inovadores que trabalham juntos para otimizar seu desempenho. Estes 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. Esses recursos são combinados para alcançar resultados de última geração.

Um detector de objetos típico é composto por várias partes, incluindo a entrada, o backbone, o neck e a head. O backbone do YOLOv4 é pré-treinado no ImageNet e é usado para prever classes e bounding boxes de objetos. O backbone pode ser de vários modelos, incluindo VGG, ResNet, ResNeXt ou DenseNet. A parte do neck do detector é usada para coletar feature maps de diferentes estágios e geralmente inclui vários caminhos de baixo para cima e vários caminhos de cima para baixo. A parte da head é o que é usado para fazer as detecções e classificações finais de objetos.

Pacote de Regalias Grátis

YOLOv4 também utiliza métodos conhecidos como "bag of freebies" (pacote de brindes, em tradução livre), que são técnicas que melhoram a precisão do modelo durante o treinamento sem aumentar o custo da inferência. O aumento de dados é uma técnica comum de "bag of freebies" usada na detecçã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 (ajustando o brilho, contraste, matiz, saturação e ruído de uma imagem) e distorções geométricas (adicionando escala, recorte, inversão e rotação aleatórias). Essas técnicas ajudam o modelo a generalizar melhor para diferentes tipos de imagens.

Recursos e Desempenho

YOLOv4 foi projetado para velocidade e precisão ideais na detecção de objetos. A arquitetura do YOLOv4 inclui CSPDarknet53 como backbone, PANet como neck e YOLOv3 como o cabeçalho de detecção. Este design permite que o YOLOv4 execute a detecção de objetos em uma velocidade impressionante, tornando-o adequado para aplicações em tempo real. YOLOv4 também se destaca em precisão, alcançando resultados de última geração em benchmarks de detecção de objetos como COCO.

Quando comparado com outros modelos da família YOLO, como YOLOv5 e 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

Até o momento, a Ultralytics não oferece suporte aos modelos YOLOv4. Portanto, qualquer usuário interessado em usar o YOLOv4 precisará consultar diretamente o repositório YOLOv4 do GitHub para obter instruções de instalação e uso.

Aqui está uma breve visão geral das etapas típicas que você pode seguir para usar o YOLOv4:

  1. Visite o repositório YOLOv4 no GitHub: https://github.com/AlexeyAB/darknet.

  2. Siga as instruções fornecidas no arquivo README para instalação. Isso normalmente envolve clonar o repositório, instalar as dependências necessárias e configurar quaisquer variáveis de ambiente necessárias.

  3. Após a conclusão da instalação, você pode treinar e usar o modelo de acordo com as instruções de uso fornecidas no repositório. Isso geralmente envolve preparar seu conjunto de dados, configurar os parâmetros do modelo, treinar o modelo e, em seguida, usar o modelo treinado para realizar a detecção de objetos.

Por favor, note que as etapas específicas podem variar dependendo do seu 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 YOLOv4 do GitHub.

Lamentamos qualquer inconveniente que isso possa causar e nos esforçaremos para atualizar este documento com exemplos de uso para Ultralytics assim que o suporte para YOLOv4 for implementado.

Conclusão

YOLOv4 é um modelo de detecção de objetos poderoso e eficiente que encontra um equilíbrio entre velocidade e precisão. Seu uso de recursos exclusivos e técnicas de "bag of freebies" durante o treinamento permite que ele tenha um desempenho excelente em tarefas de detecção de objetos em tempo real. YOLOv4 pode ser treinado e usado por qualquer pessoa com uma GPU convencional, tornando-o acessível e prático para uma ampla gama de aplicações, incluindo sistemas de vigilância, veículos autônomos e automação industrial.

Para aqueles que procuram implementar a detecção de objetos em seus projetos, o YOLOv4 continua sendo um forte concorrente, especialmente quando o desempenho em tempo real é uma prioridade. Embora a Ultralytics se concentre atualmente no suporte a versões mais recentes do YOLO, como YOLOv8 e YOLO11, as inovações arquitetônicas introduzidas no YOLOv4 influenciaram o desenvolvimento desses modelos posteriores.

Citações e Agradecimentos

Gostaríamos de agradecer aos autores do YOLOv4 por suas contribuições significativas no campo da detecçã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 disponibilizaram publicamente seu trabalho, e o código pode ser acessado no GitHub. Agradecemos seus esforços em avançar o campo e tornar seu trabalho acessível à comunidade em geral.

FAQ

O que é o YOLOv4 e por que devo usá-lo para detecção de objetos?

O YOLOv4, que significa "You Only Look Once versão 4", é um modelo de detecção de objetos em tempo real de última geração desenvolvido por Alexey Bochkovskiy em 2020. Ele alcança 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ários recursos inovadores, como Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) e Self-adversarial-training (SAT), entre outros, para alcançar resultados de última geração. Se você está procurando um modelo de alto desempenho que opere de forma eficiente em GPUs convencionais, o YOLOv4 é uma excelente escolha.

Como a arquitetura do YOLOv4 aprimora seu desempenho?

A arquitetura do YOLOv4 inclui vários componentes-chave: o backbone, o neck e a head. O backbone, que pode ser modelos como VGG, ResNet ou CSPDarknet53, é pré-treinado para prever classes e bounding boxes. O neck, utilizando PANet, conecta mapas de características de diferentes estágios para uma extração de dados abrangente. Finalmente, a head, que usa configurações do YOLOv3, faz as detecções finais de objetos. O YOLOv4 também emprega técnicas de "bag of freebies", como aumento de dados em mosaico e regularização DropBlock, otimizando ainda mais sua velocidade e precisão.

O que são "bag of freebies" (pacote de brindes) no contexto do YOLOv4?

"Bag of freebies" refere-se a métodos que melhoram a precisão do treinamento do YOLOv4 sem aumentar o custo da inferência. Essas 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 (escalonamento, recorte, inversão, rotação). Ao aumentar a variabilidade das imagens de entrada, esses aumentos ajudam o YOLOv4 a generalizar melhor para diferentes tipos de imagens, melhorando assim sua robustez e precisão sem comprometer seu desempenho em tempo real.

Por que o YOLOv4 é considerado adequado para detecção de objetos em tempo real em GPUs convencionais?

O YOLOv4 foi projetado para otimizar tanto a velocidade quanto a precisão, tornando-o ideal para tarefas de detecção de objetos em tempo real que exigem desempenho rápido e confiável. Ele opera de forma eficiente em GPUs convencionais, necessitando de apenas uma para treinamento e inferência. Isso o torna acessível e prático para várias aplicações, desde sistemas de recomendação até gerenciamento de processos independentes, reduzindo assim a necessidade de configurações de hardware extensivas e tornando-o uma solução econômica para detecção de objetos em tempo real.

Como posso começar com 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 clonar o repositório, instalar as dependências e configurar as variáveis de ambiente. Uma vez instalado, você pode treinar o modelo preparando seu conjunto de dados, configurando os parâmetros do modelo e seguindo as instruções de uso fornecidas. Como a Ultralytics não oferece suporte ao YOLOv4 atualmente, é recomendável consultar diretamente o GitHub do YOLOv4 para obter as orientações mais atualizadas e detalhadas.



📅 Criado há 1 ano ✏️ Atualizado há 3 meses

Comentários