Read OCR Docker-containers installeren

Notitie

Vanaf september 22 2020 worden de meeste gehoste containers gehost op de micro soft-Container Registry en hoeft u deze niet te downloaden met de opdracht docker login. U moet nog steeds een online aanvraag volt ooien om de container uit te voeren. Zie de sectie goed keuring aanvragen om het gedeelte container uit te voeren verderop in dit artikel voor meer informatie.

Met containers kunt u de Computer Vision-API's uitvoeren in uw eigen omgeving. Containers zijn ideaal voor specifieke vereisten voor beveiliging en gegevensbeheer. In dit artikel leert u hoe u uw containers kunt downloaden, installeren Computer Vision uitvoeren.

Met de Read OCR-container kunt u gedrukte en handgeschreven tekst extraheren uit afbeeldingen en documenten met ondersteuning voor JPEG-, PNG-, BMP-, PDF- en TIFF-bestandsindelingen. Zie de handleiding voor de Read API voor meer informatie.

Nieuw

Voor bestaande gebruikers van de Read-containers is een nieuwe versie van de Read-container beschikbaar met ondersteuning voor 122 talen en algemene prestatie- en 3.2-model-2021-09-30-preview AI-verbeteringen. Volg de downloadinstructies om aan de slag te gaan.

Read 3.2-container

