Volání rozhraní API pro čtení

V této příručce se dozvíte, jak volat rozhraní API pro čtení, které extrahuje text z obrázků. Dozvíte se, jakými různými způsoby můžete nakonfigurovat chování tohoto rozhraní API tak, aby splňovalo vaše potřeby.

V této příručce se předpokládá, že jste již vytvořili prostředek Počítačové zpracování obrazu, který vytvoří prostředek Počítačové zpracování obrazu a získal klíč předplatného a adresu URL koncového bodu. Pokud ne, můžete začít podle rychlého startu.

Určení způsobu zpracování dat (volitelné)

Určení modelu OCR

Ve výchozím nastavení bude služba extrahovat text pomocí nejnovějšího modelu GA. Od verze Read 3.2 umožňuje parametr výběr mezi modely model-version GA a Preview pro danou verzi rozhraní API. Model, který zadáte, se použije k extrakci textu pomocí operace Čtení.

Při použití operace Read použijte pro volitelný parametr následující model-version hodnoty.

Hodnota Použitý model
Nezadá se nejnovější model GA a jazyky
nejnovější nejnovější model GA a jazyky
30. 9. 2021 ve verzi Preview Model ve verzi Preview s dalšími jazyky a funkcemi Preview Zahrnuje vylepšení předchozího modelu GA.
2021-04-12 ga specifická pro datum, v současné době stejná jako nejnovější

Jazyk vstupu

Ve výchozím nastavení služba extrahuje veškerý text z obrázků nebo dokumentů včetně smíšených jazyků. Operace Čtení má volitelný parametr požadavku pro jazyk. Kód jazyka zadejte pouze v případě, že chcete vynutit zpracování dokumentu jako konkrétního jazyka. Jinak může služba vrátit neúplný a nesprávný text.

Výstup v přirozeném pořadí čtení (pouze jazyky latinky)

Ve výchozím nastavení je výstupem služby textové řádky zleva doprava. Volitelně můžete s parametrem požadavku použít pro popisnější výstup pořadí čtení, jak je readingOrder natural znázorněno v následujícím příkladu. Tato funkce je podporovaná jenom pro jazyky latinky.

Příklad pořadí čtení oCR

Výběr stránek nebo rozsahů stránek pro extrakci textu

Ve výchozím nastavení služba extrahuje text ze všech stránek v dokumentech. Volitelně můžete pomocí parametru požadavku zadat čísla stránek nebo rozsahy stránek a pages extrahovat text pouze z těchto stránek. Následující příklad ukazuje dokument s 10 stránkami s textem extrahovaný pro oba případy – všechny stránky (1–10) a vybrané stránky (3–6).

Výstup vybraných stránek

Odeslání dat do služby

Do rozhraní API pro čtení odešlete místní image nebo vzdálenou image. V případě místního nastavení umístěte data binárního obrázku do textu požadavku HTTP. Pro vzdálené zadání adresy URL obrázku naformátujte text požadavku následujícím způsobem: {"url":"http://example.com/images/test.jpg"} .

Volání Read rozhraní API pro čtení přebírá jako vstup obrázek nebo dokument PDF a extrahuje text asynchronně.

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

Volání vrátí s polem hlavičky odpovědi s názvem Operation-Location . Hodnota Operation-Location je adresa URL, která obsahuje ID operace, které se má použít v dalším kroku.

Hlavička odpovědi Příklad hodnoty
Operation-Location https://cognitiveservice/vision/v3.2/read/analyzeResults/49a36324-fc4b-4387-aa06-090cfbf0064f

Poznámka

Fakturace

Na Počítačové zpracování obrazu najdete cenovou úroveň pro čtení. Každý analyzovaný obrázek nebo stránka je jedna transakce. Pokud operaci zavoláte s dokumentem PDF nebo TIFF obsahujícím 100 stránek, operace Čtení ji bude počítat jako 100 transakcí a bude se vám účtovat 100 transakcí. Pokud jste provedli 50 volání operace a každé volání odeslalo dokument se 100 stránkami, bude se vám účtovat 50 × 100 = 5 000 transakcí.

Získání výsledků ze služby

Druhým krokem je volání operace Získat výsledky čtení. Tato operace přebírá jako vstup ID operace vytvořené operací Čtení.

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

Vrátí odpověď JSON, která obsahuje pole stavu s následujícími možnými hodnotami.

Hodnota Význam
notStarted Operace se nezačala.
running Operace se zpracovává.
failed Operace se nezdařila.
succeeded Operace byla úspěšná.

Tuto operaci voláte iterativně, dokud se nevrátí s hodnotou úspěch. Použijte interval od 1 do 2 sekund, abyste se vyhnuli překročení rychlosti požadavků za sekundu (RPS).

Poznámka

Úroveň Free omezuje rychlost požadavků na 20 volání za minutu. Placená úroveň umožňuje 10 požadavků za sekundu( RPS), které je možné na vyžádání zvýšit. Poznamenejte si identifikátor prostředku Azure a oblast a otevřete lístek podpora Azure nebo se obraťte na tým vašeho účtu a požádejte o vyšší sazbu za sekundu (RPS).

Pokud má pole stavu hodnotu succeeded , odpověď JSON obsahuje extrahovaný textový obsah z obrázku nebo dokumentu. Odpověď JSON udržuje původní seskupení řádků rozpoznaných slov. Zahrnuje extrahované řádky textu a jejich souřadnice ohraničovacího rámečku. Každý řádek textu obsahuje všechna extrahovaná slova s jejich souřadnicemi a skóre spolehlivosti.

Poznámka

Data odeslaná do operace se dočasně zašifrují a uloží na krátkou dobu v klidové režimu Read a pak se odstraní. To umožňuje aplikacím načíst extrahovaný text jako součást odpovědi služby.

Ukázkový výstup JSON

Podívejte se na následující příklad úspěšné odpovědi JSON:

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

Ručně psaná klasifikace pro řádky textu (pouze jazyky latinky)

Odpověď zahrnuje klasifikaci toho, jestli má každý řádek textu styl rukopisu, a také skóre spolehlivosti. Tato funkce je podporovaná jenom pro jazyky latinky. Následující příklad ukazuje ručně psanou klasifikaci textu na obrázku.

Příklad klasifikace rukopisu OCR

Další kroky