Comparação entre YOLOX e YOLOv5

Amanda Spolti
gb.tech
Published in
4 min readFeb 18, 2022

O que é YOLO e por quê é tão importante?

Um dardo cravado bem no meio de um alvo
Um dardo cravado bem no meio de um alvo | Foto de Immo Wegmann na Unsplash

YOLO é um algoritmo usado para detecção de objetos em uma imagem em tempo real. O termo YOLO é uma abreviação de “You Only Look Once”, e como o nome sugere, o algoritmo precisa de apenas uma propagação por uma rede neural para detectar objetos. Isso significa que a predição em toda uma imagem é feita com apenas uma execução do algoritmo.

A sua importância vem da velocidade de detecção, o que o torna capaz de reconhecer objetos em tempo real, até mesmo em dispositivos móveis com versões mais leves do modelo. Possui também uma elevada taxa de acurácia, produzindo resultados com erros mínimos, dependendo claro da qualidade dos dados usados no treinamento da rede. Outro ponto é a capacidade de aprendizado do algoritmo, que é capaz de aprender representações de objetos e aplicá-las na detecção.

Imagem de uma rua com algumas classes de objetos detectadas.

Existem muitas variações do algoritmo, desde sua primeira evolução e subsequentes como YOLOv3, YOLOv4, YOLOv4-tiny, YOLOv5, YOLO-X e YOLO-R.

Comparação

No ano de 2021, foi lançado o YOLO-X e mais recentemente uma atualização do YOLOv5 para YOLOv5-V6.0. Dessa forma, preparamos um estudo para comparar a performance entre esses dois modelos.

O treinamento foi feito com o dataset público do Roboflow “Blood Cell Detection”. Cada modelo foi treinado por 100 épocas em umTesla T4, resolução de 416x416 e batch size de 16. Para esse dataset, a única diferença significativa foi o tempo de treinamento onde YOLOX-s levou 3 vezes mais tempo quando comparado ao YOLOv5-n.

Nos gráficos abaixo, fizemos uma comparação de tempo de treinamento, velocidade de inferência e acurácia entre os modelos YOLOX-s e YOLOv5-n.

Gráfico tempo de treinamento em minutos entre YOLOXs e YOLOv5n
Gráfico tempo de inferência entre YOLOXs e YOLOv5n
Gráfico da acurácia que cada modelo obteve.

Em outro dataset privado, para detecção de alguns equipamentos de EPI, os mesmos modelos foram treinados por 300 épocas ainda utilizando um Tesla T4, resolução de 416x416 e batch size de 16.

Nesse caso, o tempo de treinamento do YOLOX-s também foi muito maior do que do YOLOv5-n. O mAP_0.5 (mean average precision) do YOLOX-s foi em torno de 10% maior do que o YOLOv5-n. Por outro lado, comparando o FPS da inferência, o YOLOv5-n obteve um FPS de 155~214, enquanto o FPS do YOLOX-s foi entre 56~59.

Nesses links você pode encontrar notebooks de tutoriais do roboflow para YOLOX e YOLOv5 usados nessa comparação.

Conclusão

A área de inteligência artificial vêm fazendo grandes avanços ao longo dos últimos anos, trazendo soluções para problemas de visão computacional antes vistos como inviáveis.

Com recursos computacionais cada vez mais acessíveis, e a constante evolução de modelos de alta performance como os mostrados nesse estudo nos indicam um futuro muito promissor para tudo que tange a área de visão computacional

Existem diversas arquiteturas de rede, variando de redes mais densas, como por exemplo o YOLOX-l. Arquiteturas mais densas, geralmente são utilizadas em problemas de detecção mais delicados. Já redes mais leves como o YOLO X-Nano e YOLOv5-n são indicados em casos de problemas mais simples ou recursos computacionais limitados, como aplicações móveis e embarcadas.

Como mostrado nesse estudo, para alguns modelos de detecção de objetos mais simples (YOLOv5-n), podem, dependendo do tipo de aplicação, obter ótimos resultados com velocidade de inferência alta quando comparada a outro modelo (YOLOX-s). Por isso é sempre importante avaliar o problema a ser resolvido e testá-lo com abordagens diferentes, para avaliar qual o melhor custo benefício.

Referências

Dataset público: https://universe.roboflow.com/team-roboflow/blood-cell-detection-1ekwu

YOLO-X: https://github.com/Megvii-BaseDetection/YOLOX

YOLOv5: https://github.com/ultralytics/yolov5

--

--