Ir para o conteúdo

YOLOv5 vs YOLOv8: Evolução da deteção de objectos em tempo real

A evolução da deteção de objectos foi significativamente moldada pela família de modelos YOLO (You Only Look Once). Desenvolvida pela Ultralyticsos modelos YOLOv5 e YOLOv8 representam momentos cruciais na história da visão por computador. Enquanto YOLOv5 se estabeleceu como a arquitetura de deteção mais amada e amplamente utilizada do mundo devido à sua simplicidade e velocidade, YOLOv8 introduziu uma estrutura unificada com inovações arquitectónicas de ponta para suportar uma gama mais ampla de tarefas de visão.

A escolha entre estas duas potências depende das restrições específicas do seu projeto, da disponibilidade de hardware e da necessidade de capacidades multitarefa. Este guia fornece uma análise técnica profunda para ajudar os engenheiros e investigadores de visão por computador a tomar a decisão correta.

YOLOv5: O padrão comprovado da indústria

Autor: Glenn Jocher
Organização:Ultralytics
Data: 2020-06-26
GitHubyolov5
Docsyolov5

Lançado em meados de 2020, YOLOv5 revolucionou a acessibilidade da deteção de objectos. Foi o primeiro modelo YOLO implementado nativamente no PyTorchafastando-se da estrutura Darknet usada por seus antecessores. Essa mudança tornou incrivelmente fácil para os desenvolvedores treinar, implantar e experimentar conjuntos de dados personalizados.

YOLOv5 utiliza um backbone CSPDarknet e é um detetor baseado em âncoras. Isto significa que se baseia em caixas de ancoragem predefinidas para prever a localização dos objectos. Embora esta abordagem exija alguma afinação de hiperparâmetros para um desempenho ótimo em conjuntos de dados únicos, continua a ser altamente eficaz. Sua arquitetura enfatiza a velocidade de inferência e a baixa capacidade de memória, tornando-o um favorito para implantação em hardware com recursos limitados, como o Raspberry Pi e as primeiras gerações do NVIDIA Jetson.

Principais pontos fortes do YOLOv5

  • Estabilidade herdada: Anos de utilização ativa em ambientes de produção tornaram-no um dos modelos de visão mais estáveis e sem erros disponíveis.
  • Otimização de borda: Particularmente em CPUs mais antigas e processadores móveis específicos, a arquitetura mais simples do YOLOv5 pode por vezes oferecer uma latência de inferência mais rápida.
  • Vasto ecossistema: Uma enorme comunidade de tutoriais, integrações de terceiros e discussões em fóruns apoia a resolução de problemas e o desenvolvimento.

Saiba mais sobre o YOLOv5.

YOLOv8: A potência multi-tarefas

Autores: Glenn Jocher, Ayush Chaurasia e Jing Qiu
Organização:Ultralytics
Data: 2023-01-10
GitHubultralytics
Docsyolov8

YOLOv8 representa um avanço significativo, concebido não apenas como um detetor de objectos, mas como uma estrutura abrangente para segmentação de imagens, estimativa de pose, classificação e deteção de caixas delimitadoras orientadas (OBB).

Arquitecturalmente, YOLOv8 passa para um design sem âncoras com uma cabeça desacoplada, separando as tarefas de objetividade, classificação e regressão. Também introduz o módulo C2f (Cross Stage Partial BottleNeck com 2 convoluções), que substitui o módulo C3 encontrado no YOLOv5. O módulo C2f melhora o fluxo de gradiente e a fusão de caraterísticas, permitindo que o modelo aprenda padrões mais complexos sem um aumento maciço do custo computacional.

Principais pontos fortes da YOLOv8

  • Precisão de última geração: Atinge consistentemente pontuações mAP (precisão média média) mais elevadas em conjuntos de dados COCO e personalizados em comparação com o YOLOv5.
  • Deteção sem âncoras: Elimina a necessidade de calcular ou ajustar caixas de ancoragem, simplificando o pipeline de treino e melhorando a generalização em objectos de proporções invulgares.
  • Versatilidade: A capacidade de alternar entre deteção, segmentação e estimativa de pose utilizando a mesma API reduz significativamente o tempo de desenvolvimento de projectos complexos.

Saiba mais sobre o YOLOv8.

Mergulho técnico profundo: Arquitetura e desempenho

A transição do YOLOv5 para o YOLOv8 é marcada por várias alterações "sob o capô" que impulsionam os ganhos de desempenho.

Mudanças arquitectónicas

A diferença mais notável é a cabeça de deteção. YOLOv5 utiliza uma cabeça acoplada em que a classificação e a localização partilham caraterísticas. YOLOv8 emprega um cabeçote desacoplado, permitindo que a rede ajuste os pesos de forma independente para identificar o que é um objeto e onde ele está. Isso normalmente leva a uma melhor convergência e maior precisão.

