Onboard PaddleOCR med Amazon SageMaker Projects for MLOps for å utføre optisk tegngjenkjenning på identitetsdokumenter PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps for å utføre optisk tegngjenkjenning på identitetsdokumenter

Optisk tegngjenkjenning (OCR) er oppgaven med å konvertere trykt eller håndskrevet tekst til maskinkodet tekst. OCR har blitt mye brukt i ulike scenarier, for eksempel dokumentelektronisering og identitetsautentisering. Fordi OCR i stor grad kan redusere den manuelle innsatsen for å registrere nøkkelinformasjon og tjene som et inngangssteg for å forstå store mengder dokumenter, spiller et nøyaktig OCR-system en avgjørende rolle i den digitale transformasjonens æra.

Fellesskapet med åpen kildekode og forskere konsentrerer seg om hvordan man kan forbedre OCR-nøyaktighet, brukervennlighet, integrasjon med forhåndstrente modeller, utvidelse og fleksibilitet. Blant mange foreslåtte rammeverk har PaddleOCR fått økende oppmerksomhet den siste tiden. Det foreslåtte rammeverket konsentrerer seg om å oppnå høy nøyaktighet og samtidig balansere beregningseffektivitet. I tillegg gjør de forhåndstrente modellene for kinesisk og engelsk den populær i det kinesiske språkbaserte markedet. Se PaddleOCR GitHub repo for mer informasjon.

Hos AWS har vi også foreslått integrerte AI-tjenester som er klare til bruk uten maskinlæringskompetanse (ML). For å trekke ut tekst og strukturerte data som tabeller og skjemaer fra dokumenter, kan du bruke amazontekst. Den bruker ML-teknikker for å lese og behandle alle typer dokumenter, nøyaktig trekke ut tekst, håndskrift, tabeller og andre data uten manuell innsats.

For dataforskerne som ønsker fleksibiliteten til å bruke et rammeverk med åpen kildekode for å utvikle din egen OCR-modell, tilbyr vi også den fullstendig administrerte ML-tjenesten Amazon SageMaker. SageMaker lar deg implementere MLOps beste praksis gjennom hele ML-livssyklusen, og tilbyr maler og verktøysett for å redusere de udifferensierte tunge løftene for å sette ML-prosjekter i produksjon.

I dette innlegget konsentrerer vi oss om å utvikle tilpassede modeller innenfor PaddleOCR-rammeverket på SageMaker. Vi går gjennom ML-utviklingslivssyklusen for å illustrere hvordan SageMaker kan hjelpe deg med å bygge og trene en modell, og til slutt distribuere modellen som en webtjeneste. Selv om vi illustrerer denne løsningen med PaddleOCR, gjelder den generelle veiledningen for vilkårlige rammer som skal brukes på SageMaker. For å følge dette innlegget gir vi også prøvekode i GitHub repository.

PaddleOCR-rammeverk

Som et bredt vedtatt OCR-rammeverk inneholder PaddleOCR rik tekstgjenkjenning, tekstgjenkjenning og ende-til-ende-algoritmer. Den velger Differentiable Binarization (DB) og Convolutional Recurrent Neural Network (CRNN) som de grunnleggende deteksjons- og gjenkjenningsmodellene, og foreslår en serie modeller, kalt PP-OCR, for industrielle applikasjoner etter en rekke optimaliseringsstrategier.

PP-OCR-modellen er rettet mot generelle scenarier og danner et modellbibliotek av forskjellige språk. Den består av tre deler: tekstgjenkjenning, boksgjenkjenning og retting, og tekstgjenkjenning, illustrert i følgende figur på PaddleOCR offisielt GitHub-lager. Du kan også referere til forskningsoppgaven PP-OCR: Et praktisk ultralett OCR-system for mer informasjon.

For å være mer spesifikk består PaddleOCR av tre påfølgende oppgaver:

  • Tekstregistrering – Hensikten med tekstgjenkjenning er å finne tekstområdet i bildet. Slike oppgaver kan baseres på et enkelt segmenteringsnettverk.
  • Boksdeteksjon og retting – Hver tekstboks må gjøres om til en horisontal rektangelboks for påfølgende tekstgjenkjenning. For å gjøre dette foreslår PaddleOCR å trene en tekstretningsklassifiserer (bildeklassifiseringsoppgave) for å bestemme tekstretningen.
  • Tekstgjenkjenning – Etter at tekstboksen er oppdaget, utfører tekstgjenkjenningsmodellen inferens på hver tekstboks og sender ut resultatene i henhold til tekstboksplassering. PaddleOCR tar i bruk den mye brukte metoden CRNN.

PaddleOCR tilbyr forhåndstrente modeller av høy kvalitet som kan sammenlignes med kommersielle effekter. Du kan enten bruke den forhåndstrente modellen for en deteksjonsmodell, retningsklassifiserer eller gjenkjenningsmodell, eller du kan finjustere og omskolere hver enkelt modell for å tjene ditt bruksområde. For å øke effektiviteten og effektiviteten ved å oppdage tradisjonell kinesisk og engelsk, illustrerer vi hvordan du finjusterer tekstgjenkjenningsmodellen. Den ferdigtrente modellen vi velger er ch_ppocr_mobile_v2.0_rec_train, som er en lett modell som støtter kinesisk, engelsk og nummergjenkjenning. Følgende er et eksempel på resultat ved bruk av et Hong Kong-identitetskort.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps for å utføre optisk tegngjenkjenning på identitetsdokumenter PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

I de følgende avsnittene går vi gjennom hvordan du finjusterer den ferdigtrente modellen ved hjelp av SageMaker.

MLOs beste praksis med SageMaker

SageMaker er en fullt administrert ML-tjeneste. Med SageMaker kan dataforskere og utviklere raskt og enkelt bygge og trene ML-modeller, og deretter distribuere dem direkte i et produksjonsklart administrert miljø.

Mange dataforskere bruker SageMaker for å akselerere ML-livssyklusen. I denne delen illustrerer vi hvordan SageMaker kan hjelpe deg fra eksperimentering til produksjonalisering av ML. Ved å følge standardtrinnene i et ML-prosjekt, fra den eksperimentelle setningen (kodeutvikling og eksperimenter), til den operative setningen (automatisering av arbeidsflyten for modellbygging og distribusjonspipelines), kan SageMaker bringe effektivitet i følgende trinn:

  1. Utforsk dataene og bygg ML-koden med Amazon SageMaker Studio notatbøker.
  2. Tren og juster modellen med en SageMaker-treningsjobb.
  3. Distribuer modellen med et SageMaker-endepunkt for modellvisning.
  4. Orkestrere arbeidsflyten med Amazon SageMaker-rørledninger.

Følgende diagram illustrerer denne arkitekturen og arbeidsflyten.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps for å utføre optisk tegngjenkjenning på identitetsdokumenter PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Det er viktig å merke seg at du kan bruke SageMaker på en modulær måte. Du kan for eksempel bygge koden din med et lokalt integrert utviklingsmiljø (IDE) og trene og distribuere modellen din på SageMaker, eller du kan utvikle og trene modellen din i dine egne klyngedatakilder, og bruke en SageMaker-pipeline for arbeidsflytorkestrering og distribuere på et SageMaker-endepunkt. Dette betyr at SageMaker tilbyr en åpen plattform for å tilpasse seg dine egne krav.

Se koden i vår GitHub repository og README for å forstå kodestrukturen.

Gi et SageMaker-prosjekt

Du kan bruke Amazon SageMaker-prosjekter for å starte reisen. Med et SageMaker-prosjekt kan du administrere versjonene for Git-repositoriene dine slik at du kan samarbeide på tvers av team mer effektivt, sikre kodekonsistens og muliggjøre kontinuerlig integrasjon og kontinuerlig levering (CI/CD). Selv om bærbare datamaskiner er nyttige for modellbygging og eksperimentering, når du har et team av dataforskere og ML-ingeniører som jobber med et ML-problem, trenger du en mer skalerbar måte å opprettholde kodekonsistens og ha strengere versjonskontroll.

SageMaker-prosjekter lager en forhåndskonfigurert MLOps-mal, som inkluderer de essensielle komponentene for å forenkle PaddleOCR-integrasjonen:

  • Et kodelager for å bygge tilpassede containerbilder for prosessering, opplæring og inferens, integrert med CI/CD-verktøy. Dette lar oss konfigurere vårt tilpassede Docker-bilde og trykke til Amazon Elastic Container Registry (Amazon ECR) for å være klar til bruk.
  • En SageMaker-pipeline som definerer trinn for dataforberedelse, opplæring, modellevaluering og modellregistrering. Dette forbereder oss på å være MLOps klare når ML-prosjektet går i produksjon.
  • Andre nyttige ressurser, for eksempel et Git-repository for kodeversjonskontroll, modellgruppe som inneholder modellversjoner, kodeendringstrigger for modellbyggingspipeline og hendelsesbasert trigger for modelldistribusjonspipeline.

Du kan bruke SageMaker-frøkode for å lage standard SageMaker-prosjekter, eller en spesifikk mal som organisasjonen din har laget for teammedlemmer. I dette innlegget bruker vi standarden MLOps-mal for bildebygging, modellbygging og modellimplementering. For mer informasjon om å lage et prosjekt i Studio, se Lag et MLOps-prosjekt ved å bruke Amazon SageMaker Studio.

Utforsk data og bygg ML-kode med SageMaker Studio Notebooks

SageMaker Studio-notatbøker er samarbeidsnotatbøker som du kan starte raskt fordi du ikke trenger å sette opp dataforekomster og fillagring på forhånd. Mange dataforskere foretrekker å bruke denne nettbaserte IDE-en for å utvikle ML-koden, raskt feilsøke bibliotekets API og få ting til å gå med et lite utvalg av data for å validere opplæringsskriptet.

I Studio-notatbøker kan du bruke et forhåndsbygd miljø for vanlige rammeverk som TensorFlow, PyTorch, Pandas og Scikit-Learn. Du kan installere avhengighetene til den forhåndsbygde kjernen, eller bygge opp ditt eget vedvarende kjernebilde. For mer informasjon, se Installer eksterne biblioteker og kjerner i Amazon SageMaker Studio. Studio-notatbøker tilbyr også et Python-miljø for å utløse SageMaker-treningsjobber, distribusjon eller andre AWS-tjenester. I de følgende delene illustrerer vi hvordan du bruker Studio-notatbøker som et miljø for å utløse opplærings- og distribusjonsjobber.

SageMaker gir en kraftig IDE; det er en åpen ML-plattform der dataforskere har fleksibiliteten til å bruke deres foretrukne utviklingsmiljø. For dataforskere som foretrekker en lokal IDE som PyCharm eller Visual Studio Code, kan du bruke det lokale Python-miljøet til å utvikle ML-koden din, og bruke SageMaker for opplæring i et administrert skalerbart miljø. For mer informasjon, se Kjør TensorFlow -jobben din på Amazon SageMaker med en PyCharm IDE. Etter at du har en solid modell, kan du ta i bruk MLOps beste praksis med SageMaker.

Foreløpig tilbyr SageMaker også SageMaker notatbokforekomster som vår eldre løsning for Jupyter Notebook-miljøet. Du har fleksibiliteten til å kjøre Docker build-kommandoen og bruk SageMaker lokal modus for å trene på din bærbare instans. Vi tilbyr også eksempelkode for PaddleOCR i vårt kodelager: ./train_and_deploy/notebook.ipynb.

Bygg et tilpasset bilde med en SageMaker-prosjektmal

SageMaker bruker utstrakt bruk av Docker-containere for bygge- og kjøretidsoppgaver. Du kan enkelt kjøre din egen container med SageMaker. Se flere tekniske detaljer på Bruk dine egne treningsalgoritmer.

Men som dataforsker er det kanskje ikke enkelt å bygge en beholder. SageMaker-prosjekter gir deg en enkel måte å administrere tilpassede avhengigheter gjennom en bildebyggende CI/CD-pipeline. Når du bruker et SageMaker-prosjekt, kan du gjøre oppdateringer til treningsbildet med din egendefinerte container Dockerfile. For trinnvise instruksjoner, se Lag Amazon SageMaker-prosjekter med bildebyggende CI/CD-pipelines. Med strukturen som er gitt i malen, kan du endre den angitte koden i dette depotet for å bygge en PaddleOCR-treningsbeholder.

For dette innlegget viser vi frem enkelheten i å bygge et tilpasset bilde for prosessering, opplæring og slutning. GitHub-repoen inneholder tre mapper:

Disse prosjektene følger en lignende struktur. Ta treningsbeholderbildet som et eksempel; de image-build-train/ repository inneholder følgende filer:

  • Codebuild-buildspec.yml-filen, som brukes til å konfigurere AWS CodeBuild slik at bildet kan bygges og skyves til Amazon ECR.
  • Dockerfilen som brukes for Docker-bygget, som inneholder alle avhengigheter og treningskoden.
  • Train.py-inngangspunktet for treningsskript, med alle hyperparametre (som læringshastighet og batchstørrelse) som kan konfigureres som et argument. Disse argumentene spesifiseres når du starter opplæringsjobben.
  • Avhengighetene.

Når du skyver koden inn i det tilsvarende depotet, utløses den AWS CodePipeline å bygge en treningsbeholder for deg. Det tilpassede beholderbildet lagres i et Amazon ECR-lager, som illustrert i forrige figur. En lignende prosedyre brukes for å generere slutningsbildet.

Tren modellen med SageMaker trenings-SDK

Etter at algoritmekoden din er validert og pakket inn i en beholder, kan du bruke en SageMaker-opplæringsjobb for å klargjøre et administrert miljø for å trene modellen. Dette miljøet er flyktig, noe som betyr at du kan ha separate, sikre dataressurser (som GPU) eller et distribuert multi-GPU-miljø for å kjøre koden din. Når opplæringen er fullført, lagrer SageMaker de resulterende modellartefaktene til en Amazon enkel lagringstjeneste (Amazon S3) plassering som du angir. Alle loggdata og metadata vedvarer på AWS-administrasjonskonsoll, Studio og Amazon CloudWatch.

Opplæringsjobben inneholder flere viktige opplysninger:

  • URL-en til S3-bøtten der du lagret treningsdataene
  • URL-en til S3-bøtten der du vil lagre utdataene fra jobben
  • De administrerte beregningsressursene du vil at SageMaker skal bruke til modelltrening
  • Amazon ECR-banen der treningsbeholderen er lagret

For mer informasjon om treningsjobber, se Togmodeller. Eksempelkoden for opplæringsjobben er tilgjengelig på experiments-train-notebook.ipynb.

SageMaker lager hyperparametrene i en CreateTrainingJob forespørsel tilgjengelig i Docker-beholderen i /opt/ml/input/config/hyperparameters.json filen.

Vi bruker den tilpassede opplæringsbeholderen som inngangspunkt og spesifiserer et GPU-miljø for infrastrukturen. Alle relevante hyperparametre er detaljert som parametere, som lar oss spore hver enkelt jobbkonfigurasjon og sammenligne dem med eksperimentsporingen.

Fordi datavitenskapsprosessen er veldig forskningsorientert, er det vanlig at flere eksperimenter kjører parallelt. Dette krever en tilnærming som holder styr på alle de forskjellige eksperimentene, forskjellige algoritmene og potensielt forskjellige datasett og hyperparametre som er forsøkt. Amazon SageMaker Experiments lar deg organisere, spore, sammenligne og evaluere ML-eksperimentene dine. Dette viser vi også i experiments-train-notebook.ipynb. For flere detaljer, se Administrer maskinlæring med Amazon SageMaker-eksperimenter.

Distribuer modellen for modellvisning

Når det gjelder distribusjon, spesielt for sanntidsmodellservering, kan mange dataforskere finne det vanskelig å klare seg uten hjelp fra operasjonsteam. SageMaker gjør det enkelt å distribuere den trente modellen din i produksjon med SageMaker Python SDK. Du kan distribuere modellen din til SageMaker-vertstjenester og få et endepunkt å bruke for sanntidsslutning.

I mange organisasjoner kan det hende at dataforskere ikke er ansvarlige for å vedlikeholde endepunktinfrastrukturen. Men å teste modellen din som et endepunkt og garantere riktig prediksjonsatferd er faktisk dataforskernes ansvar. Derfor forenklet SageMaker oppgavene for distribusjon ved å legge til et sett med verktøy og SDK for dette.

For brukssaken i innlegget ønsker vi å ha sanntids, interaktive funksjoner med lav latens. Slutning i sanntid er ideell for denne slutningsarbeidsbelastningen. Imidlertid er det mange alternativer tilpasset hvert spesifikke krav. For mer informasjon, se Distribuer modeller for inferens.

For å distribuere det tilpassede bildet kan dataforskere bruke SageMaker SDK, illustrert på

experiments-deploy-notebook.ipynb.

create_model forespørsel, inneholder beholderdefinisjonen ModelDataUrl parameter, som identifiserer Amazon S3-plasseringen der modellartefakter er lagret. SageMaker bruker denne informasjonen til å bestemme hvor modellartefaktene skal kopieres fra. Den kopierer gjenstandene til /opt/ml/model katalog for bruk av slutningskoden din. De serve og predictor.py er inngangspunktet for visning, med modellartefakten som lastes inn når du starter distribusjonen. For mer informasjon, se Bruk din egen slutningskode med vertstjenester.

