YOLOv5 vs YOLOX: Mudanças Arquitetónicas e Métricas de Desempenho
O panorama da deteção de objetos evoluiu rapidamente, com várias arquiteturas a competirem pelo equilíbrio ideal entre a velocidade de inferência e a precisão da deteção. Dois marcos significativos nesta jornada são o YOLOv5, desenvolvido pela Ultralytics, e o YOLOX, um modelo focado na investigação da Megvii. Embora ambos os modelos provenham da linhagem "You Only Look Once", divergem significativamente nas suas filosofias arquitetónicas—especificamente no que diz respeito aos mecanismos de deteção baseados em âncoras versus mecanismos sem âncoras.
Esta comparação explora as especificações técnicas, diferenças arquitetônicas e métricas de desempenho de ambos os modelos para ajudar desenvolvedores e pesquisadores a escolher a ferramenta certa para seus projetos de visão computacional.
Ultralytics YOLOv5: O Padrão de Engenharia
Lançado em 2020, o YOLOv5 rapidamente se tornou o padrão da indústria para detecção de objetos prática. Ao contrário de seus antecessores, que eram principalmente projetos de pesquisa acadêmica, o YOLOv5 foi projetado com foco na usabilidade, facilidade de implantação e desempenho no mundo real. Ele introduziu um fluxo de trabalho simplificado baseado em PyTorch que tornou o treinamento e a implantação de modelos personalizados acessíveis a um público mais amplo.
- Autores: Glenn Jocher
- Organização:Ultralytics
- Data: 2020-06-26
- GitHub:https://github.com/ultralytics/yolov5
- Documentação:https://docs.ultralytics.com/models/yolov5/
YOLOv5 emprega uma arquitetura baseada em âncoras, utilizando anchor boxes predefinidas para prever localizações de objetos. Ele integra um recurso "AutoAnchor" que evolui as formas das âncoras para se ajustarem a conjuntos de dados personalizados antes do treinamento, garantindo uma convergência ideal. O modelo apresenta um backbone CSPNet e um PANet neck, otimizados para extração e agregação rápida de recursos. Sua principal força reside em sua excepcional velocidade de inferência e baixa utilização de memória, tornando-o ideal para computação de borda e aplicações móveis.
YOLOX: O Competidor Sem Anchor
O YOLOX, lançado em 2021 pela Megvii, procurou ultrapassar os limites da família YOLO, adotando um design anchor-free. Esta abordagem elimina a necessidade de anchor boxes predefinidas, prevendo, em vez disso, os centros e tamanhos dos objetos diretamente. Esta mudança teve como objetivo simplificar o processo de design e melhorar a generalização em diversas formas de objetos.
- Autores: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
- Organização:Megvii
- Data: 2021-07-18
- Arxiv:https://arxiv.org/abs/2107.08430
- GitHub:https://github.com/Megvii-BaseDetection/YOLOX
- Documentação:https://yolox.readthedocs.io/en/latest/
O YOLOX introduz uma arquitetura de cabeçalho dissociado, separando as tarefas de classificação e regressão em diferentes ramificações. Teoricamente, isso permite que o modelo aprenda representações de recursos distintos para identificar o que um objeto é versus onde ele está. Além disso, emprega uma estratégia avançada de atribuição de rótulos conhecida como SimOTA (Simplified Optimal Transport Assignment) para atribuir dinamicamente amostras positivas durante o treinamento. Embora essas inovações contribuam para alta precisão, elas geralmente vêm com maior complexidade computacional.
Procurando a Tecnologia Mais Recente?
Embora o YOLOv5 e o YOLOX representem passos significativos na história da visão computacional, o campo se move rapidamente. YOLO11, o modelo mais recente da Ultralytics, oferece precisão e velocidade superiores em comparação com ambos, apresentando uma arquitetura refinada que suporta detecção, segment, estimativa de pose e muito mais.
Análise de Desempenho: Velocidade vs. Precisão
Ao comparar YOLOv5 e YOLOX, a compensação geralmente se concentra na latência de inferência versus precisão absoluta. O YOLOv5 é meticulosamente otimizado para velocidade, principalmente em aceleradores de hardware usando TensorRT e ONNX Runtime. Conforme mostrado nos dados abaixo, os modelos YOLOv5 demonstram latência significativamente menor (maior velocidade) em tamanhos de modelo equivalentes.
| Modelo | tamanho (pixels) | mAPval 50-95 | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Principais Conclusões
- Velocidade de Inferência: YOLOv5 detém uma vantagem decisiva em velocidade. Por exemplo, YOLOv5n atinge uma latência TensorRT de apenas 1,12 ms, tornando-o excepcionalmente adequado para processamento de vídeo de alto FPS em dispositivos de borda como o NVIDIA Jetson. Em contraste, os menores modelos YOLOX carecem de dados de benchmark comparáveis para CPU, e sua latência de GPU é geralmente maior para níveis de precisão semelhantes.
- Precisão (mAP): YOLOX tende a alcançar pontuações de mAP ligeiramente mais altas no dataset COCO, particularmente com suas variantes maiores (YOLOX-x em 51.1 vs YOLOv5x em 50.7). Isso é atribuído ao seu design anchor-free e head desacoplado, que podem lidar melhor com variações de objetos. No entanto, esse ganho marginal geralmente tem o custo de uma sobrecarga computacional significativamente maior (FLOPs).
- Eficiência: Os modelos YOLOv5 geralmente requerem menos FLOPs para uma determinada velocidade de inferência. O design de head acoplado do YOLOv5 é mais amigável ao hardware, permitindo uma execução mais rápida tanto em CPUs quanto em GPUs.
Análise Arquitetural Detalhada
A diferença fundamental reside na forma como cada modelo aborda o problema de detecção.
YOLOv5 (Baseado em Âncoras): O YOLOv5 utiliza um conjunto predefinido de caixas de âncora. Durante o treino, o modelo aprende a ajustar estas caixas para se adequarem aos objetos. Este método depende da correlação entre o tamanho do objeto e o tamanho da célula da grelha.
- Prós: Treinamento estável, metodologia estabelecida, excelente desempenho em conjuntos de dados padrão.
- Contras: Requer ajuste de hiperparâmetros para âncoras em conjuntos de dados exóticos (embora o AutoAnchor do YOLOv5 mitigue isso).
YOLOX (Anchor-Free): O YOLOX trata a detecção de objetos como um problema de regressão de pontos. Ele prevê a distância do centro da célula da grade até os limites do objeto.
- Prós: Reduz o número de parâmetros de design (sem âncoras para ajustar), potencial para melhor generalização em proporções irregulares.
- Contras: Pode ser mais lento para convergir durante o treinamento, e o head desacoplado adiciona camadas que aumentam a latência de inferência.
Experiência do Usuário e Ecossistema
Uma das características mais marcantes do Ultralytics YOLOv5 é o seu ecossistema robusto. Enquanto o YOLOX oferece uma forte base acadêmica, o YOLOv5 oferece uma estrutura pronta para o produto, projetada para desenvolvedores.
Facilidade de Uso
YOLOv5 é conhecido por sua simplicidade "do início ao fim". Desde a anotação de dados até o treinamento e implementação do modelo, o ecossistema Ultralytics agiliza cada etapa. O modelo pode ser carregado com algumas linhas de código e suporta a exportação automática para formatos como TFLite, CoreML e ONNX.
import torch
# Load a pretrained YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Run inference on an image
results = model("https://ultralytics.com/images/zidane.jpg")
# Print results
results.print()
Versatilidade e Manutenção
Os modelos Ultralytics não se limitam apenas à detecção. A framework suporta classificação de imagens e segmentação de instâncias, oferecendo uma API unificada para múltiplas tarefas. Essa versatilidade geralmente não é encontrada em repositórios específicos de pesquisa como o YOLOX, que se concentra principalmente na detecção. Além disso, a manutenção ativa da Ultralytics garante a compatibilidade com as versões mais recentes do PyTorch e CUDA, reduzindo a "obsolescência do código" ao longo do tempo.
Casos de Uso Ideais
Escolha Ultralytics YOLOv5 se:
- Você precisa de desempenho em tempo real em dispositivos de borda (Raspberry Pi, telefones celulares).
- Você prioriza a facilidade de implementação e precisa de suporte integrado para exportar para TensorRT, CoreML ou TFLite.
- Você prefere uma estrutura estável e bem documentada com suporte ativo da comunidade.
- Sua aplicação envolve vigilância de segurança ou navegação autônoma, onde a baixa latência é crítica.
Escolha YOLOX se:
- Você está conduzindo uma pesquisa acadêmica especificamente sobre arquiteturas sem anchor.
- Você precisa do mAP máximo absoluto para uma competição ou benchmark, independentemente da velocidade de inferência.
- Você tem um conjunto de dados especializado onde os métodos baseados em âncoras falharam demonstrativamente (por exemplo, proporções extremas) e o AutoAnchor não resolveu o problema.
Conclusão
Tanto o YOLOv5 quanto o YOLOX conquistaram seus lugares na história da visão computacional. O YOLOX demonstrou a viabilidade de detectores sem âncora na família YOLO, oferecendo uma forte linha de base para pesquisa acadêmica. No entanto, para a vasta maioria das aplicações práticas, o Ultralytics YOLOv5 continua sendo a escolha superior devido à sua velocidade, eficiência e ecossistema amigável ao desenvolvedor incomparáveis.
Para aqueles que estão iniciando novos projetos hoje, recomendamos explorar o YOLO11. Ele se baseia nos pontos fortes do YOLOv5 — facilidade de uso e velocidade — ao mesmo tempo em que integra avanços arquitetônicos modernos que superam o YOLOv5 e o YOLOX em precisão e versatilidade.
Outras Comparações de Modelos
Explore como os modelos Ultralytics se comparam a outras arquiteturas no campo: