VK Cloud logo

Распознавание текста

Данный метод позволяет распознавать текст на изображении.

HOST: https://smarty.mail.ru

ENDPOINT: /api/v1/text/recognize

Запрос

Авторизационные данные передаются в строке запроса:

ПараметрТипЗначение
oauth_token
string
OAuth2 access token (required non-empty)
oauth_provider
string
Провайдер OAuth2 (required non-empty)

Поддерживаемые провайдеры OAuth2:

ПровайдерЗначение oauth_providerПолучение токенаПроекты
VK Cloud
mcs
Все клиенты VK Cloud

Параметры запроса передаются в формате JSON в теле запроса с name="meta":

ПараметрТипЗначение
images
[]image_meta
Метаданные передаваемых изображений (required non-empty)
mode
string
Параметр-флаг: выдавать ли детализированный ответ, если "detailed", то детализированный (к ответу добавляются координаты bounding box текста и confidence), (optional)

image_meta

ПараметрТипЗначение
name
string
имена файлов для сопоставления файлов в запросе и ответе (required non-empty)

Изображения передаются в теле запроса, значения поля name должны соответствовать переданным в images.

Максимальное количество изображений в одном запросе равняется 100. Максимальный размер каждого изображения не должен превышать 4МБ.

Пример запроса:

POST /api/v1/text/recognize?oauth_provider=mcs&oauth_token=123 HTTP/1.1

Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryfCqTBHeLZlsicvMp

------WebKitFormBoundaryfCqTBHeLZlsicvMp
Content-Disposition: form-data; name="file_0"; filename=""
Content-Type: image/jpeg

000000000000000000000000000
000000000000000000000000000
000000000000000000000000000
------WebKitFormBoundaryfCqTBHeLZlsicvMp
Content-Disposition: form-data; name="file_1"; filename=""
Content-Type: image/jpeg

111111111111111111111111111
111111111111111111111111111
111111111111111111111111111
------WebKitFormBoundaryfCqTBHeLZlsicvMp
Content-Disposition: form-data; name="meta"

{"images":[{"name":"file_0"},{"name":"file_1"}]}
------WebKitFormBoundaryfCqTBHeLZlsicvMp--

Ответ

ПараметрТипЗначение
status
int
200 в случае успешного взаимодействия с серверами Vision
body
response
Тело ответа

response

ПараметрТипЗначение
objects
[]object
Массив ответов для каждого файла

object

ПараметрТипЗначение
status
enum
Результат выполнения
error
string
Текстовое описание ошибки (optional)
name
string
Имя файла для сопоставления файлов в запросе и ответе
text
string
Распознанный текст
results
[]line
Если проставлен "mode":"detailed" - массив строк ответов по странице (текст, bounding box, confidence)

status

ПараметрЗначение
0
Успешно
1
Перманентная ошибка
2
Временная ошибка

line

ПараметрТипЗначение
line_prob
float32
Уверенность распознавания строки
line_coord
[]float32
Координаты строки - x1,y1, x2, y2 - левый верхний и правый нижний точки охватывающего прямоугольника
words
[]word
Массив распознанных слов ответов в строке

word

ПараметрТипЗначение
prob
float32
Уверенность распознавания слова
coord
[]float32
Координаты слова - x1,y1, x2, y2 - левый верхний и правый нижний точки охватывающего прямоугольника
text
string
Массив распознанных слов ответов в строке
lang_prob
float32
Уверенность распознавания языка
lang
string
Eng/rus/unknown. Unknown когда не содержит букв алфавита

Пример ответа при отсутствии флага "mode":"detailed":

1{
2    "status":200,
3    "body":
4    { 
5     "objects":[
6     {
7         "status":0,
8         "name":"file_0",
9         "text":"some text"
10     }
11}

Пример ответа при наличии флага "mode":"detailed":

1{
2    "status":200,
3    "body":
4    {        
5     "objects":[
6     {
7         "status":0,
8         "name":"file_0",
9         "results":[{
10               "words":[{"coord":[201,159,291,204],"prob":0.9952,"text":"you!","lang_prob":0.9998,"lang":"eng"}, ...],
11               "line_prob":0.8123,
12               "line_coord":[18,155,291,201]
13                     }, ...]
14     }
15}

Пример ответа, когда не удалось выполнить запрос:

1{
2    "status":500,
3    "body":"Internal Server Error",
4    "htmlencoded":false,
5    "last_modified":0
6}