Перейти к основному содержимому

Оптическое распознавание текста (OCR)

В файловом хранилище работает ОРТ (Оптическое распознавание текста, OCR) от партнера DBrain. На данный момент работает только распознавание главного разворота внутреннего паспорта РФ и сравнение селфи.

Оптическое распознавание текста (OCR) — это технология, позволяющая автоматически преобразовывать текст на изображениях, сканах документов или фотографиях в редактируемый и поисковый текстовый формат.

OCR используется для извлечения текста из бумажных документов, сканов, фотографий, PDF-файлов и других графических форматов, чтобы с ними можно было работать как с обычным текстом: копировать, редактировать, индексировать и искать.

Применение OCR:

  • Автоматизация ввода данных из бумажных документов.
  • Поиск и анализ информации в отсканированных архивах.
  • Распознавание текстов на фотографиях и сканах для последующего использования в электронных системах.

Настройки

  • passport_ocr_tags - Тэги по которым необходимо запустить распознавание паспорта
  • selfie_check_tags - Тэги по которым необходимо запустить проверку селфи
  • confidence_check_mode
    • Если avg, то считается среднее значение уверенности по всем полям
    • Если min, то сравнивается минимальное значение по всем полям (По умолчанию)
  • confidence_level - Минимальный порог уверенности после распознавания. Используется для формирования ответа ОРТю (По умолчанию = 0,98)

Методы API оптического распознавания текста (OCR)

МетодURLОписание
POSTapi/files/{fileId}/ocrЗапуск OCR-обработки файла
GET|HEADapi/files/{fileId}/ocr/{ocrId}Получить результат OCR по ID

Запуск OCR-обработки файла

POST /api/files/{fileId}/ocr

Описание

Метод позволяет инициировать процесс оптического распознавания текста (OCR) для указанного файла. После выполнения OCR система возвращает информацию о результате распознавания, типе документа и состоянии процесса.

При положительном результате OCR в пользовательском интерфейсе UI у соответствующего документа появляется статус «Проверка пройдена».

Параметры запроса

ПараметрТипОписание
fileIdintegerУникальный идентификатор файла, для которого запускается OCR.

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

POST /api/files/238/ocr

Пример успешного ответа

{
"status": "ok", // Статус выполнения операции
"timestamp": 1750765283000, // Время выполнения операции (Unix timestamp, мс)
"data": {
"id": 1, // Идентификатор результата OCR (или процесса)
"type": "passport", // Тип распознанного документа
"state": "OK" // Состояние процесса OCR
}
}

Пример ответа с ошибкой

{
"status": "error", // Статус выполнения операции
"timestamp": 1750834012000, // Время выполнения операции (Unix timestamp, мс)
"data": {
"message": "OCR type not found for tags: 8", // Сообщение об ошибке
"code": "OCR_TYPE_NOT_FOUND", // Код ошибки
"type": "App\\Exceptions\\OCRTypeNotFoundException", // Тип ошибки
"details": [] // Детализация ошибки
}
}

Получить результат OCR по ID

GET|HEAD /api/files/{fileId}/ocr/{ocrId}

Описание

Метод позволяет получить информацию о конкретном результате оптического распознавания текста (OCR) для указанного файла. Позволяет узнать статус выполнения OCR, тип распознанного документа и идентификатор результата.

Параметры запроса

ПараметрТипОписание
fileIdintegerУникальный идентификатор файла.
ocrIdintegerУникальный идентификатор результата OCR.

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

GET /api/files/238/ocr/1

Пример успешного ответа

{
"status": "ok", // Статус выполнения операции
"timestamp": 1750772435000, // Время выполнения операции (Unix timestamp, мс)
"data": {
"id": 1, // Идентификатор результата OCR (или процесса)
"type": "passport", // Тип распознанного документа
"state": "OK" // Состояние процесса OCR
}
}

Описание полей

ПолеТипОписание
statusstringСтатус выполнения операции ("ok"/"error")
timestampintegerВремя выполнения операции (Unix timestamp, мс)
dataobjectРезультат операции
data.idintegerИдентификатор результата OCR (или процесса)
data.typestringТип распознанного документа (например, "passport")
data.statestringСостояние процесса OCR (например, "OK", "FAILED")
data.messagestringСообщение об ошибке (только для error)
data.codestringКод ошибки (только для error)
data.typestringТип ошибки (только для error)
data.detailsarrayДетализация ошибки (только для error)