Ordne arbeidsflyten din med SageMaker Pipelines

Det siste trinnet er å pakke inn koden din som ende-til-ende ML-arbeidsflyter, og å bruke MLOps beste praksis. I SageMaker administreres arbeidsmengden for modellbygging, en rettet asyklisk graf (DAG), av SageMaker Pipelines. Pipelines er en fullstendig administrert tjeneste som støtter orkestrering og sporing av datalinje. I tillegg, fordi Pipelines er integrert med SageMaker Python SDK, kan du lage dine pipelines programmatisk ved å bruke et høynivå Python-grensesnitt som vi brukte tidligere under opplæringstrinnet.

Vi gir et eksempel på rørledningskode for å illustrere implementeringen på pipeline.py.

Rørledningen inkluderer et forbehandlingstrinn for datasettgenerering, treningstrinn, tilstandstrinn og modellregistreringstrinn. På slutten av hver pipeline-kjøring vil dataforskere kanskje registrere modellen deres for versjonskontroller og distribuere den som gir best ytelse. SageMaker-modellregisteret gir et sentralt sted for å administrere modellversjoner, katalogmodeller og utløse automatisert modelldistribusjon med godkjenningsstatus for en spesifikk modell. For flere detaljer, se Registrer og distribuer modeller med modellregister.

I et ML-system hjelper automatisert arbeidsflyt-orkestrering med å forhindre forringelse av modellytelse, med andre ord modelldrift. Tidlig og proaktiv oppdagelse av dataavvik gjør at du kan ta korrigerende handlinger, for eksempel omskoleringsmodeller. Du kan trigge SageMaker-rørledningen for å omskolere en ny versjon av modellen etter at avvik er oppdaget. Utløseren av en rørledning kan også bestemmes av Amazon SageMaker modellmonitor, som kontinuerlig overvåker kvaliteten på modellene i produksjon. Med datafangstfunksjonen for å registrere informasjon, støtter Model Monitor data- og modellkvalitetsovervåking, skjevhet og funksjonsattribusjonsdriftsovervåking. For flere detaljer, se Overvåk modeller for data- og modellkvalitet, skjevhet og forklarbarhet.

konklusjonen

I dette innlegget illustrerte vi hvordan du kjører rammeverket PaddleOCR på SageMaker for OCR-oppgaver. For å hjelpe dataforskere enkelt ombord på SageMaker, gikk vi gjennom ML-utviklingslivssyklusen, fra å bygge algoritmer, til opplæring, til å være vert for modellen som en webtjeneste for sanntidsslutning. Du kan bruke malkoden vi ga til å migrere et vilkårlig rammeverk til SageMaker-plattformen. Prøv det for ML-prosjektet ditt og fortell oss om suksesshistoriene dine.


Om forfatterne

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps for å utføre optisk tegngjenkjenning på identitetsdokumenter PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Junyi (Jackie) LIU er Senior Applied Scientist ved AWS. Hun har mange års arbeidserfaring innen maskinlæring. Hun har rik praktisk erfaring i utvikling og implementering av løsninger innen konstruksjon av maskinlæringsmodeller innen forsyningskjedeprediksjonsalgoritmer, annonseringsanbefalingssystemer, OCR og NLP-området.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps for å utføre optisk tegngjenkjenning på identitetsdokumenter PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Yanwei Cui, PhD, er en maskinlæringsspesialistløsningsarkitekt ved AWS. Han startet forskning på maskinlæring ved IRISA (Research Institute of Computer Science and Random Systems), og har flere års erfaring med å bygge kunstig intelligens-drevne industrielle applikasjoner innen datasyn, naturlig språkbehandling og online brukeratferdsprediksjon. Hos AWS deler han domeneekspertisen og hjelper kundene med å låse opp forretningspotensialer og å oppnå handlingsrettede resultater med maskinlæring i stor skala. Utenom jobben liker han å lese og reise.

Onboard PaddleOCR med Amazon SageMaker Projects for MLOps for å utføre optisk tegngjenkjenning på identitetsdokumenter PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Yi-An CHEN er programvareutvikler ved Amazon Lab 126. Hun har mer enn 10 års erfaring med å utvikle maskinlæringsdrevne produkter på tvers av forskjellige disipliner, inkludert personalisering, naturlig språkbehandling og datasyn. Utenom jobben liker hun å løpe og sykle.

Tidstempel:

Mer fra AWS maskinlæring