Вызов API чтения СИ Azure версии 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 для чтения.
Определение способа обработки данных (необязательно)
Указание модели OCR
По умолчанию служба использует последнюю общедоступную модель (GA) для извлечения текста. Начиная с read версии 3.2 параметр model-version
позволяет выбирать модели общедоступной версии и предварительной версии API. Указанная модель используется для извлечения текста с помощью операции чтения.
При использовании операции чтения указывайте для необязательного параметра model-version
приведенные ниже значения.
Значение | Используемая модель |
---|---|
Не задано | Последняя общедоступная модель |
Latest | Последняя общедоступная модель |
30-04-2022 | Последняя общедоступная модель. 164 языка для печатного текста и 9 языков для рукописного текста, а также ряд улучшений качества и производительности |
2022-01-30 | Добавляет поддержку печати текста для Хинди, арабского и связанного языка. Для рукописного текста добавляет поддержку японского и корейского. |
2021-09-30 | Добавляет поддержку текста печати для российских и других кириллических языков. Для рукописного текста добавляет поддержку китайского упрощенного, французского, немецкого, итальянского, португальского и испанского. |
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/d3d3d3d3-eeee-ffff-aaaa-b4b4b4b4b4b4 |
Примечание.
Выставление счетов
На странице цен 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 или обратитесь в свою группу учетных записей, чтобы запросить более высокую скорость 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
}
]
}
]
}
]
}
}
Рукописная классификация текстовых строк (только для латинских языков)
Ответ включает классификацию того, находится ли каждая строка текста в рукописном стиле или нет, а также оценка достоверности. Эта функция доступна только для латинских языков. В следующем примере представлена рукописная классификация для текста в изображении.