YOLOv6.0 vs YOLOv10: Uma comparação técnica detalhada
A seleção do modelo de visão computacional ideal é fundamental para o sucesso das iniciativas de IA, equilibrando factores como a latência da inferência, a precisão e a eficiência computacional. Esta comparação técnica abrangente examina duas arquitecturas de deteção de objectos proeminentes: YOLOv6.0, concebida para velocidade industrial, e YOLOv10conhecida pela sua eficiência de ponta a ponta em tempo real. Analisamos as suas inovações arquitectónicas, métricas de referência e casos de utilização ideais para orientar o seu processo de seleção.
YOLOv6.0: Velocidade e precisão de nível industrial
YOLOv6.0, desenvolvido pelo departamento de inteligência de visão da Meituan, é uma estrutura de deteção de objetos de estágio único especificamente otimizada para aplicações industriais. Lançado no início de 2023, ele prioriza designs amigáveis ao hardware para maximizar o rendimento em GPUs e dispositivos de borda, atendendo às rigorosas demandas de inferência em tempo real na fabricação e logística.
- Autores: Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu e Xiangxiang Chu
- Organização:Meituan
- Data: 2023-01-13
- Arxiv:https://arxiv.org/abs/2301.05586
- GitHub:https://github.com/meituan/YOLOv6
- Documentos:https://docs.ultralytics.com/models/yolov6/
Arquitetura e Principais Características
YOLOv6.0 introduz um "Full-Scale Reloading" da sua arquitetura, incorporando várias técnicas avançadas para melhorar a extração de caraterísticas e a velocidade de convergência:
- Backbone de Reparametrização Eficiente: Emprega um backbone com reconhecimento de hardware que permite que estruturas de treinamento complexas sejam simplificadas em camadas de inferência mais rápidas, otimizando FLOPS sem sacrificar a precisão.
- Concatenação bidirecional (BiC): O design do pescoço utiliza BiC para melhorar os sinais de localização, assegurando uma melhor fusão de caraterísticas em diferentes escalas.
- Treinamento auxiliado por âncora (AAT): Embora principalmente sem âncoras, YOLOv6.0 reintroduz ramos auxiliares baseados em âncoras durante o treinamento para estabilizar a convergência e aumentar o desempenho.
Forças e Fraquezas
Pontos fortes: YOLOv6.0 destaca-se em cenários que exigem um elevado rendimento. O seu suporte para quantização de modelos permite uma implementação eficaz em plataformas móveis e sistemas incorporados. As variantes "Lite" são particularmente úteis para ambientes CPU.
Pontos fracos: Como um modelo focado estritamente na deteção de objectos, não tem suporte nativo para tarefas mais amplas, como a segmentação de instâncias ou a estimativa de pose, encontradas em estruturas unificadas como YOLO11. Além disso, em comparação com modelos mais recentes, a sua eficiência de parâmetros é inferior, exigindo mais memória para níveis de precisão semelhantes.
Caso de utilização ideal: Automação industrial
YOLOv6.0 é um forte candidato para a automatização do fabrico, em que as câmaras nas linhas de montagem têm de processar rapidamente imagens de alta resolução para detect defeitos ou ordenar artigos.
YOLOv10: A fronteira da eficiência de ponta a ponta
Apresentado por investigadores da Universidade de Tsinghua em maio de 2024, YOLOv10 ultrapassa os limites da família YOLO ao eliminar a necessidade de Supressão Não Máxima (NMS) durante o pós-processamento. Esta inovação posiciona-o como um modelo de próxima geração para aplicações críticas em termos de latência.
- Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organização:Universidade de Tsinghua
- Data: 2024-05-23
- Arxiv:https://arxiv.org/abs/2405.14458
- GitHub:https://github.com/THU-MIG/yolov10
- Documentos:https://docs.ultralytics.com/models/yolov10/
Arquitetura e Principais Características
YOLOv10 adopta uma estratégia de conceção holística orientada para a eficiência e a precisão:
- TreinamentoNMS: Ao utilizar atribuições duplas consistentes (um-para-muitos para treino, um-para-um para inferência), YOLOv10 prevê uma única melhor caixa para cada objeto. Isso elimina a sobrecarga computacional e a variabilidade de latência associadas ao pós-processamento do NMS .
- Conceção holística do modelo: A arquitetura apresenta cabeças de classificação leves e redução da amostragem desacoplada de canais espaciais, o que reduz significativamente os parâmetros do modelo e o custo computacional.
- Conceção de blocos guiada por classificação: Para melhorar a eficiência, o modelo utiliza a conceção de blocos orientados para a classificação para reduzir a redundância nas fases em que o processamento de caraterísticas é menos crítico.
Forças e Fraquezas
Pontos fortes: YOLOv10 oferece uma relação velocidade-precisão superior, atingindo frequentemente valores mais elevados de mAP mais elevado com um número significativamente menor de parâmetros do que os modelos anteriores. A sua integração no ecossistema Ultralytics Python torna-o incrivelmente fácil de treinar e implementar juntamente com outros modelos.
Pontos fracos: Sendo uma entrada relativamente nova, os recursos da comunidade e as ferramentas de terceiros ainda estão a crescer. Tal como YOLOv6, é especializado na deteção, enquanto os utilizadores que necessitam de capacidades multitarefa podem preferir o YOLO11.
Advertência: Avanço na eficiência
A remoção do NMS permite ao YOLOv10 obter uma latência de inferência estável, um fator crucial para sistemas críticos de segurança como os veículos autónomos, em que o tempo de processamento tem de ser determinístico.
Análise de desempenho: Métricas e benchmarks
A tabela a seguir compara o desempenho do YOLOv6.0 e do YOLOv10 no conjunto de dados COCO . As principais métricas incluem o tamanho do modelo, a precisão média médiamAP) e a velocidade de inferência na CPU e na GPU.
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
| 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 |
Principais informações
- Eficiência dos parâmetros: YOLOv10 demonstra uma eficiência notável. Por exemplo, o YOLOv10s alcança um mAP mais alto (46,7%) do que YOLOv6.0s (45,0%) enquanto usa menos da metade dos parâmetros (7,2M vs 18,5M). Este espaço de memória reduzido é vital para os dispositivos de IA de ponta.
- Latência: Embora YOLOv6.0n mostre uma latência TensorRT bruto ligeiramente mais rápida (1,17 ms vs 1,56 ms), YOLOv10 elimina a etapa NMS , que geralmente consome tempo adicional em pipelines do mundo real não capturados em tempos de inferência de modelo bruto.
- Precisão: Em quase todas as escalas, YOLOv10 oferece maior precisão, tornando-o uma escolha mais robusta para detetar objectos difíceis em ambientes complexos.
Utilização e implementação
Ultralytics proporciona uma experiência simplificada para a utilização destes modelos. YOLOv10 é suportado de forma nativa na aplicação ultralytics permitindo uma integração perfeita formação e previsão.
Executar YOLOv10 com o Ultralytics
É possível executar YOLOv10 utilizando a API Python com apenas algumas linhas de código. Este facto realça a facilidade de utilização inerente ao ecossistema Ultralytics .
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg", save=True)
# Train the model on a custom dataset
# model.train(data="coco8.yaml", epochs=100, imgsz=640)
Utilizar YOLOv6.0
YOLOv6.0 requer normalmente a clonagem do repositório oficial do Meituan para treino e inferência, uma vez que segue uma estrutura de base de código diferente.
# Clone the YOLOv6 repository
git clone https://github.com/meituan/YOLOv6
cd YOLOv6
pip install -r requirements.txt
# Inference using the official script
python tools/infer.py --weights yolov6s.pt --source path/to/image.jpg
Conclusão: Escolher o modelo correto
Ambos os modelos representam realizações significativas na visão computacional. YOLOv6.0 continua a ser uma escolha sólida para sistemas industriais antigos especificamente optimizados para a sua arquitetura. No entanto, YOLOv10 oferece geralmente um melhor retorno do investimento para novos projectos devido à sua arquitetura NMS, eficiência de parâmetros superior e maior precisão.
Para programadores que procuram o máximo em versatilidade e suporte do ecossistema, Ultralytics YOLO11 é altamente recomendado. YOLO11 não só oferece um desempenho de deteção topo de gama, como também suporta nativamente a estimativa de pose, OBB e classificação num único pacote bem mantido. O ecossistema Ultralytics garante processos de treinamento eficientes, baixo uso de memória e fácil exportação para formatos como ONNX e TensorRTpermitindo-lhe implementar soluções robustas de IA com confiança.
Leitura Adicional
- Explore o versátil YOLO11 para IA de visão multi-tarefa.
- Comparar YOLOv10 vs RT-DETR para deteção baseada em transformador.
- Saiba mais sobre a exportação de modelos para obter a máxima velocidade de implantação.