Вызов 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
) порядок вывода для чтения, как показано в примере ниже. Такая функция поддерживается только для языков на основе латиницы.
Выберите страницы или диапазоны страниц для извлечения текста
По умолчанию служба извлекает текст со всех страниц в документах. С помощью параметра 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-адрес, содержащий идентификатор операции, который будет использоваться на следующем шаге.
Заголовок ответа | Пример значения |
---|---|
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
}
]
}
]
}
]
}
}
Рукописная классификация текстовых строк (только для латинских языков)
Ответ включает классификацию того, находится ли каждая строка текста в рукописном стиле или нет, а также оценка достоверности. Эта функция доступна только для латинских языков. В следующем примере представлена рукописная классификация для текста в изображении.
Следующие шаги
- Начните работу с краткими руководствами по REST API OCR (для чтения) или клиентским библиотекам.
- Ознакомьтесь со справочником по REST API 3.2.