YOLOv10 vs. PP-YOLOE+ : Une comparaison technique complète
Le choix du bon modèle de détection d'objets est une étape essentielle dans le développement d'applications de vision par ordinateur efficaces. Ce choix implique souvent de peser les compromis entre la vitesse d'inférence, la précision de la détection et les contraintes matérielles. Cette comparaison technique analyse YOLOv10, un détecteur temps réel de bout en bout de l'université de Tsinghua, et PP-YOLOE+, un modèle de haute précision de l'écosystème PaddlePaddle de Baidu. Les deux modèles introduisent d'importantes innovations architecturales, mais ils répondent à des besoins de déploiement et à des environnements de développement différents.
YOLOv10 : La nouvelle norme pour la détection de bout en bout en temps réel
YOLOv10 représente un bond en avant significatif dans la série YOLO (You Only Look Once), en se concentrant sur la suppression des goulots d'étranglement des performances associés au post-traitement traditionnel. Développé par des chercheurs de l'université de Tsinghua, il atteint une latence plus faible et une efficacité plus élevée en éliminant le besoin de suppression non maximale (NMS).
Auteurs: Ao Wang, Hui Chen, Lihao Liu, et al.
Organisation:Université Tsinghua
Date: 2024-05-23
ArXiv:https://arxiv.org/abs/2405.14458
GitHub:https://github.com/THU-MIG/yolov10
Docs:https://docs.ultralytics.com/models/yolov10/
Architecture et principales fonctionnalités
YOLOv10 introduit une stratégie d'attribution double cohérente pendant l'entraînement. Cette méthode permet au modèle de prédire une seule meilleure boîte pour chaque objet pendant l'inférence, ce qui supprime efficacement le besoin de post-traitement NMS. Cette conception "sans NMS" réduit considérablement la latence d'inférence, en particulier dans les scènes comportant des groupes d'objets denses.
Les principales avancées architecturales sont les suivantes :
- Conception holistique axée sur l’efficacité et la précision : Le modèle utilise des têtes de classification légères et un sous-échantillonnage spatial-canal découplé pour réduire le coût de calcul (FLOP) sans sacrifier la précision.
- Conception de blocs guidée par les rangs : Pour optimiser le compromis entre vitesse et précision, les différentes étapes du modèle utilisent des blocs de conception différente, réduisant ainsi la redondance dans les couches profondes.
- Convolutions à grand noyau : L'utilisation stratégique de convolutions à grand noyau améliore le champ réceptif, permettant au modèle de mieux comprendre le contexte et de detect les petits objets.
Points forts et faiblesses
YOLOv10 est conçu pour une efficacité maximale, ce qui en fait un choix formidable pour les applications en temps réel.
- Points forts : L’élimination de la NMS permet d’obtenir des vitesses d’inférence plus rapides et déterministes. Elle offre une efficacité de paramètre supérieure, atteignant des scores mAP élevés avec moins de paramètres que ses prédécesseurs. Son intégration dans l’écosystème Ultralytics garantit qu’il est facile à entraîner et à déployer à l’aide d’une simple API Python.
- Points faibles : En tant que détecteur d’objets spécialisé, il se concentre actuellement principalement sur la détection de boîtes englobantes, tandis que d’autres modèles de la suite Ultralytics prennent en charge un éventail plus large de tâches telles que la segmentation et l’estimation de pose.
Cas d'utilisation idéaux
- Robotique autonome : La nature à faible latence de YOLOv10 est essentielle pour la robotique où des décisions en une fraction de seconde sont nécessaires pour la navigation et l'évitement d'obstacles.
- Déploiement de l’IA en périphérie : Avec des variantes aussi petites que YOLOv10-N, il est parfaitement adapté aux appareils périphériques tels que le NVIDIA Jetson ou Raspberry Pi.
- Surveillance du trafic : La capacité du modèle à gérer les scènes denses sans surcharge de NMS le rend idéal pour la gestion du trafic en temps réel.
PP-YOLOE+: Ingénierie de précision dans l'écosystème PaddlePaddle
PP-YOLOE+ est une évolution de la série PP-YOLOE, développée par Baidu. Il est conçu comme un détecteur évolutif sans ancres qui privilégie la haute précision. Il sert de modèle de base au sein du framework PaddlePaddle, optimisé spécifiquement pour cet environnement.
Auteurs : Auteurs de PaddlePaddle
Organisation :Baidu
Date : 2022-04-02
ArXiv :https://arxiv.org/abs/2203.16250
GitHub :https://github.com/PaddlePaddle/PaddleDetection/
Docs :https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.8.1/configs/ppyoloe/README.md
Architecture et principales fonctionnalités
PP-YOLOE+ adopte une architecture sans ancrage, ce qui simplifie l'espace de recherche d'hyperparamètres par rapport aux prédécesseurs basés sur l'ancrage.
Les principales caractéristiques comprennent :
- Colonne vertébrale CSPRepResNet : Cette colonne vertébrale combine les avantages du flux de gradient de CSPNet avec l'efficacité d'inférence des blocs ResNet reparamétrés.
- Task Alignment Learning (TAL) : Une stratégie spécialisée d’attribution d’étiquettes qui aligne dynamiquement la qualité de la classification d’ancrage avec la précision de la localisation.
- Head efficace aligné sur les tâches (ET-Head) : Un head de détection découplé qui traite les caractéristiques de classification et de localisation indépendamment pour éviter les conflits.
Points forts et faiblesses
PP-YOLOE+ est un modèle robuste, mais comporte des dépendances qui peuvent affecter son adoption.
- Points forts : Il offre une excellente précision sur les benchmarks comme COCO, en particulier dans ses configurations plus importantes (L et X). Il est hautement optimisé pour le matériel pris en charge par le moteur d'inférence PaddlePaddle.
- Points faibles : La principale limite est sa dépendance à l’écosystème PaddlePaddle. Pour les développeurs habitués à PyTorch, la migration vers PP-YOLOE+ implique une courbe d’apprentissage plus abrupte et des frictions potentielles dans l’intégration des outils. De plus, son nombre de paramètres est considérablement plus élevé que celui de YOLOv10 pour une précision comparable, ce qui entraîne une utilisation plus importante de la mémoire.
Cas d'utilisation idéaux
- Inspection Industrielle : Sa haute précision le rend approprié pour détecter des défauts minimes dans la fabrication.
- Analyse de vente au détail : Efficace pour le comptage des stocks et la reconnaissance des produits dans les environnements de vente au détail intelligente.
- Tri des matériaux : Utilisé dans les installations de recyclage pour le tri automatisé de divers matériaux.
Analyse des performances : efficacité vs. précision
Lorsque l'on compare les mesures techniques, YOLOv10 démontre un avantage certain en termes d'efficacité. Il atteint une précision comparable ou supérieure (mAP) tout en utilisant beaucoup moins de paramètres et de ressources de calcul (FLOPs).
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (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 |
| 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 |
Points clés à retenir
- Efficacité : YOLOv10l atteint un mAP plus élevé (53,3 %) que PP-YOLOE+l (52,9 %) tout en utilisant près de 44 % moins de paramètres. Cela rend YOLOv10 considérablement plus léger à stocker et plus rapide à charger.
- Vitesse : La conception sans NMS de YOLOv10 se traduit par une latence plus faible dans l’ensemble. Par exemple, YOLOv10n est exceptionnellement rapide à 1,56 ms, ce qui le rend supérieur pour l’analyse vidéo à haute vitesse.
- Scalabilité : Bien que PP-YOLOE+x ait un léger avantage en termes de mAP brute (0,3 % de plus), il nécessite presque le double de paramètres (98,42M contre 56,9M) et de FLOPs par rapport à YOLOv10x.
Efficacité de la mémoire
Les modèles Ultralytics tels que YOLOv10 et YOLO11 présentent généralement des besoins en mémoire plus faibles lors de l'apprentissage et de l'inférence par rapport aux architectures plus anciennes ou aux modèles lourds basés sur des transformateurs. Cette efficacité permet d'augmenter la taille des lots et d'accélérer les cycles d'apprentissage sur le matériel GPU standard.
L'avantage Ultralytics
Bien que les deux modèles soient capables, le choix d'un modèle au sein de l'écosystème Ultralytics—tel que YOLOv10 ou le YOLO11 de pointe YOLO11—offre des avantages distincts pour les développeurs.
- Facilité d'utilisation : L'API Python Ultralytics élimine le code boilerplate complexe. Vous pouvez entraîner, valider et déployer un modèle en quelques lignes de python.
- Écosystème bien maintenu : Les utilisateurs bénéficient de mises à jour fréquentes, d'une communauté dynamique sur GitHub et d'intégrations transparentes avec des outils MLOps tels que Ultralytics HUB et Weights & Biases.
- Polyvalence : Au-delà de la détection d’objets standard, les frameworks Ultralytics prennent en charge la segmentation d’instance, la classification d’images, l’estimation de pose et la détection de boîte englobante orientée (OBB), offrant une solution unifiée pour diverses tâches de vision par ordinateur.
Exemple de code : Exécution de YOLOv10 avec Ultralytics
L'intégration de YOLOv10 dans votre flux de travail est simple grâce à la bibliothèque Ultralytics :
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg")
# Display the results
results[0].show()
Conclusion
Dans la comparaison entre YOLOv10 et PP-YOLOE+, YOLOv10 apparaît comme le choix supérieur pour la plupart des applications de vision par ordinateur à usage général. Son architecture sans NMS résout un goulot d'étranglement de longue date dans la latence de la détection d'objets, et son utilisation très efficace des paramètres le rend accessible pour le déploiement sur une plus large gamme de matériel, des appareils périphériques aux serveurs cloud.
PP-YOLOE+ reste un concurrent sérieux pour les utilisateurs strictement liés au framework PaddlePaddle ou ceux qui privilégient les gains marginaux en précision par rapport à l'efficacité de calcul. Cependant, pour les développeurs à la recherche d'un équilibre entre vitesse, précision et facilité d'utilisation, YOLOv10—et l'écosystème Ultralytics plus large—offre une voie plus pérenne et plus conviviale pour les développeurs.
Explorer d'autres modèles
Si vous souhaitez explorer davantage d'options au sein de l'écosystème Ultralytics, envisagez de consulter ces comparaisons :
- YOLO11 vs. YOLOv10: Découvrez comment le dernier modèle phare se compare à YOLOv10, axé sur l'efficacité.
- YOLOv10 vs. RT-DETR: Comparaison des transformateurs en temps réel avec les architectures YOLO basées sur CNN.
- YOLOv8 vs. PP-YOLOE+: Analysez les performances du modèle YOLOv8 largement adopté par rapport au modèle de Baidu.