Een aangepast model trainen met behulp van het voorbeeldhulpprogramma voor labelen

Dit artikel is van toepassing op:Form Recognizer v2.1 Form Recognizerv2.1.

Tip

In dit artikel gebruikt u de Form Recognizer REST API met het hulpprogramma voor voorbeeldlabels om een aangepast model te trainen met handmatig gelabelde gegevens.

Vereisten

U hebt de volgende resources nodig om dit project te voltooien:

  • Azure-abonnement: Krijg een gratis abonnement
  • Zodra u uw Azure-abonnement hebt, maakt een Form Recognizer resource in de Azure Portal om uw sleutel en eindpunt op te halen. Nadat de app is geïmplementeerd, selecteert u Ga naar resource.
    • U hebt de sleutel en het eindpunt van de resource die u maakt nodig om uw toepassing te verbinden met de Form Recognizer-API. U plakt uw sleutel en eindpunt verderop in de code verderop in de quickstart.
    • U kunt de gratis prijscategorie (F0) gebruiken om de service uit te proberen, en later upgraden naar een betaalde laag voor productie.
  • Een set van minimaal zes formulieren van hetzelfde type. U gebruikt deze gegevens om het model te trainen en een formulier te testen. U kunt een voorbeeldgegevensverzameling gebruiken voor deze quickstart (download en extraheer sample_data.zip). Upload de trainingsbestanden naar de hoofdmap van een Blob Storage-container in een Azure Storage-account met een standaardprestatielaag.

Een Form Recognizer-resource maken

Ga naar de Azure Portal en maak een nieuwe Form Recognizer resource . Geef in het deelvenster Maken de volgende gegevens op:

Projectgegevens Beschrijving
Abonnement Selecteer het Azure-abonnement waaraan toegang is verleend.
Resourcegroep De Azure-resourcegroep die uw resource bevat. U kunt een nieuwe groep maken of deze toevoegen aan een bestaande groep.
Regio De locatie van uw cognitieve service-exemplaar. Verschillende locaties kunnen latentie veroorzaken, maar deze hebben geen invloed op de beschikbaarheid van de runtime van uw resource.
Naam Een beschrijvende naam voor de resource. U kunt het beste een beschrijvende naam gebruiken, bijvoorbeeld MyNameFormRecognizer.
Prijscategorie De kosten van uw resource zijn afhankelijk van de prijscategorie die u kiest en van uw gebruik. Zie Prijsopgaven voor API's voor meer informatie.
Controleren en maken Selecteer de knop Beoordelen en maken om uw resource op de Azure Portal te implementeren.

De sleutel en het eindpunt ophalen

Wanneer uw Form Recognizer-resource is geïmplementeerd, selecteert u deze in de portal in de lijst Alle resources. Uw sleutel en eindpunt bevinden zich op de pagina Sleutel en eindpunt van de resource, onder Resourcebeheer. Sla beide op een tijdelijke locatie op voordat u verdergaat.

Probeer het eens

Probeer het Form Recognizer-voorbeeldhulpprogramma voor labelen online uit:

U hebt een Azure-abonnement nodig (maak er een gratis) en een Form Recognizer resource-eindpunt en -sleutel om de Form Recognizer-service uit te proberen.

Het voorbeeldhulpprogramma voor labelen instellen

Notitie

Als uw opslaggegevens zich achter een VNet of firewall bevinden, moet u het hulpprogramma Form Recognizer voorbeeldlabeling implementeren achter uw VNet of firewall en toegang verlenen door een .

U gebruikt de Docker-engine om het hulpprogramma Voorbeeldlabels uit te voeren. Volg deze stappen om de Docker-container in te stellen. Zie het Docker-overzicht voor een inleiding tot de basisprincipes van Docker en containers.

Tip

Het OCR-voorbeeldhulpprogramma voor labelen is ook beschikbaar als een opensourceproject op GitHub. Het hulpprogramma is een TypeScript-webtoepassing die is gebouwd met React + Redux. Zie de opslagplaats OCR Form Labeling Tool (OCR-voorbeeldhulpprogramma voor labelen) voor meer informatie of als u een bijdrage wilt leveren. Als u het hulpprogramma online wilt uitproberen, gaat u naar de website Form Recognizer voorbeeldhulpprogramma voor labelen.

  1. Installeer eerst Docker op een hostcomputer. Deze handleiding laat zien hoe u de lokale computer als host gebruikt. Als u een Docker-hostingservice in Azure wilt gebruiken, raadpleegt u de handleiding Het voorbeeldhulpprogramma voor labelen implementeren .

    De hostcomputer moet voldoen aan de volgende hardwarevereisten:

    Container Minimum Aanbevolen
    Voorbeeldhulpprogramma voor labelen 2 kerngeheugen, 4 GB geheugen 4 core, 8 GB geheugen

    Installeer Docker op uw computer door de juiste instructies te volgen voor uw besturingssysteem:

  2. Haal de container voorbeeldhulpprogramma voor labelen op met de docker pull opdracht .

     docker pull mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1
    
  3. U bent nu klaar om de container met docker run uit te voeren.

     docker run -it -p 3000:80 mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1 eula=accept
    

    Met deze opdracht maakt u het hulpprogramma voor voorbeeldlabels beschikbaar via een webbrowser. Ga naar http://localhost:3000.

