Распознавание документов
Метод /recognize
Алгоритм распознавания документов включает в себя классификацию документов на изображении и распознавание в нём текста полей.
Алгоритм работы метода API /recognize
Алгоритм ищет на входящем изображении прямоугольные области, похожие на документы, и вырезает их.
Классификатор присваивает каждой вырезанной области класс: главный разворот паспорта России, водительское удостоверение образца 2011 года, СНИЛС и так далее. По ссылке доступен список поддерживаемых типов документов.
Алгоритм оценивает ориентацию документа в пространстве. При необходимости, классификатор поворачивает или зеркально отражает документ.
Алгоритм находит и вырезает поля документа. Например, в паспорте отдельно вырезаются фамилия, место рождения, серия, номер и остальные поля.
Алгоритм OCR оцифровывает символы на вырезанном поле документа.
OCR присваивает результату распознавания «уровень уверенности»
confidence
.Если включен режим ручного распознавания, модуль HITL обрабатывает пару «вырезанное поле + оцифрованный текст» .
Оцифрованный текст проходит верификацию по маскам и словарям.
Уровень уверенности confidence
Параметр confidence
в ответе показывает уровень уверенности алгоритма в корректности распознавания символов:
0.90-1.00 — абсолютно уверен;
0.70-0.89 — вполне уверен;
0.50-0.69 — в ответе возможна ошибка;
0.01-0.49 — в поле наверняка есть ошибка;
0 — в поле точно ошибка.
Алгоритм вернёт пустой ответ с нулевым confidence
, если оцифрованный текст не пройдёт проверку по маскам и словарям. Например, дата рождения «56.12.1988» не попадёт в ответ.
Функция сверки полей с внешним файлом
Функция сравнивает результаты распознавания полей с текстом из вашего файла. Это полезно, когда вы хотите сверить данные из изображений документов с данными из других источников. Для использования функции дополнительно укажите JSON-файл в параметре verify_fields
.
Ниже показан пример JSON-файла для сравнения серии-номера и ФИО из паспорта РФ с результатами распознавания:
Для составления своего JSON-файла скопируйте наименования полей из API-спецификации.
Функция сверки возвращает атрибут "valid"
для каждого поля документа. Допустимые значения атрибута:
"true" — текст поля в JSON-файле и в результатах распознавания совпадают;
"false" — текст не совпадает;
"null" — поле отсутствует в JSON-файле.
Помимо этого, функция сверки возвращает атрибут "levenshtein"
— расстояние Левенштейна для результата распознавания и аналогичного поля из внешнего JSON-файла.
API-спецификация
Ниже представлена API-спецификация для метода распознавания документов. Подробнее о том, как составить запрос на распознавание, в разделе Подключение и тестирование.
recognize
POST
https://latest.dbrain.io/recognize
Query Parameters
Name | Type | Description |
---|---|---|
external_check_fake | boolean | true — при использовании проверок по внешним базам (external_check_...) не делает настоящую проверку, а возвращает шаблонный ответ (необходимо для отладки) false — имитация проверки отключена |
external_check_vehicle_dtp_and_restrict | boolean | true — ищет в базах ГИБДД ДТП с участием данного транспортного средства и обременения по СТС (vehicle_registration_certificate_front) false — обращение к базе по этой проверке отключено |
external_check_vehicle_wanted_list | boolean | true — ищет во внешних базах, находится ли транспортное средство в розыске по ПТС или СТС (vehicle_registration_certificate_front или pts_front) false — обращение к базе по этой проверке отключено |
external_check_vehicle_restrict_list | boolean | true — ищет во внешних базах обременения на транспортное средство по ПТС или СТС (vehicle_registration_certificate_front или pts_front) false — обращение к базе по этой проверке отключено |
external_check_fico | boolean | true — возвращает финансовый скоринг FICO для физлица по паспорту (passport_main) false — обращение к базе по этой проверке отключено |
external_check_pledges_list | boolean | true — находит во внешних базах долги физлица по паспорту (passport_main) false — обращение к базе по этой проверке отключено |
external_check_inn | boolean | true — находит во внешних базах номер ИНН физлица по паспорту (passport_main) false — обращение ко внешней базе по номеру ИНН отключено |
external_check_is_valid | boolean | true — проверяет подлинность документа по внешним базам документов (вроде реестров МВД/ГИБДД). Пока доступна только проверка подлинности паспорта (doc_type="passport_main") false — проверка подлинности паспорта по базам отключена |
doc_type | array | Перечень типов документов, которые вы хотите распознать во входящем файле. Используется для детерминированных процессов, например, если в потоке требуется обрабатывать только главный разворот паспорта, а на все остальные типы ответ не нужен. По умолчанию выбраны все значения параметра (все типы, имеющиеся в классификаторе) |
priority | integer | >0, по умолчанию — 1. Приоритет асинхронной задачи в очереди на обработку |
simple_cropper | boolean | false (по умолчанию) — упрощённый алгоритм вырезания документов из изображений не используется true — используется упрощённый алгоритм вырезания документов из изображений: он работает быстрее, но даёт менее точный результат. На изображениях со сложным фоном документы могут быть вырезаны менее аккуратно |
async | boolean | true — асинхронный режим обработки запросов false — синхронный режим обработки запросов |
check_fake_experimental | boolean | Устарел и не используется |
check_fake | boolean | true — алгоритм ищет в метаданных файла признаки модификации в цифровых редакторах, результат возвращается в отдельном поле fake false — алгоритм проверки метаданных отключен |
use_internal_api | boolean | true — нормализует поле «Кем выдано» в паспорте по встроенной базе данных. Это позволяет получить текст без опечаток даже с изображений низкого качества, но может приводить к отсутствию посимвольного соответствия между документом и результатом false — нормализация отключена |
use_external_api | boolean | true (по умолчанию) — алгоритм уточняет и обогащает ответ API по СТС и ПТС данными из внешних сервисов false — сервис возвращает только то, что сам распознал |
pdf_raw_images | boolean | true — алгоритм оставляет решение о растеризации PDF параметру auto_pdf_raw_images false — любой PDF будет принудительно растеризован, значение параметра auto_pdf_raw_images будет проигнорировано. |
auto_pdf_raw_images | boolean | true — алгоритм ищет текстовый слой в PDF. Если он найден, PDF будет принудительно растеризован false — алгоритм никогда не растеризует PDF |
dpi | integer | >0, по умолчанию — 300. устанавливает число пикселей на дюйм при растеризации PDF. Рекомендуется 300, более высокие значения как правило не дают прироста качества, но увеличивают вес |
quality | integer | 0-100, по умолчанию — 75. устанавливает степень сжатия JPEG при растеризации PDF. Рекомендуется 75 для баланса между весом изображения и его качеством |
gauss | number | Устарел и не используется |
mode | string | default — задействован весь пайплайн распознавания; recognize_only — отключает алгоритмы вырезания и ориентирования документа, на этап распознавания уходит оригинальное изображение |
with_hitl | boolean | true — поля документа уходят на ручную верификацию и распознавание сложных случаев с помощью Яндекс.Толоки false — ручное распознавание отключено |
hitl_async | boolean | true — разрешает модулю HITL возврат неполного состава полей документа не дожидаясь окончания распознавания всех полей. Параметр работает только при использовании режима ручного распознавания документов with_hitl=true. Ответ с неполным составом полей сопровождается кодом 202, полный — кодом 200 false — отключает асинхронный режим HITL, метод вернёт ответ только по завершению обработки всех полей документа |
hitl_required_fields | array | В массиве нужно перечислить названия полей документа, после обработки которых HITL может возвращать неполный ответ. Работает только с включенными параметрами with_hitl и hitl_async |
hitl_sla | string | Не используется |
task_tags | array | Массив строк, который позволяет присваивать запросу дополнительные идентификаторы. Например можно передавать id пакета документов для биллинга на стороне Dbrain |
return_crops | boolean | false — сервис перестаёт возвращать изображения. Функцию можно использовать для экономии трафика и для удобства отладки — с ней ответ сервиса становится более читабельным. true (по умолчанию) — сервис возвращает в ответе изображения в бинарном формате. |
first_occurrence_only | boolean | true — при обработке PDF сервис возвращает только первый найденный документ запрашиваемого класса. Это позволяет сократить время ответа. false (по умолчанию) — сервис обрабатывает PDF целиком и возвращает все найденные документы. |
merge_and_name | string | Пустой (по умолчанию) — ответ вернётся без изменений Любое значение — все поля всех распознанных документов будут объединены в один класс с указанным в параметре именем |
max_blur_score | number | >0, по умолчанию 2. Минимальный коэффициент чёткости изображения. Если чёткость меньше, параметр image_blured в ответе вернётся со значением true. Если больше — false. |
min_exposure_score | number | >0, по умолчанию 0.05. Минимальная экспозиция (яркость) изображения. Если яркость меньше, параметр image_exposure в ответе вернётся со значением underexposed. Если больше — normal. |
max_exposure_score | number | >0, по умолчанию 0.4. Максимальная экспозиция (яркость) изображения. Если яркость больше, параметр image_exposure в ответе вернётся со значением overexposed. Если меньше — normal. |
min_filesize | integer | >0, по умолчанию 256. Минимальный размер изображения в пикселях по короткой стороне. Если размер меньше, параметр low_image_size в ответе вернётся со значением true. Если больше — false. |
min_shape | integer | Минимальный размер изображения в пикселях по короткой стороне. Если размер меньше, параметр low_image_weight в ответе вернётся со значением true. Если больше — false. |
hitl_symbol_field | array | В этом массиве можно перечислить поля документов, которые сервис должен возвращать с ручной проверки с посимвольной точностью, без приведения к словарю |
hitl_field_to_recognize | array | Если вам нужно ручное распознавание только отдельных полей документов, перечислите в этом массиве их названия |
external_check_passport_complex | boolean | true — проводит комплексную проверку паспорта по внешним источникам false — проверка не проводится |
dev_invoice_alternative_engine | boolean | Параметр используется для отладки, не рекомендуется к использованию в проде |
Request Body
Name | Type | Description |
---|---|---|
verify_fields | string | Активирует функцию сверки полей с внешним файлом (см. выше) |
image | object | Файл, содержимое которого надо распознать |
coords | string | Внутренний параметр, не для использования клиентами |
Last updated