Anropa Read-API:et

I den här guiden lär du dig att anropa API:et Read för att extrahera text från bilder. Du lär dig olika sätt att konfigurera beteendet för det här API:et för att uppfylla dina behov.

Den här guiden förutsätter att du redan har skapat en Visuellt innehåll skapa en Visuellt innehåll resurs och fått en prenumerationsnyckel och slutpunkts-URL. Om du inte har gjort det följer du en snabbstart för att komma igång.

Skicka data till tjänsten

Anropet läs-API:et läsa tar en bild eller ett PDF-dokument som indata och extraherar text asynkront.

https://{endpoint}/vision/v3.2/read/analyze[?language][&pages][&readingOrder]

Anropet returneras med ett svarshuvudfält med namnet Operation-Location . Värdet Operation-Location är en URL som innehåller åtgärds-ID:t som ska användas i nästa steg.

Svarshuvud Exempelvärde
Operation-Location https://cognitiveservice/vision/v3.2/read/analyzeResults/49a36324-fc4b-4387-aa06-090cfbf0064f

Anteckning

Billing

Sidan Visuellt innehåll innehåller prisnivån för Läsa. Varje analyserad bild eller sida är en transaktion. Om du anropar åtgärden med ett PDF- eller TIFF-dokument som innehåller 100 sidor räknas åtgärden Läsa som 100 transaktioner och du debiteras för 100 transaktioner. Om du gjorde 50 anrop till åtgärden och varje anrop skickade ett dokument med 100 sidor debiteras du för 50 x 100 = 5 000 transaktioner.

Bestämma hur data ska bearbetas

Språkspecifikation

Läs-anropet har en valfri begärandeparameter för språk. Läsning stöder automatisk språkidentifiering och flerspråkiga dokument, så ange bara en språkkod om du vill tvinga dokumentet att bearbetas som det specifika språket.

Utdata för naturlig läsordning (endast latinska språk)

Ange i vilken ordning textraderna ska matas ut med readingOrder frågeparametern. Använd natural för en mer användarvänlig läsordningsutdata som visas i följande exempel. Den här funktionen stöds endast för latinska språk.

Exempel på OCR-läsningsordning

Välj sidor eller sidintervall för extrahering av text

För stora flersidsdokument använder du pages frågeparametern för att ange sidnummer eller sidintervall för att endast extrahera text från dessa sidor. I följande exempel visas ett dokument med 10 sidor, med text extraherad för båda fallen – alla sidor (1–10) och valda sidor (3–6).

Utdata för valda sidor

Hämta resultat från tjänsten

Det andra steget är att anropa åtgärden Hämta läsresultat. Den här åtgärden tar som indata åtgärds-ID:t som skapades av läsåtgärden.

https://{endpoint}/vision/v3.2/read/analyzeResults/{operationId}

Den returnerar ett JSON-svar som innehåller ett statusfält med följande möjliga värden.

Värde Innebörd
notStarted Åtgärden har inte startats.
running Åtgärden bearbetas.
failed Åtgärden misslyckades.
succeeded Åtgärden har lyckats.

Du anropar den här åtgärden iterativt tills den returnerar med värdet lyckades. Använd ett intervall på 1 till 2 sekunder för att undvika att överskrida frekvensen för begäranden per sekund (RPS).

Anteckning

Den kostnadsfria nivån begränsar förfrågningsfrekvensen till 20 anrop per minut. Den betalda nivån tillåter 10 begäranden per sekund (RPS) som kan ökas vid begäran. Notera din Azure-resursidentifierare och region och öppna en Azure-supportbegäran eller kontakta ditt kontoteam för att begära en högre frekvens för begäran per sekund (RPS).

När statusfältet har värdet succeeded innehåller JSON-svaret det extraherade textinnehållet från bilden eller dokumentet. JSON-svaret behåller de ursprungliga radgrupperingarna av identifierade ord. Den innehåller de extraherade textraderna och deras koordinater för en avgränsare. Varje textrad innehåller alla extraherade ord med deras koordinater och förtroendepoäng.

Anteckning

De data som skickas Read till åtgärden krypteras tillfälligt och lagras i vila under en kort tid och tas sedan bort. På så sätt kan dina program hämta den extraherade texten som en del av tjänstsvaret.

Exempel på JSON-utdata

Se följande exempel på ett lyckat JSON-svar:

{
  "status": "succeeded",
  "createdDateTime": "2021-02-04T06:32:08.2752706+00:00",
  "lastUpdatedDateTime": "2021-02-04T06:32:08.7706172+00:00",
  "analyzeResult": {
    "version": "3.2",
    "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
              }
            ]
          }
        ]
      }
    ]
  }
}

Handskriven klassificering för textrader (endast latinska språk)

Svaret omfattar klassificering av om varje textrad har handskriftsstil eller inte, tillsammans med en förtroendepoäng. Den här funktionen stöds endast för latinska språk. I följande exempel visas den handskrivna klassificeringen för texten i bilden.

Exempel på OCR-handskriftsklassificering

Nästa steg

Om du vill testa REST API går du till Read API Reference (Läs API-referens).