Intégrez PaddleOCR avec Amazon SageMaker Projects pour MLOps afin d'effectuer une reconnaissance optique de caractères sur les documents d'identité PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

PaddleOCR intégré avec Amazon SageMaker Projects for MLOps pour effectuer la reconnaissance optique des caractères sur les documents d'identité

La reconnaissance optique de caractères (OCR) consiste à convertir un texte imprimé ou manuscrit en texte codé par machine. L'OCR a été largement utilisé dans divers scénarios, tels que l'électronisation de documents et l'authentification d'identité. Étant donné que l'OCR peut réduire considérablement l'effort manuel d'enregistrement des informations clés et servir d'étape d'entrée pour comprendre de gros volumes de documents, un système OCR précis joue un rôle crucial à l'ère de la transformation numérique.

La communauté open source et les chercheurs se concentrent sur la manière d'améliorer la précision de l'OCR, la facilité d'utilisation, l'intégration avec des modèles pré-formés, l'extension et la flexibilité. Parmi les nombreux frameworks proposés, PaddleOCR a récemment attiré une attention croissante. Le cadre proposé se concentre sur l'obtention d'une grande précision tout en équilibrant l'efficacité de calcul. De plus, les modèles pré-formés pour le chinois et l'anglais le rendent populaire sur le marché basé sur la langue chinoise. Voir le Dépôt PaddleOCR GitHub pour plus de détails.

Chez AWS, nous avons également proposé des services d'IA intégrés prêts à l'emploi sans aucune expertise en machine learning (ML). Pour extraire du texte et des données structurées telles que des tableaux et des formulaires à partir de documents, vous pouvez utiliser Extrait d'Amazon. Il utilise des techniques de ML pour lire et traiter tout type de document, en extrayant avec précision du texte, de l'écriture manuscrite, des tableaux et d'autres données sans effort manuel.

Pour les scientifiques des données qui souhaitent avoir la flexibilité d'utiliser un framework open source pour développer leur propre modèle OCR, nous proposons également le service ML entièrement géré. Amazon Sage Maker. SageMaker vous permet de mettre en œuvre les meilleures pratiques MLOps tout au long du cycle de vie ML, et fournit des modèles et des ensembles d'outils pour réduire le travail lourd indifférencié pour mettre les projets ML en production.

Dans cet article, nous nous concentrons sur le développement de modèles personnalisés dans le cadre PaddleOCR sur SageMaker. Nous parcourons le cycle de vie du développement ML pour illustrer comment SageMaker peut vous aider à créer et à former un modèle, et éventuellement à déployer le modèle en tant que service Web. Bien que nous illustrions cette solution avec PaddleOCR, les conseils généraux sont vrais pour les frameworks arbitraires à utiliser sur SageMaker. Pour accompagner cet article, nous fournissons également un exemple de code dans le GitHub référentiel.

Cadre PaddleOCR

En tant que cadre OCR largement adopté, PaddleOCR contient une détection de texte riche, une reconnaissance de texte et des algorithmes de bout en bout. Il choisit la Binarisation Différentiable (DB) et le Réseau de Neurones Convolutif Récurrent (CRNN) comme modèles de base de détection et de reconnaissance, et propose une série de modèles, nommés PP-OCR, pour des applications industrielles après une série de stratégies d'optimisation.

Le modèle PP-OCR est destiné à des scénarios généraux et constitue une bibliothèque de modèles de différentes langues. Il se compose de trois parties : détection de texte, détection et rectification de boîte et reconnaissance de texte, illustrées dans la figure suivante sur le PaddleOCR dépôt GitHub officiel. Vous pouvez également consulter le document de recherche PP-OCR : un système OCR ultra léger et pratique pour plus d'information.

Pour être plus précis, PaddleOCR se compose de trois tâches consécutives :

  • Détection de texte – Le but de la détection de texte est de localiser la zone de texte dans l'image. De telles tâches peuvent être basées sur un simple réseau de segmentation.
  • Détection et rectification de boîtes – Chaque zone de texte doit être transformée en une zone rectangulaire horizontale pour la reconnaissance de texte ultérieure. Pour ce faire, PaddleOCR propose d'entraîner un classifieur de direction de texte (tâche de classification d'image) pour déterminer la direction du texte.
  • Reconnaissance de texte – Une fois la zone de texte détectée, le modèle de reconnaissance de texte effectue une inférence sur chaque zone de texte et génère les résultats en fonction de l'emplacement de la zone de texte. PaddleOCR adopte la méthode largement utilisée CRNN.

PaddleOCR fournit des modèles pré-formés de haute qualité qui sont comparables aux effets commerciaux. Vous pouvez soit utiliser le modèle pré-formé pour un modèle de détection, un classificateur de direction ou un modèle de reconnaissance, soit affiner et recycler chaque modèle individuel pour servir votre cas d'utilisation. Pour augmenter l'efficience et l'efficacité de la détection du chinois traditionnel et de l'anglais, nous illustrons comment affiner le modèle de reconnaissance de texte. Le modèle pré-formé que nous choisissons est ch_ppocr_mobile_v2.0_rec_train, qui est un modèle léger prenant en charge la reconnaissance du chinois, de l'anglais et des chiffres. Voici un exemple de résultat d'inférence utilisant une carte d'identité de Hong Kong.

Intégrez PaddleOCR avec Amazon SageMaker Projects pour MLOps afin d'effectuer une reconnaissance optique de caractères sur les documents d'identité PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Dans les sections suivantes, nous expliquons comment affiner le modèle pré-formé à l'aide de SageMaker.

Meilleures pratiques MLOps avec SageMaker

SageMaker est un service ML entièrement géré. Avec SageMaker, les data scientists et les développeurs peuvent créer et former rapidement et facilement des modèles ML, puis les déployer directement dans un environnement géré prêt pour la production.

De nombreux data scientists utilisent SageMaker pour accélérer le cycle de vie du ML. Dans cette section, nous illustrons comment SageMaker peut vous aider, de l'expérimentation à la mise en production du ML. En suivant les étapes standard d'un projet ML, de la phrase expérimentale (développement de code et expériences) à la phrase opérationnelle (automatisation du workflow de construction du modèle et des pipelines de déploiement), SageMaker peut apporter de l'efficacité dans les étapes suivantes :

  1. Explorer les données et créer le code ML avec Amazon SageMakerStudio cahiers
  2. Entraînez et ajustez le modèle avec une tâche d'entraînement SageMaker.
  3. Déployez le modèle avec un point de terminaison SageMaker pour la diffusion du modèle.
  4. Orchestrez le flux de travail avec Pipelines Amazon SageMaker.

Le diagramme suivant illustre cette architecture et ce workflow.

Intégrez PaddleOCR avec Amazon SageMaker Projects pour MLOps afin d'effectuer une reconnaissance optique de caractères sur les documents d'identité PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Il est important de noter que vous pouvez utiliser SageMaker de manière modulaire. Par exemple, vous pouvez créer votre code avec un environnement de développement intégré (IDE) local et former et déployer votre modèle sur SageMaker, ou vous pouvez développer et former votre modèle dans vos propres sources de calcul de cluster et utiliser un pipeline SageMaker pour l'orchestration des flux de travail et déployer sur un point de terminaison SageMaker. Cela signifie que SageMaker fournit une plate-forme ouverte pour s'adapter à vos propres besoins.

Voir le code dans notre GitHub référentiel et README pour comprendre la structure du code.

Provisionner un projet SageMaker

Vous pouvez utiliser Projets Amazon SageMaker pour commencer votre voyage. Avec un projet SageMaker, vous pouvez gérer les versions de vos référentiels Git afin de pouvoir collaborer plus efficacement entre les équipes, assurer la cohérence du code et permettre l'intégration continue et la livraison continue (CI/CD). Bien que les blocs-notes soient utiles pour la création de modèles et l'expérimentation, lorsqu'une équipe de data scientists et d'ingénieurs ML travaille sur un problème ML, vous avez besoin d'un moyen plus évolutif pour maintenir la cohérence du code et disposer d'un contrôle de version plus strict.

Les projets SageMaker créent un modèle MLOps préconfiguré, qui comprend les composants essentiels pour simplifier l'intégration PaddleOCR :

  • Un référentiel de code pour créer des images de conteneur personnalisées pour le traitement, la formation et l'inférence, intégré aux outils CI/CD. Cela nous permet de configurer notre image Docker personnalisée et de pousser vers Registre des conteneurs élastiques Amazon (Amazon ECR) pour être prêt à l'emploi.
  • Un pipeline SageMaker qui définit les étapes de préparation des données, de formation, d'évaluation du modèle et d'enregistrement du modèle. Cela nous prépare à être prêts pour MLOps lorsque le projet ML passe en production.
  • D'autres ressources utiles, telles qu'un référentiel Git pour le contrôle de version de code, un groupe de modèles contenant des versions de modèle, un déclencheur de changement de code pour le pipeline de génération de modèle et un déclencheur basé sur des événements pour le pipeline de déploiement de modèle.

Vous pouvez utiliser le code de départ SageMaker pour créer des projets SageMaker standard ou un modèle spécifique que votre organisation a créé pour les membres de l'équipe. Dans cet article, nous utilisons la norme Modèle MLOps pour la création d'images, la création de modèles et le déploiement de modèles. Pour plus d'informations sur la création d'un projet dans Studio, reportez-vous à Créer un projet MLOps à l'aide d'Amazon SageMaker Studio.

Explorez les données et créez du code ML avec les blocs-notes SageMaker Studio

Les blocs-notes SageMaker Studio sont des blocs-notes collaboratifs que vous pouvez lancer rapidement car vous n'avez pas besoin de configurer au préalable les instances de calcul et le stockage de fichiers. De nombreux scientifiques des données préfèrent utiliser cet IDE basé sur le Web pour développer le code ML, déboguer rapidement l'API de la bibliothèque et faire fonctionner les choses avec un petit échantillon de données pour valider le script de formation.

Dans les notebooks Studio, vous pouvez utiliser un environnement prédéfini pour les frameworks courants tels que TensorFlow, PyTorch, Pandas et Scikit-Learn. Vous pouvez installer les dépendances sur le noyau précompilé ou créer votre propre image persistante du noyau. Pour plus d'informations, reportez-vous à Installer des bibliothèques externes et des noyaux dans Amazon SageMaker Studio. Les blocs-notes Studio fournissent également un environnement Python pour déclencher les tâches de formation SageMaker, le déploiement ou d'autres services AWS. Dans les sections suivantes, nous illustrons comment utiliser les blocs-notes Studio en tant qu'environnement pour déclencher des tâches de formation et de déploiement.

SageMaker fournit un IDE puissant ; il s'agit d'une plate-forme ML ouverte où les data scientists ont la possibilité d'utiliser leur environnement de développement préféré. Pour les scientifiques des données qui préfèrent un IDE local tel que PyCharm ou Visual Studio Code, vous pouvez utiliser l'environnement Python local pour développer votre code ML et utiliser SageMaker pour la formation dans un environnement évolutif géré. Pour plus d'informations, voir Exécutez votre tâche TensorFlow sur Amazon SageMaker avec un IDE PyCharm. Une fois que vous avez un modèle solide, vous pouvez adopter les meilleures pratiques MLOps avec SageMaker.

Actuellement, SageMaker fournit également Instances de bloc-notes SageMaker comme notre solution héritée pour l'environnement Jupyter Notebook. Vous avez la possibilité d'exécuter la commande Docker build et utilisez le mode local de SageMaker pour vous entraîner sur votre instance de bloc-notes. Nous fournissons également un exemple de code pour PaddleOCR dans notre référentiel de code : ./train_and_deploy/notebook.ipynb.

Créer une image personnalisée avec un modèle de projet SageMaker

SageMaker utilise largement les conteneurs Docker pour les tâches de construction et d'exécution. Vous pouvez facilement exécuter votre propre conteneur avec SageMaker. Voir plus de détails techniques sur Utilisez vos propres algorithmes de formation.

Cependant, en tant que data scientist, la création d'un conteneur peut ne pas être simple. Les projets SageMaker vous offrent un moyen simple de gérer les dépendances personnalisées via un pipeline CI/CD de création d'image. Lorsque vous utilisez un projet SageMaker, vous pouvez mettre à jour l'image d'entraînement avec votre Dockerfile de conteneur personnalisé. Pour obtenir des instructions étape par étape, reportez-vous à Créez des projets Amazon SageMaker avec des pipelines CI/CD de création d'images. Avec la structure fournie dans le modèle, vous pouvez modifier le code fourni dans ce référentiel pour créer un conteneur de formation PaddleOCR.

Pour cet article, nous montrons la simplicité de la création d'une image personnalisée pour le traitement, la formation et l'inférence. Le référentiel GitHub contient trois dossiers :

Ces projets suivent une structure similaire. Prenez l'image du conteneur de formation comme exemple ; la image-build-train/ le référentiel contient les fichiers suivants :

  • Le fichier codebuild-buildspec.yml, qui est utilisé pour configurer Création de code AWS afin que l'image puisse être créée et transmise à Amazon ECR.
  • Le Dockerfile utilisé pour la construction Docker, qui contient toutes les dépendances et le code de formation.
  • Le point d'entrée train.py pour le script de formation, avec tous les hyperparamètres (tels que le taux d'apprentissage et la taille du lot) qui peuvent être configurés en tant qu'argument. Ces arguments sont spécifiés lorsque vous démarrez la tâche d'entraînement.
  • Les dépendances.

Lorsque vous poussez le code dans le référentiel correspondant, il déclenche AWS CodePipeline pour construire un conteneur de formation pour vous. L'image de conteneur personnalisée est stockée dans un référentiel Amazon ECR, comme illustré dans la figure précédente. Une procédure similaire est adoptée pour générer l'image d'inférence.

Former le modèle avec le SDK de formation SageMaker

Une fois votre code d'algorithme validé et empaqueté dans un conteneur, vous pouvez utiliser une tâche de formation SageMaker pour mettre en service un environnement géré afin de former le modèle. Cet environnement est éphémère, ce qui signifie que vous pouvez disposer de ressources de calcul séparées et sécurisées (telles que le GPU) ou d'un environnement distribué multi-GPU pour exécuter votre code. Lorsque la formation est terminée, SageMaker enregistre les artefacts de modèle résultants dans un Service de stockage simple Amazon (Amazon S3) que vous spécifiez. Toutes les données de journal et les métadonnées persistent sur le Console de gestion AWS, Atelier et Amazon Cloud Watch.

Le travail de formation comprend plusieurs informations importantes :

  • L'URL du compartiment S3 où vous avez stocké les données d'entraînement
  • L'URL du compartiment S3 où vous souhaitez stocker la sortie de la tâche
  • Les ressources de calcul gérées que vous souhaitez que SageMaker utilise pour la formation du modèle
  • Le chemin Amazon ECR où le conteneur de formation est stocké

Pour plus d'informations sur les tâches de formation, voir Modèles de train. L'exemple de code pour la tâche d'entraînement est disponible à l'adresse experiences-train-notebook.ipynb.

SageMaker crée les hyperparamètres dans un CreateTrainingJob requête disponible dans le conteneur Docker dans le /opt/ml/input/config/hyperparameters.json fichier.

Nous utilisons le conteneur de formation personnalisé comme point d'entrée et spécifions un environnement GPU pour l'infrastructure. Tous les hyperparamètres pertinents sont détaillés en tant que paramètres, ce qui nous permet de suivre chaque configuration de tâche individuelle et de les comparer avec le suivi de l'expérience.

Étant donné que le processus de science des données est très axé sur la recherche, il est courant que plusieurs expériences soient exécutées en parallèle. Cela nécessite une approche qui garde une trace de toutes les différentes expériences, différents algorithmes et potentiellement différents ensembles de données et hyperparamètres tentés. Amazon SageMaker Experiments vous permet d'organiser, de suivre, de comparer et d'évaluer vos expériences ML. Nous le démontrons également dans experiences-train-notebook.ipynb. Pour plus de détails, reportez-vous à Gérer l'apprentissage automatique avec Amazon SageMaker Experiments.

Déployer le modèle pour la diffusion de modèles

En ce qui concerne le déploiement, en particulier pour le service de modèle en temps réel, de nombreux scientifiques des données pourraient avoir du mal à se passer de l'aide des équipes d'exploitation. SageMaker simplifie le déploiement de votre modèle formé en production avec le Kit de développement logiciel (SDK) SageMaker Python. Vous pouvez déployer votre modèle sur les services d'hébergement SageMaker et obtenir un point de terminaison à utiliser pour l'inférence en temps réel.

Dans de nombreuses organisations, les scientifiques des données peuvent ne pas être responsables de la maintenance de l'infrastructure des terminaux. Cependant, tester votre modèle en tant que point de terminaison et garantir les comportements de prédiction corrects relève en effet de la responsabilité des data scientists. Par conséquent, SageMaker a simplifié les tâches de déploiement en ajoutant un ensemble d'outils et un SDK pour cela.

Pour le cas d'utilisation dans le post, nous voulons avoir des capacités en temps réel, interactives et à faible latence. Inférence en temps réel est idéal pour cette charge de travail d'inférence. Cependant, il existe de nombreuses options s'adaptant à chaque besoin spécifique. Pour plus d'informations, reportez-vous à Déployer des modèles pour l'inférence.

Pour déployer l'image personnalisée, les data scientists peuvent utiliser le SDK SageMaker, illustré sur

experiences-deploy-notebook.ipynb.

Dans le create_model demande, la définition du conteneur inclut ModelDataUrl paramètre, qui identifie l'emplacement Amazon S3 où les artefacts de modèle sont stockés. SageMaker utilise ces informations pour déterminer d'où copier les artefacts du modèle. Il copie les artefacts dans le /opt/ml/model répertoire à utiliser par votre code d'inférence. La serve ainsi que predictor.py est le point d'entrée pour la diffusion, avec l'artefact de modèle qui est chargé lorsque vous démarrez le déploiement. Pour plus d'informations, voir Utilisez votre propre code d'inférence avec les services d'hébergement.

Orchestrez votre workflow avec SageMaker Pipelines

La dernière étape consiste à encapsuler votre code dans des flux de travail ML de bout en bout et à appliquer les meilleures pratiques MLOps. Dans SageMaker, la charge de travail de création de modèles, un graphe acyclique dirigé (DAG), est gérée par SageMaker Pipelines. Pipelines est un service entièrement géré prenant en charge l'orchestration et le suivi du lignage des données. De plus, comme Pipelines est intégré au SDK SageMaker Python, vous pouvez créer vos pipelines par programmation à l'aide d'une interface Python de haut niveau que nous avons utilisée précédemment lors de l'étape de formation.

Nous fournissons un exemple de code de pipeline pour illustrer la mise en œuvre à pipeline.py.

Le pipeline comprend une étape de prétraitement pour la génération d'ensembles de données, une étape d'apprentissage, une étape de condition et une étape d'enregistrement de modèle. À la fin de chaque exécution de pipeline, les scientifiques des données peuvent souhaiter enregistrer leur modèle pour les contrôles de version et déployer le plus performant. Le registre de modèles SageMaker fournit un emplacement central pour gérer les versions de modèle, les modèles de catalogue et déclencher le déploiement de modèle automatisé avec le statut d'approbation d'un modèle spécifique. Pour plus de détails, reportez-vous à Enregistrez et déployez des modèles avec Model Registry.

Dans un système ML, l'orchestration automatisée des flux de travail permet d'éviter la dégradation des performances du modèle, en d'autres termes la dérive du modèle. La détection précoce et proactive des écarts de données vous permet de prendre des mesures correctives, telles que des modèles de recyclage. Vous pouvez déclencher le pipeline SageMaker pour recycler une nouvelle version du modèle une fois que des écarts ont été détectés. Le déclencheur d'un pipeline peut également être déterminé par Moniteur de modèle Amazon SageMaker, qui surveille en permanence la qualité des modèles en production. Avec la capacité de capture de données pour enregistrer des informations, Model Monitor prend en charge la surveillance de la qualité des données et des modèles, le biais et la surveillance de la dérive d'attribution des fonctionnalités. Pour plus de détails, voir Surveiller les modèles pour la qualité, le biais et l'explicabilité des données et des modèles.

Conclusion

Dans cet article, nous avons illustré comment exécuter le framework PaddleOCR sur SageMaker pour les tâches OCR. Pour aider les scientifiques des données à intégrer facilement SageMaker, nous avons parcouru le cycle de vie du développement ML, de la création d'algorithmes à la formation, en passant par l'hébergement du modèle en tant que service Web pour l'inférence en temps réel. Vous pouvez utiliser le modèle de code que nous avons fourni pour migrer un framework arbitraire vers la plate-forme SageMaker. Essayez-le pour votre projet ML et faites-nous part de vos réussites.


À propos des auteurs

Intégrez PaddleOCR avec Amazon SageMaker Projects pour MLOps afin d'effectuer une reconnaissance optique de caractères sur les documents d'identité PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Junyi (Jackie) LIU est scientifique appliquée senior chez AWS. Elle a de nombreuses années d'expérience professionnelle dans le domaine de l'apprentissage automatique. Elle possède une riche expérience pratique dans le développement et la mise en œuvre de solutions dans la construction de modèles d'apprentissage automatique dans les algorithmes de prédiction de la chaîne d'approvisionnement, les systèmes de recommandation publicitaire, le domaine OCR et NLP.

Intégrez PaddleOCR avec Amazon SageMaker Projects pour MLOps afin d'effectuer une reconnaissance optique de caractères sur les documents d'identité PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Yanwei Cui, PhD, est un architecte de solutions spécialiste en apprentissage automatique chez AWS. Il a commencé des recherches sur l'apprentissage automatique à l'IRISA (Institut de recherche en informatique et systèmes aléatoires) et a plusieurs années d'expérience dans la création d'applications industrielles basées sur l'intelligence artificielle dans les domaines de la vision par ordinateur, du traitement du langage naturel et de la prédiction du comportement des utilisateurs en ligne. Chez AWS, il partage l'expertise du domaine et aide les clients à libérer les potentiels commerciaux et à générer des résultats exploitables grâce à l'apprentissage automatique à grande échelle. En dehors du travail, il aime lire et voyager.

Intégrez PaddleOCR avec Amazon SageMaker Projects pour MLOps afin d'effectuer une reconnaissance optique de caractères sur les documents d'identité PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Yi-An CHEN est développeur de logiciels chez Amazon Lab 126. Elle a plus de 10 ans d'expérience dans le développement de produits basés sur l'apprentissage automatique dans diverses disciplines, notamment la personnalisation, le traitement du langage naturel et la vision par ordinateur. En dehors du travail, elle aime faire de la course longue et du vélo.

Horodatage:

Plus de Apprentissage automatique AWS