Além disso, a evolução da espinha dorsal de C3 para C2f permite ao YOLOv8 captar informações mais ricas sobre o gradiente. Embora isto torne a arquitetura ligeiramente mais complexa, Ultralytics optimizou a implementação para garantir que a eficiência da formação se mantém elevada.

Métricas de Desempenho

Quando se comparam os modelos no conjunto de dadosCOCO padrão, YOLOv8 demonstra rácios de precisão-computação superiores.

Modelotamanho
(pixels)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT10
(ms)
parâmetros
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

Conforme ilustrado, YOLOv8n (Nano) alcança um mAP de 37,3, praticamente igualando o YOLOv5s (Small) maior, que obtém 37,4, mas com significativamente menos FLOPs. Essa eficiência é fundamental para os aplicativos modernos de IA de borda.

Metodologias de Treinamento e Ecossistema

Uma das caraterísticas que definem os modelos Ultralytics é o enfoque na experiência do programador. Ambos os modelos beneficiam do abrangente ecossistema Ultralytics , mas são acedidos de forma ligeiramente diferente.

Facilidade de utilização e API

YOLOv8 introduziu o ultralytics Python , um CLI unificado e uma interface Python . Este pacote gere eficazmente as dependências e fornece uma API consistente para formação, validação, e previsão. Curiosamente, o moderno ultralytics O pacote também pode carregar e executar modelos YOLOv5 , fazendo a ponte entre as gerações.

from ultralytics import YOLO

# Load a YOLOv8 model (Official)
model_v8 = YOLO("yolov8n.pt")

# Load a YOLOv5 model (Legacy support via Ultralytics package)
model_v5 = YOLO("yolov5nu.pt")

# Training is identical for both
results = model_v8.train(data="coco8.yaml", epochs=100)

Memória e eficiência

Em comparação com modelos baseados em transformadores como o RT-DETRtanto YOLOv5 como YOLOv8 são excecionalmente eficientes em termos de memória. Os transformadores requerem frequentemente uma memória CUDA substancial e tempos de formação mais longos para convergir. Em contraste, os modelosYOLO Ultralytics são optimizados para serem executados em GPUs de nível de consumidor e até mesmo em CPUs, democratizando o acesso à IA de alto desempenho.

Ecossistema integrado

Ambos os modelos são totalmente compatíveis com o Ultralytics HUB, permitindo a gestão perfeita de conjuntos de dados, a visualização de modelos e a implementação com um clique em dispositivos reais.

Casos de Uso Ideais

A seleção do modelo certo depende frequentemente do ambiente específico em que o modelo será implementado.

Quando escolher YOLOv5

YOLOv5 continua a ser uma excelente escolha para:

  • Sistemas legados: Atualização dos pipelines existentes em que a infraestrutura já está construída em torno da arquitetura YOLOv5 .
  • Hardware específico do Edge: Alguns drivers NPU (Neural Processing Unit) mais antigos têm suporte altamente optimizado especificamente para a arquitetura YOLOv5 .
  • Latência ultrabaixa: Em cenários em que cada milissegundo de inferência CPU conta, o cabeçote acoplado mais simples do YOLOv5n pode, às vezes, oferecer uma vantagem de velocidade bruta sobre o v8n.

Quando escolher YOLOv8

YOLOv8 é a escolha recomendada para:

  • Novos desenvolvimentos: Para iniciar um projeto hoje, YOLOv8 (ou a versão mais recente YOLO11) oferece um caminho mais seguro para o futuro.
  • Tarefas complexas: Aplicações que requerem segmentação de instâncias (por exemplo, análise de células médicas) ou deteção de pontos-chave (por exemplo, análise desportiva).
  • Requisitos de elevada precisão: Cenários em que a falta de uma deteção é crítica, como nos sistemas de segurança de veículos autónomos ou na vigilância de segurança.

Conclusão

Tanto YOLOv5 como YOLOv8 são testemunhos do compromisso da Ultralytics com a inovação de código aberto. YOLOv5 continua sendo uma lenda no campo - confiável, rápido e com amplo suporte. No entanto, YOLOv8 melhora essa base com avanços arquitetônicos que oferecem maior precisão e versatilidade sem sacrificar a facilidade de uso que os desenvolvedores esperam.

Para a maioria dos novos projectos, recomendamos que aproveite os avanços do YOLOv8 ou que actualize para a versão mais recente do YOLO11que aperfeiçoa ainda mais estes conceitos para obter o melhor equilíbrio entre velocidade e precisão.

Explore Outros Modelos

Se estiver interessado em explorar o que há de mais recente em tecnologia de deteção, considere a possibilidade de investigar:

  • YOLO11: A mais recente evolução, oferecendo um processamento mais rápido e uma extração de caraterísticas melhorada em relação ao YOLOv8.
  • RT-DETR: Um modelo baseado em transformador que oferece alta precisão para aplicações em tempo real, ideal quando a memória GPU é menos restritiva.

Comentários