Integra PaddleOCR con Amazon SageMaker Progetti per MLOps per eseguire il riconoscimento ottico dei caratteri sui documenti di identità PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

PaddleOCR integrato con Amazon SageMaker Projects per MLOps per eseguire il riconoscimento ottico dei caratteri sui documenti di identità

Il riconoscimento ottico dei caratteri (OCR) è il compito di convertire il testo stampato o scritto a mano in testo codificato a macchina. L'OCR è stato ampiamente utilizzato in vari scenari, come l'elettronica di documenti e l'autenticazione dell'identità. Poiché l'OCR può ridurre notevolmente lo sforzo manuale per registrare le informazioni chiave e fungere da passaggio per la comprensione di grandi volumi di documenti, un sistema OCR accurato svolge un ruolo cruciale nell'era della trasformazione digitale.

La comunità open source e i ricercatori si stanno concentrando su come migliorare l'accuratezza dell'OCR, la facilità d'uso, l'integrazione con modelli pre-addestrati, l'estensione e la flessibilità. Tra i molti framework proposti, PaddleOCR ha guadagnato di recente una crescente attenzione. Il framework proposto si concentra sull'ottenimento di un'elevata precisione bilanciando l'efficienza computazionale. Inoltre, i modelli pre-addestrati per cinese e inglese lo rendono popolare nel mercato della lingua cinese. Vedi il Repo PaddleOCR GitHub per ulteriori dettagli.

In AWS, abbiamo anche proposto servizi di intelligenza artificiale integrati pronti per l'uso senza competenze di machine learning (ML). Per estrarre testo e dati strutturati come tabelle e moduli dai documenti, puoi utilizzare Testo Amazon. Utilizza tecniche di machine learning per leggere ed elaborare qualsiasi tipo di documento, estraendo con precisione testo, grafia, tabelle e altri dati senza alcuno sforzo manuale.

Per i data scientist che desiderano la flessibilità di utilizzare un framework open source per sviluppare il proprio modello OCR, offriamo anche il servizio ML completamente gestito Amazon Sage Maker. SageMaker ti consente di implementare le best practice MLOps durante tutto il ciclo di vita del ML e fornisce modelli e set di strumenti per ridurre il lavoro pesante indifferenziato per mettere in produzione i progetti ML.

In questo post, ci concentriamo sullo sviluppo di modelli personalizzati all'interno del framework PaddleOCR su SageMaker. Esaminiamo il ciclo di vita dello sviluppo di ML per illustrare come SageMaker può aiutarti a creare e addestrare un modello e, infine, a distribuire il modello come servizio Web. Sebbene illustriamo questa soluzione con PaddleOCR, le linee guida generali sono valide per i framework arbitrari da utilizzare su SageMaker. Per accompagnare questo post, forniamo anche un codice di esempio nel file Repository GitHub.

Framework PaddleOCR

In quanto framework OCR ampiamente adottato, PaddleOCR contiene il rilevamento del testo avanzato, il riconoscimento del testo e gli algoritmi end-to-end. Sceglie Differentiable Binaization (DB) e Convolutional Recurrent Neural Network (CRNN) come modelli di rilevamento e riconoscimento di base e propone una serie di modelli, denominati PP-OCR, per applicazioni industriali dopo una serie di strategie di ottimizzazione.

Il modello PP-OCR è rivolto a scenari generali e costituisce una libreria di modelli di linguaggi diversi. Si compone di tre parti: rilevamento del testo, rilevamento e rettifica del riquadro e riconoscimento del testo, illustrati nella figura seguente sul PaddleOCR repository ufficiale GitHub. Puoi anche fare riferimento al documento di ricerca PP-OCR: un pratico sistema OCR ultraleggero per maggiori informazioni.

