YOLOv10 vs. EfficientDet: Uma comparação técnica
O panorama da deteção de objectos evoluiu rapidamente nos últimos anos, passando de condutas complexas e de várias fases para arquitecturas simplificadas e em tempo real. Esta comparação explora as diferenças técnicas entre YOLOv10um modelo topo de gama lançado em 2024 por investigadores da Universidade de Tsinghua, e o EfficientDet, uma arquitetura pioneira introduzida pela Google em 2019.
Enquanto o EfficientDet estabeleceu parâmetros de referência para a eficiência dos parâmetros durante o seu tempo, YOLOv10 ultrapassa os limites da latência e da precisão, introduzindo um paradigma de formação NMS que aumenta significativamente a velocidade de inferência. Este guia analisa suas arquiteturas, métricas de desempenho e casos de uso ideais para ajudá-lo a escolher o modelo certo para seus projetos de visão computacional.
YOLOv10: Deteção de objectos em tempo real de ponta a ponta
YOLOv10 representa um salto significativo na série YOLO (You Only Look Once), concentrando-se na eliminação da etapa de pós-processamento de supressão não máximaNMS) que muitas vezes estrangula a velocidade de inferência. Ao empregar atribuições duplas consistentes para treinamento NMS, ele atinge um desempenho competitivo com menor latência em comparação com as iterações anteriores.
Detalhes Técnicos:
- Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organização:Universidade de Tsinghua
- Data: 2024-05-23
- Arxiv:YOLOv10: Deteção de objectos em tempo real de ponta a ponta
- GitHub:THU-MIG/yolov10
Principais caraterísticas arquitectónicas
YOLOv10 introduz uma conceção de modelo holística orientada para a eficiência e a precisão. A principal inovação reside na sua estratégia de atribuição dupla. Durante a formação, o modelo utiliza tanto atribuições um-para-muitos (comuns no YOLOv8) para uma supervisão rica, como atribuições um-para-um para garantir a implementação de ponta a ponta sem NMS.
- FormaçãoNMS: Os detectores tradicionais requerem NMS para filtrar caixas delimitadoras duplicadas, o que introduz latência na inferência. A arquitetura do YOLOv10 permite que o modelo preveja exatamente uma caixa por objeto durante a inferência, eliminando efetivamente esta sobrecarga.
- Design orientado para a eficiência: O modelo utiliza cabeças de classificação leves e downsampling desacoplado de canal espacial para reduzir o custo computacional (FLOPs) e a contagem de parâmetros.
- Convoluções de núcleo grande: Ao utilizar seletivamente convoluções de profundidade de núcleo grande, YOLOv10 melhora o seu campo recetivo e a sua capacidade de detect pequenos objectos sem um aumento maciço da computação.
Porque é que NMS é importante
A remoção da Supressão Não MáximaNMS) cria um pipeline verdadeiramente de ponta a ponta. Isso é fundamental para aplicações de AI de ponta em que cada milissegundo conta, como nos dispositivos NVIDIA Jetson, garantindo uma latência estável e previsível.
Pontos Fortes
- Velocidade superior: Optimizado para inferência em tempo real, superando significativamente os modelos mais antigos em hardware GPU .
- IntegraçãoUltralytics : Como parte do ecossistema Ultralytics , YOLOv10 beneficia de uma APIPython simples, tornando-o incrivelmente fácil de treinar, validar e implementar.
- Menor uso de memória: A arquitetura eficiente requer menos memória CUDA durante o treino em comparação com detectores baseados em transformadores como RT-DETR.
EfficientDet: Arquitetura Escalável e Eficiente
O EfficientDet, desenvolvido pela equipa Google Brain, foi concebido para otimizar tanto a precisão como a eficiência. Introduziu uma família de modelos (D0-D7) escalados utilizando um método de escalonamento composto que ajusta uniformemente a resolução, a profundidade e a largura.
Detalhes Técnicos:
- Autores: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organização:Google
- Data: 2019-11-20
- Arxiv:EfficientDet: Deteção de Objectos Escalável e Eficiente
- GitHub:google
Saiba mais sobre o EfficientDet
Principais caraterísticas arquitectónicas
O EfficientDet baseia-se na espinha dorsal do EfficientNet e introduz o BiFPN (Bi-diretional Feature Pyramid Network).
- BiFPN: Ao contrário dos FPNs padrão, o BiFPN permite o fluxo de informação bidirecional e utiliza pesos aprendidos para fundir caraterísticas de diferentes escalas. Isto resulta numa melhor representação de caraterísticas multi-escala com menos parâmetros.
- Escalonamento composto: Este método garante que a espinha dorsal, a rede de caraterísticas e as redes de previsão de caixa/classe sejam escaladas em conjunto de forma eficiente. Um modelo D0 é pequeno e rápido para dispositivos móveis, enquanto que um modelo D7 oferece uma precisão de ponta para ambientes com recursos elevados.
Forças e Fraquezas
- Eficiência dos parâmetros: O EfficientDet é conhecido por atingir elevados mAP com relativamente poucos parâmetros e FLOPs.
- Escalabilidade: A gama D0-D7 oferece flexibilidade para diferentes orçamentos computacionais.
- Latência elevada: Apesar das baixas contagens de FLOP, as ligações complexas em BiFPN e as convoluções separáveis em profundidade podem levar a uma maior latência nas GPUs em comparação com as arquitecturas CNN simplificadas dos modelos YOLO .
- Complexidade: A arquitetura é mais difícil de personalizar ou ajustar em comparação com o design simples do Ultralytics YOLOv8 ou YOLOv10.
Análise de desempenho: Velocidade vs. Eficiência
Ao comparar estes dois modelos, a distinção entre a eficiência teórica (FLOPs) e a velocidade prática (Latência) torna-se clara. O EfficientDet é excelente na minimização de FLOPs, mas YOLOv10 domina a velocidade de inferência no mundo real em hardware moderno, como GPUs.
A tabela abaixo demonstra que, embora os modelos EfficientDet sejam compactos, YOLOv10 oferece uma relação custo-benefício muito melhor para aplicações em tempo real. Por exemplo, YOLOv10 fornece um mAP competitivo de 46,7% com uma latência de apenas 2,66 ms numa GPU T4, enquanto o EfficientDet-d3 (47,5% mAP) é quase 7 vezes mais lento, com 19,59 ms.
| 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 |
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
Interpretação
- DominânciaGPU : YOLOv10 utiliza opções de design sensíveis ao hardware que se adaptam bem às arquitecturas GPU , resultando numa taxa de transferência muito superior.
- Paridade de precisão: As estratégias de formação mais recentes permitem que YOLOv10 iguale ou exceda a precisão das variantes muito mais lentas do EfficientDet.
- Implementação: A natureza NMS do YOLOv10 simplifica o processo de exportação para formatos como TensorRT e ONNX, reduzindo a complexidade do pipeline de implantação.
Facilidade de utilização e ecossistema
Um dos factores mais críticos para os programadores é o ecossistema que envolve um modelo. Neste domínio, Ultralytics oferece uma vantagem substancial.
A vantagem Ultralytics
YOLOv10 está integrado no pacote Ultralytics Python , proporcionando uma experiência perfeita desde a anotação de dados até à implementação.
- API simples: Pode carregar, treinar e prever com apenas algumas linhas de código.
- Bem mantido: As actualizações frequentes, o suporte da comunidade e a documentação extensiva garantem que não fica a depurar erros obscuros.
- Eficiência de treinamento: Os modelos Ultralytics são optimizados para uma convergência rápida. Os pesos pré-treinados estão prontamente disponíveis, permitindo uma aprendizagem de transferência eficaz em conjuntos de dados personalizados.
Treinar YOLOv10 com o Ultralytics
O treino de um modelo YOLOv10 no conjunto de dados COCO8 é simples, utilizando a API Ultralytics .
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Em contraste, o EfficientDet depende de repositórios TensorFlow mais antigos ou de implementações PyTorch de terceiros que podem não ter suporte unificado, tornando a integração em pipelines MLOps modernos mais desafiadora.
Casos de Uso Ideais
A escolha entre YOLOv10 e o EfficientDet depende dos seus condicionalismos específicos.
Quando escolher YOLOv10
YOLOv10 é a escolha superior para a maioria das aplicações modernas de visão computacional, particularmente:
- Sistemas autónomos: Os carros autónomos e os drones requerem uma deteção de baixa latência para segurança. A velocidade do YOLOv10 garante tempos de reação rápidos.
- Análise de vídeo: Processamento de fluxos de vídeo de elevado FPS para vigilância de segurança ou monitorização de tráfego.
- Implantação de borda: Implantação em dispositivos incorporados, como Raspberry Pi ou NVIDIA Jetson, onde os recursos são limitados, mas o desempenho em tempo real não é negociável.
Quando escolher o EfficientDet
O EfficientDet continua a ser relevante em cenários de nicho específicos:
- Investigação académica: Se o objetivo for estudar leis de escalonamento de compostos ou princípios de conceção de redes neuronais eficientes.
- Restrições estritas de FLOPs: Em ambientes de hardware extremamente específicos, em que os FLOPs teóricos são o principal fator de estrangulamento e não a latência ou a largura de banda da memória.
Conclusão
Enquanto o EfficientDet foi um marco na conceção de modelos eficientes, YOLOv10 representa o novo padrão para a deteção de objectos de elevado desempenho. A sua inovadora arquitetura NMS oferece uma vantagem decisiva na velocidade de inferência sem comprometer a precisão, tornando-o muito mais prático para a implementação no mundo real.
Além disso, o robusto ecossistemaUltralytics garante que trabalhar com o YOLOv10 é eficiente e fácil de desenvolver. Desde opções de exportação fáceis a guias abrangentes sobre gestão de conjuntos de dados, Ultralytics permite-lhe dar vida aos seus projectos de IA de visão mais rapidamente.
Para aqueles que procuram o que há de mais moderno em termos de versatilidade e desempenho, recomendamos também que explorem Ultralytics YOLO11que se baseia nesses avanços para oferecer recursos de última geração em tarefas de deteção, segmentação e estimativa de pose.