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.
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.
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.
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.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.