Ultralytics YOLOv10 . YOLOv5: Evolução da deteção de objetos em tempo real
Escolher o modelo certo de deteção de objetos envolve equilibrar a eficiência arquitetónica, as restrições de implementação e o suporte da comunidade. Esta comparação abrangente explora as diferenças técnicas entre YOLOv10, um avanço académico na detecção de ponta a ponta, e YOLOv5, o lendário padrão da indústria que redefiniu a facilidade de uso na visão computacional.
Ambos os modelos representam avanços significativos na YOLO . Enquanto YOLOv5 o padrão ouro para experiência do utilizador e confiabilidade, YOLOv10 os limites da latência ao remover a supressão não máxima (NMS) do pipeline de inferência. Para os desenvolvedores que buscam o que há de mais moderno em velocidade e arquitetura ponta a ponta, o recém-lançado Ultralytics se baseia nesses fundamentos com otimização superior para dispositivos de ponta.
Comparação de Métricas de Desempenho
A tabela abaixo destaca as diferenças de desempenho entre as duas arquiteturas. YOLOv10 oferece maior precisão (mAP) e elimina NMS , enquanto YOLOv5 uma opção altamente competitiva devido ao seu amplo suporte à implementação e maturidade.
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| 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 |
YOLOv10: O Inovador End-to-End
YOLOv10 uma mudança de paradigma ao eliminar a necessidade de supressão não máxima (NMS) durante o pós-processamento. Isso permite uma implementação verdadeiramente completa, reduzindo a latência e a complexidade da inferência.
Principais Características Arquitetônicas
- TreinamentoNMS: Utiliza atribuições duplas consistentes para treinamento NMS, permitindo que o modelo preveja diretamente caixas delimitadoras distintas.
- Design de eficiência holística: otimiza vários componentes (como a espinha dorsal e o pescoço) para reduzir a redundância computacional.
- Downsampling com desacoplamento espacial-canal: melhora a retenção de informações durante a redução da escala do mapa de características.
- Projeto de blocos orientado por classificação: adapta os estágios dos blocos para reduzir a redundância com base na análise intrínseca da classificação.
Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
Organização:Universidade de Tsinghua
Data: 23/05/2024
Links:Arxiv | GitHub
Latência de ponta a ponta
Ao remover NMS, YOLOv10 reduz YOLOv10 a variação de inferência. Em YOLO padrão, NMS varia de acordo com o número de objetos detetados, podendo causar picos de latência em cenas com muitos objetos. O tempo de saída consistente YOLOv10 torna-o ideal para sistemas em tempo real com orçamentos de tempo restritos.
YOLOv5: O padrão da indústria
Lançado pela Ultralytics 2020, YOLOv5 o campo não apenas por meio da arquitetura, mas também pela acessibilidade. Ele priorizou uma experiência "pronta para uso" perfeita, exportabilidade robusta e um enorme ecossistema de suporte.
Principais Pontos Fortes
- Ecossistema maduro: documentação extensa, tutoriais e suporte da comunidade facilitam a resolução de problemas.
- Ampla compatibilidade: o suporte à exportação para TFLite, CoreML, ONNX e TensorRT a implementação em praticamente qualquer hardware, desde iOS até TPUs de ponta.
- Versatilidade: Suporte nativo para segmentação de instâncias e classificação de imagens, além de deteção.
- Estabilidade do treino: Conhecido por ser robusto a variações de hiperparâmetros e convergir de forma fiável em diversos conjuntos de dados personalizados.
Autor: Glenn Jocher
Organização:Ultralytics
Data: 26/06/2020
Links:GitHub | Documentação
Comparação Detalhada
Arquitetura e Treinamento
YOLOv10 otimizações semelhantes às do Transformer e distinção avançada por canal para alcançar alta precisão com menos parâmetros. A sua estratégia de "atribuição dupla consistente" permite que ele aprenda correspondências um-para-um durante o treinamento, removendo a NMS .
YOLOv5 uma estrutura clássica CSPDarknet com PANet neck, otimizada para um equilíbrio entre velocidade e precisão. Ele usa detecção baseada em âncora, o que requer um ajuste cuidadoso da caixa de âncora para um desempenho ideal em conjuntos de dados exclusivos, embora seu recurso de evolução de âncora automática lide com isso automaticamente para a maioria dos utilizadores.
Casos de Uso e Aplicações no Mundo Real
Cenários ideais para YOLOv10:
- Multidões de alta densidade: onde NMS diminui o processamento devido a muitas caixas sobrepostas.
- Robótica de baixa latência: onde o tempo de inferência consistente é fundamental para os loops de controlo.
- Investigação académica: Para estudar mecanismos de deteção de ponta a ponta e estratégias de atribuição de rótulos.
Cenários ideais para YOLOv5:
- Implementação móvel: pipelines comprovados para iOS Android iOS usando TFLite CoreML.
- Inspeção industrial: onde a estabilidade e a reprodutibilidade a longo prazo são mais importantes do que mAP de ponta.
- Projetos para iniciantes: o ponto de entrada mais fácil para alunos que estão a aprender visão computacional.
Facilidade de Uso e Ecossistema
YOLOv5 pela sua integração ao Ultralytics . Os utilizadores podem visualizar execuções de treino com Comet , track e implementar modelos de forma integrada. A Ultralytics simplifica ainda mais isso, oferecendo uma interface sem código para gestão de conjuntos de dados e treino de modelos.
Embora YOLOv10 integrado aoPython Ultralytics Python , permitindo uma sintaxe familiar, ele é principalmente uma contribuição acadêmica. Consequentemente, ele pode não receber a mesma frequência de atualizações ou profundidade de manutenção que Ultralytics principais Ultralytics , como o YOLO11 ou o inovador YOLO26.
Exemplos de Código
Ambos os modelos partilham a Ultralytics unificada, facilitando a alternância entre eles para benchmarking.
from ultralytics import YOLO
# Load a pretrained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")
# Train YOLOv10 on a custom dataset
model_v10.train(data="coco8.yaml", epochs=100, imgsz=640)
# Load a pretrained YOLOv5 model (via the v8/v11/26 compatible loader)
model_v5 = YOLO("yolov5nu.pt")
# Train YOLOv5 using the modern Ultralytics engine
model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)
Conclusão: Qual Escolher?
Se a sua prioridade é precisão de última geração e consistência de latência, especialmente em cenas com muita gente, YOLOv10 é uma excelente escolha. As suas inovações arquitetónicas oferecem um vislumbre do futuro da deteção NMS.
No entanto, se necessitar de uma solução testada em batalha com guias de implementação abrangentes, amplo suporte de hardware e estabilidade máxima, YOLOv5 continua a ser uma potência.
Para os programadores que desejam o melhor dos dois mundos —inferência completa NMS, precisão superior e total apoio do Ultralytics — recomendamos fortemente explorar o YOLO26. O YOLO26 incorpora o design NMS pioneiro do YOLOv10 o aprimora com o otimizador MuSGD e funções de perda otimizadas para CPU até 43% mais rápida.
Descubra Mais Modelos
- YOLO11: A geração SOTA anterior, oferecendo excelente versatilidade em todas as tarefas.
- RT-DETR: Um detetor em tempo real baseado em transformador que também remove NMS.
- YOLO26: O modelo mais recente e avançado da Ultralytics, com processamento de ponta a ponta e otimização de borda.