Wywołanie interfejsu API odczytu

W tym przewodniku dowiesz się, jak wywołać interfejs API odczytu w celu wyodrębnienia tekstu z obrazów. Poznasz różne sposoby konfigurowania zachowania tego interfejsu API w celu spełnienia twoich potrzeb.

W tym przewodniku założono, że utworzono już zasób przetwarzanie obrazów zasób usługi przetwarzanie obrazów i uzyskano klucz subskrypcji oraz adres URL punktu końcowego. Jeśli nie zostało to jeszcze zrobić, wykonaj czynności z przewodnika Szybki start, aby rozpocząć pracę.

Przesyłanie danych do usługi

Wywołanie read interfejsu API odczytu przyjmuje obraz lub dokument PDF jako dane wejściowe i wyodrębnia tekst asynchronicznie.

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

Wywołanie zwraca wartość z polem nagłówka odpowiedzi o nazwie Operation-Location . Wartość Operation-Location jest adresem URL, który zawiera identyfikator operacji, który ma zostać użyty w następnym kroku.

Nagłówek odpowiedzi Przykładowa wartość
Operation-Location https://cognitiveservice/vision/v3.2/read/analyzeResults/49a36324-fc4b-4387-aa06-090cfbf0064f

Uwaga

Rozliczenia

Strona przetwarzanie obrazów cennika zawiera warstwę cenową dla odczytu. Każdy przeanalizowany obraz lub strona to jedna transakcja. Jeśli wywołasz operację z dokumentem PDF lub TIFF zawierającym 100 stron, operacja Odczyt zliczy ją jako 100 transakcji i zostanie rozliowana za 100 transakcji. Jeśli do operacji przesłano 50 wywołań, a każde wywołanie przesłało dokument ze 100 stronami, będą naliczane faktury za 50 X 100 = 5000 transakcji.

Określanie sposobu przetwarzania danych

Specyfikacja języka

Wywołanie Read ma opcjonalny parametr żądania dla języka. Odczyt obsługuje automatyczną identyfikację języka i dokumenty wielojęzyczne, więc podaj kod języka tylko wtedy, gdy chcesz wymusić przetworzenie dokumentu jako tego konkretnego języka.

Dane wyjściowe kolejności odczytywania naturalnego (tylko w językach łacińskich)

Określ kolejność, w jakiej wiersze tekstowe są zwracane za pomocą readingOrder parametru zapytania. Użyj natural , aby uzyskać bardziej przyjazne dla człowieka dane wyjściowe kolejności odczytu, jak pokazano w poniższym przykładzie. Ta funkcja jest obsługiwana tylko w językach łacińskich.

Przykład kolejności odczytywania OCR

Wybieranie stron lub zakresów stron do wyodrębniania tekstu

W przypadku dużych dokumentów wielostronicowych użyj parametru zapytania, aby określić numery stron lub zakresy stron w celu wyodrębnienia tekstu pages tylko z tych stron. W poniższym przykładzie pokazano dokument z 10 stronami z tekstem wyodrębnianego dla obu przypadków — wszystkie strony (1–10) i wybrane strony (3–6).

Dane wyjściowe wybranych stron

Uzyskiwanie wyników z usługi

Drugim krokiem jest wywołanie operacji Pobierz wyniki odczytu. Ta operacja przyjmuje jako dane wejściowe identyfikator operacji, który został utworzony przez operację odczytu.

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

Zwraca odpowiedź JSON zawierającą pole stanu z następującymi możliwymi wartościami.

Wartość Znaczenie
notStarted Operacja nie została uruchomiona.
running Operacja jest przetwarzana.
failed Operacja nie powiodła się.
succeeded Operacja zakończyła się pomyślnie.

Tę operację należy wywołać iteracyjnie, dopóki nie zostanie ona zwracana z wartością succeeded. Użyj interwału od 1 do 2 sekund, aby uniknąć przekroczenia szybkości żądań na sekundę (RPS).

Uwaga

Warstwa Bezpłatna ogranicza szybkość żądań do 20 wywołań na minutę. Warstwa płatna umożliwia 10 żądań na sekundę (RPS), które można zwiększyć na żądanie. Zanotuj identyfikator zasobu platformy Azure i region, a następnie otwórz bilet pomocy technicznej platformy Azure lub skontaktuj się z zespołem ds. klientów, aby zażądać wyższej stawki za żądanie na sekundę (RPS).

Gdy pole stanu ma wartość , odpowiedź succeeded JSON zawiera wyodrębnioną zawartość tekstową z obrazu lub dokumentu. Odpowiedź JSON zachowuje oryginalne grupowania linii rozpoznanych wyrazów. Zawiera wyodrębnione wiersze tekstowe i ich współrzędne pola granicznego. Każdy wiersz tekstu zawiera wszystkie wyodrębnione wyrazy z ich współrzędnymi i wynikami ufności.

Uwaga

Dane przesłane do operacji są tymczasowo szyfrowane i przechowywane przez krótki czas, a następnie Read usuwane. Dzięki temu aplikacje mogą pobrać wyodrębniony tekst w ramach odpowiedzi usługi.

Przykładowe dane wyjściowe JSON

Zobacz następujący przykład pomyślnej odpowiedzi 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
              }
            ]
          }
        ]
      }
    ]
  }
}

Klasyfikacja odręczna dla wierszy tekstowych (tylko w językach łacińskich)

Odpowiedź obejmuje klasyfikowanie, czy każdy wiersz tekstu ma styl pisma ręcznego, oraz ocenę ufności. Ta funkcja jest obsługiwana tylko w językach łacińskich. W poniższym przykładzie przedstawiono klasyfikację odręczną tekstu na obrazie.

Przykład klasyfikacji pisma ręcznego OCR

Następne kroki

Aby wypróbować interfejs API REST, przejdź do tematu Read API Reference (Odczytywanie informacji o interfejsie API).