OpenMMLab
Valeur ajoutée gratuite
Guide complet des outils d’IA Framework de développement d’IA

OpenMMLab

Système d’algorithmes open source pour la recherche en vision par ordinateur et son application en ingénierie

Étiquettes :

Qu’est-ce que OpenMMLab ?

OpenMMLab est un ensemble d’algorithmes open source destiné à la recherche en vision par ordinateur et aux applications industrielles, composé de plusieurs projets Python qui collaborent entre eux. Il couvre la classification d’images, la détection d’objets, la segmentation sémantique et par instance, la détection 3D, l’estimation de la posture, le OCR, la compréhension vidéo, la vision générative, la compression des modèles et le déploiement multiplateforme, et propose un grand nombre de configurations, d’implémentations algorithmiques et de modèles pré-entraînés.

OpenMMLab n’est pas un outil web unique qui génère des résultats à partir d’une simple instruction d’entrée. Les utilisateurs doivent généralement préparer Python, PyTorch, CUDA et les ensembles de données, puis entraîner, valider ou faire des inférences à l’aide de fichiers de configuration.

La bibliothèque de modèles du site officiel permet de consulter les modèles et leurs configurations, mais le travail principal reste effectué sur un serveur local ou une GPU cloud.

Composants clés d’OpenMMLab

Infrastructure d’entraînement de MMEngine

MMEngine offre des capacités générales telles que un système de configuration, un registre, un exécuteur, un cycle d’entraînement, des hooks, un journalisation, des opérations I/O sur fichiers, ainsi que l’entraînement et l’évaluation distribués. Les bibliothèques d’algorithmes de niveau supérieur partagent ces composants de base, ce qui rend les scripts d’entraînement, les configurations et les méthodes d’extension plus uniformes.

mmengine-lite peut être installé uniquement lors de la configuration et de l’enregistrement de modules légers tels que le registre.

Bibliothèque de base visuelle MMCV

MMCV fournit des outils de traitement d’images et de vidéos, des composants CNN ainsi que des opérateurs avec CUDA, et constitue une dépendance essentielle pour de nombreux projets visuels. MMCV doit être compatible avec PyTorch, CUDA et les versions des bibliothèques d’algorithmes supérieures ;

L’installation d’une version incorrecte peut souvent entraîner un échec du chargement des opérateurs ou des erreurs de compilation.

MMDetection et MMYOLO

MMDetection est conçu pour la détection de cibles en deux dimensions et la segmentation d’instances, intégrant divers détecteurs, Backbones, Necks, fonctions de perte ainsi que des pipelines de données. MMYOLO se concentre sur la série YOLO et la détection en temps réel.

Ces deux options conviennent pour les tests généraux, la reconnaissance d’objets personnalisée, le contrôle qualité industriel et l’analyse visuelle, mais il convient de choisir le bon élément en fonction de la tâche et de la version.

MMSegmentation et MMDetection3D

MMSegmentation prend en charge la segmentation sémantique ainsi que de nombreuses architectures de segmentation ; MMDetection3D gère les nuages de points, la détection 3D pour la conduite autonome et la perception multimodale.

Les tâches 3D nécessitent généralement des formats de données plus complexes, des systèmes de coordonnées, une calibration des capteurs et du matériel à forte mémoire vidéo.

MMPose, MMOCR et MMAction2

MMPose est utilisé pour l’estimation des points clés du corps humain, des mains, du visage et des animaux ; MMOCR couvre la détection de texte, sa reconnaissance et l’extraction d’informations clés.

MMAction2 est utilisé pour la reconnaissance d’actions, la localisation temporelle, les mouvements squelettiques et la compréhension vidéo. Chaque tâche dispose de scripts de conversion de données et d’indicateurs indépendants.

MMPreTrain et MMagic

MMPreTrain propose des modèles de base pour la classification, l’entraînement préalable et les modèles multimodaux ; MMagic est destiné à la génération, à l’édition, à la réparation d’images et de vidéos, ainsi qu’à la sur-résolution et aux modèles de diffusion.

Les modèles de génération consomment généralement beaucoup de mémoire vidéo, et leurs poids peuvent être soumis à des licences non commerciales ou relatives à une IA responsable.

MMRazor et MMDeploy

MMRazor est utilisé pour le prunage, la distillation, la quantification et la recherche d’architectures neuronales, tandis que MMDeploy convertit les modèles et les déploie sur des backends tels que ONNX Runtime, TensorRT, OpenVINO, ncnn, etc. Avant le déploiement, il est nécessaire de vérifier la compatibilité des opérateurs, les formes dynamiques, ainsi que le prétraitement, le post-traitement et les différences numériques.

Outil de gestion des paquets MIM

OpenMIM permet d’installer les paquets OpenMMLab, de télécharger des configurations et des modèles. Il simplifie l’installation de l’environnement, mais ne résout pas automatiquement tous les conflits entre PyTorch, CUDA, le compilateur et les bibliothèques système.

L’environnement de production doit dépendre d’une version fixe et conserver des images reproductibles.

Comparaison des principaux projets d’OpenMMLab

ProjetUtilisation principaleTâche typiqueAdéquat pour les utilisateurs
MMEngineFormation unifiée et configuration de baseRunner, Hook, distribué, journalTous les développeurs de projets OpenMMLab
MMDetectionDétection 2D et segmentation d’instancesDétection d’objets, segmentation d’instancesÉquipe de recherche en détection et vision industrielle
MMSegmentationSegmentation sémantiqueScénarios, télédétection, médecine et segmentation industrielleProjet de reconnaissance au niveau des pixels
MMPosePoints clés et estimation de l’attitudeCorps humain, mains, visage, postures animalesAnalyse du mouvement et interaction homme-machine
MMOCRCompréhension visuelle du texteDétection de texte, reconnaissance, extraction d’informationsProjets de texte pour documents et scénarios
MMAction2Compréhension vidéoReconnaissance des mouvements, localisation temporelle, analyse squelettiqueÉquipe d’algorithmes vidéo
MMagicGénérer et éditerDiffusion, réparation, sur-amélioration et génération de vidéoAIGC et développeurs d’amélioration d’images
MMDeployConversion de modèles et déploiement d’inférenceONNX, TensorRT, OpenVINO, mobileÉquipe de déploiement d’ingénierie et d’équipements edge

Prix et coûts d’OpenMMLab

La bibliothèque d’algorithmes de base peut être téléchargée et utilisée gratuitement, sans forfait d’abonnement unique. Le coût réel dépend de la puissance de calcul locale ou cloud, des données, de l’étiquetage, du temps de formation et de l’environnement de déploiement.

Le site officiel ne divulgue pas de forfaits cloud commerciaux fixes pour tous les projets ; il ne faut pas considérer les prix des GPU tiers comme étant les tarifs officiels d’OpenMMLab.

ProjetCoût du logicielCoûts éventuelsExplication
Frameworks open source et bibliothèques d’algorithmesGratuitTemps de développement et de maintenanceLa plupart des entrepôts principaux utilisent Apache 2.0
Inference sur des modèles pré-entraînésLa plupart sont disponibles à téléchargement gratuitGPU, CPU, stockage et traficLes licences de pondération doivent être vérifiées une par une.
Entraînement de modèles personnalisésChâssis gratuitAnnotation des données, temps d’utilisation de la GPU et gestion des expériencesLes grands modèles et les tâches vidéo ont un coût élevé.
Déploiement de productionOutils gratuitsServeurs, appareils edge, surveillance et maintenanceLe déploiement du backend comporte ses propres licences et restrictions.
Soutien commercial ou solutionsConsultation par projetDéveloppement sur mesure, formation et livraisonPas de forfait public unifié

Guide d’installation d’OpenMMLab

  1. Déterminer la bibliothèque de tâches :Choisissez d’abord les éléments selon la tâche : détection, segmentation, posture, OCR ou génération, sans installer l’ensemble de l’écosystème d’un coup.
  2. Créer un environnement indépendant :Pour créer un environnement Conda ou virtuel, installez d’abord PyTorch et CUDA correspondants en fonction des pilotes de carte graphique.
  3. Installer OpenMIM :Utiliser MIM pour installer MMEngine, MMCV et les bibliothèques d’algorithmes cibles, afin de réduire les erreurs liées à la sélection manuelle des versions de roue.
  4. Environnement de validation :Afficher les versions de PyTorch, CUDA, MMEngine, MMCV et des bibliothèques d’algorithmes, puis exécuter l’exemple officiel minimal de déduction.
  5. Préparation de la configuration et des poids :Télécharger la même version de la configuration et du Checkpoint depuis le dépôt cible, puis vérifier la licence du modèle et son hash.
  6. Préparation des données :Convertir en format pris en charge par le projet, vérifier l’ID de la catégorie, le chemin, les étiquettes et la répartition d’entraînement/validation.
  7. Commencer l’entraînement :Hériter de la configuration officielle et ne modifier que les paramètres nécessaires ; valider d’abord le pipeline avec de petits ensembles de données avant d’élargir l’entraînement.
  8. Évaluation et déploiement :Enregistrer les configurations, les journaux et les poids, évaluer à l’aide d’un ensemble de test indépendant, puis valider les résultats de conversion selon le backend cible.

Configuration du système et entraînement personnalisé

Le projet OpenMMLab décrit généralement les modèles, les données, l’optimiseur, le taux d’apprentissage, les boucles d’entraînement et les Hook à l’aide de fichiers de configuration. Le mécanisme d’héritage permet de réutiliser les configurations officielles, mais la superposition de plusieurs niveaux peut rendre les paramètres finaux peu intuitifs.

Avant de lancer l’entraînement, il faut imprimer la configuration complète et la conserver avec la version du code.

Les composants personnalisés peuvent enregistrer de nouveaux Backbone, Dataset, Transform, Metric ou Hook via le Registry. Lors de l’extension, il convient d’écrire des tests pour les entrées/sorties, les dispositifs, la précision mixte et les scénarios distribués, afin d’éviter de se contenter de tests réussis sur de petits échantillons sur une seule carte.

Guide d'utilisation d’OpenMMLab

Créer des flux de travail professionnels réutilisables

  1. Établir une liste des couleurs de la marque, des polices, de la composition et des éléments interdits ;
  2. Tester séparément les composants clés d’OpenMMLab, la comparaison des projets principaux d’OpenMMLab, ainsi que le système de configuration et l’entraînement personnalisé ;
  3. Comparer la qualité, la vitesse et le coût à l’aide du même ensemble d’échantillons représentatifs ;
  4. Confier la retouche manuelle des bords complexes, du texte et des images de produits clés ;
  5. Uniformiser la nomenclature, les dimensions et l’état d’audit ;
  6. Traiter et publier en lot après un contrôle aléatoire ;

Points à considérer pour le déploiement du modèle

  • Le prétraitement et le post-traitement en Python, NMS, les opérateurs RoI ainsi que les entrées dynamiques dans le cadre d’entraînement ne peuvent pas nécessairement être convertis directement ;
  • Lors du déploiement, il convient d’utiliser la même normalisation, le redimensionnement, la mappage des catégories et le post-traitement, puis de comparer l’erreur, la vitesse et la mémoire vidéo de PyTorch avec celle du backend cible sur des données représentatives ;
  • Après quantification ou élagage, il est nécessaire d’évaluer à nouveau la précision ;

Licence et instructions commerciales

La plupart des codes clés tels que MMEngine, MMCV, MMDetection, etc., sont soumis à la licence Apache License 2.0 et peuvent être utilisés à des fins de recherche et de développement commercial, à condition de conserver la licence et les déclarations associées. Les implémentations algorithmiques spécifiques, les dépendances tierces, les poids pré-entraînés et les ensembles de données peuvent faire l’objet de licences différentes ; certains dépôts indiquent également séparément les fonctionnalités ayant des conditions NVIDIA ou non commerciales.

Avant utilisation commerciale, il convient d’examiner séparément le code, les poids des modèles, les données d’entraînement et les droits d’utilisation de la marque. Pour les applications à des images de visages, de corps humains, de surveillance et médicales, il est également nécessaire d’évaluer la confidentialité, les biais, le consentement éclairé et la réglementation sectorielle.

À qui s’adresse-t-il

  • Étudiants et chercheurs travaillant sur la détection de cibles, la segmentation, l’orientation, le OCR et la compréhension vidéo ;
  • Ingénieurs en algorithmes ayant besoin de nombreux modèles de référence et de configurations d’expériences reproductibles ;
  • Équipes chargées du développement de systèmes d’inspection industrielle, de conduite autonome, de télédétection et de systèmes visuels pour les villes intelligentes ;
  • Ingénieurs souhaitant déployer des modèles visuels PyTorch sur des serveurs ou des dispositifs edge ;
  • Développeurs maîtrisant Python, l’apprentissage profond et la gestion d’environnements GPU.

Avantages et précautions

  • Les avantages d’OpenMMLab sont un éventail complet de projets, une grande variété d’implémentations algorithmiques, une configuration uniforme, de nombreux modèles pré-entraînés, ainsi qu’une écosystème complet pour l’entraînement, l’évaluation, la compression et le déploiement.
  • Il convient à des recherches visuelles sérieuses et à la reconstitution en ingénierie ;
  • Il existe de nombreux projets écologiques aux dépendances complexes, et les anciens tutoriels peuvent correspondre à différentes versions majeures ;
  • La compilation des opérateurs CUDA, la compatibilité MMCV et PyTorch sont des problèmes courants ;
  • L’activité du projet et la stratégie de maintenance peuvent également varier ; il convient de vérifier les publications récentes, les problèmes signalés et les documents de migration lors du choix.
  • Les modèles pré-entraînés ne peuvent pas remplacer l’évaluation à l’aide de données métier réelles ; pour les scénarios clés, il est encore nécessaire de tester la robustesse, l’équité et la sécurité.

Questions fréquentes

OpenMMLab est-il gratuit ?

Les principaux frameworks open source sont gratuits et ne comportent pas de frais de abonnement unifiés. Les coûts liés aux GPU, aux serveurs, aux données ainsi qu’aux opérations d’exploitation nécessaires à l’entraînement et au déploiement sont à la charge de l’utilisateur.

Quelle est la relation entre OpenMMLab et MMDetection ?

OpenMMLab est l’ensemble de l’écosystème open source en vision, et MMDetection est la bibliothèque d’algorithmes qui s’y consacre spécifiquement à la détection d’objets en deux dimensions et à la segmentation d’instances.

OpenMMLab doit-il utiliser une GPU ?

Une partie du raisonnement et des fonctionnalités légères peuvent être gérées par la CPU, mais l’entraînement et les grands modèles visuels nécessitent généralement une GPU NVIDIA ainsi qu’un environnement CUDA correspondant.

OpenMMLab peut-il être utilisé à des fins commerciales ?

La plupart du code de base est sous licence Apache 2.0 et peut être utilisée pour des développements commerciaux ; les licences des modèles, algorithmes, dépendances et ensembles de données spécifiques doivent être vérifiées séparément.

OpenMMLab convient-il aux débutants ?

Il existe des documents complets et des exemples de configuration, mais il est nécessaire de maîtriser Python, PyTorch, les formats de données et l’environnement GPU. Il est recommandé de commencer par les tutoriels officiels d’un projet unique.

©️Droit d’auteur : Sauf indication contraire, tous les articles de ce site sont protégés par le droit d’auteur.Partage d’outils d’IATous les droits d’auteur sont réservés. Sans autorisation, aucune personne, média, site web ou groupe ne peut reproduire, copier ou diffuser de quelque manière que ce soit le contenu de ce site, ni créer de mirror sur des serveurs qui ne lui appartiennent pas. Dans le cas contraire, notre site se réserve le droit de poursuivre en justice les responsables conformément à la loi.

Outils similaires à OpenMMLab