Прочитать на английском

Поделиться через


Вызовите API для чтения Azure AI Vision версии 3.2 GA

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

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

Издания OCR (в режиме чтения)

Важно!

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

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

Сведения об Azure AI Vision версии 3.2 общедоступная версия (GA)

Ищете последнюю общедоступную версию Azure AI Vision версии 3.2? Все будущие улучшения OCR чтения являются частью двух служб, перечисленных ранее. В Azure AI Vision версии 3.2 нет дополнительных обновлений. Для получения дополнительной информации см. Вызов Azure AI Vision 3.2 GA Read API и Краткое руководство: Azure AI Vision v3.2 GA Read.

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

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

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

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

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

Язык ввода

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

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

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

Снимок экрана: пример порядка чтения OCR.

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

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

Снимок экрана: выходные данные со всех страниц и из выбранных страниц.

Отправить данные на сервис

Вы отправляете либо локальное изображение, либо удаленное изображение в 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-адрес, содержащий идентификатор операции, который будет использоваться на следующем шаге.

Заголовок ответа Пример значения
Местоположение операции https://cognitiveservice/vision/v3.2/read/analyzeResults/d3d3d3d3-eeee-ffff-aaaa-b4b4b4b4b4b4

Примечание

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

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

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

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

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

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

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

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

Примечание

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

Когда поле Состояние имеет значение 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.