Installera AZURE AI Vision 3.2 GA Read OCR-container

Med containrar kan du köra Azure AI Vision-API:er i din egen miljö. Containrar är bra för specifika säkerhets- och datastyrningskrav. I den här artikeln får du lära dig hur du laddar ned, installerar och kör containern Read (OCR).

Med read-containern kan du extrahera tryckt och handskriven text från bilder och dokument med stöd för JPEG-, PNG-, BMP-, PDF- och TIFF-filformat. Mer information finns i guiden Läs API:et.

Nyheter

GA-versionen 3.2-model-2022-04-30 av Read-containern är tillgänglig med stöd för 164 språk och andra förbättringar. Om du är en befintlig kund följer du nedladdningsanvisningarna för att komma igång.

Read 3.2 OCR-containern är den senaste GA-modellen och tillhandahåller:

  • Nya modeller för bättre noggrannhet.
  • Stöd för flera språk i samma dokument.
  • Stöd för totalt 164 språk. Se den fullständiga listan över språk som stöds av OCR.
  • En enda åtgärd för både dokument och bilder.
  • Stöd för större dokument och bilder.
  • Förtroendepoäng.
  • Stöd för dokument med både tryckt och handskriven text.
  • Möjlighet att extrahera text från endast valda sidor i ett dokument.
  • Välj textradens utdataordning från standard till en mer naturlig läsordning endast för latinska språk.
  • Klassificering av textrad som handskriven stil eller inte endast för latinska språk.

Om du använder Read 2.0-containrar i dag kan du läsa migreringsguiden för att lära dig mer om ändringar i de nya versionerna.

Förutsättningar

Du måste uppfylla följande krav innan du använder containrarna:

Obligatorisk Syfte
Docker-motorn Docker-motorn måste vara installerad på en värddator. Docker innehåller paket som konfigurerar Docker-miljön på macOS, Windows och Linux. En introduktion till grunderna för Docker och containrar finns i Docker-översikt.

Docker måste konfigureras så att containrarna kan ansluta till och skicka faktureringsdata till Azure.

I Windows måste Docker också konfigureras för att stödja Linux-containrar.

Kunskaper om Docker Du bör ha grundläggande kunskaper om Docker-begrepp, till exempel register, lagringsplatser, containrar och containeravbildningar, samt kunskaper om grundläggande docker kommandon.
Visuellt innehåll resurs För att kunna använda containern måste du ha:

En Visuellt innehåll resurs och den associerade API-nyckeln slutpunkts-URI:n. Båda värdena är tillgängliga på sidorna Översikt och Nycklar för resursen och krävs för att starta containern.

{API_KEY}: En av de två tillgängliga resursnycklarna på sidan Nycklar

{ENDPOINT_URI}: Slutpunkten som anges på översiktssidan

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Samla in obligatoriska parametrar

Tre primära parametrar för alla Azure AI-containrar krävs. Licensvillkoren för programvara från Microsoft måste finnas med ett acceptvärde. En slutpunkts-URI och API-nyckel behövs också.

Slutpunkts-URI

Värdet {ENDPOINT_URI} är tillgängligt på sidan Azure Portal Översikt för motsvarande Azure AI-tjänstresurs. Gå till sidan Översikt , hovra över slutpunkten och ikonen Kopiera till Urklipp visas. Kopiera och använd slutpunkten där det behövs.

Skärmbild som visar insamling av slutpunkts-URI för senare användning.

Nycklar

Värdet {API_KEY} används för att starta containern och är tillgängligt på sidan Azure Portal nycklar för motsvarande Azure AI-tjänstresurs. Gå till sidan Nycklar och välj ikonen Kopiera till Urklipp .

Skärmbild som visar hur du hämtar en av de två nycklarna för senare användning.

Viktigt

De här prenumerationsnycklarna används för att komma åt api:et för Azure AI-tjänster. Dela inte dina nycklar. Lagra dem på ett säkert sätt. Använd till exempel Azure Key Vault. Vi rekommenderar också att du återskapar dessa nycklar regelbundet. Endast en nyckel krävs för att göra ett API-anrop. När du återskapar den första nyckeln kan du använda den andra nyckeln för fortsatt åtkomst till tjänsten.

Krav för värddatorer

Värden är en x64-baserad dator som kör Docker-containern. Det kan vara en dator lokalt eller en Docker-värdtjänst i Azure, till exempel:

Stöd för Avancerat vektortillägg

Värddatorn är den dator som kör Docker-containern. Värden måste ha stöd förAVX2 (Advanced Vector Extensions ). Du kan söka efter AVX2-stöd på Linux-värdar med följande kommando:

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

Varning

Värddatorn krävs för att stödja AVX2. Containern fungerar inte korrekt utan stöd för AVX2.

Krav och rekommendationer för containrar

Anteckning

Kraven och rekommendationerna baseras på riktmärken med en enskild begäran per sekund, med en bild på 523 kB av en skannad företagsbokstav som innehåller 29 rader och totalt 803 tecken. Den rekommenderade konfigurationen resulterade i ungefär 2 gånger snabbare svar jämfört med den minsta konfigurationen.

I följande tabell beskrivs den minsta och rekommenderade allokeringen av resurser för varje OCR-container för läsning.

Container Minimum Rekommenderas
Läs 3.2 2022-04-30 4 kärnor, 8 GB minne 8 kärnor, 16 GB minne
Läs 3.2 2021-04-12 4 kärnor, 16 GB minne 8 kärnor, 24 GB minne
  • Varje kärna måste vara minst 2,6 gigahertz (GHz) eller snabbare.

Kärna och minne motsvarar --cpus inställningarna och --memory som används som en del av docker run kommandot.

Hämta containeravbildningen

Azure AI Vision Read OCR-containeravbildningen finns i mcr.microsoft.com containerregistersyndikatet. Den finns på azure-cognitive-services lagringsplatsen och heter read. Det fullständigt kvalificerade containeravbildningsnamnet är , mcr.microsoft.com/azure-cognitive-services/vision/read.

Om du vill använda den senaste versionen av containern kan du använda taggen latest . Du hittar också en fullständig lista över taggar på MCR.

Följande containeravbildningar för Read är tillgängliga.

Container ContainerRegister/Lagringsplats/Avbildningsnamn Taggar
Läs 3.2 GA mcr.microsoft.com/azure-cognitive-services/vision/read:3.2-model-2022-04-30 senaste, 3.2, 3.2-model-2022-04-30

docker pull Använd kommandot för att ladda ned en containeravbildning.

docker pull mcr.microsoft.com/azure-cognitive-services/vision/read:3.2-model-2022-04-30

Tips

Du kan använda kommandot docker images för att visa en lista över dina nedladdade containeravbildningar. Följande kommando visar till exempel ID, lagringsplats och tagg för varje nedladdad containeravbildning, formaterad som en tabell:

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

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

Så här använder du containern

När containern finns på värddatorn använder du följande process för att arbeta med containern.

  1. Kör containern med de faktureringsinställningar som krävs. Fler exempeldocker run kommandot är tillgängliga.
  2. Fråga containerns förutsägelseslutpunkt.

Köra containern

Använd kommandot docker run för att köra containern. Information om hur du hämtar {ENDPOINT_URI} värdena och {API_KEY} finns i Samla in obligatoriska parametrar.

Exempeldocker run kommandot är tillgängliga.

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

Kommandot ovan:

  • Kör den senaste GA-containern Read OCR från containeravbildningen.
  • Allokerar 8 CPU-kärnor och 16 gigabyte (GB) minne.
  • Exponerar TCP-port 5000 och allokerar en pseudo-TTY för containern.
  • Tar automatiskt bort containern när den har avslutats. Containeravbildningen är fortfarande tillgänglig på värddatorn.

Du kan också köra containern med hjälp av miljövariabler:

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

Fler exempeldocker run kommandot är tillgängliga.

Viktigt

Alternativen Eula, Billingoch ApiKey måste anges för att köra containern. Annars startar inte containern. Mer information finns i Fakturering.

Om du behöver högre dataflöde (till exempel när du bearbetar flersidiga filer) bör du överväga att distribuera flera containrar i ett Kubernetes-kluster med hjälp av Azure Storage och Azure Queue.

Om du använder Azure Storage för att lagra avbildningar för bearbetning kan du skapa en anslutningssträng som ska användas när du anropar containern.

Så här hittar du anslutningssträngen:

  1. Gå till Lagringskonton på Azure Portal och leta upp ditt konto.
  2. Välj Åtkomstnycklar i den vänstra navigeringslistan.
  3. Anslutningssträngen finns under Anslutningssträng

Köra flera containrar på samma värd

Om du tänker köra flera containrar med exponerade portar ska du köra varje container med olika exponerade portar. Kör till exempel den första containern på port 5000 och den andra containern på port 5001.

Du kan köra den här containern och en annan Azure AI-tjänstcontainer på VÄRDEN tillsammans. Du kan också ha flera containrar av samma Azure AI-tjänstcontainer som körs.

Verifiera att en container körs

Det finns flera sätt att verifiera att containern körs. Leta upp den externa IP-adressen och den exponerade porten för containern i fråga och öppna din favoritwebbläsare. Använd de olika begärande-URL:erna som följer för att verifiera att containern körs. Url:erna för exempelbegäran som anges här är http://localhost:5000, men din specifika container kan variera. Se till att förlita dig på containerns externa IP-adress och exponerade port.

URL för begäran Syfte
http://localhost:5000/ Containern tillhandahåller en startsida.
http://localhost:5000/ready Den här URL:en begärs med GET och ger en verifiering av att containern är redo att acceptera en fråga mot modellen. Den här begäran kan användas för Kubernetes liveness och beredskapsavsökningar.
http://localhost:5000/status Den här URL:en begärs också med GET och kontrollerar om api-nyckeln som används för att starta containern är giltig utan att orsaka en slutpunktsfråga. Den här begäran kan användas för Kubernetes liveness och beredskapsavsökningar.
http://localhost:5000/swagger Containern tillhandahåller en fullständig uppsättning dokumentation för slutpunkterna samt en Prova-funktion. Med den här funktionen kan du ange inställningarna i ett webbaserat HTML-formulär och göra frågan utan att behöva skriva någon kod. När frågan har returnerats tillhandahålls ett exempel på CURL-kommando för att demonstrera de HTTP-huvuden och brödtextformat som krävs.

Containerns startsida

Köra frågor mot containerns förutsägelseslutpunkt

Containern innehåller REST-baserade slutpunkts-API:er för frågeförutsägelse.

Använd värden, http://localhost:5000, för container-API:er. Du kan visa Swagger-sökvägen på: http://localhost:5000/swagger/.

Asynkron läsning

Du kan använda POST /vision/v3.2/read/analyze åtgärderna och GET /vision/v3.2/read/operations/{operationId} tillsammans för att asynkront läsa en bild, ungefär som hur Azure AI Vision-tjänsten använder motsvarande REST-åtgärder. Den asynkrona POST-metoden returnerar en operationId som används som identifierare för HTTP GET-begäran.

I swagger-användargränssnittet väljer du Analyze för att expandera det i webbläsaren. Välj sedan Prova>Välj fil. I det här exemplet använder vi följande bild:

flikar jämfört med blanksteg

När den asynkrona POST har körts returneras en HTTP 202-statuskod . Som en del av svaret finns det en operation-location rubrik som innehåller resultatslutpunkten för begäran.

 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

operation-location är den fullständigt kvalificerade URL:en och nås via en HTTP GET. Här är JSON-svaret från att operation-location köra URL:en från föregående bild:

{
  "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
              }
            ]
          }
        ]
      }
    ]
  }
}

Viktigt

Om du distribuerar flera Read OCR-containrar bakom en lastbalanserare, till exempel under Docker Compose eller Kubernetes, måste du ha en extern cache. Eftersom bearbetningscontainern och GET-begärandecontainern kanske inte är samma, lagrar en extern cache resultatet och delar dem mellan containrar. Mer information om cacheinställningar finns i Konfigurera Docker-containrar för Azure AI Vision.

Synkron läsning

Du kan använda följande åtgärd för att synkront läsa en bild.

POST /vision/v3.2/read/syncAnalyze

När avbildningen har lästs i sin helhet returnerar API:et sedan ett JSON-svar. Det enda undantaget till det här beteendet är om ett fel inträffar. Om ett fel inträffar returneras följande JSON:

{
    "status": "Failed"
}

JSON-svarsobjektet har samma objektdiagram som den asynkrona versionen. Om du är JavaScript-användare och vill ha typsäkerhet bör du överväga att använda TypeScript för att omvandla JSON-svaret.

Ett exempel på användningsfall finns i sandbox-miljön för TypeScript här och välj Kör för att visualisera dess användarvänlighet.

Kör containern som är frånkopplad från Internet

Om du vill använda den här containern frånkopplad från Internet måste du först begära åtkomst genom att fylla i ett program och köpa en åtagandeplan. Mer information finns i Använda Docker-containrar i frånkopplade miljöer .

Om du har godkänts för att köra containern frånkopplad från Internet använder du följande exempel som visar formateringen för det docker run kommando som du ska använda, med platshållarvärden. Ersätt dessa platshållarvärden med dina egna värden.

Parametern DownloadLicense=True i docker run kommandot laddar ned en licensfil som gör att Docker-containern kan köras när den inte är ansluten till Internet. Den innehåller också ett förfallodatum, varefter licensfilen är ogiltig för att köra containern. Du kan bara använda en licensfil med lämplig container som du har godkänts för. Du kan till exempel inte använda en licensfil för en tal till text-container med en dokumentinformationscontainer.

Platshållare Värde Format eller exempel
{IMAGE} Den containeravbildning som du vill använda. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{LICENSE_MOUNT} Sökvägen där licensen laddas ned och monteras. /host/license:/path/to/license/directory
{ENDPOINT_URI} Slutpunkten för att autentisera din tjänstbegäran. Du hittar den på resursens nyckel- och slutpunktssida på Azure Portal. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API_KEY} Nyckeln för din Textanalys resurs. Du hittar den på resursens nyckel- och slutpunktssida på Azure Portal. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{CONTAINER_LICENSE_DIRECTORY} Plats för licensmappen i containerns lokala filsystem. /path/to/license/directory
docker run --rm -it -p 5000:5000 \ 
-v {LICENSE_MOUNT} \
{IMAGE} \
eula=accept \
billing={ENDPOINT_URI} \
apikey={API_KEY} \
DownloadLicense=True \
Mounts:License={CONTAINER_LICENSE_DIRECTORY} 

När licensfilen har laddats ned kan du köra containern i en frånkopplad miljö. I följande exempel visas formateringen för det docker run kommando som du ska använda, med platshållarvärden. Ersätt dessa platshållarvärden med dina egna värden.

Oavsett var containern körs måste licensfilen monteras på containern och platsen för licensmappen i containerns lokala filsystem måste anges med Mounts:License=. En utdatamontering måste också anges så att faktureringsanvändningsposter kan skrivas.

Platshållare Värde Format eller exempel
{IMAGE} Den containeravbildning som du vill använda. mcr.microsoft.com/azure-cognitive-services/form-recognizer/invoice
{MEMORY_SIZE} Lämplig storlek på minne som ska allokeras för containern. 4g
{NUMBER_CPUS} Lämpligt antal processorer som ska allokeras för containern. 4
{LICENSE_MOUNT} Sökvägen där licensen ska finnas och monteras. /host/license:/path/to/license/directory
{OUTPUT_PATH} Utdatasökvägen för loggning av användningsposter. /host/output:/path/to/output/directory
{CONTAINER_LICENSE_DIRECTORY} Plats för licensmappen i containerns lokala filsystem. /path/to/license/directory
{CONTAINER_OUTPUT_DIRECTORY} Platsen för utdatamappen i containerns lokala filsystem. /path/to/output/directory
docker run --rm -it -p 5000:5000 --memory {MEMORY_SIZE} --cpus {NUMBER_CPUS} \ 
-v {LICENSE_MOUNT} \ 
-v {OUTPUT_PATH} \
{IMAGE} \
eula=accept \
Mounts:License={CONTAINER_LICENSE_DIRECTORY}
Mounts:Output={CONTAINER_OUTPUT_DIRECTORY}

Stoppa containern

Om du vill stänga av containern väljer du Ctrl+C i kommandoradsmiljön där containern körs.

Felsökning

Om du kör containern med en utdatamontering och loggning aktiverad genererar containern loggfiler som är användbara för att felsöka problem som inträffar när containern startas eller körs.

Tips

Mer felsökningsinformation och vägledning finns i Vanliga frågor och svar om Azure AI-containrar.

Om du har problem med att köra en Azure AI-tjänstcontainer kan du prova att använda Microsofts diagnostikcontainer. Använd den här containern för att diagnostisera vanliga fel i distributionsmiljön som kan förhindra att Azure AI-containrar fungerar som förväntat.

Använd följande docker pull kommando för att hämta containern:

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

Kör sedan containern. Ersätt {ENDPOINT_URI} med slutpunkten och ersätt {API_KEY} med nyckeln till resursen:

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

Containern testar nätverksanslutningen till faktureringsslutpunkten.

Fakturering

Azure AI-containrarna skickar faktureringsinformation till Azure med hjälp av motsvarande resurs på ditt Azure-konto.

Frågor till containern faktureras på prisnivån för den Azure-resurs som används för parametern ApiKey .

Azure AI-tjänstcontainrar licensieras inte för att köras utan att vara anslutna till slutpunkten för mätning eller fakturering. Du måste aktivera containrarna för att kunna kommunicera faktureringsinformation med faktureringsslutpunkten hela tiden. Azure AI-tjänstcontainrar skickar inte kunddata, till exempel den bild eller text som analyseras, till Microsoft.

Anslut till Azure

Containern behöver värdena för faktureringsargumentet för att köras. Dessa värden gör att containern kan ansluta till faktureringsslutpunkten. Containern rapporterar användning var 10:e till 15:e minut. Om containern inte ansluter till Azure inom den tillåtna tidsperioden fortsätter containern att köras men hanterar inte frågor förrän faktureringsslutpunkten har återställts. Anslutningen görs 10 gånger med samma tidsintervall på 10 till 15 minuter. Om den inte kan ansluta till faktureringsslutpunkten inom de 10 försöken slutar containern att betjäna begäranden. Se vanliga frågor och svar om Azure AI-tjänsters container för ett exempel på den information som skickas till Microsoft för fakturering.

Faktureringsargument

Kommandot docker run startar containern när alla tre av följande alternativ har giltiga värden:

Alternativ Beskrivning
ApiKey API-nyckeln för azure AI-tjänstresursen som används för att spåra faktureringsinformation.
Värdet för det här alternativet måste anges till en API-nyckel för den etablerade resursen som anges i Billing.
Billing Slutpunkten för Azure AI-tjänstresursen som används för att spåra faktureringsinformation.
Värdet för det här alternativet måste anges till slutpunkts-URI för en etablerad Azure-resurs.
Eula Anger att du har godkänt licensen för containern.
Värdet för det här alternativet måste vara inställt på att acceptera.

Mer information om dessa alternativ finns i Konfigurera containrar.

Sammanfattning

I den här artikeln har du lärt dig begrepp och arbetsflöden för att ladda ned, installera och köra Azure AI Vision-containrar. Sammanfattningsvis:

  • Azure AI Vision tillhandahåller en Linux-container för Docker som kapslar in Read.
  • Avbildningen av läscontainern kräver ett program för att köra den.
  • Containeravbildningar körs i Docker.
  • Du kan använda rest-API:et eller SDK:n för att anropa åtgärder i Läs OCR-containrar genom att ange värd-URI:n för containern.
  • Du måste ange faktureringsinformation när du instansierar en container.

Viktigt

Azure AI-containrar licensieras inte för att köras utan att vara anslutna till Azure för mätning. Kunder måste aktivera containrarna för att kunna kommunicera faktureringsinformation med avläsningstjänsten hela tiden. Azure AI-containrar skickar inte kunddata (till exempel den bild eller text som analyseras) till Microsoft.

Nästa steg