De Read 3.2 OCR-container biedt:

  • Nieuwe modellen voor verbeterde nauwkeurigheid.
  • Ondersteuning voor meerdere talen binnen hetzelfde document.
  • Ondersteuning voor in totaal 73 talen. Zie de volledige lijst met door OCR ondersteunde talen.
  • Eén bewerking voor zowel documenten als afbeeldingen.
  • Ondersteuning voor grotere documenten en afbeeldingen.
  • Betrouwbaarheidsscores.
  • Ondersteuning voor documenten met zowel afdruk- als handgeschreven tekst.
  • Mogelijkheid om tekst te extraheren uit alleen geselecteerde pagina('s) in een document.
  • Kies de uitvoerorder voor tekstregel van standaard naar een natuurlijkere leesorde voor alleen Latijnse talen.
  • Tekstregelclassificatie als handgeschreven stijl of niet alleen voor Latijnse talen.

Als u momenteel Read 2.0-containers gebruikt, bekijkt u de migratiehandleiding voor meer informatie over wijzigingen in de nieuwe versies.

Vereisten

U moet voldoen aan de volgende vereisten voordat u de containers gebruikt:

Vereist Doel
Docker-engine De Docker-engine moet zijn geïnstalleerd op een hostcomputer. Docker biedt pakketten waarmee de Docker-omgeving op MacOS, Windows en Linux kan worden geconfigureerd. Zie het Docker-overzicht voor een inleiding tot de basisprincipes van Docker en containers.

Docker moet worden geconfigureerd zodat de containers verbinding kunnen maken met en factureringsgegevens naar Azure kunnen verzenden.

Op Windows moet Docker ook worden geconfigureerd om Linux-containers te ondersteunen.

Bekendheid met Docker U moet basiskennis hebben van Docker-concepten, zoals registers, opslagplaatsen, containers en container-afbeeldingen, evenals kennis van docker basisopdrachten.
Computer Vision resource Als u de container wilt gebruiken, hebt u het volgende nodig:

Een Azure Computer Vision-resource en de bijbehorende API-sleutel de eindpunt-URI. Beide waarden zijn beschikbaar op de pagina's Overzicht en Sleutels voor de resource en zijn vereist om de container te starten.

{API_KEY}: Een van de twee beschikbare resourcesleutels op de pagina Sleutels

{ENDPOINT_URI}: Het eindpunt zoals opgegeven op de pagina Overzicht

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

Goedkeuring aanvragen om de container uit te voeren

Vul het aanvraagformulier in en verzend het om goedkeuring aan te vragen voor het uitvoeren van de container.

Het formulier vraagt informatie over u, uw bedrijf en het gebruikers scenario waarvoor u de container gaat gebruiken. Nadat u het formulier hebt verzonden, wordt het door het Azure Cognitive Services-team gecontroleerd en een e-mail bericht met een beslissing verzonden.

Belangrijk

  • Op het formulier moet u een e-mail adres gebruiken dat is gekoppeld aan een Azure-abonnements-ID.
  • De Azure-resource die u gebruikt om de container uit te voeren, moet zijn gemaakt met de goedgekeurde Azure-abonnements-ID.
  • Controleer uw e-mail adres (zowel postvak in-map als ongewenste e-mail) voor updates over de status van uw toepassing van micro soft.

Nadat u bent goedgekeurd, kunt u de container uitvoeren nadat u deze hebt gedownload via de micro soft-Container Registry (MCR), die verderop in dit artikel wordt beschreven.

U kunt de container niet uitvoeren als uw Azure-abonnement niet is goedgekeurd.

Vereiste parameters verzamelen

Er zijn drie primaire para meters voor alle vereiste containers van Cognitive Services. De gebruiksrecht overeenkomst (EULA) moet aanwezig zijn met een waarde van accept . Bovendien zijn er een eindpunt-URL en API-sleutel nodig.

Eind punt-URI {ENDPOINT_URI}

De URI-waarde van het eind punt is beschikbaar op de pagina overzicht van Azure portal van de bijbehorende cognitieve service resource. Ga naar de overzichts pagina, beweeg de muis aanwijzer over het eind punt en er Copy to clipboard wordt een pictogram weer gegeven. Kopieer en gebruik waar nodig.

De URI van het eind punt verzamelen voor later gebruik

Subknooppuntsleutels {API_KEY}

Deze sleutel wordt gebruikt om de container te starten en is beschikbaar op de pagina sleutels van de Azure Portal van de bijbehorende cognitieve service resource. Ga naar de pagina sleutels en klik op het Copy to clipboard pictogram.

Een van de twee sleutels ophalen voor later gebruik

Belangrijk

Deze abonnementssleutels worden gebruikt om toegang te krijgen tot de API van Cognitive Services. Deel uw sleutels niet. Sla ze veilig op, bijvoorbeeld met behulp van Azure Key Vault. We raden u ook aan om deze sleutels regelmatig opnieuw te genereren. Er is slechts één sleutel nodig om een API-aanroep te maken. Wanneer u de eerste sleutel opnieuw genereert, kunt u de tweede sleutel gebruiken voor verdere toegang tot de service.

De hostcomputer

De host is een op x64 gebaseerde computer waarop de docker-container wordt uitgevoerd. Dit kan een computer in uw locatie zijn of een docker-hosting service in azure, zoals:

Ondersteuning voor Geavanceerde vectorextensie

De hostcomputer is de computer met de Docker-container. De host moet AVX2 (Advanced Vector Extensions) ondersteunen. U kunt controleren op AVX2-ondersteuning op Linux-hosts met de volgende opdracht:

grep -q avx2 /proc/cpuinfo && echo AVX2 supported || echo No AVX2 support detected

Waarschuwing

De hostcomputer is vereist voor de ondersteuning van AVX2. De container werkt niet correct zonder AVX2-ondersteuning.

Vereisten en aanbevelingen voor containers

Notitie

De vereisten en aanbevelingen zijn gebaseerd op benchmarks met één aanvraag per seconde, met behulp van een afbeelding van 523 kB van een gescande bedrijfsletter met 29 regels en een totaal van 803 tekens. De aanbevolen configuratie heeft geleid tot ongeveer twee keer sneller antwoord in vergelijking met de minimale configuratie.

In de volgende tabel wordt de minimale en aanbevolen toewijzing van resources voor elke Read OCR-container beschreven.

Container Minimum Aanbevolen
Read 2.0-preview 1 kern, 8 GB geheugen 8 kernen, 16 GB geheugen
Read 3.2 4 kernen, 16 GB geheugen 8 kernen, 24 GB geheugen
  • Elke kern moet ten minste 2,6 gigahertz (GHz) of sneller zijn.

De kern en het geheugen komen overeen --cpus met de instellingen en , die worden gebruikt als onderdeel van de opdracht --memory docker run .

De containerafbeelding met docker pull

Container-afbeeldingen voor Lezen zijn beschikbaar.

Container Container Registry/ opslagplaats / naam van de afbeelding
Read 3.2 model-2021-09-30-preview mcr.microsoft.com/azure-cognitive-services/vision/read:3.2-model-2021-09-30-preview
Lees 3.2 mcr.microsoft.com/azure-cognitive-services/vision/read:3.2
Read 2.0-preview mcr.microsoft.com/azure-cognitive-services/vision/read:2.0-preview

Gebruik de docker pull opdracht om een containerafbeelding te downloaden.

Docker pull voor de Read OCR-container

Voor de meest recente preview:

docker pull mcr.microsoft.com/azure-cognitive-services/vision/read:3.2-model-2021-09-30-preview
docker pull mcr.microsoft.com/azure-cognitive-services/vision/read:3.2

Tip

U kunt de opdracht docker-installatie kopieën gebruiken om de gedownloade container installatie kopieën weer te geven. Met de volgende opdracht worden bijvoorbeeld de ID, opslag plaats en label van elke gedownloade container installatie kopie weer gegeven, opgemaakt als een tabel:

docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

IMAGE ID         REPOSITORY                TAG
<image-id>       <repository-path/name>    <tag-name>

De container gebruiken

Zodra de container zich op de hostcomputer heeft,gebruikt u het volgende proces om met de container te werken.

  1. Voer de container uitmet de vereiste factureringsinstellingen. Meer voorbeelden van de docker run opdracht zijn beschikbaar.
  2. Een query uitvoeren op het voorspellings-eindpunt van de container.

De container uitvoeren met docker run

Gebruik de opdracht docker run om de container uit te voeren. Raadpleeg Het verzamelen van vereiste parameters voor meer informatie over het op halen van de waarden en {ENDPOINT_URI} {API_KEY} .

Voorbeelden van de docker run opdracht zijn beschikbaar.

Vervang voor de meest recente preview het pad 3.2 door:

mcr.microsoft.com/azure-cognitive-services/vision/read:3.2-model-2021-09-30-preview
docker run --rm -it -p 5000:5000 --memory 18g --cpus 8 \
mcr.microsoft.com/azure-cognitive-services/vision/read:3.2 \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Met deze opdracht gebeurt het volgende:

  • Voert de Read OCR-container uit vanuit de containerafbeelding.
  • Wijst 8 CPU-kernen en 18 gigabyte (GB) geheugen toe.
  • Maakt TCP-poort 5000 beschikbaar en wijst een pseudo-TTY toe voor de container.
  • De container wordt automatisch verwijderd nadat deze is afgesloten. De containerafbeelding is nog steeds beschikbaar op de hostcomputer.

U kunt de container ook uitvoeren met behulp van omgevingsvariabelen:

docker run --rm -it -p 5000:5000 --memory 18g --cpus 8 \
--env Eula=accept \
--env Billing={ENDPOINT_URI} \
--env ApiKey={API_KEY} \
mcr.microsoft.com/azure-cognitive-services/vision/read:3.2

Meer voorbeelden van de docker run opdracht zijn beschikbaar.

Belangrijk

De opties , en moeten worden opgegeven om de container uit te voeren. Anders wordt Eula de container niet Billing ApiKey start. Zie Facturering voor meer informatie.

Als u een hogere doorvoer nodig hebt (bijvoorbeeld bij het verwerken van bestanden met meerdere pagina's), kunt u overwegen om meerdere containers op een Kubernetes-clusterte implementeren met behulp van Azure Storage en Azure Queue.

Als u gebruik maakt van Azure Storage voor het opslaan van afbeeldingen voor verwerking, kunt u een connection string te gebruiken bij het aanroepen van de container.

U vindt uw connection string:

  1. Navigeer Storage accounts op de Azure Portal en zoek uw account.
  2. Klik in de linkernavigatielijst op Toegangssleutels.
  3. Uw connection string bevindt zich onder Verbindingsreeks

Meerdere containers op dezelfde host uitvoeren

Als u van plan bent om meerdere containers met blootgestelde poorten uit te voeren, moet u ervoor zorgen dat elke container wordt uitgevoerd met een andere beschik bare poort. Voer bijvoorbeeld de eerste container uit op poort 5000 en de tweede container op poort 5001.

U kunt deze container en een andere Azure Cognitive Services-container die samen op de HOST wordt uitgevoerd. U kunt ook meerdere containers van hetzelfde Cognitive Services-container uitvoeren.

Controleren of een container wordt uitgevoerd

Er zijn verschillende manieren om te controleren of de container wordt uitgevoerd. Zoek het externe IP- adres en de weer gegeven poort van de betreffende container en open uw favoriete webbrowser. Gebruik de onderstaande aanvraag-Url's om te controleren of de container wordt uitgevoerd. De onderstaande voorbeeld aanvraag-Url's zijn http://localhost:5000 , maar uw specifieke container kan variëren. Houd er rekening mee dat u afhankelijk bent van het externe IP- adres van uw container en de weer gegeven poort.

Aanvraag-URL Doel
http://localhost:5000/ De container bevat een startpagina.
http://localhost:5000/ready Met GET heeft dit een verificatie dat de container gereed is voor het accepteren van een query op het model. Deze aanvraag kan worden gebruikt voor Kubernetes- en gereedheids tests.
http://localhost:5000/status Daarnaast wordt met GET gevraagd of de API-sleutel die wordt gebruikt om de container te starten, geldig is zonder dat dit een eindpunt query veroorzaakt. Deze aanvraag kan worden gebruikt voor Kubernetes- en gereedheids tests.
http://localhost:5000/swagger De container bevat een volledige set met documentatie voor de eindpunten en een functie Uitproberen. Met deze functie kunt u uw instellingen invoeren in een HTML-formulier op het web en de query maken zonder dat u code hoeft te schrijven. Nadat de query is geretourneerd, wordt een voor beeld van een krul opdracht weer gegeven om te demonstreren welke HTTP-headers en hoofdtekst indeling vereist zijn.

Start pagina van container

Een query uitvoeren op het voorspellingseindpunt van de container

De container bevat op REST gebaseerde eindpunt-API's voor queryvoorspelling.

Voor de meest recente preview:

Gebruik hetzelfde Swagger-pad als 3.2, maar een andere poort als u al 3.2 op de 5000-poort hebt geïmplementeerd.

Gebruik de host, http://localhost:5000, voor container-API's. U kunt het Swagger-pad bekijken op: http://localhost:5000/swagger/vision-v3.2-read/swagger.json .

Asynchroon lezen

Voor de meest recente preview is alles hetzelfde als 3.2, met uitzondering van de extra "modelVersion": "2021-09-30-preview" .

U kunt de bewerkingen en gebruiken om asynchroon een afbeelding te lezen, vergelijkbaar met de manier waarop de Computer Vision-service die bijbehorende POST /vision/v3.2/read/analyze GET /vision/v3.2/read/operations/{operationId} REST-bewerkingen gebruikt. De asynchrone POST-methode retournatie van een die wordt gebruikt als operationId de identifer voor de HTTP GET-aanvraag.

Selecteer in de swagger-gebruikersinterface de Analyze om deze uit te vouwen in de browser. Selecteer vervolgens Try it out Choose > file. In dit voorbeeld gebruiken we de volgende afbeelding:

tabs versus spaties

Wanneer de asynchrone POST is uitgevoerd, wordt een HTTP 202-statuscode retourneert. Als onderdeel van het antwoord is er een operation-location header die het resultaat-eindpunt voor de aanvraag bevat.

 content-length: 0
 date: Fri, 04 Sep 2020 16:23:01 GMT
 operation-location: http://localhost:5000/vision/v3.2/read/operations/a527d445-8a74-4482-8cb3-c98a65ec7ef9
 server: Kestrel

De operation-location is de volledig gekwalificeerde URL en is toegankelijk via een HTTP GET. Hier is het JSON-antwoord van het uitvoeren van de operation-location URL uit de voorgaande afbeelding:

{
  "status": "succeeded",
  "createdDateTime": "2021-02-04T06:32:08.2752706+00:00",
  "lastUpdatedDateTime": "2021-02-04T06:32:08.7706172+00:00",
  "analyzeResult": {
    "version": "3.2.0",
    "readResults": [
      {
        "page": 1,
        "angle": 2.1243,
        "width": 502,
        "height": 252,
        "unit": "pixel",
        "lines": [
          {
            "boundingBox": [
              58,
              42,
              314,
              59,
              311,
              123,
              56,
              121
            ],
            "text": "Tabs vs",
            "appearance": {
              "style": {
                "name": "handwriting",
                "confidence": 0.96
              }
            },
            "words": [
              {
                "boundingBox": [
                  68,
                  44,
                  225,
                  59,
                  224,
                  122,
                  66,
                  123
                ],
                "text": "Tabs",
                "confidence": 0.933
              },
              {
                "boundingBox": [
                  241,
                  61,
                  314,
                  72,
                  314,
                  123,
                  239,
                  122
                ],
                "text": "vs",
                "confidence": 0.977
              }
            ]
          },
          {
            "boundingBox": [
              286,
              171,
              415,
              165,
              417,
              197,
              287,
              201
            ],
            "text": "paces",
            "appearance": {
              "style": {
                "name": "handwriting",
                "confidence": 0.746
              }
            },
            "words": [
              {
                "boundingBox": [
                  286,
                  179,
                  404,
                  166,
                  405,
                  198,
                  290,
                  201
                ],
                "text": "paces",
                "confidence": 0.938
              }
            ]
          }
        ]
      }
    ]
  }
}

Belangrijk

Als u meerdere Read OCR-containers achter een load balancer implementeert, bijvoorbeeld onder Docker Compose of Kubernetes, moet u een externe cache hebben. Omdat de verwerkingscontainer en de GET-aanvraagcontainer mogelijk niet hetzelfde zijn, slaat een externe cache de resultaten op en deelt deze tussen containers. Zie Configure Computer Vision Docker containers (Docker-containers configureren) voor meer informatie over cache-instellingen.

Synchroon lezen

U kunt de volgende bewerking gebruiken om een afbeelding synchroon te lezen.

POST /vision/v3.2/read/syncAnalyze

Wanneer de afbeelding in zijn geheel wordt gelezen, retourneert de API vervolgens alleen een JSON-antwoord. De enige uitzondering hierop is als er een fout optreedt. Wanneer er een fout optreedt, wordt de volgende JSON geretourneerd:

{
    "status": "Failed"
}

Het JSON-antwoordobject heeft dezelfde objectgrafiek als de asynchrone versie. Als u een JavaScript-gebruiker bent en de veiligheid van het type wilt, kunt u TypeScript gebruiken om het JSON-antwoord te casten.

Zie hier de TypeScript-sandbox voor een voorbeeld van een gebruiksvoorbeeld en selecteer Uitvoeren om het gebruiksgemak ervan te visualiseren.

De container stoppen

Als u de container wilt afsluiten, selecteert u in de opdracht regel omgeving waar de container wordt uitgevoerd, CTRL + C.

Problemen oplossen

Als u de container hebt uitgevoerd met een uitvoer mount en logboekregistratie ingeschakeld, genereert de container logboekbestanden die handig zijn voor het oplossen van problemen die zich tijdens het starten of uitvoeren van de container voor doen.

Tip

Zie Cognitive Services containers Veelgestelde vragen (FAQ)voor meer informatie en richt lijnen voor probleem oplossing.

Als u problemen hebt met het uitvoeren van een Cognitive Services-container, kunt u de diagnosecontainer van Microsoft gebruiken. Gebruik deze container om veelvoorkomende fouten in uw implementatieomgeving vast te stellen die kunnen verhinderen dat Cognitive Services-containers werken zoals verwacht.

Gebruik de volgende Docker pull-opdracht om de container op te halen:

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Voer vervolgens de container uit, {ENDPOINT_URI} vervang door uw eindpunt en vervang door uw sleutel voor uw {API_KEY} resource:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
Eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

De container test op netwerkverbinding met het facturerings-eindpunt.

Billing

De Cognitive Services verzenden factureringsgegevens naar Azure met behulp van de bijbehorende resource in uw Azure-account.

Query's naar de container worden gefactureerd in de prijscategorie van de Azure-resource die wordt gebruikt voor de ApiKey parameter .

Azure Cognitive Services containers hebben geen licentie om te worden uitgevoerd zonder dat ze zijn verbonden met het meting-/facturerings-eindpunt. U moet de containers in staat stellen om te allen tijde factureringsgegevens te communiceren met het facturerings-eindpunt. Cognitive Services containers verzenden geen klantgegevens, zoals de afbeelding of tekst die wordt geanalyseerd, naar Microsoft.

Verbinding maken met Azure

Voor de container moeten de waarden van het factureringsargument worden uitgevoerd. Met deze waarden kan de container verbinding maken met het facturerings-eindpunt. De container rapporteert ongeveer elke 10 tot 15 minuten gebruik. Als de container geen verbinding maakt met Azure binnen het toegestane tijdvenster, blijft de container worden uitgevoerd, maar worden er geen query's uitgevoerd totdat het facturerings-eindpunt is hersteld. De verbinding wordt 10 keer geprobeerd op hetzelfde tijdsinterval van 10 tot 15 minuten. Als de container geen verbinding kan maken met het facturerings-eindpunt binnen de tien pogingen, stopt de container met het verwerken van aanvragen. Zie de veelgestelde Cognitive Services container voor een voorbeeld van de informatie die naar Microsoft wordt verzonden voor facturering.

Factureringsargumenten

docker run Met de opdracht wordt de container start wanneer alle drie de volgende opties zijn opgegeven met geldige waarden:

Optie Beschrijving
ApiKey De API-sleutel van de Cognitive Services resource die wordt gebruikt voor het bijhouden van factureringsgegevens.
De waarde van deze optie moet worden ingesteld op een API-sleutel voor de inrichtende resource die is opgegeven in Billing .
Billing Het eindpunt van de Cognitive Services resource die wordt gebruikt voor het bijhouden van factureringsgegevens.
De waarde van deze optie moet worden ingesteld op de eindpunt-URI van een inrichtende Azure-resource.
Eula Geeft aan dat u de licentie voor de container hebt geaccepteerd.
De waarde van deze optie moet worden ingesteld om te accepteren.

Zie Containers configureren voor meer informatie over deze opties.

Samenvatting

In dit artikel hebt u concepten en werkstromen geleerd voor het downloaden, installeren en uitvoeren van Computer Vision containers. Samenvatting:

  • Computer Vision biedt een Linux-container voor Docker, die Lezen inkapselen.
  • Voor de leescontainer-afbeelding is een toepassing vereist om deze uit te voeren.
  • Container-afbeeldingen worden uitgevoerd in Docker.
  • U kunt de REST API of SDK gebruiken om bewerkingen in OCR-leescontainers aan te roepen door de host-URI van de container op te geven.
  • U moet factureringsgegevens opgeven bij het instantiëren van een container.

Belangrijk

Cognitive Services containers hebben geen licentie om te worden uitgevoerd zonder dat ze zijn verbonden met Azure voor het meten. Klanten moeten de containers in staat stellen om te allen tijde factureringsgegevens te communiceren met de meetservice. Cognitive Services containers verzenden geen klantgegevens (bijvoorbeeld de afbeelding of tekst die wordt geanalyseerd) naar Microsoft.

Volgende stappen