Skip to content

yandex-cloud-examples/yc-vision-ocr-recognizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OCR Recognizer

Данное решение позволяет получать изображения и PDF-документы из бакета Object Storage, отправлять их на распознавание в сервис Vision, а результаты распознавания сохранять обратно в бакет Object Storage.

Скрипт написан на Python поэтому может быть легко разобран, доработан и оптимизирован под ваш сценарий.

Процесс распознавания

Процесс распознавания изображений



  1. Пользователь загружает изображения или документы в поддерживаемых форматах в бакет Object Storage, в директорию (префикс) input, которую нужно создать.

  2. Скрипт получает файлы, созданные в директории input в бакете при помощи триггера и отправляет на распознавание.

  3. Файлы отправляются на распознавание, их operation_id сохраняется в директории process.

  4. Скрипт запускается по таймеру, проверяет статус операций в директории process. В случае успешного завершения операции, результаты сохраняются в result в формате JSON и в формате TXT, а операция в process удаляется.

Использование

Можно воспользоваться готовым Terraform модулем, который создает все необходимые ресурсы для начала обработки изображений и документов, а именно:

  • Создает контейнер
  • Создает триггеры
  • Создает бакет
  • Создает необходимые учетные записи и права

Будет создан бакет вида ocr-recognition-xxx, в котором нужно создать директорию input и загрузить туда PDF-документы или изображения. Результат распознавания будет сохранен в тот же бакет, в директорию result.

Локально

Скрипт может быть запущен локально:

python src/async_ocr_client.py --api-key xxx --image-path file.png

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

python src/async_ocr_client.py --operation-id xxx --api-key yyy --output file.txt

Для того, чтобы создать API-ключ:

  1. Необходимо создать сервисную учетную запись
  2. Назначить роль ai.vision.user
  3. Создать API-ключ