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 YOLOv4Diagrama 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

O 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 perda CIoU. 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 o head. O backbone do YOLOv4 é pré-treinado no ImageNet e é usado para prever classes e caixas delimitadoras 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 mapas de características de diferentes estágios e geralmente inclui vários caminhos de baixo para cima e vários caminhos de cima para baixo. A parte do 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

O 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 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 detecção de objetos como o COCO.

Quando comparado a 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á 2 anos ✏️ Atualizado há 1 mês
glenn-jocherleonnilLaughing-qMatthewNoyceRizwanMunawar

Comentários