In veel sectoren, waaronder de financiële dienstverlening, het bankwezen, de gezondheidszorg, juridische zaken en onroerend goed, is het automatiseren van documentverwerking een essentieel onderdeel van het bedrijf en de klantenservice. Bovendien maken strikte compliance-regels het voor bedrijven noodzakelijk om op de juiste manier met gevoelige documenten, met name klantgegevens, om te gaan. Documenten kunnen verschillende indelingen hebben, waaronder digitale formulieren of gescande documenten (pdf of afbeeldingen), en kunnen getypte, handgeschreven of ingesloten formulieren en tabellen bevatten. Het handmatig extraheren van gegevens en inzichten uit deze documenten kan foutgevoelig, duur, tijdrovend en niet schaalbaar zijn tot een groot aantal documenten.
Optische tekenherkenningstechnologie (OCR) voor het herkennen van getypte tekens bestaat al jaren. Veel bedrijven extraheren handmatig gegevens uit gescande documenten zoals pdf's, afbeeldingen, tabellen en formulieren, of via eenvoudige OCR-software die handmatige configuratie vereist, wat vaak opnieuw moet worden geconfigureerd wanneer het formulier verandert.
Het digitale document is vaak een scan of afbeelding van een document en daarom kunt u machine learning (ML)-modellen gebruiken om automatisch tekst en informatie (zoals tabellen, afbeeldingen, bijschriften en sleutelpaarwaarden) uit het document te extraheren. Bijvoorbeeld, Amazon T-extract, een API-gebaseerde AI-enabled service, biedt dergelijke mogelijkheden met ingebouwde getrainde modellen, die u kunt gebruiken in applicaties zonder dat u ML-vaardigheden nodig heeft. Tegelijkertijd gebruiken aangepaste ML-modellen computer vision (CV) technieken om tekstextractie uit afbeeldingen te automatiseren; dit is vooral handig wanneer handgeschreven tekst moet worden geëxtraheerd, wat een uitdagend probleem is. Dit wordt ook wel handschriftherkenning (HWR) of handgeschreven tekstherkenning (HTR) genoemd. HTR kan leiden tot het doorzoekbaar maken van documenten met handgeschreven inhoud of het opslaan van de inhoud van oudere documenten en formulieren in moderne databases.
In tegenstelling tot standaard tekstherkenning die kan worden getraind op documenten met getypte inhoud of synthetische datasets die eenvoudig te genereren en goedkoop te verkrijgen zijn, komt HWR met veel uitdagingen. Deze uitdagingen omvatten variabiliteit in schrijfstijlen, lage kwaliteit van oude gescande documenten en het verzamelen van gelabelde trainingsdatasets van goede kwaliteit, die duur of moeilijk te verzamelen kunnen zijn.
In dit bericht delen we de processen, scripts en best practices om een aangepast ML-model in te ontwikkelen Amazon Sage Maker die technieken voor diep leren (DL) toepast op basis van het concept dat in de paper wordt geschetst GNHK: een dataset voor Engels handschrift in het wild om tekst in afbeeldingen van handgeschreven passages om te zetten in strings. Als u uw eigen gegevens heeft, kunt u deze oplossing gebruiken om uw gegevens te labelen en er een nieuw model mee te trainen. De oplossing zet de getrainde modellen ook in als eindpunten die u kunt gebruiken om gevolgtrekkingen uit te voeren op daadwerkelijke documenten en om handgeschreven scripts om te zetten in tekst. We leggen uit hoe u een veilige openbare gateway naar uw eindpunt kunt maken met behulp van Amazon API-gateway.
Voorwaarden
Om de oplossing in uw eigen account uit te proberen, moet u ervoor zorgen dat u over het volgende beschikt:
We raden aan om de JumpStart-oplossing te gebruiken, waarmee de resources correct worden ingesteld en geconfigureerd om de oplossing met succes uit te voeren.
U kunt ook uw eigen gegevens gebruiken om de modellen te trainen, in welk geval u afbeeldingen van handgeschreven tekst moet hebben opgeslagen Amazon eenvoudige opslagservice (Amazone S3).
Overzicht oplossingen
In de volgende secties begeleiden we u bij elke stap van het maken van de resources die worden beschreven in de volgende architectuur. Als u de oplossing met SageMaker JumpStart in uw account start, worden deze bronnen echter automatisch voor u gemaakt.
Als u deze oplossing start, worden er meerdere bronnen in uw account gemaakt, waaronder zeven voorbeeldnotitieblokken, meerdere bijbehorende aangepaste scripts die we gebruiken in trainingsmodellen en inferentie, en twee vooraf gebouwde demo-eindpunten die u kunt gebruiken voor real-time deductie als u dat niet wilt om de end-to-end training en hosting te doen. De notitieboekjes zijn als volgt:
- Demo-notitieblok – Laat zien hoe u de demo-eindpunten kunt gebruiken voor real-time handgeschreven tekstherkenning
- Introductie – Legt de architectuur en de verschillende stadia van de oplossing uit
- Labelen van uw eigen gegevens – Toont u hoe te gebruiken Amazon SageMaker Grondwaarheid om uw eigen dataset te labelen
- Data visualisatie – Visualiseert de resultaten van datalabeling
- Modeltraining - Traint aangepaste PyTorch-modellen met GNHK-gegevens
- Modelleer training met uw eigen data – Hiermee kunt u uw eigen gelabelde gegevens gebruiken voor trainingsmodellen
- Eindpunten - Creëert SageMaker-eindpunten met op maat getrainde modellen
Overzicht GNHK-gegevens
Deze oplossing maakt gebruik van de GoodNotes Handschriftcollectie (GNHK) dataset uitgegeven door GoodNotes voor CC-BY-4.0-licentie. Deze dataset wordt gepresenteerd in een paper met de titel GNHK: een dataset voor Engels handschrift in het wild de Internationale conferentie voor documentanalyse en -herkenning (ICDAR) in 2021, met de volgende vermelding:
De GNHK-dataset bevat afbeeldingen van Engelse handgeschreven tekst om ML-beoefenaars en onderzoekers in staat te stellen nieuwe handgeschreven tekstherkenningstechnieken te onderzoeken. U kunt de gegevens voor downloaden SageMaker training en testen in manifest formaat, die afbeeldingen, coördinaten van begrenzingskaders en tekenreeksen voor elk begrenzingskader bevat. De volgende afbeelding toont een van de afbeeldingen die deel uitmaakt van de trainingsdataset.
Gebruik uw eigen gelabelde dataset
Als u de GNHK-gegevensset niet wilt gebruiken voor training, kunt u de modellen trainen met uw eigen gegevens. Als uw gegevens zijn gelabeld met de coördinaten van het begrenzingsvak, kunt u een aangepast manifest-trainingsbestand maken met de volgende indeling en dit gemakkelijk gebruiken voor het trainen van de modellen. In dit manifestbestandsformaat is elke regel een JSON die de volgende inhoud bevat:
Label uw onbewerkte gegevens met behulp van Ground Truth
Als u geen gelabelde trainingsgegevensset heeft, kunt u Ground Truth gebruiken om uw gegevens te labelen met behulp van uw eigen personeel of externe bronnen zoals Amazon Mechanical Turk. Ground Truth is een volledig beheerde service voor het labelen van gegevens die het eenvoudig maakt om zeer nauwkeurige trainingsdatasets voor ML te bouwen. Ground Truth biedt ingebouwde workflows die verschillende use cases ondersteunen, waaronder tekst, afbeeldingen en video. Daarnaast biedt Ground Truth automatische datalabeling, waarbij een ML-model wordt gebruikt om uw data te labelen. De volgende afbeelding illustreert hoe Ground Truth werkt.
De JumpStart-oplossing die in uw account wordt gestart, maakt een voorbeeldnotitieblok (label_own_data.ipynb
) waarmee u Ground Truth-labeltaken kunt maken om uw gegevens te labelen met behulp van uw privépersoneel. Zie voor meer informatie over het instellen van labeltaken voor afbeeldingen en voor trainings- en zelfstudiebronnen SageMaker Ground Truth-bronnen voor het labelen van gegevens.
Wanneer de gegevenslabeling is voltooid, kunt u de bijbehorende gebruiken data_visualization.ipynb
notebook om de resultaten van de gegevensetikettering te visualiseren.
Train woordsegmentatie en handgeschreven tekstherkenningsmodellen
Nu de gelabelde gegevens zijn voorbereid, kunt u dat gebruiken om een model te trainen dat handgeschreven passages kan herkennen en de tekstreeksequivalenten kan retourneren. In dit gedeelte leiden we u door dit proces en leggen we elke stap uit van het bouwen en trainen van de modellen. We gebruiken PyTorch om te profiteren van state-of-the-art frameworks voor objectdetectie en tekstherkenning. Je kunt dezelfde aanpak ook ontwikkelen met behulp van andere deep learning-frameworks, zoals TensorFlow or MXNet. SageMaker biedt kant-en-klare Docker-images met deep learning-frameworkbibliotheken en andere afhankelijkheden die nodig zijn voor training en inferentie. Zie voor een volledige lijst met vooraf gebouwde Docker-images Beschikbare Deep Learning Containers-afbeeldingen.
Train en test datasets
Voordat we aan de slag gaan met modeltraining, hebben we een trainingsdataset en een test- (of validatie)dataset nodig om de getrainde modelprestaties te valideren. De GNHK dataset biedt al twee aparte datasets voor trainen en testen in SageMaker-manifestindeling, en deze oplossing gebruikt deze datasets. Als u uw eigen gelabelde dataset wilt gebruiken, is de gemakkelijkste manier om een gelabeld datamanifestbestand te splitsen in trein- en testsets (bijvoorbeeld 80% training en 20% test).
SageMaker leest de trainings- en testdatasets van Amazon S3. Nadat u de gegevens hebt gesplitst, moet u de manifestbestanden en de bijbehorende afbeeldingen opslaan in Amazon S3 en vervolgens de URI-links in de trainingsscripts gebruiken, zoals beschreven in de volgende secties.
Train het woordsegmentatiemodel
Voor gevolgtrekking op afbeeldingen van handgeschreven tekst die uit meerdere regels bestaat en elke regel uit meerdere woorden, moeten we twee modellen maken. Het eerste model segmenteert de afbeelding in enkele woorden door gebruik te maken van voorspelling van begrenzingskaders (of lokalisatie); het tweede model voert tekstherkenning uit op elk segment afzonderlijk. Elk model wordt gehost op een SageMaker-inferentie-eindpunt voor realtime inferentie. Beide modellen gebruiken PyTorch-frameworkcontainers voor versie 1.6.0. Zie voor meer informatie over het trainen en implementeren van modellen met PyTorch, inclusief vereisten voor training en inferentiescripts Gebruik PyTorch met de SageMaker Python SDK. Voor trainingsdoeleinden gebruiken we de SageMaker PyTorch schatterklasse. Voor meer details, zie Maak een schatter. Voor training heb je een aangepast trainingsscript als instappunt. Wanneer u deze JumpStart-oplossing in uw account start, voegt SageMaker automatisch alle bijbehorende aangepaste trainings- en inferentiecodes toe aan uw bestanden. Voor het lokalisatiemodel gebruiken we het custom 1_train_localisation.py
code onder de src_localisation
map. De schatter gebruikt één GPU-gebaseerde instantie voor trainingsdoeleinden.
In het volgende codefragment definiëren we prestatiestatistieken van het model en maken we een PyTorch-schatterklasse met het ingangspunt dat naar de trainingsscriptdirectory in de coderepository leidt. Aan het einde lanceren we de training door de .fit
methode op de schatter met de trainingsdataset en validatie op de testdataset.
Train het handgeschreven tekstherkenningsmodel
Nadat de woordsegmenten zijn bepaald door het vorige model, is het volgende deel van de inferentiepijplijn het uitvoeren van handschriftherkenning inferentie op elk segment. Het proces is hetzelfde, maar deze keer gebruiken we een ander aangepast trainingsscript, de 2_train_recogniser.py
schrift onder src_recognition
als startpunt voor de schatter en train een nieuw model. Net als bij het vorige model, traint dit model ook het model op de treindataset en evalueert het zijn prestaties op de testdataset. Als u de JumpStart-oplossing in uw account start, voegt SageMaker deze broncodes automatisch toe aan uw bestanden in uw Studio-domein.
Volgende, wij koppel de schatters aan de trainingstakenen wacht tot de training is voltooid voordat u doorgaat met de implementatie van de modellen. Het doel van koppelen is dat als de status van de trainingstaak Voltooid is, deze kan worden ingezet om een SageMaker-eindpunt te maken en een voorspeller te retourneren, maar als de trainingstaak bezig is, blokkeert de bijlage en geeft logberichten van de trainingstaak weer , totdat de trainingstaak voltooid is. Elke trainingstaak kan ongeveer 1 uur in beslag nemen.
Wanneer beide modeltrainingen zijn voltooid, kunt u doorgaan naar de volgende stap, namelijk het creëren van een eindpunt voor real-time gevolgtrekkingen op afbeeldingen met behulp van de twee modellen die we zojuist hebben getraind.
Maak SageMaker-eindpunten voor real-time gevolgtrekkingen
De volgende stap bij het bouwen van deze oplossing is het maken van eindpunten met de getrainde modellen die we kunnen gebruiken voor real-time gevolgtrekkingen op handgeschreven tekst. We leiden u door de stappen van het downloaden van de modelartefacten, het maken van modelcontainers, het implementeren van de containers en uiteindelijk het gebruik van de geïmplementeerde modellen om real-time gevolgtrekkingen te maken op een demo-image of uw eigen image.
Eerst moeten we getrainde modelartefacten van Amazon S3 ontleden. Na elke trainingstaak slaat SageMaker het getrainde model op in de vorm van een teerbal (.tar.gz
) op Amazon S3 die u kunt downloaden om binnen of buiten SageMaker te gebruiken. Voor dit doel gebruikt het volgende codefragment drie hulpprogrammafuncties (get_latest_training_job
, get_model_data
en parse_model_data
) Van de sm_utils
map die automatisch aan uw bestanden in Studio wordt toegevoegd wanneer u de JumpStart-oplossing in uw account start. Het script laat zien hoe je de modelgegevens van het PyTorch-woordsegmentatie (of lokalisatie) downloadt, comprimeert tot een teerbal en kopieert naar Amazon S3 om het model later te bouwen. U kunt dit proces herhalen voor het tekstherkenningsmodel.
Nu we de getrainde modelbestanden hebben, is het eenvoudig om een modelcontainer te maken in SageMaker. Omdat we het model hebben getraind met de PyTorch Estimator-klasse, kunnen we de PyTorch-modelklasse gebruiken om een modelcontainer te maken die een aangepast inferentiescript gebruikt. Zie je wel Implementeer PyTorch-modellen voor meer details. Nadat we het model hebben gemaakt, kunnen we een voorspeller maken door het model in te zetten als een eindpunt voor real-time gevolgtrekkingen. U kunt het aantal instanties voor uw eindpunt wijzigen of een andere instantie van Accelerated Computing (GPU) selecteren uit de lijst met beschikbare instanties voor real-time gevolgtrekking. De PyTorch-modelklasse gebruikt de inference.py
script voor elk model dat aan uw bestanden wordt toegevoegd wanneer u de JumpStart-oplossing in uw Studio-domein start. In de volgende code maken we het woordsegmentatiemodel. U kunt dezelfde aanpak volgen voor het maken van het tekstherkenningsmodel.
Nu kunnen we het eindpunt bouwen door de .deploy
methode op de modus en het maken van een voorspeller. Vervolgens koppelen we de serializer en deserializer aan het eindpunt. U kunt dezelfde aanpak volgen voor de tweede modus, voor tekstherkenning.
Het maken van een eindpunt duurt ongeveer 6 tot 7 minuten. De volgende code maakt obers voor het maken van eindpunten en wordt weergegeven als voltooid wanneer ze klaar zijn.
Wanneer de modelimplementaties zijn voltooid, kunt u een afbeelding van een handgeschreven passage naar het eerste eindpunt sturen om de begrenzingsvakken en hun coördinaten voor elk woord te krijgen. Gebruik vervolgens die coördinaten om elk begrenzingsvak bij te snijden en ze afzonderlijk naar het tweede eindpunt te sturen en de herkende tekenreeks voor elk begrenzingsvak op te halen. U kunt vervolgens de uitvoer van de twee eindpunten nemen en de begrenzingsvakken en de tekst op de onbewerkte afbeelding leggen, of de uitvoer gebruiken in uw stroomafwaartse processen.
Het volgende diagram illustreert de algehele procesworkflow.
uitbreidingen
Nu u werkende eindpunten hebt die real-time gevolgtrekkingen maken, kunt u ze gebruiken voor uw toepassingen of website. Uw SageMaker-eindpunten zijn echter nog steeds niet openbaar; u moet API-gateways bouwen om extern verkeer naar uw SageMaker-eindpunten mogelijk te maken. API Gateway is een volledig beheerde service waarmee ontwikkelaars eenvoudig API's op elke schaal kunnen maken, publiceren, onderhouden, bewaken en beveiligen. U kunt API Gateway gebruiken om een naar buiten gericht, enkel toegangspunt voor SageMaker-eindpunten te presenteren en beveiliging, beperking, authenticatie en firewall te bieden zoals geleverd door AWS WAF, en veel meer. Met API Gateway-toewijzingssjablonen, u kunt uw SageMaker-eindpunt aanroepen met een REST API-verzoek en een API-antwoord ontvangen. Met toewijzingssjablonen kunt u uw API Gateway rechtstreeks integreren met SageMaker-eindpunten zonder tussenkomst van een tussenpersoon AWS Lambda functie, waardoor uw online toepassingen sneller en goedkoper worden. Om een API Gateway te maken en deze te gebruiken om real-time gevolgtrekkingen te maken met uw SageMaker-eindpunten (zoals in de volgende architectuur), zie Een door machine learning aangedreven REST API maken met Amazon API Gateway-toewijzingssjablonen en Amazon SageMaker.
Conclusie
In dit bericht hebben we een end-to-end-oplossing uitgelegd voor het herkennen van handgeschreven tekst met behulp van aangepaste SageMaker-modellen. De oplossing omvatte het labelen van trainingsgegevens met behulp van Ground Truth, trainingsgegevens met PyTorch schatterklassen en aangepaste scripts, en het creëren van SageMaker-eindpunten voor real-time gevolgtrekkingen. We hebben ook uitgelegd hoe u een openbare API-gateway kunt maken die veilig kan worden gebruikt met uw mobiele applicaties of website.
Voor meer SageMaker-voorbeelden gaat u naar de GitHub-repository. Daarnaast vind je er nog meer PyTorch breng-uw-eigen-scriptvoorbeelden.
Ga voor meer SageMaker Python-voorbeelden voor MXNet, TensorFlow en PyTorch naar Amazon SageMaker vooraf gebouwde raamwerkcontainers en de Python SDK.
Ga voor meer voorbeelden van Ground Truth naar Inleiding tot Ground Truth Labeling Jobs. Aanvullende informatie over SageMaker is te vinden in de technische documentatie.
Over de auteurs
Jonathan Chung is een Applied Scientist in Halo Health-technologie. Hij werkt aan het toepassen van klassieke signaalverwerking en deep learning-technieken op tijdreeksen en biometrische gegevens. Daarvoor was hij Applied Scientists bij AWS. Hij houdt van koken en het bezoeken van historische steden over de hele wereld.
Dr.Nick Minaie, is de Manager Data Science en Business Intelligence bij Amazon en leidt de ontwikkeling van innovatieve machine learning-producten voor het tijd- en aanwezigheidsteam van Amazon. Voorheen was hij Senior AI/ML Solutions Architect bij AWS, waar hij klanten hielp op hun reis naar goed ontworpen machine learning-oplossingen op grote schaal. In zijn vrije tijd geniet Nick van tijd voor het gezin, abstracte schilderkunst en het verkennen van de natuur.
Dokter Li Zhang is een Principal Product Manager-Technical voor Amazon SageMaker JumpStart en Amazon SageMaker ingebouwde algoritmen, een service die datawetenschappers en machine learning-beoefenaars helpt aan de slag te gaan met het trainen en implementeren van hun modellen, en gebruikmaakt van versterkend leren met Amazon SageMaker. Zijn eerdere werk als hoofdonderzoeksmedewerker en meester-uitvinder bij IBM Research heeft de test of time paper award gewonnen bij IEEE INFOCOM.
Shenghua Yue is een Software Development Engineer bij Amazon SageMaker. Ze richt zich op het bouwen van machine learning-tools en -producten voor klanten. Buiten haar werk houdt ze van buiten, yoga en wandelen.
- '
- "
- 100
- 11
- 2021
- Account
- toevoeging
- Extra
- Voordeel
- alex
- algoritmen
- Alles
- Amazone
- Amazon API-gateway
- Amazon Sage Maker
- analyse
- apache
- api
- APIs
- toepassingen
- architectuur
- rond
- authenticatie
- AWS
- Bankieren
- BEST
- 'best practices'
- biometrie
- Box camera's
- bouw
- Gebouw
- bedrijfsdeskundigen
- business intelligence
- ondernemingen
- Bellen
- bijschriften
- gevallen
- uitdagingen
- verandering
- tekenherkenning
- Steden
- code
- Het verzamelen van
- Bedrijven
- nakoming
- Computer visie
- computergebruik
- Conferentie
- Configuratie
- Containers
- containers
- content
- koken
- Wij creëren
- gewas
- Klantenservice
- Klanten
- gegevens
- data science
- databanken
- diepgaand leren
- het inzetten
- Opsporing
- ontwikkelen
- ontwikkelaars
- Ontwikkeling
- digitaal
- havenarbeider
- documenten
- Endpoint
- ingenieur
- Engels
- vooral
- vastgoed
- voorbeeld
- extractie
- naar
- familie
- sneller
- Figuur
- Tot slot
- financieel
- financiële diensten
- Voornaam*
- geschikt
- volgen
- formulier
- formaat
- Achtergrond
- functie
- functies
- voortbrengen
- goed
- GPU
- Behandeling
- Gezondheid
- Gezondheidstechnologie
- gezondheidszorg
- Hoge
- wandelen
- Hosting
- Hoe
- How To
- HTTPS
- IBM
- IEEE
- beeld
- inclusief
- Inclusief
- industrieën
- informatie
- innovatieve
- Intelligentie
- onderzoeken
- IT
- Jobomschrijving:
- Vacatures
- etikettering
- lancering
- leiden
- leidend
- leren
- Juridisch
- Lijn
- Lijst
- Lokalisatie
- machine learning
- maken
- Metriek
- ML
- Mobile
- Mobiele applicaties
- model
- beweging
- nodig
- laptops
- Objectdetectie
- OCR
- Aanbod
- online.
- Overige
- buiten
- verpakking
- schilderij
- Papier
- prestatie
- Veelhoek
- voorspelling
- presenteren
- Principal
- privaat
- Product
- productontwikkeling
- Producten
- zorgen voor
- biedt
- publiek
- publiceren
- Python
- pytorch
- kwaliteit
- Rauw
- ruwe data
- vastgoed
- real-time
- reglement
- versterking van leren
- Voorwaarden
- onderzoek
- Resources
- antwoord
- REST
- Resultaten
- lopen
- sagemaker
- Scale
- aftasten
- Wetenschap
- wetenschappers
- veiligheid
- -Series
- Diensten
- reeks
- Delen
- Eenvoudig
- vaardigheden
- Software
- software development
- Oplossingen
- spleet
- gestart
- Status
- mediaopslag
- shop
- winkels
- ondersteuning
- tech
- technieken
- Technologie
- tensorflow
- proef
- Testen
- de wereld
- Door
- niet de tijd of
- tools
- verkeer
- Trainingen
- treinen
- zelfstudie
- URI
- utility
- Video
- visie
- volume
- W
- wachten
- Website
- zonder
- woorden
- Mijn werk
- workflow
- Workforce
- Bedrijven
- wereld
- het schrijven van
- X
- jaar
- Yoga