Вызов API чтения azure AI Vision 3.2

В этом руководстве показано, как вызвать API чтения общедоступной версии 3.2 для извлечения текста из изображений. Вы узнаете о различных способах настройки поведения этого API в соответствии с вашими потребностями. В этом руководстве предполагается, что вы уже создали ресурс визуального зрения и получили URL-адрес ключа и конечной точки. В противном случае выполните инструкции из этого краткого руководства, чтобы начать работу.

Выпуски OCR (чтение)

Внимание

Выберите выпуск Read, который лучше всего соответствует вашим требованиям.

Входные данные Примеры Чтение выпуска Преимущества
Изображения: общие, в диких изображениях метки, уличные знаки и плакаты OCR для изображений (версия 4.0) Оптимизировано для общих образов, не являющихся документами, с улучшенным синхронным API, что упрощает внедрение OCR в сценарии взаимодействия с пользователем.
Документы: цифровые и сканированные, включая изображения книги, статьи и отчеты Модель чтения с помощью аналитики документов Оптимизировано для проверки текста и цифровых документов с помощью асинхронного API для автоматизации интеллектуальной обработки документов в масштабе.

Сведения об azure AI Vision версии 3.2 общедоступной версии 2

Ищете последнюю общедоступную версию Azure AI Vision версии 3.2? Все будущие улучшения OCR чтения являются частью двух служб, перечисленных ранее. В Azure AI Vision версии 3.2 нет дополнительных обновлений. Дополнительные сведения см. в статье "Вызов API чтения azure AI Vision 3.2" и краткое руководство. Azure AI Vision версии 3.2 для чтения.

Требования к входным данным

Вызов API чтения принимает изображения и документы в качестве входных данных. Для них действуют следующие требования.

  • Поддерживаемые форматы файлов: JPEG, PNG, BMP, PDF и TIFF
  • Для файлов PDF и TIFF обрабатывается до 2,000 страниц (только первые две страницы для бесплатного уровня доступа).
  • Размер изображений должен быть меньше 500 МБ (4 МБ для бесплатного уровня доступа), а их размеры — не менее 50 x 50 пикселей и не более 10 000 x 10 000 пикселей. PDF-файлы не имеют ограничения на размер.
  • Минимальная высота извлекаемого текста составляет 12 пикселей для изображения 1024 x 768. Это примерно соответствует 8-му шрифту при разрешении 150 точек на дюйм.

Примечание.

Не нужно обрезать изображение для текстовых строк. Отправьте весь образ в API чтения и распознает все тексты.

Определение способа обработки данных (необязательно)

Указание модели OCR

По умолчанию служба использует последнюю общедоступную модель (GA) для извлечения текста. Начиная с версии 3.2 операции чтения, параметр model-version позволяет сделать выбор между общедоступной и предварительной моделями для определенной версии API. Указанная модель будет использоваться для извлечения текста с помощью операции чтения.

При использовании операции чтения указывайте для необязательного параметра model-version приведенные ниже значения.

Значение Используемая модель
Не задано Последняя общедоступная модель
latest Последняя общедоступная модель
30-04-2022 Последняя общедоступная модель. 164 языка для печатного текста и 9 языков для рукописного текста, а также ряд улучшений качества и производительности
2022-01-30-preview Предварительная версия модели добавляет поддержку печати текста для Хинди, арабского языка и связанных языков. Для рукописного текста добавляет поддержку японского и корейского.
2021-09-30-preview Предварительная версия модели добавляет поддержку печати текста для российских и других кириллических языков. Для рукописного текста добавляет поддержку китайского упрощенного, французского, немецкого, итальянского, португальского и испанского.
2021-04-12 Общедоступная модель 2021 г.

Язык ввода

По умолчанию служба извлекает из изображений или документов весь текст, в том числе на смешанных языках. В операции чтения есть необязательный параметр — запрос языка. Указывать код языка следует только в том случае, если нужно, чтобы документ обрабатывался под определенный язык. В противном случае служба может вернуть неполный и неправильный текст.

Естественный порядок чтения для выводимых данных (только для языков на основе латиницы)

По умолчанию служба выводит строки текста в порядке слева направо. При необходимости с помощью параметра readingOrder можно указать более понятный (natural) порядок вывода для чтения, как показано в примере ниже. Такая функция поддерживается только для языков на основе латиницы.

OCR Reading order example

Выберите страницы или диапазоны страниц для извлечения текста

По умолчанию служба извлекает текст со всех страниц в документах. С помощью параметра pages запроса можно указать номера или диапазоны страниц для извлечения текста. В следующем примере представлен документ в 10 страниц с текстом, извлеченным в двух вариантах — все страницы (1–10) и выбранные страницы (3–6).

Selected pages output

Отправка данных на устройство

API чтения принимает локальные и удаленные изображения. Чтобы передать локальное изображение, поместите двоичные данные этого изображения в текст HTTP-запроса. Чтобы передать удаленное изображение, укажите в тексте запроса его URL-адрес в следующем формате: {"url":"http://example.com/images/test.jpg"}.

При вызове Read API чтения, в качестве входных данных принимается изображение или документ PDF и из него асинхронно извлекается текст.

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

Вызов возвращает поле заголовка ответа под названием Operation-Location. Значение Operation-Location — это URL-адрес, содержащий идентификатор операции, который будет использоваться на следующем шаге.

Заголовок ответа Пример значения
Operation-Location https://cognitiveservice/vision/v3.2/read/analyzeResults/49a36324-fc4b-4387-aa06-090cfbf0064f

Примечание.

Выставление счетов

На странице цен azure AI Vision используется ценовая категория для чтения. Каждое проанализированное изображение или страница является одной транзакцией. При вызове операции с документом PDF или TIFF, содержащим 100 страниц, одна операция "Чтение" будет считаться как 100 транзакций, и плата будет взиматься за 100 транзакций. Если было выполнено 50 вызовов такой операции и каждый вызов отправлял документ в 100 страниц, вам будет выставлен счет за 5000 транзакций (50 X 100 = 5000).

Получение результатов из службы

Второй шаг — вызов операции Получение результатов чтения. Эта операция принимает в качестве входных данных идентификатор операции, созданный операцией чтения.

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

Она возвращает ответ в формате JSON, содержащий поле Состояние со следующими возможными значениями.

Значение Значение
notStarted Операция не запущена.
running Операция обрабатывается.
failed Операция завершилась ошибкой.
succeeded Операция завершилась успешно.

Эта операция вызывается итеративным способом, т. е. повторением, до тех пор пока не вернется со значением выполнено успешно. Используйте интервал от 1 до 2 секунд, чтобы избежать превышения скорости запросов в секунду (RPS).

Примечание.

На бесплатном уровне частота запросов ограничивается до 20 вызовов в минуту. Платный уровень позволяет 30 запросов в секунду (RPS), которые можно увеличить по запросу. Запишите свой идентификатор ресурсов и регион Azure, а затем откройте запрос в службу поддержки Azure или обратитесь в службу поддержки учетных записей, чтобы запросить более высокий уровень запросов в секунду.

Когда поле Состояние имеет значение succeeded, ответ JSON содержит текстовый контент, извлеченный из изображения или документа. Ответ JSON поддерживает первоначальное группирование строк распознанных слов. Он включает извлеченные текстовые строки и координаты ограничивающих полей. Каждая строка текста включает все извлеченные слова с их координатами и оценкой достоверности.

Примечание.

Данные, отправленные в операцию чтения , временно шифруются и хранятся неактивных данных в течение короткого времени, а затем удаляются. Это позволяет приложениям включать извлеченный текст в состав ответа службы.

Пример выходного JSON-файла

Ниже представлен пример ответа в формате 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
              }
            ]
          }
        ]
      }
    ]
  }
}

Рукописная классификация текстовых строк (только для латинских языков)

Ответ включает классификацию того, находится ли каждая строка текста в рукописном стиле или нет, а также оценка достоверности. Эта функция доступна только для латинских языков. В следующем примере представлена рукописная классификация для текста в изображении.

OCR handwriting classification example

Следующие шаги