Notitie

U kunt ook documenten labelen en modellen trainen met behulp van de REST API van Form Recognizer. Als u wilt trainen en analyseren met de REST API, raadpleegt u Trainen met labels met behulp van de REST API en Python.

Invoergegevens instellen

Zorg er eerst voor dat alle trainingsdocumenten dezelfde indeling hebben. Als u formulieren in meerdere indelingen hebt, kunt u deze op basis van hun gemeenschappelijke indeling in submappen ordenen. Wanneer u traint, moet u de API omleiden naar een submap.

Delen van resources voor meerdere domeinen (CORS) configureren

Schakel CORS in voor uw opslagaccount. Selecteer uw opslagaccount in de Azure Portal en kies vervolgens het tabblad CORS in het linkerdeelvenster. Vul in de onderste regel de volgende waarden in. Selecteer Opslaan bovenaan.

  • Toegestane oorsprongen = *
  • Toegestane methoden = [alles selecteren]
  • Toegestane headers = *
  • Zichtbare headers = *
  • Maximumleeftijd = 200

CORS-installatie in de Azure Portal

Verbinding maken met het voorbeeldhulpprogramma voor labelen

Het hulpprogramma Voor voorbeeldlabels maakt verbinding met een bron (de oorspronkelijk geüploade formulieren) en een doel (gemaakte labels en uitvoergegevens).

Verbindingen kunnen worden projectbreed worden ingesteld en gedeeld. Ze maken gebruik van een uitbreidbaar providermodel, zodat u eenvoudig nieuwe bron-/doelproviders kunt toevoegen.

Als u een nieuwe verbinding wilt maken, selecteert u het pictogram Nieuwe verbindingen (plug) in de linkernavigatiebalk.

Vul de velden in met de volgende waarden:

  • Weergavenaam: de weergavenaam van de verbinding.

  • Beschrijving: de beschrijving van het project.

  • SAS-URL: de Shared Access Signature-URL (SAS-URL) van de Azure Blob Storage-container. Als u de URL voor de Shared Access Signature (SAS-URL) voor de trainingsgegevens van uw aangepaste model wilt ophalen, gaat u naar uw opslagresource in Azure Portal en selecteert u het tabblad Storage Explorer. Ga naar de container, klik er met de rechtermuisknop op en selecteer Shared Access Signature ophalen. Het is belangrijk dat u de SAS voor uw container ophaalt, niet voor het opslagaccount zelf. Zorg ervoor dat de machtigingen Lezen, Schrijven, Verwijderen en Lijst zijn ingeschakeld en klik op Maken. Kopieer vervolgens de waarde in de sectie URL naar een tijdelijke locatie. Deze moet de notatie https://<storage account>.blob.core.windows.net/<container name>?<SAS value> hebben.

    SAS-URL ophalen

Verbindingsinstellingen van het voorbeeldhulpprogramma Voor labelen.

Een nieuw project maken

In de voorbeeldhulpprogramma's voor labelen worden uw configuraties en instellingen opgeslagen in projecten. Maak een nieuw project en vul de velden in met de volgende waarden:

  • Weergavenaam : de weergavenaam van het project
  • Beveiligingstoken : sommige projectinstellingen kunnen gevoelige waarden bevatten, zoals sleutels of andere gedeelde geheimen. Elk project genereert een beveiligingstoken dat kan worden gebruikt voor het versleutelen/ontsleutelen van gevoelige projectinstellingen. U vindt beveiligingstokens in de Toepassingsinstellingen door het tandwielpictogram onderaan de linkernavigatiebalk te selecteren.
  • Bronverbinding: de Azure Blob Storage-verbinding die u in de vorige stap hebt gemaakt en die u voor dit project wilt gebruiken.
  • Mappad: optioneel: als uw bronformulieren zich in een map in de Blobcontainer bevinden, geeft u de naam van de map hier op
  • URI van de Form Recognizer-service: de eindpunt-URL van de Form Recognizer.
  • Sleutel: uw Form Recognizer sleutel.
  • Beschrijving: optioneel: projectbeschrijving

