EfficientDet vs. PP-YOLOE+: Uma Comparação Técnica
Na evolução da visão computacional, poucas comparações destacam a mudança na filosofia de design tão claramente como o contraste entre o EfficientDet da Google e o PP-YOLOE+ da Baidu. Enquanto o EfficientDet marcou um marco na eficiência de parâmetros através de escalonamento composto, o PP-YOLOE+ representa a era moderna da deteção de alta velocidade e sem âncoras optimizada para inferência GPU .
Esta análise analisa as suas arquitecturas, métricas de desempenho e aplicações práticas para ajudar os programadores a escolher a ferramenta certa para as suas necessidades específicas de deteção de objectos.
Análise de Desempenho Direta
O panorama do desempenho mudou significativamente entre o lançamento destes dois modelos. O EfficientDet centra-se na minimização de FLOPs (operações de vírgula flutuante) e na contagem de parâmetros, tornando-o teoricamente eficiente. No entanto, o PP-YOLOE+ foi concebido para obter uma velocidade de inferência prática em aceleradores de hardware como GPUs, tirando partido das optimizações TensorRT .
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
Os dados revelam uma visão crítica: enquanto o EfficientDet-d0 é leve, as variantes maiores (d5-d7) sofrem de uma latência significativa. Por outro lado, o PP-YOLOE+l alcança uma precisão média (mAP) comparável ao EfficientDet-d6 (52,9 vs 52,6), mas é executado 10 vezes mais rápido numa GPU T4 (8,36ms vs 89,29ms).
EfficientDet: Eficiência escalável
O EfficientDet foi introduzido pela equipa Google Brain AutoML com o objetivo de quebrar as restrições de eficiência dos detectores anteriores. Foi criado com base na espinha dorsal do EfficientNet, aplicando um método de dimensionamento composto que dimensiona uniformemente a resolução, a profundidade e a largura.
Autores: Mingxing Tan, Ruoming Pang, e Quoc V. Le
Organização:Google
Data: 2019-11-20
Arxiv:1911.09070
GitHub:google
Docs:README
Principais caraterísticas arquitectónicas
- BiFPN (Bidirectional Feature Pyramid Network): Ao contrário das FPNs tradicionais, a BiFPN permite uma fácil fusão de caraterísticas multi-escala. Introduz pesos aprendíveis para aprender a importância de diferentes caraterísticas de entrada, aplicando repetidamente a fusão de caraterísticas multi-escala de cima para baixo e de baixo para cima.
- Escalonamento composto: Um único coeficiente composto $\phi$ controla a largura, a profundidade e a resolução da rede, permitindo uma família de modelos (D0 a D7) que visam diferentes restrições de recursos.
Forças e Fraquezas
- Pontos fortes: Excelente eficiência de parâmetros; eficaz para CPUs de baixo consumo onde os FLOPs são o principal estrangulamento; abordagem de escalonamento altamente estruturada.
- Pontos fracos: As conexões complexas em BiFPN e as convoluções separáveis em profundidade são frequentemente limitadas pela memória em GPUs, levando a uma latência de inferência mais lenta no mundo real, apesar das baixas contagens de FLOP.
Sabia que?
O uso intensivo de convoluções separáveis em profundidade pelo EfficientDet reduz significativamente o número de parâmetros, mas pode levar a uma menor utilização GPU em comparação com as convoluções padrão usadas em modelos como o YOLO.
Saiba mais sobre o EfficientDet
PP-YOLOE+: O desafiador sem âncora
Lançado pela Baidu como parte do ecossistema PaddlePaddle , o PP-YOLOE+ é uma evolução do PP-YOLOv2. Tem como objetivo superar o desempenho da YOLOv5 e da YOLOX, adoptando um mecanismo totalmente livre de âncoras e estratégias de treino avançadas.
Autores: PaddlePaddle Authors
Organização:Baidu
Data: 2022-04-02
Arxiv:2203.16250
GitHub:PaddlePaddle
Docs:PP-YOLOE+ Configs
Principais caraterísticas arquitectónicas
- Design sem âncoras: Ao eliminar as caixas de ancoragem predefinidas, o PP-YOLOE+ simplifica a cabeça de deteção e reduz a carga de afinação dos hiperparâmetros.
- CSPRepResNet: A espinha dorsal utiliza o RepResBlock, que combina os benefícios das conexões residuais durante o treinamento e os re-parametriza em uma estrutura simplificada para inferência.
- TAL (Task Alignment Learning): Uma estratégia avançada de atribuição de etiquetas que alinha dinamicamente a pontuação da classificação e a qualidade da localização.
Forças e Fraquezas
- Pontos fortes: Precisão topo de gama no conjunto de dadosCOCO ; extremamente rápido em hardware TensorRT; design inovador da cabeça.
- Pontos fracos: Fortemente ligado à estrutura PaddlePaddle , o que pode colocar desafios de integração para equipas padronizadas em PyTorch; contagem de parâmetros ligeiramente superior para modelos pequenos em comparação com EfficientDet-d0.
A vantagem Ultralytics : Uma solução unificada
Embora o EfficientDet ofereça uma eficiência teórica e o PP-YOLOE+ forneça uma velocidade bruta, os programadores necessitam frequentemente de uma solução que equilibre o desempenho com a facilidade de utilização e o suporte do ecossistema. É aqui que entra o Ultralytics YOLO11 se destaca.
Ao contrário da natureza especializada dos modelos de comparação, os modelos Ultralytics são concebidos para o fluxo de trabalho moderno de MLOps, oferecendo uma experiência PyTorch nativa que é fácil de treinar e implementar.
Por que escolher o Ultralytics YOLO11?
- Facilidade de uso: Com foco na experiência do programador, Ultralytics permite-lhe passar da instalação à inferência em três linhas de código Python . Não há necessidade de compilar manualmente bibliotecas de operadores complexos ou converter formatos proprietários.
- Versatilidade: Uma única estrutura suporta a deteção de objectos, a segmentação de instâncias, a estimativa de pose, a classificação e as caixas delimitadoras orientadas (OBB).
- Equilíbrio de desempenho: YOLO11 optimiza o equilíbrio entre velocidade e precisão, fornecendo capacidades de inferência em tempo real em dispositivos Edge (como o Jetson) e GPUs na nuvem.
- Requisitos de memória: Os modelosYOLO Ultralytics empregam arquiteturas otimizadas que normalmente requerem menos memória CUDA durante o treinamento, em comparação com alternativas baseadas em transformadores ou redes de recursos de várias escalas mais antigas.
- Ecossistema bem mantido: Apoiado por uma vibrante comunidade de código aberto, o repositório recebe actualizações frequentes, garantindo a compatibilidade com as versões mais recentes do PyTorch, CUDA e Python.
- Eficiência de treinamento: Os utilizadores podem aproveitar os pesos pré-treinados prontamente disponíveis para afinar rapidamente os modelos em conjuntos de dados personalizados, reduzindo significativamente os requisitos de dados de treino e os custos de computação.
Exemplo de código: Introdução ao YOLO11
A execução de um modelo topo de gama não deve ser complicada. Eis como é fácil implementar a deteção de objectos utilizando Ultralytics:
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()
Conclusão
A escolha entre o EfficientDet e o PP-YOLOE+ depende em grande medida das suas restrições de hardware e dos requisitos herdados.
- O EfficientDet continua a ser uma referência válida para a investigação sobre o escalonamento eficiente de parâmetros e é adequado para cenários específicos CPU em que a largura de banda da memória é reduzida.
- O PP-YOLOE+ é uma escolha superior para a implementação de GPU de elevado desempenho, oferecendo compensações de latência-precisão significativamente melhores se se sentir confortável a navegar no ecossistema PaddlePaddle .
No entanto, para a grande maioria das aplicações do mundo real - que vão desde a análise de cidades inteligentes à monitorização agrícola - aUltralytics YOLO11 destaca-se como a escolha mais pragmática. Combina as inovações arquitectónicas dos detectores modernos sem âncora com uma experiência de utilizador inigualável, permitindo-lhe concentrar-se na resolução de problemas empresariais em vez de depurar as complexidades da estrutura.
Descubra outros modelos
Para aprofundar a questão, considere a possibilidade de rever estas comparações relacionadas: