Onboard PaddleOCR med Amazon SageMaker Projects for MLOps til at udføre optisk tegngenkendelse på identitetsdokumenter PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps til at udføre optisk tegngenkendelse på identitetsdokumenter

Optisk tegngenkendelse (OCR) er opgaven med at konvertere trykt eller håndskrevet tekst til maskinkodet tekst. OCR har været meget brugt i forskellige scenarier, såsom dokumentelektronisering og identitetsgodkendelse. Fordi OCR i høj grad kan reducere den manuelle indsats for at registrere nøgleoplysninger og tjene som et indgangstrin til at forstå store mængder dokumenter, spiller et nøjagtigt OCR-system en afgørende rolle i den digitale transformations æra.

Open source-fællesskabet og forskere koncentrerer sig om, hvordan man forbedrer OCR-nøjagtighed, brugervenlighed, integration med forudtrænede modeller, udvidelse og fleksibilitet. Blandt mange foreslåede rammer har PaddleOCR fået stigende opmærksomhed på det seneste. Den foreslåede ramme koncentrerer sig om at opnå høj nøjagtighed og samtidig afbalancere beregningseffektivitet. Derudover gør de fortrænede modeller til kinesisk og engelsk den populær på det kinesiske sprogbaserede marked. Se den PaddleOCR GitHub repo for flere detaljer.

Hos AWS har vi også foreslået integrerede AI-tjenester, der er klar til brug uden maskinlæringsekspertise (ML). For at udtrække tekst og strukturerede data såsom tabeller og formularer fra dokumenter, kan du bruge amazontekst. Den bruger ML-teknikker til at læse og behandle enhver type dokumenter, præcist udtrække tekst, håndskrift, tabeller og andre data uden manuel indsats.

For de datavidenskabsmænd, der ønsker fleksibiliteten til at bruge en open source-ramme til at udvikle din egen OCR-model, tilbyder vi også den fuldt administrerede ML-tjeneste Amazon SageMaker. SageMaker giver dig mulighed for at implementere MLOps bedste praksis gennem hele ML-livscyklussen og leverer skabeloner og værktøjssæt til at reducere de udifferentierede tunge løft for at sætte ML-projekter i produktion.

I dette indlæg koncentrerer vi os om at udvikle tilpassede modeller inden for PaddleOCR-rammerne på SageMaker. Vi gennemgår ML udviklingslivscyklussen for at illustrere, hvordan SageMaker kan hjælpe dig med at bygge og træne en model og til sidst implementere modellen som en webservice. Selvom vi illustrerer denne løsning med PaddleOCR, gælder den generelle vejledning for vilkårlige rammer, der skal bruges på SageMaker. For at ledsage dette indlæg giver vi også prøvekode i GitHub repository.

PaddleOCR-ramme

Som en udbredt OCR-ramme indeholder PaddleOCR registrering af rig tekst, tekstgenkendelse og ende-til-ende-algoritmer. Den vælger Differentiable Binarization (DB) og Convolutional Recurrent Neural Network (CRNN) som de grundlæggende detektions- og genkendelsesmodeller og foreslår en række modeller, kaldet PP-OCR, til industrielle applikationer efter en række optimeringsstrategier.

PP-OCR-modellen er rettet mod generelle scenarier og danner et modelbibliotek af forskellige sprog. Den består af tre dele: tekstgenkendelse, boksgenkendelse og korrektion og tekstgenkendelse, illustreret i følgende figur på PaddleOCR officielt GitHub-lager. Du kan også henvise til forskningspapiret PP-OCR: Et praktisk ultraletvægts OCR-system for mere information.

For at være mere specifik består PaddleOCR af tre på hinanden følgende opgaver:

  • Tekstgenkendelse – Formålet med tekstgenkendelse er at lokalisere tekstområdet i billedet. Sådanne opgaver kan være baseret på et simpelt segmenteringsnetværk.
  • Boksdetektion og udbedring – Hver tekstboks skal omdannes til en vandret rektangelboks til efterfølgende tekstgenkendelse. For at gøre dette foreslår PaddleOCR at træne en tekstretningsklassifikator (billedklassificeringsopgave) til at bestemme tekstretningen.
  • Tekstgenkendelse – Efter at tekstboksen er fundet, udfører tekstgenkendelsesmodellen inferens på hver tekstboks og udsender resultaterne i henhold til tekstboksens placering. PaddleOCR anvender den meget brugte metode CRNN.

PaddleOCR leverer fortrænede modeller af høj kvalitet, der kan sammenlignes med kommercielle effekter. Du kan enten bruge den fortrænede model til en detektionsmodel, retningsklassifikator eller genkendelsesmodel, eller du kan finjustere og genoptræne hver enkelt model til at tjene din brugssituation. For at øge effektiviteten og effektiviteten af ​​detektering af traditionel kinesisk og engelsk illustrerer vi, hvordan man finjusterer tekstgenkendelsesmodellen. Den fortrænede model vi vælger er ch_ppocr_mobile_v2.0_rec_train, som er en letvægtsmodel, der understøtter kinesisk, engelsk og talgenkendelse. Følgende er et eksempel på et resultat ved hjælp af et Hong Kong-identitetskort.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps til at udføre optisk tegngenkendelse på identitetsdokumenter PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

I de følgende afsnit gennemgår vi, hvordan man finjusterer den fortrænede model ved hjælp af SageMaker.

MLOps bedste praksis med SageMaker

SageMaker er en fuldt administreret ML-tjeneste. Med SageMaker kan dataforskere og udviklere hurtigt og nemt bygge og træne ML-modeller og derefter implementere dem direkte i et produktionsklart administreret miljø.

Mange dataforskere bruger SageMaker til at accelerere ML-livscyklussen. I dette afsnit illustrerer vi, hvordan SageMaker kan hjælpe dig fra eksperimentering til produktionsalisering af ML. Ved at følge standardtrinene i et ML-projekt, fra den eksperimentelle sætning (kodeudvikling og eksperimenter) til den operationelle sætning (automatisering af modelbygningens workflow og implementeringspipelines), kan SageMaker bringe effektivitet i følgende trin:

  1. Udforsk dataene og byg ML-koden med Amazon SageMaker Studio notesbøger.
  2. Træn og tun modellen med et SageMaker træningsjob.
  3. Implementer modellen med et SageMaker-slutpunkt til modelvisning.
  4. Organiser arbejdsgangen med Amazon SageMaker Pipelines.

Følgende diagram illustrerer denne arkitektur og arbejdsgang.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps til at udføre optisk tegngenkendelse på identitetsdokumenter PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Det er vigtigt at bemærke, at du kan bruge SageMaker på en modulær måde. For eksempel kan du bygge din kode med et lokalt integreret udviklingsmiljø (IDE) og træne og implementere din model på SageMaker, eller du kan udvikle og træne din model i dine egne klyngecomputerkilder og bruge en SageMaker-pipeline til workflow-orkestrering og implementere på et SageMaker-slutpunkt. Det betyder, at SageMaker giver en åben platform til at tilpasse til dine egne krav.

Se koden i vores GitHub repository og README for at forstå kodestrukturen.

Levere et SageMaker-projekt

Du kan bruge Amazon SageMaker-projekter at starte din rejse. Med et SageMaker-projekt kan du administrere versionerne til dine Git-lagre, så du kan samarbejde på tværs af teams mere effektivt, sikre kodekonsistens og muliggøre kontinuerlig integration og kontinuerlig levering (CI/CD). Selvom notebooks er nyttige til modelbygning og -eksperimentering, når du har et team af datavidenskabsmænd og ML-ingeniører, der arbejder på et ML-problem, har du brug for en mere skalerbar måde at opretholde kodekonsistens og have strengere versionskontrol.

SageMaker-projekter skaber en prækonfigureret MLOps-skabelon, som inkluderer de væsentlige komponenter til at forenkle PaddleOCR-integrationen:

  • Et kodelager til at bygge brugerdefinerede containerbilleder til behandling, træning og inferens, integreret med CI/CD-værktøjer. Dette giver os mulighed for at konfigurere vores brugerdefinerede Docker-billede og skubbe til Amazon Elastic Container Registry (Amazon ECR) for at være klar til brug.
  • En SageMaker-pipeline, der definerer trin til dataforberedelse, træning, modelevaluering og modelregistrering. Dette gør os klar til at være MLOps klar, når ML-projektet går i produktion.
  • Andre nyttige ressourcer, såsom et Git-lager til kodeversionskontrol, modelgruppe, der indeholder modelversioner, kodeændringstrigger for modelbuildingspipelinen og hændelsesbaseret trigger for modelimplementeringspipelinen.

Du kan bruge SageMaker-seed-kode til at oprette standard SageMaker-projekter eller en specifik skabelon, som din organisation har oprettet til teammedlemmer. I dette indlæg bruger vi standarden MLOps skabelon til billedopbygning, modelbygning og modelimplementering. For mere information om oprettelse af et projekt i Studio, se Opret et MLOps-projekt ved hjælp af Amazon SageMaker Studio.

Udforsk data og byg ML-kode med SageMaker Studio Notebooks

SageMaker Studio-notebooks er kollaborative notesbøger, som du kan starte hurtigt, fordi du ikke behøver at konfigurere computerforekomster og fillagring på forhånd. Mange dataforskere foretrækker at bruge denne webbaserede IDE til at udvikle ML-koden, hurtigt fejlfinde bibliotekets API og få tingene til at køre med en lille prøve af data til at validere træningsscriptet.

I Studio-notebooks kan du bruge et forudbygget miljø til almindelige rammer såsom TensorFlow, PyTorch, Pandas og Scikit-Learn. Du kan installere afhængighederne til den forudbyggede kerne eller opbygge dit eget vedvarende kernebillede. For mere information, se Installer eksterne biblioteker og kerner i Amazon SageMaker Studio. Studio-notebooks giver også et Python-miljø til at udløse SageMaker-træningsjob, implementering eller andre AWS-tjenester. I de følgende afsnit illustrerer vi, hvordan du bruger Studio-notebooks som et miljø til at udløse trænings- og implementeringsjob.

SageMaker giver en kraftfuld IDE; det er en åben ML-platform, hvor dataforskere har fleksibiliteten til at bruge deres foretrukne udviklingsmiljø. For dataforskere, der foretrækker en lokal IDE såsom PyCharm eller Visual Studio Code, kan du bruge det lokale Python-miljø til at udvikle din ML-kode og bruge SageMaker til træning i et administreret skalerbart miljø. For mere information, se Kør dit TensorFlow-job på Amazon SageMaker med en PyCharm IDE. Når du har en solid model, kan du anvende MLOps bedste praksis med SageMaker.

I øjeblikket leverer SageMaker også SageMaker notebook-forekomster som vores ældre løsning til Jupyter Notebook-miljøet. Du har fleksibiliteten til at køre Docker build-kommandoen og brug SageMaker lokal tilstand til at træne på din notebook-instans. Vi leverer også eksempelkode til PaddleOCR i vores kodelager: ./train_and_deploy/notebook.ipynb.

Byg et brugerdefineret billede med en SageMaker-projektskabelon

SageMaker gør udstrakt brug af Docker-containere til bygge- og runtime-opgaver. Du kan nemt køre din egen container med SageMaker. Se flere tekniske detaljer på Brug dine egne træningsalgoritmer.

Men som dataforsker er det måske ikke ligetil at bygge en container. SageMaker-projekter giver dig en enkel måde at administrere tilpassede afhængigheder gennem en CI/CD-pipeline til billedopbygning. Når du bruger et SageMaker-projekt, kan du lave opdateringer til træningsbilledet med din brugerdefinerede container Dockerfile. For trin-for-trin instruktioner, se Opret Amazon SageMaker-projekter med billedopbygning af CI/CD-pipelines. Med strukturen i skabelonen kan du ændre den medfølgende kode i dette lager for at bygge en PaddleOCR-træningsbeholder.

Til dette indlæg viser vi enkelheden ved at bygge et tilpasset billede til behandling, træning og slutninger. GitHub-repoen indeholder tre mapper:

Disse projekter følger en lignende struktur. Tag billedet af træningsbeholderen som eksempel; det image-build-train/ repository indeholder følgende filer:

  • Codebuild-buildspec.yml filen, som bruges til at konfigurere AWS CodeBuild så billedet kan bygges og skubbes til Amazon ECR.
  • Dockerfilen, der bruges til Docker-builden, som indeholder alle afhængigheder og træningskoden.
  • Train.py-indgangspunktet for træningsscriptet med alle hyperparametre (såsom indlæringshastighed og batchstørrelse), der kan konfigureres som et argument. Disse argumenter er specificeret, når du starter træningsjobbet.
  • Afhængighederne.

Når du skubber koden ind i det tilsvarende lager, udløses den AWS CodePipeline at bygge en træningscontainer til dig. Det brugerdefinerede containerbillede gemmes i et Amazon ECR-lager, som illustreret i den foregående figur. En lignende procedure anvendes til at generere inferensbilledet.

Træn modellen med SageMaker trænings-SDK

Efter din algoritmekode er valideret og pakket ind i en container, kan du bruge et SageMaker-træningsjob til at levere et administreret miljø til at træne modellen. Dette miljø er flygtigt, hvilket betyder, at du kan have separate, sikre computerressourcer (såsom GPU) eller et multi-GPU-distribueret miljø til at køre din kode. Når træningen er færdig, gemmer SageMaker de resulterende modelartefakter til en Amazon Simple Storage Service (Amazon S3) placering, som du angiver. Alle logdata og metadata forbliver på AWS Management Console, Studio og amazoncloudwatch.

Træningsjobbet indeholder flere vigtige oplysninger:

  • URL'en på den S3-bøtte, hvor du gemte træningsdataene
  • URL'en på den S3-bøtte, hvor du vil gemme output fra jobbet
  • De administrerede computerressourcer, som du ønsker, at SageMaker skal bruge til modeltræning
  • Amazon ECR-stien, hvor træningsbeholderen opbevares

For mere information om uddannelsesjob, se Togmodeller. Eksempelkoden til uddannelsesjobbet findes på experiments-train-notebook.ipynb.

SageMaker laver hyperparametrene i en CreateTrainingJob anmodning tilgængelig i Docker-beholderen i /opt/ml/input/config/hyperparameters.json fil.

Vi bruger den tilpassede træningsbeholder som indgangspunkt og angiver et GPU-miljø for infrastrukturen. Alle relevante hyperparametre er detaljerede som parametre, hvilket giver os mulighed for at spore hver enkelt jobkonfiguration og sammenligne dem med eksperimentsporingen.

Fordi datavidenskabsprocessen er meget forskningsorienteret, er det almindeligt, at flere eksperimenter kører parallelt. Dette kræver en tilgang, der holder styr på alle de forskellige eksperimenter, forskellige algoritmer og potentielt forskellige datasæt og hyperparametre forsøgt. Amazon SageMaker Experiments lader dig organisere, spore, sammenligne og evaluere dine ML-eksperimenter. Det demonstrerer vi også i experiments-train-notebook.ipynb. For flere detaljer, se Administrer Machine Learning med Amazon SageMaker Experiments.

Implementer modellen til modelvisning

Hvad angår udrulning, især for realtidsmodelbetjening, kan mange dataforskere finde det svært at undvære hjælp fra operationsteams. SageMaker gør det nemt at implementere din trænede model i produktionen med SageMaker Python SDK. Du kan implementere din model til SageMaker-hostingtjenester og få et slutpunkt til brug for realtidsslutning.

I mange organisationer er dataforskere muligvis ikke ansvarlige for at vedligeholde endepunktsinfrastrukturen. Men at teste din model som et slutpunkt og garantere den korrekte forudsigelsesadfærd er faktisk dataforskernes ansvar. Derfor forenklede SageMaker opgaverne til implementering ved at tilføje et sæt værktøjer og SDK til dette.

Til brugssagen i indlægget ønsker vi at have interaktive realtidsfunktioner med lav latens. Realtidsslutning er ideel til denne slutningsarbejdsbyrde. Der er dog mange muligheder tilpasset hvert enkelt krav. For mere information, se Implementer modeller til inferens.

For at implementere det brugerdefinerede billede kan dataforskere bruge SageMaker SDK, illustreret på

experiments-deploy-notebook.ipynb.

I create_model anmodning, indeholder containerdefinitionen ModelDataUrl parameter, som identificerer Amazon S3-lokationen, hvor modelartefakter er gemt. SageMaker bruger disse oplysninger til at bestemme, hvorfra modelartefakterne skal kopieres. Det kopierer artefakterne til /opt/ml/model bibliotek til brug ved din slutningskode. Det serve , predictor.py er indgangspunktet for visning med modelartefakten, der indlæses, når du starter implementeringen. For mere information, se Brug din egen slutningskode med hostingtjenester.

Organiser din arbejdsgang med SageMaker Pipelines

Det sidste trin er at indpakke din kode som end-to-end ML-arbejdsgange og at anvende MLOps bedste praksis. I SageMaker administreres modelbygningsarbejdsbelastningen, en rettet acyklisk graf (DAG), af SageMaker Pipelines. Pipelines er en fuldt administreret tjeneste, der understøtter orkestrering og sporing af datalinje. Fordi Pipelines er integreret med SageMaker Python SDK, kan du desuden oprette dine pipelines programmatisk ved hjælp af en Python-grænseflade på højt niveau, som vi tidligere brugte under træningstrinnet.

Vi giver et eksempel på pipeline-kode for at illustrere implementeringen ved pipeline.py.

Pipelinen inkluderer et forbehandlingstrin til datasætgenerering, træningstrin, tilstandstrin og modelregistreringstrin. Ved afslutningen af ​​hver pipeline-kørsel vil dataforskere muligvis registrere deres model til versionskontrol og implementere den bedst ydende. SageMaker-modelregistret giver et centralt sted at administrere modelversioner, katalogmodeller og udløse automatiseret modelimplementering med godkendelsesstatus for en specifik model. For flere detaljer, se Registrer og implementer modeller med Model Registry.

I et ML-system hjælper automatiseret workflow-orkestrering med at forhindre forringelse af modellens ydeevne, med andre ord modeldrift. Tidlig og proaktiv opdagelse af dataafvigelser giver dig mulighed for at foretage korrigerende handlinger, såsom genoptræningsmodeller. Du kan udløse SageMaker-pipeline for at genoptræne en ny version af modellen, efter at afvigelser er blevet opdaget. Udløseren af ​​en rørledning kan også bestemmes af Amazon SageMaker Model Monitor, som løbende overvåger kvaliteten af ​​modeller i produktionen. Med datafangstkapaciteten til at registrere information, understøtter Model Monitor data- og modelkvalitetsovervågning, bias og funktionstilskrivningsdriftsovervågning. For flere detaljer, se Overvåg modeller for data- og modelkvalitet, bias og forklarlighed.

Konklusion

I dette indlæg illustrerede vi, hvordan man kører rammeværket PaddleOCR på SageMaker til OCR-opgaver. For at hjælpe datavidenskabsfolk med nemt at komme ombord på SageMaker, gik vi gennem ML-udviklingslivscyklussen, fra at bygge algoritmer, til træning til at hoste modellen som en webservice til realtidsslutning. Du kan bruge skabelonkoden, vi har leveret, til at migrere en vilkårlig ramme til SageMaker-platformen. Prøv det til dit ML-projekt, og fortæl os dine succeshistorier.


Om forfatterne

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps til at udføre optisk tegngenkendelse på identitetsdokumenter PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Junyi(Jackie) LIU er Senior Applied Scientist hos AWS. Hun har mange års erhvervserfaring inden for maskinlæring. Hun har rig praktisk erfaring med udvikling og implementering af løsninger inden for konstruktion af machine learning-modeller inden for supply chain-forudsigelsesalgoritmer, reklameanbefalingssystemer, OCR og NLP-området.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps til at udføre optisk tegngenkendelse på identitetsdokumenter PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Yanwei Cui, PhD, er Machine Learning Specialist Solutions Architect hos AWS. Han startede maskinlæringsforskning ved IRISA (Research Institute of Computer Science and Random Systems) og har flere års erfaring med at bygge kunstig intelligens-drevne industrielle applikationer inden for computersyn, naturlig sprogbehandling og online brugeradfærdsforudsigelse. Hos AWS deler han domæneekspertisen og hjælper kunderne med at frigøre forretningspotentialer og skabe handlingsrettede resultater med maskinlæring i stor skala. Uden for arbejdet holder han af at læse og rejse.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps til at udføre optisk tegngenkendelse på identitetsdokumenter PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Yi-An CHEN er softwareudvikler hos Amazon Lab 126. Hun har mere end 10 års erfaring med at udvikle maskinlæringsdrevne produkter på tværs af forskellige discipliner, herunder personalisering, naturlig sprogbehandling og computersyn. Uden for arbejdet kan hun lide at løbe og cykle.

Tidsstempel:

Mere fra AWS maskinindlæring