Nieuwe projectpagina op voorbeeldhulpprogramma voor labelen.

Formulieren labelen

Wanneer u een project maakt of opent, wordt hoofdvenster van de tageditor geopend. De tageditor bestaat uit drie delen:

  • Een deelvenster v3.0 dat kan worden aangepast aan een lijst met door schuivende formulieren van de bronverbinding.
  • Het hoofdvenster van de tageditor waarmee u labels kunt toepassen.
  • Het deelvenster van de tageditor waarmee gebruikers labels kunnen wijzigen, vergrendelen, opnieuw ordenen en verwijderen.

Tekst en tabellen identificeren

Selecteer Indeling uitvoeren op niet-bekeken documenten in het linkerdeelvenster om de tekst- en tabelindelingsgegevens voor elk document op te halen. Het hulpmiddel voor labelen tekent begrenzingsvakken rond elk tekstelement.

Het hulpprogramma voor labelen laat ook zien welke tabellen automatisch zijn geëxtraheerd. Selecteer het tabel-/rasterpictogram aan de linkerkant van het document om de geëxtraheerde tabel weer te geven. Omdat de inhoud van de tabel in deze quickstart automatisch wordt geëxtraheerd, wordt de inhoud van de tabel niet gelabeld, maar wordt gebruikgemaakt van de geautomatiseerde extractie.

Tabelvisualisatie in voorbeeldhulpprogramma voor labelen.

Als in v2.1 geen waarde is ingevuld in uw trainingsdocument, kunt u een vak tekenen waarin de waarde moet worden weergegeven. Gebruik Tekengebied in de linkerbovenhoek van het venster om het gebied labelbaar te maken.

Labels op tekst toepassen

Vervolgens maakt u tags (labels) en past u deze toe op de tekstelementen die u met het model wilt analyseren.

  1. Gebruik eerst het deelvenster van de tageditor om de labels te maken die u wilt identificeren.
    1. Selecteer + om een nieuwe tag te maken.
    2. Voer de naam van het label in.
    3. Druk op Enter om het label op te slaan.
  2. Selecteer in de hoofdeditor woorden uit de gemarkeerde tekstelementen of een gebied waarin u hebt getekend.
  3. Selecteer de tag die u wilt toepassen of druk op de bijbehorende toetsenbordtoets. De numerieke toetsen zijn toegewezen als sneltoetsen voor de eerste tien labels. U kunt de volgorde van de labels wijzigen met behulp van de pijlen omhoog en omlaag in het tageditorvenster.
  4. Volg deze stappen om ten minste vijf van uw formulieren te labelen.

    Tip

    Houd rekening met de volgende tips wanneer u uw formulieren labelt:

    • U kunt slechts één label per geselecteerd tekstelement toepassen.
    • Elk label kan slechts eenmaal per pagina worden toegepast. Als een waarde meerdere keren op hetzelfde formulier wordt weergegeven, maakt u voor elk exemplaar verschillende labels. Bijvoorbeeld: factuur 1, factuur 2, enzovoort.
    • Een label kan niet op meerdere pagina's worden toegepast.
    • De labelwaarden zijn zoals ze op het formulier worden weergegeven. Splits geen waarde in twee delen met twee verschillende labels. Zo moet bijvoorbeeld een adresveld met één label worden gelabeld, ook als het meerdere regels omvat.
    • Neem geen sleutels op in uw getagde velden, alleen de waarden.
    • Tabelgegevens moeten automatisch worden gedetecteerd en worden beschikbaar in het laatste JSON-uitvoerbestand. Als het model echter niet alle tabelgegevens detecteert, kunt u deze velden ook handmatig labelen. Label elke cel in de tabel met een ander label. Als uw formulieren tabellen met een wisselend aantal rijen bevatten, moet u ervoor zorgen dat u ten minste één formulier met de grootste mogelijke tabel labelt.
    • Gebruik de knoppen rechts van de + om uw labels te zoeken, een nieuwe naam te geven, opnieuw in te delen en te verwijderen.
    • Als u een toegepast label wilt verwijderen zonder het label zelf te verwijderen, selecteert u de gemarkeerde rechthoek in de documentweergave en drukt u op de verwijdertoets.

Hoofdeditorvenster van voorbeeldhulpprogramma voor labelen.

Typen labelwaarden opgeven

U kunt het verwachte gegevenstype voor elke tag instellen. Open het contextmenu rechts van een label en selecteer een type in het menu. Met deze functie kan het detectie-algoritme veronderstellingen maken die de nauwkeurigheid van de tekstdetectie verbeteren. Het zorgt er ook voor dat de gedetecteerde waarden worden geretourneerd in een gestandaardiseerde indeling in de uiteindelijke JSON-uitvoer. Informatie over waardetypen wordt opgeslagen in het bestand fields.json, op hetzelfde pad als uw labelbestanden.

Selectie van waardetype met voorbeeldhulpprogramma voor labelen

De volgende waardetypen en variaties worden momenteel ondersteund:

  • string

    • standaard, no-whitespaces, alphanumeric
  • number

    • standaard, currency
    • Opgemaakt als een drijvende-kommawaarde.
    • Voorbeeld: 1234.98 voor het document is opgemaakt in 1234,98 in de uitvoer
  • date

    • standaard, dmy, mdy, ymd
  • time

  • integer

    • Opgemaakt als een geheel getal.
    • Voorbeeld: 1234.98 voor het document is opgemaakt in 123498 in de uitvoer.
  • selectionMark

Notitie

Zie de volgende regels voor de datumnotatie:

U moet een indeling (dmy, mdy, ymd) opgeven voor de datumnotatie.

De volgende tekens kunnen worden gebruikt als datumscheidingstekens: , - / . \. Witruimte kan niet als scheidingsteken worden gebruikt. Bijvoorbeeld:

  • 01.01.2020
  • 01-01-2020
  • 01/01/2020

De dag en maand kunnen worden geschreven met een of twee cijfers; het jaar kan uit twee of vier cijfers bestaan:

  • 1-1-2020
  • 1-01-20

Als een datumtekenreeks acht cijfers bevat, is het scheidingsteken optioneel:

  • 01012020
  • 01 01 2020

De maand kan ook worden geschreven met de volledige of afgekorte naam. Als de naam wordt gebruikt, zijn de scheidingstekens optioneel. Deze indeling kan echter minder nauwkeurig worden herkend dan andere.

  • 01/jan/2020
  • 01jan2020
  • 01 jan 2020

Tabellen labelen (alleen v2.1)

Soms kunnen uw gegevens beter worden gelabeld als een tabel in plaats van sleutel-waardeparen. In dit geval kunt u een tabeltag maken door Een nieuwe tabeltag toevoegen te selecteren. Geef op of de tabel een vast aantal rijen of een variabel aantal rijen heeft, afhankelijk van het document en definieer het schema.

Een tabeltag configureren.

Nadat u de tabeltag hebt gedefinieerd, tagt u de celwaarden.

Een tabel labelen.

Aangepast model trainen

Kies het pictogram Trainen in het linkerdeelvenster om de pagina Training te openen. Selecteer vervolgens de knop Trainen om het model te trainen. Zodra het trainingsproces is voltooid, ziet u de volgende informatie:

  • Model-id: de id van het model dat is gemaakt en getraind. Elke trainingsaanroep maakt een nieuw model met een eigen id. Kopieer deze tekenreeks naar een veilige locatie; u deze nodig hebt als u voorspellingsoproepen wilt doen via de REST API of de handleiding voor de clientbibliotheek.
  • Gemiddelde nauwkeurigheid: de gemiddelde nauwkeurigheid van het model. U kunt de nauwkeurigheid van het model verbeteren door meer formulieren toe te voegen en te labelen en vervolgens opnieuw te trainen om een nieuw model te maken. We raden u aan te beginnen met het labelen van vijf formulieren en indien nodig meer formulieren toe te voegen.
  • De lijst met labels en de geschatte nauwkeurigheid per label.

Trainingsweergave.

Nadat de training is voltooid, bekijkt u de waarde Gemiddelde nauwkeurigheid. Als de waarde laag is, moet u meer invoerdocumenten toevoegen en de stappen voor labelen herhalen. De documenten die u al hebt gelabeld, blijven in de projectindex staan.

Tip

U kunt het trainingsproces ook uitvoeren met een REST API-aanroep. Zie Trainen met labels met behulp van Python voor meer informatie over hoe u dit doet.

Getrainde modellen samenstellen

Met Model opstellen kunt u maximaal 200 modellen opstellen voor één model-id. Wanneer u Analyseren aanroept met de samengestelde , classificeert Form Recognizer het formulier dat u hebt verzonden, kiest u het best overeenkomende modelIDmodel en retourneert u de resultaten voor dat model. Deze bewerking is handig wanneer binnenkomende formulieren deel kunnen uitmaken van een van de verschillende sjablonen.

  • Als u modellen wilt opstellen in het hulpprogramma Voorbeeldlabels, selecteert u het pictogram Model opstellen (samenvoegpijl) op de navigatiebalk.
  • Selecteer de modellen die u samen wilt opstellen. Modellen met het pijlenpictogram zijn al samengesteld.
  • Kies de knop Opstellen. Geef in het pop-upvenster een naam op voor het nieuwe samengestelde model en selecteer Opstellen.
  • Wanneer de bewerking is voltooid, wordt het zojuist samengestelde model weergegeven in de lijst.

UX-weergave van Model samenstellen.

Een formulier analyseren

Selecteer het pictogram Analyseren in de navigatiebalk om uw model te testen. Selecteer bron 'Lokaal bestand'. Blader naar een bestand en selecteer een bestand uit de voorbeeldgegevensset die u hebt uitgepakt in de testmap. Kies vervolgens de knop Analyse uitvoeren om sleutel-waardeparen, tekst- en tabelvoorspellingen voor het formulier op te halen. Het hulpprogramma past tags toe in begrenzingsvakken en rapporteert de betrouwbaarheid van elke tag.

Schermopname: venster analyze-a-custom-form

Tip

U kunt de analyse-API ook met een REST-aanroep uitvoeren. Zie Trainen met labels met behulp van Python voor meer informatie over hoe u dit doet.

Resultaten verbeteren

Afhankelijk van de gerapporteerde nauwkeurigheid kunt u meer trainingen uitvoeren om het model te verbeteren. Nadat u een voorspelling hebt uitgevoerd, kunt u de betrouwbaarheidswaarden voor elk toegepast label bekijken. Als de gemiddelde nauwkeurigheidstrainingswaarde hoog is, maar de betrouwbaarheidsscores laag zijn (of de resultaten onjuist zijn), voegt u het voorspellingsbestand toe aan de trainingsset, labelt u het en traint u opnieuw.

De gerapporteerde gemiddelde nauwkeurigheid, betrouwbaarheidsscores en werkelijke nauwkeurigheid kunnen inconsistent zijn wanneer de geanalyseerde documenten verschillen van documenten die in de training worden gebruikt. Vergeet niet dat sommige documenten er voor een persoon hetzelfde uit kunnen zien maar voor een AI-model kunnen verschillen. Stel u traint met een formuliertype dat twee variaties kent, terwijl de trainingsset uit 20% van variatie A en 80% van variatie B bestaat. Tijdens de voorspelling zijn de betrouwbaarheidsscores voor documenten van variatie A hoogstwaarschijnlijk lager.

Een project opslaan en later hervatten

Als u het project op een ander tijdstip of in een andere browser wilt hervatten, moet u het beveiligingstoken van het project opslaan en later opnieuw invoeren.

Projectreferenties ophalen

Ga naar de pagina met projectinstellingen (schuifregelaar) en noteer de naam van het beveiligingstoken. Ga vervolgens naar uw toepassingsinstellingen (tandwielpictogram), waarin alle beveiligingstokens in uw huidige browserexemplaar worden weergegeven. Zoek het beveiligingstoken van uw project en kopieer de naam en sleutelwaarde naar een veilige locatie.

Projectreferenties herstellen

Als u uw project wilt hervatten, moet u eerst een verbinding maken met dezelfde Blob Storage-container. Herhaal de stappen om dit te doen. Ga vervolgens naar de pagina met toepassingsinstellingen (tandwielpictogram) en kijk of het beveiligingstoken van uw project aanwezig is. Als dat niet het geval is, voegt u een nieuw beveiligingstoken toe en kopieert u de naam en de sleutel van het token uit de vorige stap. Selecteer Opslaan om uw instellingen te behouden.

Een project hervatten

Ga ten slotte naar de hoofdpagina (huispictogram) en selecteer Cloudproject openen. Selecteer vervolgens de blobopslagverbinding en selecteer het bestand van .fott uw project. De toepassing laadt alle instellingen van het project omdat het het beveiligingstoken heeft.

Volgende stappen

In deze quickstart hebt u geleerd hoe u het hulpprogramma Form Recognizer voorbeeldlabeling kunt gebruiken om een model te trainen met handmatig gelabelde gegevens. Als u uw eigen hulpprogramma wilt bouwen voor het labelen van trainingsgegevens, gebruikt u de REST API's die het trainen met gelabelde gegevens verwerken.