Per essere più specifici, PaddleOCR consiste in tre attività consecutive:

  • Rilevazione del testo – Lo scopo del rilevamento del testo è individuare l'area di testo nell'immagine. Tali attività possono essere basate su una semplice rete di segmentazione.
  • Rilevamento e rettifica della scatola – Ogni casella di testo deve essere trasformata in una casella rettangolare orizzontale per il successivo riconoscimento del testo. Per fare ciò, PaddleOCR propone di addestrare un classificatore della direzione del testo (attività di classificazione delle immagini) per determinare la direzione del testo.
  • Riconoscimento del testo – Dopo che la casella di testo è stata rilevata, il modello di riconoscimento del testo esegue l'inferenza su ciascuna casella di testo e restituisce i risultati in base alla posizione della casella di testo. PaddleOCR adotta il metodo CRNN ampiamente utilizzato.

PaddleOCR fornisce modelli pre-addestrati di alta qualità paragonabili agli effetti commerciali. Puoi utilizzare il modello pre-addestrato per un modello di rilevamento, un classificatore di direzione o un modello di riconoscimento oppure puoi mettere a punto e riqualificare ogni singolo modello per soddisfare il tuo caso d'uso. Per aumentare l'efficienza e l'efficacia del rilevamento del cinese tradizionale e dell'inglese, illustriamo come ottimizzare il modello di riconoscimento del testo. Il modello pre-addestrato che scegliamo è ch_ppocr_mobile_v2.0_rec_train, che è un modello leggero, che supporta cinese, inglese e riconoscimento numerico. Quello che segue è un esempio di risultato dell'inferenza utilizzando una carta d'identità di Hong Kong.

Integra PaddleOCR con Amazon SageMaker Progetti per MLOps per eseguire il riconoscimento ottico dei caratteri sui documenti di identità PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Nelle sezioni seguenti, spieghiamo come mettere a punto il modello pre-addestrato utilizzando SageMaker.

Migliori pratiche MLOps con SageMaker

SageMaker è un servizio ML completamente gestito. Con SageMaker, data scientist e sviluppatori possono creare e addestrare modelli ML in modo rapido e semplice, quindi distribuirli direttamente in un ambiente gestito pronto per la produzione.

Molti data scientist utilizzano SageMaker per accelerare il ciclo di vita del ML. In questa sezione, illustriamo come SageMaker può aiutarti dalla sperimentazione alla produzione di ML. Seguendo i passaggi standard di un progetto ML, dalla frase sperimentale (sviluppo del codice ed esperimenti), alla frase operativa (automazione del flusso di lavoro di creazione del modello e delle pipeline di distribuzione), SageMaker può portare efficienza nei seguenti passaggi:

  1. Esplora i dati e crea il codice ML con Amazon Sage Maker Studio notebook.
  2. Addestra e ottimizza il modello con un lavoro di formazione SageMaker.
  3. Distribuisci il modello con un endpoint SageMaker per la pubblicazione del modello.
  4. Orchestra il flusso di lavoro con Pipeline di Amazon SageMaker.

Il diagramma seguente illustra questa architettura e flusso di lavoro.

Integra PaddleOCR con Amazon SageMaker Progetti per MLOps per eseguire il riconoscimento ottico dei caratteri sui documenti di identità PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

È importante notare che puoi utilizzare SageMaker in modo modulare. Ad esempio, puoi creare il tuo codice con un ambiente di sviluppo integrato (IDE) locale e addestrare e distribuire il tuo modello su SageMaker, oppure puoi sviluppare e addestrare il tuo modello nelle tue origini di calcolo del cluster e utilizzare una pipeline SageMaker per l'orchestrazione del flusso di lavoro e distribuire su un endpoint SageMaker. Ciò significa che SageMaker fornisce una piattaforma aperta per adattarsi alle proprie esigenze.

Vedi il codice nel ns Repository GitHub e README per comprendere la struttura del codice.

Fornire un progetto SageMaker

Puoi usare Progetti Amazon SageMaker per iniziare il tuo viaggio. Con un progetto SageMaker, puoi gestire le versioni per i tuoi repository Git in modo da poter collaborare tra i team in modo più efficiente, garantire la coerenza del codice e abilitare l'integrazione continua e la distribuzione continua (CI/CD). Sebbene i notebook siano utili per la creazione di modelli e la sperimentazione, quando si dispone di un team di data scientist e ingegneri di ML che lavora su un problema di ML, è necessario un modo più scalabile per mantenere la coerenza del codice e avere un controllo della versione più rigoroso.

I progetti SageMaker creano un modello MLOps preconfigurato, che include i componenti essenziali per semplificare l'integrazione di PaddleOCR:

  • Un repository di codice per creare immagini container personalizzate per l'elaborazione, il training e l'inferenza, integrato con gli strumenti CI/CD. Questo ci consente di configurare la nostra immagine Docker personalizzata e di eseguire il push a Registro dei contenitori Amazon Elastic (Amazon ECR) per essere pronto per l'uso.
  • Una pipeline SageMaker che definisce i passaggi per la preparazione dei dati, la formazione, la valutazione del modello e la registrazione del modello. Questo ci prepara a essere pronti per MLOps quando il progetto ML va in produzione.
  • Altre risorse utili, come un repository Git per il controllo della versione del codice, un gruppo di modelli che contiene le versioni del modello, un trigger di modifica del codice per la pipeline di compilazione del modello e un trigger basato su eventi per la pipeline di distribuzione del modello.

Puoi utilizzare il codice seme SageMaker per creare progetti SageMaker standard o un modello specifico creato dalla tua organizzazione per i membri del team. In questo post, utilizziamo lo standard Modello MLOps per creazione di immagini, creazione di modelli e distribuzione di modelli. Per ulteriori informazioni sulla creazione di un progetto in Studio, fare riferimento a Crea un progetto MLOps utilizzando Amazon SageMaker Studio.

Esplora i dati e crea codice ML con i notebook SageMaker Studio

I notebook SageMaker Studio sono notebook collaborativi che puoi avviare rapidamente perché non è necessario configurare in anticipo le istanze di elaborazione e l'archiviazione dei file. Molti data scientist preferiscono utilizzare questo IDE basato sul Web per lo sviluppo del codice ML, il debug rapido dell'API della libreria e il funzionamento con un piccolo campione di dati per convalidare lo script di addestramento.

Nei notebook Studio è possibile utilizzare un ambiente predefinito per framework comuni come TensorFlow, PyTorch, Pandas e Scikit-Learn. Puoi installare le dipendenze nel kernel precompilato o creare la tua immagine del kernel persistente. Per ulteriori informazioni, fare riferimento a Installa librerie e kernel esterni in Amazon SageMaker Studio. I notebook Studio forniscono anche un ambiente Python per attivare processi di formazione, distribuzione o altri servizi AWS di SageMaker. Nelle sezioni seguenti viene illustrato come utilizzare i notebook Studio come ambiente per attivare processi di formazione e distribuzione.

SageMaker fornisce un potente IDE; è una piattaforma ML aperta in cui i data scientist hanno la flessibilità di utilizzare il loro ambiente di sviluppo preferito. Per i data scientist che preferiscono un IDE locale come PyCharm o Visual Studio Code, puoi usare l'ambiente Python locale per sviluppare il codice ML e usare SageMaker per l'addestramento in un ambiente scalabile gestito. Per ulteriori informazioni, vedere Esegui il tuo lavoro TensorFlow su Amazon SageMaker con un IDE PyCharm. Dopo aver ottenuto un modello solido, puoi adottare le migliori pratiche MLOps con SageMaker.

Attualmente, SageMaker fornisce anche Istanze di notebook SageMaker come nostra soluzione legacy per l'ambiente Jupyter Notebook. Hai la flessibilità per eseguire il comando di build Docker e usa la modalità locale di SageMaker per addestrare l'istanza del tuo notebook. Forniamo anche codice di esempio per PaddleOCR nel nostro repository di codice: ./train_and_deploy/notebook.ipynb.

Crea un'immagine personalizzata con un modello di progetto SageMaker

SageMaker fa ampio uso di contenitori Docker per le attività di compilazione e runtime. Puoi eseguire facilmente il tuo container con SageMaker. Vedi maggiori dettagli tecnici su Usa i tuoi algoritmi di allenamento.

Tuttavia, come data scientist, la creazione di un container potrebbe non essere semplice. I progetti SageMaker forniscono un modo semplice per gestire le dipendenze personalizzate attraverso una pipeline CI/CD per la creazione di immagini. Quando utilizzi un progetto SageMaker, puoi aggiornare l'immagine di formazione con il tuo file Docker del contenitore personalizzato. Per istruzioni dettagliate, fare riferimento a Crea progetti Amazon SageMaker con pipeline CI/CD per la creazione di immagini. Con la struttura fornita nel modello, puoi modificare il codice fornito in questo repository per creare un contenitore di addestramento PaddleOCR.

Per questo post, mostriamo la semplicità della creazione di un'immagine personalizzata per l'elaborazione, l'addestramento e l'inferenza. Il repository GitHub contiene tre cartelle:

Questi progetti seguono una struttura simile. Prendi l'immagine del contenitore di formazione come esempio; il image-build-train/ repository contiene i seguenti file:

  • Il file codebuild-buildspec.yml, utilizzato per la configurazione AWSCodeBuild in modo che l'immagine possa essere creata e inviata ad Amazon ECR.
  • Dockerfile utilizzato per la build Docker, che contiene tutte le dipendenze e il codice di addestramento.
  • Il punto di ingresso train.py per lo script di addestramento, con tutti gli iperparametri (come la frequenza di apprendimento e la dimensione del batch) che possono essere configurati come argomento. Questi argomenti vengono specificati all'avvio del processo di addestramento.
  • Le dipendenze.

Quando inserisci il codice nel repository corrispondente, si attiva AWS Code Pipeline per costruire un contenitore di formazione per te. L'immagine del container personalizzata è archiviata in un repository Amazon ECR, come illustrato nella figura precedente. Una procedura simile viene adottata per generare l'immagine di inferenza.

Addestra il modello con l'SDK di formazione SageMaker

Dopo che il codice dell'algoritmo è stato convalidato e impacchettato in un contenitore, è possibile utilizzare un processo di addestramento SageMaker per eseguire il provisioning di un ambiente gestito per addestrare il modello. Questo ambiente è effimero, il che significa che puoi avere risorse di calcolo separate e sicure (come GPU) o un ambiente distribuito multi-GPU per eseguire il tuo codice. Al termine dell'addestramento, SageMaker salva gli artefatti del modello risultanti in un file Servizio di archiviazione semplice Amazon (Amazon S3) posizione specificata. Tutti i dati di registro e i metadati persistono sul file Console di gestione AWS, Studio e Amazon Cloud Watch.

Il lavoro di formazione include diverse informazioni importanti:

  • L'URL del bucket S3 in cui hai archiviato i dati di addestramento
  • L'URL del bucket S3 in cui desideri archiviare l'output del lavoro
  • Le risorse di calcolo gestite che vuoi che SageMaker utilizzi per l'addestramento del modello
  • Il percorso Amazon ECR in cui è archiviato il contenitore di formazione

Per ulteriori informazioni sui lavori di formazione, vedere Modelli di treno. Il codice di esempio per il lavoro di formazione è disponibile all'indirizzo esperimenti-treno-notebook.ipynb.

SageMaker crea gli iperparametri in a CreateTrainingJob richiesta disponibile nel contenitore Docker nel file /opt/ml/input/config/hyperparameters.json file.

Usiamo il contenitore di formazione personalizzato come punto di ingresso e specifichiamo un ambiente GPU per l'infrastruttura. Tutti gli iperparametri rilevanti sono dettagliati come parametri, il che ci consente di tracciare ogni singola configurazione del lavoro e confrontarli con il tracciamento dell'esperimento.

Poiché il processo di data science è molto orientato alla ricerca, è comune che più esperimenti vengano eseguiti in parallelo. Ciò richiede un approccio che tenga traccia di tutti i diversi esperimenti, algoritmi diversi e set di dati e iperparametri potenzialmente diversi tentati. Amazon SageMaker Experiments ti consente di organizzare, monitorare, confrontare e valutare i tuoi esperimenti ML. Lo dimostriamo anche in esperimenti-treno-notebook.ipynb. Per maggiori dettagli, fare riferimento a Gestisci l'apprendimento automatico con Amazon SageMaker Experiments.

Distribuire il modello per la pubblicazione del modello

Per quanto riguarda la distribuzione, in particolare per il servizio di modelli in tempo reale, molti data scientist potrebbero avere difficoltà a fare a meno dell'aiuto dei team operativi. SageMaker semplifica l'implementazione in produzione del modello addestrato con il SDK Python di SageMaker. Puoi distribuire il tuo modello ai servizi di hosting SageMaker e ottenere un endpoint da utilizzare per l'inferenza in tempo reale.

In molte organizzazioni, i data scientist potrebbero non essere responsabili della manutenzione dell'infrastruttura degli endpoint. Tuttavia, testare il modello come endpoint e garantire i comportamenti di previsione corretti è davvero responsabilità dei data scientist. Pertanto, SageMaker ha semplificato le attività per la distribuzione aggiungendo un set di strumenti e SDK per questo.

Per il caso d'uso nel post, vogliamo avere capacità in tempo reale, interattive e a bassa latenza. Inferenza in tempo reale è l'ideale per questo carico di lavoro di inferenza. Tuttavia, ci sono molte opzioni che si adattano a ogni specifica esigenza. Per ulteriori informazioni, fare riferimento a Distribuire modelli per l'inferenza.

Per distribuire l'immagine personalizzata, i data scientist possono utilizzare l'SDK SageMaker, illustrato in

esperimenti-deploy-notebook.ipynb.

Nel create_model richiesta, la definizione del contenitore include il ModelDataUrl parametro, che identifica la posizione Amazon S3 in cui sono archiviati gli artefatti del modello. SageMaker utilizza queste informazioni per determinare da dove copiare gli artefatti del modello. Copia gli artefatti in /opt/ml/model directory da utilizzare con il codice di inferenza. Il serve ed predictor.py è il punto di ingresso per l'elaborazione, con l'artefatto del modello caricato all'avvio della distribuzione. Per ulteriori informazioni, vedere Usa il tuo codice di inferenza con i servizi di hosting.

Organizza il tuo flusso di lavoro con SageMaker Pipelines

L'ultimo passaggio consiste nel racchiudere il codice come flussi di lavoro ML end-to-end e applicare le best practice MLOps. In SageMaker, il carico di lavoro di costruzione del modello, un grafo aciclico diretto (DAG), è gestito da SageMaker Pipelines. Pipelines è un servizio completamente gestito che supporta l'orchestrazione e il monitoraggio della derivazione dei dati. Inoltre, poiché Pipelines è integrato con SageMaker Python SDK, puoi creare le tue pipeline a livello di codice utilizzando un'interfaccia Python di alto livello che abbiamo utilizzato in precedenza durante la fase di addestramento.

Viene fornito un esempio di codice della pipeline per illustrare l'implementazione in pipeline.py.

La pipeline include una fase di preelaborazione per la generazione di set di dati, la fase di addestramento, la fase della condizione e la fase di registrazione del modello. Al termine di ogni esecuzione della pipeline, i data scientist potrebbero voler registrare il proprio modello per i controlli di versione e distribuire quello con le prestazioni migliori. Il registro dei modelli SageMaker fornisce una posizione centrale per gestire le versioni dei modelli, catalogare i modelli e attivare la distribuzione automatizzata del modello con lo stato di approvazione di un modello specifico. Per maggiori dettagli, fare riferimento a Registra e distribuisci modelli con Model Registry.

In un sistema ML, l'orchestrazione automatizzata del flusso di lavoro aiuta a prevenire il degrado delle prestazioni del modello, in altre parole la deriva del modello. Il rilevamento tempestivo e proattivo delle deviazioni dei dati consente di intraprendere azioni correttive, come la riqualificazione dei modelli. È possibile attivare la pipeline SageMaker per riqualificare una nuova versione del modello dopo che sono state rilevate le deviazioni. Il trigger di una pipeline può essere determinato anche da Monitor modello Amazon SageMaker, che monitora continuamente la qualità dei modelli in produzione. Con la capacità di acquisizione dei dati per registrare le informazioni, Model Monitor supporta il monitoraggio della qualità dei dati e del modello, il bias e il monitoraggio della deriva dell'attribuzione delle caratteristiche. Per maggiori dettagli, vedere Monitorare i modelli per la qualità dei dati, la distorsione e la spiegabilità del modello.

Conclusione

In questo post, abbiamo illustrato come eseguire il framework PaddleOCR su SageMaker per le attività OCR. Per aiutare i data scientist a integrare facilmente SageMaker, abbiamo esaminato il ciclo di vita dello sviluppo ML, dalla creazione di algoritmi, alla formazione, all'hosting del modello come servizio Web per l'inferenza in tempo reale. Puoi utilizzare il codice del modello che abbiamo fornito per migrare un framework arbitrario sulla piattaforma SageMaker. Provalo per il tuo progetto ML e facci sapere le tue storie di successo.


Informazioni sugli autori

Integra PaddleOCR con Amazon SageMaker Progetti per MLOps per eseguire il riconoscimento ottico dei caratteri sui documenti di identità PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Junyi (Jackie) LIU è un Senior Applied Scientist presso AWS. Ha molti anni di esperienza lavorativa nel campo del machine learning. Ha una ricca esperienza pratica nello sviluppo e nell'implementazione di soluzioni nella costruzione di modelli di machine learning in algoritmi di previsione della supply chain, sistemi di raccomandazione pubblicitaria, area OCR e NLP.

Integra PaddleOCR con Amazon SageMaker Progetti per MLOps per eseguire il riconoscimento ottico dei caratteri sui documenti di identità PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Yanwei Cui, PhD, è un architetto di soluzioni specializzato in machine learning presso AWS. Ha iniziato la ricerca sull'apprendimento automatico presso l'IRISA (Research Institute of Computer Science and Random Systems) e ha diversi anni di esperienza nella creazione di applicazioni industriali basate sull'intelligenza artificiale nella visione artificiale, nell'elaborazione del linguaggio naturale e nella previsione del comportamento degli utenti online. In AWS, condivide l'esperienza del dominio e aiuta i clienti a sbloccare i potenziali di business e a ottenere risultati attuabili con l'apprendimento automatico su larga scala. Al di fuori del lavoro, ama leggere e viaggiare.

Integra PaddleOCR con Amazon SageMaker Progetti per MLOps per eseguire il riconoscimento ottico dei caratteri sui documenti di identità PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Yi An CHEN è una sviluppatrice di software presso Amazon Lab 126. Ha più di 10 anni di esperienza nello sviluppo di prodotti basati sull'apprendimento automatico in diverse discipline, tra cui personalizzazione, elaborazione del linguaggio naturale e visione artificiale. Al di fuori del lavoro, le piace correre e andare in bicicletta.

Timestamp:

Di più da Apprendimento automatico di AWS