Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Vision OCR
  • Начало работы
    • Обзор
    • Распознавание документов
    • Поддерживаемые языки
    • Ограничения в текущей версии
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Режимы работы Vision OCR
  • Модели распознавания
  • Определение языковой модели
  • Требования к изображению
  • Ответ с результатами распознавания
  • Формат ответа
  • Ошибки в определении координат
  • Примеры использования
  1. Концепции
  2. Обзор

О сервисе Yandex Vision OCR

Статья создана
Yandex Cloud
Обновлена 14 апреля 2025 г.
  • Режимы работы Vision OCR
  • Модели распознавания
    • Определение языковой модели
    • Требования к изображению
  • Ответ с результатами распознавания
    • Формат ответа
    • Ошибки в определении координат
  • Примеры использования

OCR (Optical Character Recognition) – это оптическое распознавание текста. Сервис компьютерного зрения Yandex Vision OCR позволяет распознавать текст на изображениях и в файлах PDF.

Vision OCR предоставляет свои возможности через API. Вы можете интегрировать функциональность сервиса в свое приложение, написанное на любом языке программирования, или отправлять запросы с помощью утилиты cURL и ее аналогов. Сервис Vision OCR предоставляет API в нотациях REST и gRPC. Вы можете самостоятельно сгенерировать интерфейс API для своего языка программирования на основе спецификации API.

Режимы работы Vision OCRРежимы работы Vision OCR

Vision OCR может обрабатывать запросы на распознавание изображений в синхронном и асинхронном режиме.

  • В синхронном режиме сервис получит ваш запрос, сразу же обработает его и вернет результат в ответном сообщении. Такой режим подходит для приложений, которым необходимо поддерживать диалог с пользователем. Однако в синхронном режиме Vision OCR не может обработать большие объемы информации.
  • В асинхронном режиме сервис получит запрос и сразу же вернет идентификатор операции, по которому вы сможете получить результат распознавания. Распознавание текста в асинхронном режиме займет больше времени, но позволит обработать большие объемы информации за один запрос. Асинхронный режим подойдет, если ваши задачи не требуют срочного ответа.

Модели распознаванияМодели распознавания

Vision OCR предоставляет несколько моделей для распознавания разных типов текста на изображениях и в файлах PDF. Это может быть печатный текст, многоколоночный печатный текст, таблицы, рукописный текст или шаблонные документы, например паспорт или регистрационный номер автомобиля. Чем точнее вы выберите модель, тем лучше будет результат распознавания. Модель передается в параметрах запроса в поле model.

Модели для распознавания текста:

  • page (по умолчанию) — подходит для изображений с любым количеством строк текста, сверстанного в одну колонку.
  • page-column-sort — для распознавания многоколоночного текста.
  • handwritten — для распознавания произвольного сочетания печатного и рукописного текста на русском и английском языках.
  • table — для распознавания таблиц на русском и английском языках.

Модели для распознавания шаблонных документов:

  • passport — основной разворот паспорта.
  • driver-license-front — водительское удостоверение, лицевая сторона.
  • driver-license-back — водительское удостоверение, обратная сторона.
  • vehicle-registration-front — свидетельство о регистрации транспортного средства, лицевая сторона.
  • vehicle-registration-back — свидетельство о регистрации транспортного средства, обратная сторона.
  • license-plates — все регистрационные номера автомобилей на изображении.

Определение языковой моделиОпределение языковой модели

Для распознавания текста Vision OCR использует языковые модели, обученные на определенном наборе языков. Большинство моделей выбирается автоматически на основе списка языков, который вы указываете в запросе. При каждом распознавании текста используется только одна модель. Например, если на изображении текст на китайском и японском, то распознан будет только один из этих языков. Чтобы распознать оба этих языка, отправьте запрос еще раз, указав другой язык распознавания.

Модели handwritten и table поддерживают только русский и английский язык. Чтобы использовать эти модели, явно укажите один или оба языка в свойстве languageCodes для OCR API.

Чтобы использовать модели для распознавания шаблонных документов, укажите язык нужной страны.

Совет

Для текста на русском и английском лучше всего работает англо-русская модель. Чтобы использовать ее, укажите один из этих языков или оба в text_detection_config, но не указывайте другие языки.

Требования к изображениюТребования к изображению

Изображение в запросе должно соответствовать следующим требованиям:

  • Поддерживаемые форматы файлов: JPEG, PNG, PDF. MIME-тип файла указывайте в свойстве mime_type. По умолчанию image.
  • Максимальный размер файла: 10 МБ.
  • Размер изображения не должен превышать 20 мегапикселей (длина × ширина).

Ответ с результатами распознаванияОтвет с результатами распознавания

Сервис выделяет найденный текст на изображении и группирует его по уровням: слова группируются в строки, строки в блоки, блоки в страницы.

image

В результате сервис возвращает объект, где для каждого из уровней дополнительно указывается:

  • страницы (pages[]) — размер страницы;
  • блоки текста (blocks[]) — расположение текста на странице;
  • строки (lines[]) — расположение строк;
  • слова (words[]) — расположение слов, текст и язык, использованный при распознавании.

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

Координаты прямоугольника считаются от левого верхнего угла и указываются против часовой стрелки:

1←4
↓ ↑
2→3

Пример распознанного изображения с координатами:

{
  "result": {
    "text_annotation": {
      "width": "1920",
      "height": "1280",
      "blocks": [{
        "bounding_box": {
          "vertices": [{
            "x": "460",
            "y": "777"
          }, {
            "x": "460",
            "y": "906"
          }, {
            "x": "810",
            "y": "906"
          }, {
            "x": "810",
            "y": "777"
          }]
        },
        "lines": [{
          "bounding_box": {
            "vertices": [{
              "x": "460",
              "y": "777"
            }, {
              "x": "460",
              "y": "820"
            }, {
              "x": "802",
              "y": "820"
            }, {
              "x": "802",
              "y": "777"
            }]
          },
          "alternatives": [{
            "text": "PENGUINS",
            "words": [{
              "bounding_box": {
                "vertices": [{
                  "x": "460",
                  "y": "768"
                }, {
                  "x": "460",
                  "y": "830"
                }, {
                  "x": "802",
                  "y": "830"
                }, {
                  "x": "802",
                  "y": "768"
                }]
              },
              "text": "PENGUINS",
              "entity_index": "-1"
            }]
          }]
        }, {
          "bounding_box": {
            "vertices": [{
              "x": "489",
              "y": "861"
            }, {
              "x": "489",
              "y": "906"
            }, {
              "x": "810",
              "y": "906"
            }, {
              "x": "810",
              "y": "861"
            }]
          },
          "alternatives": [{
            "text": "CROSSING",
            "words": [{
              "bounding_box": {
                "vertices": [{
                  "x": "489",
                  "y": "852"
                }, {
                  "x": "489",
                  "y": "916"
                }, {
                  "x": "810",
                  "y": "916"
                }, {
                  "x": "810",
                  "y": "852"
                }]
              },
              "text": "CROSSING",
              "entity_index": "-1"
            }]
          }]
        }],
        "languages": [{
          "language_code": "en"
        }]
      }, {
        "bounding_box": {
          "vertices": [{
            "x": "547",
            "y": "989"
          }, {
            "x": "547",
            "y": "1046"
          }, {
            "x": "748",
            "y": "1046"
          }, {
            "x": "748",
            "y": "989"
          }]
        },
        "lines": [{
          "bounding_box": {
            "vertices": [{
              "x": "547",
              "y": "989"
            }, {
              "x": "547",
              "y": "1046"
            }, {
              "x": "748",
              "y": "1046"
            }, {
              "x": "748",
              "y": "989"
            }]
          },
          "alternatives": [{
            "text": "SLOW",
            "words": [{
              "bounding_box": {
                "vertices": [{
                  "x": "547",
                  "y": "983"
                }, {
                  "x": "547",
                  "y": "1054"
                }, {
                  "x": "748",
                  "y": "1054"
                }, {
                  "x": "748",
                  "y": "983"
                }]
              },
              "text": "SLOW",
              "entity_index": "-1"
            }]
          }]
        }],
        "languages": [{
          "language_code": "en"
        }]
      }],
      "entities": []
    },
    "page": "0"
  }
}

Формат ответаФормат ответа

Yandex Vision OCR предоставляет результат распознавания в формате JSON Lines, где каждая строка JSON-файла соответствует одной распознанной странице или изображению.

Ошибки в определении координатОшибки в определении координат

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

При распознавании сервис учитывает данные о повороте изображения, которые задаются атрибутом Orientation секции exif. Некоторые средства просмотра изображений могут игнорировать заданные в exif значения поворота, что приводит к несоответствию полученных результатов отображаемому изображению.

Чтобы исправить эту ошибку, выполните одно из действий:

  • Измените настройки обработчика изображений так, чтобы при просмотре учитывался заданный в секции exif угол поворота.
  • При передаче в сервис удалите из секции exif изображения атрибут Orientation, либо установите для него значение 0.

Примеры использованияПримеры использования

  • Распознавание архива изображений в Yandex Vision OCR
  • Разработка Telegram-бота для распознавания текста на изображениях, синтеза и распознавания аудио
  • Распознавание текста на изображении
  • Распознавание текста из PDF-файла
  • Распознавание рукописного текста
  • Распознавание таблицы

Что дальшеЧто дальше

  • Посмотрите список поддерживаемых языков.
  • Посмотрите известные ограничения в текущей версии.
  • Попробуйте распознать текст на изображении.

Была ли статья полезна?

Предыдущая
Регулярное распознавание изображений и PDF-документов из бакета Object Storage
Следующая
Распознавание документов
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»