EfficientDet vs. YOLOv10: A evolução da eficiência da deteção de objectos
No panorama em rápida evolução da visão computacional, a procura do equilíbrio ideal entre a eficiência computacional e a precisão da deteção é constante. Duas arquitecturas que definiram as suas respectivas eras são a EfficientDet, uma família de modelos escaláveis da Google Research, e a YOLOv10o mais recente detetor de ponta a ponta em tempo real dos investigadores da Universidade de Tsinghua.
Esta comparação explora as nuances técnicas de ambos os modelos, examinando a forma como a filosofia de conceção moderna do YOLOv10 melhora os conceitos fundamentais introduzidos pelo EfficientDet. Analisaremos as suas arquitecturas, métricas de desempenho e adequação à implementação no mundo real.
Origens e visão geral do modelo
A compreensão do contexto histórico destes modelos permite apreciar os saltos tecnológicos registados nos últimos anos.
EfficientDet
O EfficientDet foi introduzido no final de 2019, com o objetivo de resolver a ineficiência dos modelos de deteção de objetos de escala. Propôs 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 Brain
- Data: 2019-11-20
- Arxiv:EfficientDet: Deteção de Objectos Escalável e Eficiente
- GitHub:google
YOLOv10
Lançado em maio de 2024, YOLOv10 ultrapassa os limites da deteção em tempo real ao eliminar a necessidade de Supressão Não MáximaNMS) durante o pós-processamento, resultando numa latência mais baixa e numa implementação simplificada.
- 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
Análise Arquitetural Detalhada
A principal diferença entre estes modelos reside na sua abordagem à fusão de caraterísticas e ao pós-processamento.
EfficientDet: Escalonamento composto e BiFPN
O EfficientDet é construído sobre a espinha dorsal do EfficientNet. A sua caraterística definidora é a Rede de Pirâmide de Caraterísticas Bi-direcional (BiFPN). Ao contrário das FPNs tradicionais que somam caraterísticas de diferentes escalas, a BiFPN introduz pesos aprendíveis para enfatizar caraterísticas mais importantes durante a fusão. Também adiciona caminhos de cima para baixo e de baixo para cima para facilitar um melhor fluxo de informação.
Apesar da sua eficiência teórica em termos de FLOPs (Floating Point Operations per Second), a utilização intensiva de convoluções separáveis em profundidade e a complexa estrutura BiFPN podem, por vezes, conduzir a um menor rendimento no hardware GPU em comparação com arquitecturas mais simples.
YOLOv10: Deteção de ponta a ponta NMS
YOLOv10 introduz uma mudança de paradigma ao eliminar a dependência do NMS. Os detectores tradicionais em tempo real geram inúmeras previsões redundantes que devem ser filtradas, criando um gargalo de latência. YOLOv10 emprega atribuições duplas consistentes durante o treinamento: uma cabeça um-para-muitos para sinais de supervisão ricos e uma cabeça um-para-um para inferência precisa e NMS.
Além disso, YOLOv10 utiliza uma conceção de modelo holística orientada para a eficiência e a precisão. Isto inclui cabeças de classificação leves, redução da amostragem desacoplada de canais espaciais e conceção de blocos orientados para a classificação, assegurando que cada parâmetro contribui eficazmente para o desempenho do modelo.
A vantagem da inferência NMS
A Supressão Não MáximaNMS) é um passo de pós-processamento utilizado para filtrar caixas delimitadoras sobrepostas. É sequencial e computacionalmente dispendioso, variando frequentemente de velocidade em função do número de objectos detectados. Ao conceber uma arquitetura que prevê naturalmente uma caixa por objeto (de ponta a ponta), YOLOv10 estabiliza a latência da inferência, tornando-a altamente previsível para aplicações de IA de ponta.
Análise de Desempenho: Velocidade vs. Precisão
Ao comparar o desempenho, YOLOv10 demonstra vantagens significativas no hardware moderno, particularmente nas GPUs. Enquanto o EfficientDet foi otimizado para FLOPs, YOLOv10 é otimizado para latência e taxa de transferência reais.
| 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 |
| 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 Conclusões
- LatênciaGPU : YOLOv10 oferece uma redução drástica no tempo de inferência. Por exemplo, o YOLOv10b atinge um mAP mais elevado (52,7) do que o EfficientDet-d6 (52,6), sendo mais de 13 vezes mais rápido numa GPU T4 (6,54ms vs 89,29ms).
- Eficiência dos parâmetros: Os modelos YOLOv10 requerem geralmente menos parâmetros para uma precisão comparável. A variante YOLOv10n é extremamente leve (2,3M params), tornando-a ideal para implementações móveis.
- Precisão: No extremo superior, o YOLOv10x atinge um mAP de última geração de 54,4, ultrapassando a maior variante EfficientDet-d7, mantendo uma fração da latência.
Eficiência da formação e facilidade de utilização
Um dos factores mais críticos para os programadores é a facilidade de integração destes modelos nos fluxos de trabalho existentes.
Benefícios do ecossistema Ultralytics
YOLOv10 está integrado no ecossistema Ultralytics , o que proporciona uma vantagem significativa em termos de facilidade de utilização e manutenção. Os utilizadores beneficiam de uma APIPython unificada que normaliza a formação, a validação e a implementação em diferentes gerações de modelos.
- API simples: Treine um modelo em 3 linhas de código.
- Documentação: Guias e exemplos abrangentes.
- Comunidade: Uma comunidade vasta e ativa que fornece apoio e actualizações.
- Eficiência de memória: Os modelos Ultralytics YOLO são optimizados para uma menor utilização de memória CUDA durante o treino, em comparação com arquitecturas mais antigas ou modelos baseados em transformadores pesados.
Exemplo de código
O treino YOLOv10 com o Ultralytics é simples. A estrutura lida automaticamente com o aumento de dados, a afinação de hiperparâmetros e o registo.
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Train the model on your custom dataset
# efficiently using available GPU resources
model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16)
# Run inference on an image
results = model("path/to/image.jpg")
Em contrapartida, a reprodução dos resultados do EfficientDet exige frequentemente configurações complexas TensorFlow ou versões específicas das bibliotecas AutoML, que podem ser menos fáceis de utilizar para uma prototipagem rápida.
Casos de Uso Ideais
Ambos os modelos têm os seus méritos, mas os seus domínios de aplicação ideais diferem com base nas suas caraterísticas arquitectónicas.
YOLOv10: Aplicações em tempo real e de ponta
Devido ao seu design NMS e à baixa latência, YOLOv10 é a melhor escolha para tarefas sensíveis ao tempo.
- Sistemas autónomos: Crítico para carros autónomos e drones, onde decisões com uma latência de milissegundos evitam acidentes.
- Fabrico: Controlo de qualidade a alta velocidade em correias transportadoras onde os objectos se movem rapidamente.
- Retalho inteligente: Gestão de inventário em tempo real e análise de clientes utilizando dispositivos periféricos.
- Aplicações móveis: O tamanho compacto do YOLOv10n permite uma implementação fácil em dispositivos iOS e Android através de CoreML ou TFLite.
EfficientDet: Sistemas Académicos e Legados
O EfficientDet continua a ser relevante em contextos específicos:
- CPUs com recursos limitados: As variantes menores do EfficientDet (d0, d1) são altamente otimizadas para regimes de baixo FLOP, às vezes com bom desempenho em hardware mais antigo CPU.
- Linhas de base de investigação: Serve como uma excelente linha de base para a investigação académica que compara as leis de escala em redes neuronais.
- Pipelines existentes: As organizações com pipelines TensorFlow legados podem achar mais fácil manter as implantações existentes do EfficientDet em vez de migrar.
Resumo dos pontos fortes e fracos
YOLOv10
- Forças:
- NMS: A verdadeira implantação de ponta a ponta simplifica a integração.
- Equilíbrio de desempenho: equilíbrio incomparável entre velocidade e precisão em GPUs.
- Versatilidade: Capaz de lidar eficazmente com diversas tarefas de deteção.
- Bem mantido: Apoiado pelo ecossistema Ultralytics com actualizações frequentes.
- Fraquezas:
- Sendo uma arquitetura mais recente, pode ter menos anos de testes de estabilidade a longo prazo em comparação com os modelos da era de 2019, embora a rápida adoção atenue este aspeto.
EfficientDet
- Forças:
- Escalabilidade: O método de escalonamento composto é teoricamente elegante e eficaz.
- Eficiência dos parâmetros: Boa relação precisão/parâmetro para o seu tempo.
- Fraquezas:
- Inferência lenta: O uso intenso de convoluções em profundidade é frequentemente mais lento em GPUs do que as convoluções padrão do YOLO.
- Complexidade: O BiFPN acrescenta complexidade arquitetónica que pode ser mais difícil de depurar ou otimizar para aceleradores de hardware personalizados.
Conclusão
Enquanto o EfficientDet foi uma arquitetura pioneira que introduziu conceitos importantes no escalonamento de modelos, YOLOv10 representa o padrão moderno para a deteção de objectos. A mudança para arquitecturas de ponta a ponta NMS permite que YOLOv10 ofereça um desempenho superior que é crucial para as actuais aplicações em tempo real.
Para programadores e investigadores que procuram criar sistemas de visão robustos e de elevado desempenho, YOLOv10-e o ecossistema Ultralytics mais amplo - oferece uma combinação atraente de velocidade, precisão e experiência do desenvolvedor. A capacidade de treinar, exportar e implantar modelos sem problemas usando uma plataforma unificada reduz significativamente o tempo de colocação no mercado.
Os interessados nos mais recentes avanços absolutos devem também explorar Ultralytics YOLO11que aperfeiçoa ainda mais estas capacidades para uma gama ainda mais vasta de tarefas de visão por computador, incluindo segmentação, estimativa de pose e deteção orientada de objectos.
Explore Outras Comparações
Para tomar a decisão mais informada, considere a possibilidade de rever estas comparações técnicas relacionadas: