Page cover image

Классификация документов

Проверяем наличие требуемого списка документов в файле и аккуратно раскладываем их по типам

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

Сервис классификации:

  1. Работает с фотографиями и сканами документов.

  2. Находит на изображении все документы, даже если на одном скане присутствуют сразу паспорт, СНИЛС и водительские права.

  3. Отделяет документы от фона. Например, от рук, столов или обоев в цветочек.

  4. Поворачивает и при необходимости зеркально отражает документ.

  5. Присваивает тип каждому найденному документу. Вы можете посмотреть, какие документы мы умеем классифицировать, в разделе «Типы документов».

Обратите внимание, что классификатор может вернуть в API такие типы:

  • other — документ неизвестного типа

  • not_document — не документ, например, фото кота

  • empty — пустая страница

Как начать работать с сервисом классификации документов

Есть 4 популярных способа взаимодействия с сервисом. Для любого из них вам нужен ключ лицензии. Чтобы получить ключ, напишите нам в телеграм или на [email protected].

Подготовьте изображение документа для теста. Если у вас такого нет, используйте паспорт РФ из Википедии.

Через терминал

Обратитесь к методу /classify по адресу latest.dbrain.io. В этом способе только два обязательных параметра:

  • token — ваш ключ лицензии

  • image — файл с изображением документа

Запрос curl должен выглядеть так:

curl -X 'POST' \
  'https://latest.dbrain.io/classify?token=xxx' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F '[email protected];type=image/jpeg'
Через Swagger
  • Подготовьте ключ лицензии

  • Откройте Swagger и нажмите кнопку Authorize в правом верхнем углу

  • Введите свой токен в любое поле и нажмите Authorize

  • Прокрутите вниз до раздела Documents, нажмите на метод /classify

  • В открывшемся разделе нажмите на кнопку Try it out

  • Прокрутите страницу вниз до раздела Request body

  • Нажмите на кнопку Выберите файл пункта image

  • Укажите изображение, которое нужно распознать

  • Нажмите кнопку Execute

  • Ответ сервиса появится в пункте Response body раздела Responses

  • Полученный на этом этапе Curl мы рекомендуем использовать как основу для написания интеграции с API сервиса Dbrain

Через веб-демо
  1. Откройте demo.dbrain.io

  2. Введите ключ лицензии в поле «Введите токен»

  3. Нажмите кнопку «Выберите файлы для распознавания»

  4. Укажите изображение, которое нужно распознать

  5. Нажмите кнопку «Классифицировать»

Через Python
import requests

url = 'https://latest.dbrain.io/classify?token=xxx'
files = {'image': open('image.jpg', 'rb')}
headers = {'accept': 'application/json'}

response = requests.post(url, headers=headers, files=files)

Код использует библиотеку requests для отправки POST-запроса с файлом изображения. Функция open() используется для открытия файла изображения в двоичном режиме и передачи его в параметр files. Параметр headers используется для установки заголовка accept в значение application/json. Ответ от сервера сохраняется в переменной response.

Тело запроса передавайте в кодировке UTF-8.

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

Возврат найденных областей изображения

Поведение по умолчанию: return_crops=true — сервис возвращает изображения найденных документов в параметре crop.

Если вам не нужны найденные сервисом изображения документов (например, в целях экономии трафика), укажите return_crops=false.

Перед началом работы с сервисами изучите раздел «Общая информация о сервисах». Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок

В ответе API:

  • task_id — string, идентификатор запроса, формат: 32 символа, 16-ричная строка

  • items — массив, который содержит найденные документы

    • document — объект, который содержит один из найденных документов

      • type— string, тип найденного документа, возможные типы перечислены в таблице выше

      • rotation — integer, ориентация документа

      • coords — массив, координаты документа на изображении по четырём точкам: верхний левый угол, верхний правый, нижний левый, нижний правый

      • page — integer, номер страницы, на котором найден документ, актуально для многостраничных форматов, например PDF

      • confidence — number, уровень уверенности алгоритма в корректности определения типа документа

    • crop — $string, изображение документа, отделённое от фона и правильно ориентированное, в бинарном формате

  • task_tags — массив string, теги, если они переданы в параметре task_tags

  • page_count — integer, число страниц в файле, актуально для PDF и DJVU

  • docs_count — integer, число распознанных документов в файле

  • traceback — string, сообщение об ошибке, которое содержит информацию о том, где произошла ошибка в коде и какие функции были вызваны перед ней. Это сообщение может помочь разработчикам понять причину возникновения ошибки и исправить ее. Передайте её нашей службе поддержки.

Остальные поля не несут практического смысла. Оставили их для совместимости со старыми версиями.