Link to this sectionYOLOv4: Deteção de objetos de alta velocidade e precisão#
Bem-vindo à página de documentação da 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 concebido para proporcionar o equilíbrio ideal entre velocidade e precisão, tornando-o uma excelente escolha para muitas aplicações.
Diagrama da arquitetura YOLOv4. Apresenta o design de rede complexo do YOLOv4, incluindo os componentes backbone, neck e head, e as suas camadas interligadas para uma deteção de objetos em tempo real ideal.
Link to this sectionIntrodução#
YOLOv4 significa You Only Look Once version 4. É um modelo de deteção de objetos em tempo real desenvolvido para resolver as limitações de versões anteriores do YOLO, como o YOLOv3 e outros modelos de deteção de objetos. Ao contrário de outros detetores de objetos baseados em redes neuronais convolucionais (CNN), o YOLOv4 é aplicável não só a sistemas de recomendação, mas também à gestão de processos autónomos e à redução de intervenção humana. O seu funcionamento em unidades de processamento gráfico (GPUs) convencionais permite uma utilização em massa a um preço acessível, e foi concebido para funcionar em tempo real num GPU convencional, exigindo apenas um para o treino.
Link to this sectionArquitetura#
O YOLOv4 utiliza várias funcionalidades 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), ativação Mish, aumento de dados Mosaic, regularização DropBlock e perda CIoU. Estas funcionalidades são combinadas para alcançar resultados de última geração.
Um detetor de objetos típico é composto por várias partes, incluindo a entrada, o backbone, o pescoço e a cabeça. O backbone do YOLOv4 é pré-treinado no ImageNet e é utilizado para prever classes e bounding boxes de objetos. O backbone pode ser proveniente de vários modelos, incluindo VGG, ResNet, ResNeXt ou DenseNet. A parte do pescoço do detetor é utilizada para recolher feature maps de diferentes estágios e inclui normalmente vários caminhos ascendentes e descendentes. A parte da cabeça é o que é usado para fazer as deteções e classificações finais de objetos.
Link to this sectionBag of Freebies#
O YOLOv4 utiliza também 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 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 (ajustar o brilho, contraste, matiz, saturação e ruído de uma imagem) e distorções geométricas (adicionar escalas, cortes, inversões e rotações aleatórias). Estas técnicas ajudam o modelo a generalizar melhor para diferentes tipos de imagens.
Link to this sectionFuncionalidades e Desempenho#
O YOLOv4 foi concebido para uma velocidade e precisão ideais na deteção de objetos. A arquitetura do YOLOv4 inclui a CSPDarknet53 como backbone, PANet como pescoço e YOLOv3 como detection head. Este design permite ao YOLOv4 realizar a deteção de objetos a uma velocidade impressionante, tornando-o adequado para aplicações em tempo real. O YOLOv4 também se destaca na precisão, alcançando resultados de última geração em benchmarks de deteção de objetos como o COCO.
Quando comparado com outros modelos da família YOLO, como o YOLOv5 e o YOLOv7, o YOLOv4 mantém uma posição forte no equilíbrio entre velocidade e precisão. Embora 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.
Link to this sectionExemplos de uso#
O YOLOv4 é um modelo baseado em Darknet e não é suportado nativamente pelo pacote Python da Ultralytics: não existem pesos pré-treinados yolov4.pt publicados em ultralytics/assets nem YAMLs ultralytics/cfg/models/v4/. Esta página é mantida como referência arquitetural. Os utilizadores interessados em executar o YOLOv4 devem consultar diretamente o repositório GitHub do YOLOv4 para obter instruções de instalação e utilização.
Aqui tens uma breve visão geral dos passos típicos que poderás seguir para usar o YOLOv4:
-
Visita o repositório GitHub do YOLOv4: https://github.com/AlexeyAB/darknet.
-
Segue as instruções fornecidas no ficheiro README para a instalação. Isto envolve, tipicamente, clonar o repositório, instalar as dependências necessárias e configurar quaisquer variáveis de ambiente necessárias.
-
Assim que a instalação estiver concluída, podes treinar e usar o modelo conforme as instruções de utilização fornecidas no repositório. Isto envolve, habitualmente, preparar o teu conjunto de dados, configurar os parâmetros do modelo, treinar o modelo e depois usar o modelo treinado para realizar a deteção de objetos.
Tem em atenção que os passos específicos podem variar dependendo do teu 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 GitHub do YOLOv4.
Para treino e inferência dentro do framework Ultralytics, vê o YOLO11 ou o YOLO26.
Link to this sectionConclusão#
O YOLOv4 é um modelo de deteção de objetos poderoso e eficiente que estabelece um equilíbrio entre velocidade e precisão. A sua utilização de funcionalidades únicas e técnicas de "bag of freebies" durante o treino permite-lhe ter um desempenho excelente em tarefas de deteção de objetos 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, incluindo sistemas de vigilância, veículos autónomos e automação industrial.
Para quem pretende implementar a deteção de objetos nos seus projetos, o YOLOv4 continua a ser um forte concorrente, especialmente quando o desempenho em tempo real é uma prioridade. Embora a Ultralytics se foque atualmente em suportar versões mais recentes do YOLO, como o YOLO11 e o YOLO26, as inovações arquiteturais introduzidas no YOLOv4 influenciaram o desenvolvimento destes modelos mais tardios.
Link to this sectionCitações e Agradecimentos#
Gostaríamos de reconhecer os autores do YOLOv4 pelas suas contribuições significativas no campo da deteçã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 tornaram o seu trabalho publicamente disponível, e o codebase pode ser acedido no GitHub. Apreciamos os seus esforços no avanço do campo e em tornar o seu trabalho acessível à comunidade em geral.
Link to this sectionFAQ#
Link to this sectionO que é o YOLOv4 e por que devo usá-lo para deteção de objetos?#
O YOLOv4, que significa "You Only Look Once version 4", é um modelo de deteção de objetos em tempo real de última geração desenvolvido por Alexey Bochkovskiy em 2020. 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árias funcionalidades inovadoras como Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) e Self-adversarial-training (SAT), entre outras, para alcançar resultados de última geração. Se procuras um modelo de alto desempenho que opere eficientemente em GPUs convencionais, o YOLOv4 é uma excelente escolha.
Link to this sectionComo é que a arquitetura do YOLOv4 melhora o seu desempenho?#
A arquitetura do YOLOv4 inclui vários componentes chave: o backbone, o neck e o head. O backbone, que pode ser constituído por modelos como VGG, ResNet ou CSPDarknet53, é pré-treinado para prever classes e caixas delimitadoras. O neck, utilizando PANet, liga mapas de características de diferentes fases para uma extração abrangente de dados. Finalmente, o head, que usa configurações do YOLOv3, realiza as deteções finais de objetos. O YOLOv4 também emprega técnicas de "bag of freebies" como aumento de dados Mosaic e regularização DropBlock, otimizando ainda mais a sua velocidade e precisão.
Link to this sectionO que são "bag of freebies" no contexto do YOLOv4?#
"Bag of freebies" refere-se a métodos que melhoram a precisão de 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 (ajustar 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.
Link to this sectionPor que é que o YOLOv4 é considerado adequado para deteção de objetos em tempo real em GPUs convencionais?#
O YOLOv4 foi concebido para otimizar tanto a velocidade como a precisão, tornando-o ideal para tarefas de deteção de objetos em tempo real que exigem um desempenho rápido e fiável. Opera eficientemente em GPUs convencionais, precisando apenas de um tanto para o treino como para a inferência. Isto torna-o acessível e prático para várias aplicações que vão 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 rentável para deteção de objetos em tempo real.
Link to this sectionComo posso começar com o YOLOv4 se a Ultralytics não o suporta atualmente?#
Para começar com o YOLOv4, deves visitar o repositório GitHub oficial do YOLOv4. Segue as instruções de instalação fornecidas no ficheiro README, que normalmente incluem clonar o repositório, instalar dependências e configurar 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. Uma vez que a Ultralytics não suporta atualmente o YOLOv4, recomenda-se consultar diretamente o GitHub do YOLOv4 para obter as orientações mais atualizadas e detalhadas.