Skip to content

YOLOv7 : Un sac de gratuités formable

YOLOv7 est un détecteur d'objets en temps réel de pointe qui surpasse tous les détecteurs d'objets connus en termes de vitesse et de précision dans une plage allant de 5 FPS à 160 FPS. Il a la plus grande précision (56,8 % AP) parmi tous les détecteurs d'objets en temps réel connus avec 30 FPS ou plus sur le GPU V100. De plus, YOLOv7 surpasse d'autres détecteurs d'objets tels que YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, et bien d'autres en termes de vitesse et de précision. Le modèle est entraîné sur l'ensemble de données MS COCO à partir de zéro, sans utiliser d'autres ensembles de données ou des poids pré-entraînés. Le code source de YOLOv7 est disponible sur GitHub.

Comparaison de YOLOv7 avec les détecteurs d'objets SOTA Comparaison des détecteurs d'objets les plus récents. D'après les résultats du tableau 2, nous savons que la méthode proposée présente le meilleur compromis vitesse/précision de manière globale. Si nous comparons YOLOv7-tiny-SiLU avec YOLOv5-N (r6.1), notre méthode est 127 fps plus rapide et 10,7% plus précise sur AP. De plus, YOLOv7 a 51,4 % d'AP à une fréquence d'images de 161 fps, alors que PPYOLOE-L avec le même AP n'a qu'une fréquence d'images de 78 fps. En termes d'utilisation des paramètres, YOLOv7 est 41 % moins performant que PPYOLOE-L. Si nous comparons YOLOv7-X avec une vitesse d'inférence de 114 fps à YOLOv5-L (r6.1) avec une vitesse d'inférence de 99 fps, YOLOv7-X peut améliorer l'AP de 3,9 %. Si l'on compare YOLOv7-X à YOLOv5-X (r6.1) d'échelle similaire, la vitesse d'inférence de YOLOv7-X est plus rapide de 31 fps. En outre, en termes de quantité de paramètres et de calculs, YOLOv7-X réduit de 22 % les paramètres et de 8 % les calculs par rapport à YOLOv5-X (r6.1), mais améliore la PA de 2,2 % (Source).

Vue d'ensemble

La détection d'objets en temps réel est un élément important dans de nombreux systèmes de vision par ordinateur, notamment le suivi d'objets multiples, la conduite autonome, la robotique et l'analyse d'images médicales. Ces dernières années, le développement de la détection d'objets en temps réel s'est concentré sur la conception d'architectures efficaces et l'amélioration de la vitesse d'inférence de divers CPU, GPU et unités de traitement neuronal (NPU). YOLOv7 prend en charge à la fois les appareils mobiles et les GPU, de la périphérie au cloud.

Contrairement aux détecteurs d'objets en temps réel traditionnels qui se concentrent sur l'optimisation de l'architecture, YOLOv7 introduit un accent sur l'optimisation du processus de formation. Cela inclut des modules et des méthodes d'optimisation conçus pour améliorer la précision de la détection d'objets sans augmenter le coût de l'inférence, un concept connu sous le nom de "trainable bag-of-freebies".

Caractéristiques principales

YOLOv7 présente plusieurs caractéristiques essentielles :

  1. Re-paramétrage du modèle: YOLOv7 propose un modèle re-paramétré planifié, qui est une stratégie applicable aux couches de différents réseaux avec le concept de chemin de propagation du gradient.

  2. Affectation dynamique des étiquettes: La formation du modèle avec plusieurs couches de sortie pose un nouveau problème : "Comment attribuer des cibles dynamiques aux sorties des différentes branches ?". Pour résoudre ce problème, YOLOv7 introduit une nouvelle méthode d'attribution d'étiquettes appelée attribution d'étiquettes guidée de la branche grossière à la branche fine.

  3. Mise à l'échelle étendue et composée: YOLOv7 propose des méthodes d'"extension" et de "mise à l'échelle composée" pour le détecteur d'objets en temps réel qui peuvent utiliser efficacement les paramètres et le calcul.

  4. Efficacité: La méthode proposée par YOLOv7 peut réduire efficacement environ 40 % des paramètres et 50 % des calculs du détecteur d'objets en temps réel le plus récent, et a une vitesse d'inférence plus rapide et une plus grande précision de détection.

Exemples d'utilisation

Au moment de la rédaction de cet article, Ultralytics ne prend actuellement pas en charge les modèles YOLOv7. Par conséquent, tout utilisateur intéressé par l'utilisation de YOLOv7 devra se référer directement au dépôt GitHub de YOLOv7 pour obtenir des instructions d'installation et d'utilisation.

Voici un bref aperçu des étapes typiques que tu pourrais suivre pour utiliser YOLOv7 :

  1. Visite le dépôt GitHub de YOLOv7 : https://github.com/WongKinYiu/yolov7.

  2. Suis les instructions fournies dans le fichier README pour l'installation. Il s'agit généralement de cloner le dépôt, d'installer les dépendances nécessaires et de configurer toutes les variables d'environnement nécessaires.

  3. Une fois l'installation terminée, tu peux entraîner et utiliser le modèle conformément aux instructions d'utilisation fournies dans le référentiel. Il s'agit généralement de préparer ton jeu de données, de configurer les paramètres du modèle, d'entraîner le modèle, puis d'utiliser le modèle entraîné pour effectuer la détection d'objets.

Note que les étapes spécifiques peuvent varier en fonction de ton cas d'utilisation particulier et de l'état actuel du dépôt YOLOv7. Par conséquent, il est fortement recommandé de se référer directement aux instructions fournies dans le dépôt GitHub de YOLOv7.

Nous regrettons les inconvénients que cela peut causer et nous nous efforcerons de mettre à jour ce document avec des exemples d'utilisation pour Ultralytics une fois que la prise en charge de YOLOv7 sera mise en œuvre.

Citations et remerciements

Nous tenons à remercier les auteurs de YOLOv7 pour leurs contributions significatives dans le domaine de la détection d'objets en temps réel :

@article{wang2022yolov7,
  title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2207.02696},
  year={2022}
}

L'article original de YOLOv7 peut être consulté sur arXiv. Les auteurs ont mis leur travail à la disposition du public, et la base de code est accessible sur GitHub. Nous apprécions leurs efforts pour faire avancer le domaine et rendre leur travail accessible à la communauté élargie.



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (6), sergiuwaxmann (1)

Commentaires