Only this pageAll pages
Powered by GitBook
1 of 30

Dbrain Реестр ПО (backup)

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

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

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

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

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

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

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

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

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

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

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

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

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

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

Через терминал
  • token — ваш ключ лицензии

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

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

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

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

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

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

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

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

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

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

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

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

Через веб-демо
  1. Введите ключ лицензии в поле «Введите токен»

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

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

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

Через 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 — boolean

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

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

В ответе 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, сообщение об ошибке, которое содержит информацию о том, где произошла ошибка в коде и какие функции были вызваны перед ней. Это сообщение может помочь разработчикам понять причину возникновения ошибки и исправить ее. Передайте её нашей службе поддержки.

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

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

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

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

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

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

Откройте

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

«Типы документов»
телеграм
hello@dbrain.io
паспорт РФ из Википедии
latest.dbrain.io
Swagger
demo.dbrain.io
«Общая информация о сервисах»

Dbrain

Предоставляем набор сервисов для обработки изображений документов

Паспорт

Извлекаем данные из паспорта гражданина РФ: главный разворот, стр. 3-4

Актуальная форма паспорта выдаётся с 1 октября 1997 года. С 1 июля 2011 года в паспорте заполняются нижние две строки с машиночитаемыми записями (МЧЗ). Сервис извлекает данные как из визуальных полей, так и из МЧЗ. При выборе между ними, сервис ориентируется на контрольные суммы в МЧЗ и читабельность данных визуальных полей.

Тип документа в API: passport_main

Перечень извлекаемых полей

Поле
Название в API
Формат поля

Серия и номер

series_and_number

4 цифры, пробел, 6 цифр

Имя

first_name

Русский алфавит

Фамилия

surname

Русский алфавит

Отчество

other_names

Русский алфавит

Пол

sex

муж. или жен.

Дата рождения

date_of_birth

дд.мм.гггг

Место рождения

place_of_birth

Русский алфавит

Дата выдачи

date_of_issue

дд.мм.гггг

Код подразделения

subdivision_code

3 цифры, тире, 3 цифры

Паспорт выдан

issuing_authority

Русский алфавит

МЧЗ, строка 1

mrz_1

Латинский алфавит, цифры, <>

МЧЗ, строка 2

mrz_2

Латинский алфавит, цифры, <>

Номер разворота

page_number

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

Нормализация поля «Паспорт выдан»

use_internal_api — boolean

В крайне редких случаях нормализация может приводить к неточному соответствию результатов распознавания поля «Паспорт выдан» и фактического текста в паспорте. Например, вместо ОТДЕЛОМ УФМС РОССИИ ПО Г. МОСКВЕ ПО РАЙОНУ ЗЮЗИНО сервис может вернуть ОТДЕЛОМ УФМС РОССИИ ПО ГОРОДУ МОСКВЕ ПО РАЙОНУ ЗЮЗИНО.

Мы не рекомендуем, но если вы всё же хотите отключить нормализацию поля «Паспорт выдан», передайте параметр use_internal_api=false

В России нет юридических норм, которые обязывают вас использовать в документах побуквенное воспроизведение поля «Паспорт выдан».

Например, у нашего продакта Артёма текст поля «Паспорт выдан» очень длинный и не влезает ни в одну печатную форму. Что ему делать? Артём всегда использует сокращения.

Для однозначной идентификации места выдачи документа достаточно поля «Код подразделения»

Помимо извлечения данных из паспорта сервис Dbrain умеет:

Общая информация о сервисах

Это важно для работы с любым сервисом. Рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок

Краткое описание сервисов

Форматы файлов

Обрабатываем одностраничные файлы любого формата. Многостраничные файлы — только форматов PDF и DJVU:

Формат
Одностраничный
Многостраничный

JPEG/JPG

PDF

PNG

TIFF

BMP

GIF

HEIC

HEIF

DJVU

Размер файлов должен быть не более 30 Mb и не менее 1 Kb

Формат запросов и ответов

Сервис принимает запросы в формате multipart/form-data.

В ответах формата JSON используется кодировка UTF-8.

Универсальные параметры запроса к API

Все сервисы Dbrain поддерживают этот набор параметров. Использовать их необязательно, но они могут помочь решить вашу задачу.

Асинхронный запрос

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В ответ на запрос сервис вернёт в response body параметр task_id. Например:

"task_id": "96b8ccc950a70699927036842c624d7c"

Используйте этот task_id, чтобы получить результаты классификации в методе result:

curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды.

Тегирование запроса

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре task_tags удобный вам тег. Например, task_tags=id_13

Тело запроса к API

Изображение

image — string ($binary)

Обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

HTTP-коды ответа на запрос

Сервисы Dbrain возвращают универсальный набор HTTP-статусов. Рассказываем, что значит каждый статус и что с ним делать.

200 OK

Это наилучший код ответа. Он означает, что всё работает: сервис успешно обработал запрос и вернул запрошенные данные.

202 Accepted

Наш сервис принял запрос в обработку, но ответ ещё не готов. Повторите запрос через 1-2 секунды.

403 Forbidden

Вы попытались получить результат задачи, отправленной от другого токена. Проверьте корректность параметра token в запросе.

404 Not Found

Задача с таким task_id не найдена. Проверьте корректность параметра task_id в запросе.

405 License is Invalid

405 Method Not Allowed

Вы использовали неверный тип запроса. Например, отправили GET вместо POST.

413 Content Too Large

Вы отправили слишком большой файл. Файл должен быть меньше 30 Мб. Если у вас тяжелый многостраничный файл, разбейте его на несколько файлов перед отправкой. Если файл состоит из одной страницы — сохраните его с меньшим разрешением.

415 Unsupported Media Type

Вы отправили слишком маленький файл. Он должен быть больше 1 Кб.

422 Unprocessable Content

Скорее всего, вы передали неправильный content-type тела запроса. Возможно, вы отправили текст вместо файла. Проверьте запрос.

500 Internal Server Error

502 Bad Gateway

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

503 Service Unavailable

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

Проверка работоспособности сервиса

Отправьте GET-запрос на адрес https://latest.dbrain.io/healthcheck.

В ответ вы получите код состояния HTTP 200 с Content-Type: application/json и телом ответа {"success": true}.

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

Извлечение данных

Извлекаем данные из изображений документов и возвращаем их в структурированном виде

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

Что делает сервис:

  • Находит документы на фото и сканах

  • Обрабатывает многостраничные файлы в форматах PDF и DJVU

  • Отделяет документы от фона — бабушкиных ковров и узорчатых скатертей

  • Поправляет повёрнутые и зеркально отражённые документы

  • Извлекает данные из некачественных фото:

    • обрезанные;

    • смазанные;

    • бликующие;

    • с наложением посторонних предметов.

Как начать работать с сервисом извлечения данных

Через терминал
  • token — ваш ключ лицензии

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

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

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

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

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

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

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

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

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

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

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

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

Через Python
import requests

url = 'https://latest.dbrain.io/recognize?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.

Через 1С
Функция РаспознатьДокумент(ПакетДвоичныеДанные, ИмяФайла) Экспорт
	// готовит HTTP-запрос, включая заголовки и тело, и отправляет его на сервер.
	ПараметрыЗапроса ="?token=B000000000000000000000"; // токен необходимо получить собственный!
	РазделительМультисообщения = "----MessageBoundary1C";

	HTTPЗапрос = Новый HTTPЗапрос("/recognize"+ПараметрыЗапроса);
	HTTPЗапрос.Заголовки.Вставить("accept", "application/json");
	HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + РазделительМультисообщения);

	ТелоПоток = Новый ПотокВПамяти();
	
	ЗаписьДанных = Новый ЗаписьДанных(ТелоПоток); 
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения);
	ЗаписьДанных.Записать(СоздатьСообщение_XML("image", ИмяФайла, ПакетДвоичныеДанные)); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ВК); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ПС);
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения + "--");
	ЗаписьДанных.Закрыть();
	
	ТелоДвоичныеДанные = ТелоПоток.ЗакрытьИПолучитьДвоичныеДанные();
	
	Попытка
		Соединение = Новый HTTPСоединение("latest.dbrain.io",
										443,
										,
										,
										,
										60,	
										ЗащищенноеСоединение());
	Исключение
		Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));	
	КонецПопытки;

	HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(ТелоДвоичныеДанные);
	Возврат Соединение.ОтправитьДляОбработки(HTTPЗапрос);
	
КонецФункции	

Функция ЗащищенноеСоединение() 
	
	ЗащищенноеСоединение = Неопределено;
	
	СистемнаяИнфо = Новый СистемнаяИнформация;
	ТипПлатформыСервера = СистемнаяИнфо.ТипПлатформы;

	Если ТипПлатформыСервера = ТипПлатформы.Windows_x86
		Или ТипПлатформыСервера = ТипПлатформы.Windows_x86_64 Тогда
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
		Новый СертификатКлиентаWindows(),
		Новый СертификатыУдостоверяющихЦентровWindows());
	Иначе
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
	КонецЕсли;
	
	Возврат ЗащищенноеСоединение;
	
КонецФункции

Функция СоздатьСообщение_XML(ИмяСообщения, ИмяФайла, СообщениеДвоичныеДанные)   
	
	Поток = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(Поток);
	// Заголовки
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""" + ИмяСообщения + """; filename=""" + ИмяФайла + """");
	Если Прав(ИмяФайла, 4) = ".xml" Тогда
		ТипMIME = "text/xml";
	ИначеЕсли Прав(ИмяФайла, 4) = ".pdf" Тогда
		ТипMIME = "application/pdf";
	Иначе
		ЧастиИмени = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФайла, ".");
		Если ЧастиИмени.Количество() > 1 Тогда
			ТипMIME = "image/" + ЧастиИмени[ЧастиИмени.ВГраница()];	
		КонецЕсли;
	КонецЕсли;                                
	ЗаписьДанных.ЗаписатьСтроку("Content-Type: " + ТипMIME);
	ЗаписьДанных.ЗаписатьСтроку("");
	// Тело
	ЗаписьДанных.Записать(СообщениеДвоичныеДанные);
	ЗаписьДанных.Закрыть();

	Возврат Поток.ЗакрытьИПолучитьДвоичныеДанные();
		

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

Вы можете использовать эти параметры с любыми видами документов.

Проверка типа документа

doc_type — string array

Если вам нужно извлечь данные только из одного типа документа, укажите этот тип в параметре doc_type:

  • Для извлечения данных только из главного разворота Паспорта РФ укажите doc_type=passport_main

  • Для извлечения данных из нескольких типов документов допишите их в запрос через &doc_type=. Например, вам нужен главный разворот и прописка Паспорта РФ. В запросе это будет выглядеть так: doc_type=passport_main&doc_type=passport_registration

Режим распознавания

mode — string

Поведение по умолчанию: mode=default

Для этого передайте сервису извлечения данных результаты работы классификатора: изображение в параметре image и тип документа в параметре doc_type, а также укажите mode=recognize_only. В таком случае сервис не будет запускать лишнюю классификацию документа и вы быстрее получите ответ.

Возврат найденных изображений документов

return_crops — boolean

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

Если вам нужны найденные сервисом изображения документов, укажите return_crops=true. Сервис вернёт в ответе API изображение в параметре crop.

В ответе:

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

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

      • text — string, текст поля документа

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

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

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

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

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

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

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

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

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

У каждого типа документа есть свои особенности извлечения. Изучите то, что нужно вам, тут:

Паспорт: прописка

Извлекаем данные из паспорта гражданина РФ: место жительства, стр. 5-12

На страницах 5-12 паспорта ФМС проставляет отметки о регистрации и снятии с регистрации по месту жительства. ФМС ставит штампы в хронологическом порядке. Сервис находит самый свежий штамп на изображении и извлекает из него данные. Остальные штампы игнорируются.

Тип документа в API:passport_registration

Если последний штамп отличается от машинопечатной отметки о регистрации, сервис изменит doc_type в ответе:

  • passport_registration_handwritten — рукописный штамп о регистрации;

  • passport_registration_deregistered — штамп о снятии с регистрации.

Перечень извлекаемых полей

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

Нормализация адреса

normalization_fias — boolean

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

Мы не рекомендуем, но! Если вы хотите отключить нормализацию поля «Адрес», передайте параметр normalization_fias=false

Если сервис Dbrain развёрнут локально, он может обращаться за нормализацией адреса к локальному сервису Dadata. Для этого укажите адрес в параметре URL_DADATA в .env

Помимо извлечения данных сервис Dbrain умеет:

Прочие документы

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

Договоры

Извлекаем данные из юридических документов

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

  • Договор

  • Приказ генерального директора

  • Устав организации

  • Решение общего собрания собственников

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

Перечень извлекаемых полей

Типы документов

Описали все документы, которые умеем классифицировать и распознавать

Юридические документы:

  • Договор

  • Приказ генерального директора

  • Устав организации

  • Решение общего собрания собственников

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

  • Счёт

  • Счёт-фактура

  • Счёт-договор

  • Платёжное поручение

  • Акт

  • Накладная

СТС

Извлекаем данные из свидетельств о регистрации транспортных средств РФ: образцы 1993-2019 годов, лицевую и обратную сторону

ГИБДД выдаёт СТС с 1993 года, а в 2008, 2013, 2018 и 2019 годах состав полей в СТС менялся. Изменения наглядно отражены на примерах. Сервис извлекает все доступные на изображении поля из этих документов.

Перечень извлекаемых полей с лицевой части СТС

vehicle_registration_certificate_front

Перечень извлекаемых полей с обратной стороны СТС

vehicle_registration_certificate_back

Водительское удостоверение

Извлекаем данные из водительского удостоверения гражданина РФ: образцы 2011 и 2014 года, лицевую и обратную сторону

Актуальная форма водительского удостоверения выдаётся с 1 марта 2011 года. В 2014 году была изменена форма обратной стороны водительского удостоверения: расширен список категорий транспортных средств. Лицевая сторона удостоверения осталась без изменений. В 2020 году на лицевую сторону добавили перевод слов «Водительское удостоверение» на английский и французский языки. Мы не считаем эти изменения существенными, поэтому сервис не различает формы 2011 и 2020 года.

Водительское удостоверение 2011, лицевая сторона

driver_license_2011_front

Перечень извлекаемых полей

Водительское удостоверение 2011, обратная сторона

driver_license_2011_back

Перечень извлекаемых полей

Водительское удостоверение 2014, обратная сторона

driver_license_2014_back

Перечень извлекаемых полей

Помимо извлечения данных сервис Dbrain умеет:

:

:

главного разворота паспорта. Всегда возвращает 2-3

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

Поведение по умолчанию: use_internal_api=true — сервис нормализует поле «Паспорт выдан». Для этого он использует расширенную версию соответствий кода подразделения и места выдачи. Так мы повышаем точность извлечения поля «Паспорт выдан». Поэтому сервис выдаёт корректный результат даже в ситуациях, когда поле полностью нечитабельно.

— сортируем документы по типу.

— извлекаем данные из изображений документов и возвращаем их в структурированном виде.

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

— сравниваем лицо человека с фото на документе и даём оценку их схожести. Также умеем проверять «живость» человека.

— возвращаем весь найденный текст из любых изображений документов.

— вручную проверяем результаты извлечения текста в онлайн-режиме.

В любом сервисе Dbrain изображение нужно передавать в теле запроса. В сервисе нужно передать два изображения в атрибутах image1 и image2.

В запросе не указан токен, или есть проблемы с лицензией. Например, истёк срок действия лицензии или превышено число запросов. Проверьте корректность параметра token в запросе. Если token указан верно, напишите нам в или на

Внутренняя ошибка сервиса Dbrain. Как правило, сопровождается пояснением. Попробуйте повторить запрос. Если это не решило проблему, напишите нам в или на .

Если вы собираетесь работать только с качественными документами, воспользуйтесь перед извлечением данных

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

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

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

  2. Введите ключ лицензии в поле «Токен» и нажмите «Применить»

  3. Выберите «Документы с чёткой структурой»

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

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

  6. Нажмите кнопку «Распознать»

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

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

Поведение по умолчанию: сервис извлекает данные из всех , которые классификатор документов найдёт в файле.

Вы можете использовать сервис отдельно от сервиса извлечения данных. Построить разную логику обработки документов в зависимости от того какие типы документов классификатор нашёл на изображении.

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

doc_type — string, тип документа, все типы перечислены в

fields — string, поля документа, список полей по каждому документу приведён в API-спецификация в .

Название в API
Описание

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

Поведение по умолчанию: normalization_fias=true — сервис нормализует поле «Адрес». Для этого сервис обращается к и возвращает адрес в . Это повышает точность извлечения поля «Адрес». Поэтому сервис выдаёт корректный результат даже в ситуациях, когда часть адреса нечитабельна.

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

Если мы работаем с нужным вам документом — перейдите на страницу , чтобы начать работу с сервисом.

Если у вас есть документ, который мы ещё не поддерживаем — напишите нам в или на . Возможно, мы уже научились извлекать данные из нужного документа в рамках работы с одним из клиентов. Но даже если нет, мы с удовольствием его добавим.

Поле
Формат поля

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

Для экономии места в таблице сократили «Классификацию» до КЛ, а «Извлечение данных» — до ИЗ. Вы можете посмотреть полный список полей, которые мы распознаём, в отдельной .

Тип документа
Страница
Год
КЛ
ИЗ
Название в API

Кроме того, сервис Dbrain умеет извлекать данные из российских и .

Поле
Название в API
Формат поля
Дата выдачи
date
Формат поля

Ознакомьтесь с общим описанием работы сервиса извлечения данных и описанием API в разделе

Поле
Название в API
Формат поля
Поле
Название в API
Формат поля
Поле
Название в API
Формат поля

Ознакомьтесь с общим описанием работы сервиса извлечения данных и описанием API в разделе «»

Общая информация о сервисах
Поддерживаемые типы документов
Классификация документов на типы
Извлечение данных из документов
Паспорт РФ
Паспорт РФ: прописка
Водительское удостоверение
Свидетельство о регистрации транспортного средства РФ
Первичные бухгалтерские документы
Договоры, уставы, решения, приказы
Прочие документы
Проверка документов:
Признаки подделки
Соответствие критериям качества изображения
Наличие подписей и печатей
Запросы к ведомственным базам данных
Сравнение лиц на фотографиях и документах
Сравнение лиц
Селфи-чек
Liveness
Базовый OCR
Ручная верификация результатов распознавания
«Извлечение данных»
справочника
Проверять
действительность паспорта и находить признаки подделки файлов с документом
Верифицировать результаты извлечения данных в онлайн-режиме с помощью обученных людей
Сравнивать фотографии из паспорта с лицом человека
Классификация документов
Извлечение данных из документов
Проверка документов
Операции с лицами
Базовый OCR
Ручная верификация
«Сравнение лиц»
телеграм
hello@dbrain.io
телеграм
hello@dbrain.io
сервисами проверки
телеграм
hello@dbrain.io
паспорт РФ из Википедии
demo.dbrain.io
latest.dbrain.io
Swagger
поддерживаемых типов документов
классификации документов
«Общая информация о сервисах»
классификации документов
Google таблице
Паспорт РФ
Паспорт РФ: прописка
Водительское удостоверение
Свидетельство о регистрации транспортного средства РФ
Первичные бухгалтерские документы
Договоры, уставы, решения, приказы
Прочие документы

Наименование компании полное

Русский алфавит

Наименование компании краткое

Русский алфавит

Наименование компании на иностранном языке

Русский алфавит

Город

Русский алфавит

Срок полномочий руководителя

Русский алфавит

Должность руководителя

Русский алфавит

ФИО руководителя

Русский алфавит

ОГРН

13 цифр

Дата формирования документа

дд.мм.гггг

Двигатель №

engine_number

Без ограничений

Категория ТС

vehicle_category

A, A1, B, B1, C, C1, D, D1, BE, CE, C1E, DE, D1E, M, Tm, Tb

Кузов №

vehicle_body

Без ограничений

Марка на английском

brand_eng

Без ограничений

Марка на русском

brand_rus

Без ограничений

Масса без нагрузки

mass

Цифры

Модель двигателя

engine_model

Без ограничений

Модель на английском

model_eng

Без ограничений

Модель на русском

model_rus

Без ограничений

Мощность двигателя, кВт

engine_kw

Цифры

Мощность двигателя, л. с.

engine_hp

Цифры

Номер VIN

vin

Не больше 17 символов, цифры и заглавные буквы латиницей

Номер СТС (нижняя часть)

number_bottom

6 цифр

Паспорт ТС: номер

passport_number

6 цифр

Паспорт ТС: серия

passport_series

4 русских буквы или цифры

Рабочий объем двигателя

engine_volume

Цифры

Разрешенная max масса

max_mass

Цифры

Регистрационный знак

reg_number

Не больше 15 символов, только латиница и цифр

Серия и номер СТС

document_number

4 русских буквы или цифры, затем 6 цифр

Серия СТС (нижняя часть)

series_bottom

4 русских буквы или цифры

Срок временной регистрации

temporary_registration_term

дд.мм.гггг

Тип ТС

vehicle_type

Русские буквы

Цвет

color

Русские буквы

Шасси №

vehicle_chassis

Без ограничений

Экологический класс

ecologic_class

Без ограничений

Дом

house_number

Русские буквы и цифры

Квартира

apartment_number

Русские буквы и цифры

Корпус

building_number

Русские буквы и цифры

Название владельца (юрлицо на английском)

legal_name

Без ограничений

Название владельца (юрлицо на русском)

legal_name_rus

Без ограничений

Населённый пункт

city

Без ограничений

Номер СТС (верхняя часть)

number_top

6 цифр

Номер СТС (нижняя часть)

number_bottom

6 цифр

Орган, выдавший документ

police_unit_code

7 цифр

Особые отметки

special_marks

Без ограничений

Район

region

Без ограничений

Республика, край, область

province_rus

Без ограничений

Республика, край, область

province

Без ограничений

Серия СТС (верхняя часть)

series_top

4 русских буквы или цифры

Серия СТС (нижняя часть)

series_bottom

4 русских буквы или цифры

Собственник: имя (на английском)

name

Без ограничений

Собственник: имя (на русском)

name_rus

Без ограничений

Собственник: отчество (на русском)

patronymic_rus

Без ограничений

Собственник: фамилия (на английском)

surname

Без ограничений

Собственник: фамилия (на русском)

surname_rus

Без ограничений

Улица

street

Без ограничений

Номер

number

10 цифр

Имя

name

Русский алфавит

Фамилия

surname

Русский алфавит

Отчество

patronymic

Русский алфавит

Дата рождения

date_of_birth

дд.мм.гггг

Пол

sex

муж. или жен.

Место рождения

place_of_birth

Русский алфавит

Дата выдачи

date_from

дд.мм.гггг

Дата окончания срока действия

date_end

дд.мм.гггг

Категория

category

A, A1, B, B1, C, C1, D, D1, BE, CE, C1E, DE, D1E, M, Tm, Tb

Удостоверение выдано

issuer

Русский алфавит, цифры, тире

Место жительства (пункт 8)

place_of_issue

Русский алфавит, цифры, тире

Удостоверение выдано на английском

issuer_eng

Латинский алфавит, цифры, тире

Место жительства на английском (пункт 8)

place_of_issue_eng

Латинский алфавит, цифры, тире

Имя и фамилия на английском

name_patronymic_eng

Латинский алфавит

Фамилия на английском

surname_eng

Латинский алфавит

Место рождения на английском

place_of_birth_eng

Латинский алфавит

Категория A: начало

category_a_begin

дд.мм.гггг

Категория A: окончание

category_a_end

дд.мм.гггг

Категория B: начало

category_b_begin

дд.мм.гггг

Категория B: окончание

category_b_end

дд.мм.гггг

Категория C: начало

category_c_begin

дд.мм.гггг

Категория C: окончание

category_c_end

дд.мм.гггг

Категория D: начало

category_d_begin

дд.мм.гггг

Категория D: окончание

category_d_end

дд.мм.гггг

Категория BE: начало

category_be_begin

дд.мм.гггг

Категория BE: окончание

category_be_end

дд.мм.гггг

Категория CE: начало

category_ce_begin

дд.мм.гггг

Категория CE: окончание

category_ce_end

дд.мм.гггг

Категория DE: начало

category_de_begin

дд.мм.гггг

Категория DE: окончание

category_de_end

дд.мм.гггг

Категория Tm: начало

category_tm_begin

дд.мм.гггг

Категория Tm: окончание

category_tm_end

дд.мм.гггг

Категория Tb: начало

category_tb_begin

дд.мм.гггг

Категория Tb: окончание

category_tb_end

дд.мм.гггг

Штрих-код

barcode

Пока ничего не возвращаем

Номер

number

2 цифры, пробел, 2 цифры

Серия

series

6 цифр

Особые отметки

special_marks

Любой текст

Категория A: начало

category_a_begin

дд.мм.гггг

Категория A: окончание

category_a_end

дд.мм.гггг

Категория A1: начало

category_a1_begin

дд.мм.гггг

Категория A1: окончание

category_a1_end

дд.мм.гггг

Категория B: начало

category_b_begin

дд.мм.гггг

Категория B: окончание

category_b_end

дд.мм.гггг

Категория C: начало

category_c_begin

дд.мм.гггг

Категория C: окончание

category_c_end

дд.мм.гггг

Категория C1: начало

category_c1_begin

дд.мм.гггг

Категория C1: окончание

category_c1_end

дд.мм.гггг

Категория D: начало

category_d_begin

дд.мм.гггг

Категория D: окончание

category_d_end

дд.мм.гггг

Категория D1: начало

category_d1_begin

дд.мм.гггг

Категория D1: окончание

category_d1_end

дд.мм.гггг

Категория BE: начало

category_be_begin

дд.мм.гггг

Категория BE: окончание

category_be_end

дд.мм.гггг

Категория CE: начало

category_ce_begin

дд.мм.гггг

Категория CE: окончание

category_ce_end

дд.мм.гггг

Категория C1E: начало

category_c1e_begin

дд.мм.гггг

Категория C1E: окончание

category_c1e_end

дд.мм.гггг

Категория DE: начало

category_de_begin

дд.мм.гггг

Категория DE: окончание

category_de_end

дд.мм.гггг

Категория D1E: начало

category_d1e_begin

дд.мм.гггг

Категория D1E: окончание

category_d1e_end

дд.мм.гггг

Категория M: начало

category_m_begin

дд.мм.гггг

Категория M: окончание

category_m_end

дд.мм.гггг

Категория Tm: начало

category_tm_begin

дд.мм.гггг

Категория Tm: окончание

category_tm_end

дд.мм.гггг

Категория Tb: начало

category_tb_begin

дд.мм.гггг

Категория Tb: окончание

category_tb_end

дд.мм.гггг

Штрих-код

barcode

Пока ничего не возвращаем

Серия и номер

series_number

2 цифры, пробел, 2 цифры, пробел, 6 цифр

Особые отметки

special_marks

Любой текст

Номера страниц
«Извлечение данных»
API сервиса Dadata.ru
формате ФИАС
Верифицировать результаты извлечения данных в онлайн-режиме с помощью обученных людей
«Типы документов»
«Извлечение данных»
телеграм
hello@dbrain.io
demo.dbrain.io
телеграм
hello@dbrain.io
Google-таблице
юридических
первичных бухгалтерских документов
«Извлечение данных»
Извлечение данных
Верифицировать результаты извлечения данных в онлайн-режиме с помощью обученных людей

address

Адрес

address_gar

Адрес по ГАР

apartment

Квартира

area

Район в регионе

area_fias_id

ФИАС-код района в регионе

area_type

Тип района в регионе (сокращенный)

area_type_full

Тип района в регионе

area_with_type

Район в регионе с типом

beltway_distance

Расстояние от кольцевой в километрах

beltway_hit

Внутри кольцевой?

block

Корпус/строение

block_type

Тип корпуса/строения (сокращенный)

block_type_full

Тип корпуса/строения

capital_marker

Признак центра района или региона: 1 — центр района (Московская обл, Одинцовский р-н, г Одинцово) 2 — центр региона (Новосибирская обл, г Новосибирск) 3 — центр района и региона (Томская обл, г Томск) 4 — центральный район региона (Тюменская обл, Тюменский р-н) 0 — ничего из перечисленного (Московская обл, г Балашиха)

city_area

Административный округ (только для Москвы)

city_district

Адм. район города

city_district_fias_id

ФИАС-код адм. района города

city_district_kladr_id

Не заполняется

city_district_type

Тип адм. района города (сокращенный)

city_district_type_full

Тип адм. района города

city_district_with_type

Адм. район города с типом

city_fias_id

ФИАС-код города

city_type

Тип города (сокращенный)

city_type_full

Тип города

city_with_type

Город с типом

country

Страна

country_iso_code

ISO-код страны (двухсимвольный)

date

Дата регистрации/снятия с регистрации

divisions

Зарезервировано

entrance

Не заполняется

federal_district

Федеральный округ

fias_actuality_state

Признак актуальности адреса в ФИАС 0 — актуальный 1–50 — переименован 51 — переподчинен 99 — удален

fias_code

Зарезервировано

fias_id

ФИАС-код (он же код ГАР) адреса для России. Идентификатор OpenStreetMap для Беларуси, Казахстана и Узбекистана. Для остальных стран — идентификатор объекта в базе GeoNames.

fias_level

Уровень детализации, до которого адрес найден в ФИАС (ГАР): 0 — страна 1 — регион 3 — район 4 — город 5 — район города 6 — населенный пункт 7 — улица 8 — дом 9 — квартира или комната 65 — планировочная структура 75 — земельный участок -1 — иностранный или пустой

flat_area

Площадь квартиры

flat_cadnum

Кадастровый номер квартиры

flat_fias_id

ФИАС-код квартиры

flat_price

Рыночная стоимость квартиры

flat_type

Тип квартиры (сокращенный)

flat_type_full

Тип квартиры

floor

Не заполняется

geo_lat

Координаты: широта

geo_lon

Координаты: долгота

geoname_id

house

Дом

house_cadnum

Кадастровый номер дома

house_fias_id

ФИАС-код дома

house_type

Тип дома (сокращенный)

house_type_full

Тип дома

issuing_authority

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

kladr_area_code

КЛАДР-код района

kladr_city_code

КЛАДР-код города

kladr_code

КЛАДР-код адреса

kladr_house_code

КЛАДР-код дома

kladr_region_code

КЛАДР-код региона

kladr_settlement_code

КЛАДР-код населенного пункта

kladr_street_code

КЛАДР-код улицы

locality

Город

okato

Код ОКАТО

oktmo

Код ОКТМО

page_number

Номер разворота

postal_box

Абонентский ящик

postal_code

Индекс

qc

Не заполняется

qc_complete

Не заполняется

qc_geo

Код точности координат: 0 — точные координаты 1 — ближайший дом 2 — улица 3 — населенный пункт 4 — город 5 — координаты не определены

qc_house

Не заполняется

region

Регион

region_fias_id

ФИАС-код региона

region_iso_code

ISO-код региона

region_type

Тип региона (сокращенный)

region_type_full

Тип региона

region_with_type

Регион с типом

series_number

Серия и номер

settlement

Населенный пункт

settlement_fias_id

ФИАС-код нас. пункта

settlement_type

Тип населенного пункта (сокращенный)

settlement_type_full

Тип населенного пункта

settlement_with_type

Населенный пункт с типом

source

Не заполняется

square_meter_price

Рыночная стоимость м²

stead

номер земельного участка

stead_cadnum

Кадастровый номер земельного участка

stead_fias_id

ФИАС-код земельного участка

stead_type

«уч»

stead_type_full

«участок»

street

Улица

street_fias_id

ФИАС-код улицы

street_type

Тип улицы (сокращенный)

street_type_full

Тип улицы

street_without_type

Улица без типа

subdivision_code

Код подразделения

tax_office

Код ИФНС для физических лиц

tax_office_legal

Код ИФНС для организаций

timezone

Часовой пояс

unparsed_parts

Не заполняется

unrestricted_value

Адрес одной строкой (полный, с индексом)

2-НДФЛ

Лицевая сторона

2020

✅

🔲

ndfl2

Банковская карта

Лицевая сторона

✅

✅

bank_card

Водительское удостоверение

Лицевая сторона

2011

✅

✅

driver_license_2011_front

Водительское удостоверение

Обратная сторона

2011

✅

✅

driver_license_2011_back

Водительское удостоверение

Обратная сторона

2014

✅

✅

driver_license_2014_back

Военный билет

Лицевая сторона

✅

🔲

military_id

Заграничный паспорт

Главный разворот

2007

✅

✅

rus_passport_global_2007_main

Заграничный паспорт

Главный разворот

2014

✅

✅

rus_passport_global_2014_main

Извещение о ДТП

Лицевая сторона

2014

✅

✅

traffic_accident_notice_front

Извещение о ДТП

Лицевая сторонаПечатный образец

2014

✅

🔲

traffic_accident_notice_front_printed

Извещение о ДТП

Обратная сторона

2014

✅

✅

traffic_accident_notice_back

ИНН физлица

Лицевая сторона

1999

✅

✅

inn_person

ИНН юрлица

Лицевая сторона

✅

🔲

inn_organisation

Миграционная карта

Лицевая сторона

2003

✅

✅

migration_card

Московский полис ОМС

Лицевая сторона

1998

✅

✅

health_insurance_certficate_moscow_card_front

ОГРН

Лицевая сторона

2004

✅

✅

ogrn

ОГРНИП

Лицевая сторона

2004

✅

✅

ogrnip

Паспорт

Главный разворотПечатный образец

1997

✅

✅

passport_main

Паспорт

Главный разворотРукописный образец

1997

✅

✅

passport_main_handwritten

Паспорт

Пустой разворот

1997

✅

🔲

passport_blank_page

Паспорт

Первый разворот

1997

✅

🔲

passport_zero_page

Паспорт

Последний разворот

1997

✅

🔲

passport_last_rf

Паспорт

Воинская обязанность

1997

✅

🔲

passport_military

Паспорт

Семейное положение

1997

✅

🔲

passport_children

Паспорт

Место жительстваПечатный штамп

1997

✅

✅

passport_registration

Паспорт

Место жительстваРукописный штамп

1997

✅

✅

passport_registration_handwritten

Паспорт

Место жительстваШтамп о выписке

1997

✅

🔲

passport_registration_deregistered

Паспорт

Ранее выданные \nпаспорта

1997

✅

🔲

passport_previous_docs

Паспорт

Семейное положение

1997

✅

🔲

passport_marriage

Паспорт транспортного средства

Лицевая сторона

1993

✅

✅

pts_front

Паспорт транспортного средства

Обратная сторона

1993

✅

✅

pts_back

Патент на работу

Лицевая сторона

2015

✅

✅

rus_work_patent

Полис ОМС на бумажном носителе

Лицевая сторона

2011

✅

✅

health_insurance_certificate_paper_front

Полис ОМС на пластиковом носителе

Лицевая сторона

2011

✅

✅

health_insurance_certificate_card_front

Полис ОМС на пластиковом носителе

Обратная сторона

2011

✅

✅

health_insurance_certificate_card_back

Разрешение на временное проживание

Лицевая сторона

2002

✅

🔲

permit_of_residence

Сведения о трудовой деятельности СТД-Р

Лицевая сторона

2016

✅

✅

stdr

Свидетельство о заключении брака

Лицевая сторона

✅

✅

marriage_certificate

Свидетельство о расторжении брака

Лицевая сторона

✅

✅

divorce_certificate

Свидетельство о регистрации транспортного средства

Лицевая сторона

2008-2019

✅

✅

vehicle_registration_certificate_front

Свидетельство о регистрации транспортного средства

Обратная сторона

2008-2019

✅

✅

vehicle_registration_certificate_back

Свидетельство о рождении

Лицевая сторона

✅

✅

birth_certificate

Свидетельство о смерти

Лицевая сторона

✅

✅

death_certificate

Сертификат о регистрации права

Лицевая сторона

✅

🔲

registration_certificate

СНИЛС

Обратная сторона

1996

✅

🔲

snils_back

СНИЛС

Лицевая сторона

1996

✅

✅

snils_front

СНИЛС

Лицевая сторона

2003

✅

✅

insurance_plastic

Уведомление о регистрации в системе индивидуального (персонифицированного) учёта «АДИ-РЕГ»

Лицевая сторона

2019

✅

✅

adi_reg

Справка о временной регистрации

Лицевая сторона

✅

🔲

temporary_registration_certificate

Счёт-фактура

Страница 1

2012

✅

✅

rus_invoice

Электронный паспорт транспортного средства

Страница 1

2020

✅

✅

digital_vehicle_passport_page_1

Электронный паспорт транспортного средства

Страница 2

2020

✅

🔲

digital_vehicle_passport_page_2

Электронный паспорт транспортного средства

Страница 2

2020

✅

🔲

digital_vehicle_passport_page_2_blank

Электронный паспорт транспортного средства

Страница 3+

2020

✅

🔲

digital_vehicle_passport_page_3

Паспорт

Главный разворот

2013

✅

🔲

aze_passport_2013_main

Удостоверение личности

Лицевая сторона

2012

✅

🔲

aze_id_2012_front

Удостоверение личности

Обратная сторона

2012

✅

🔲

aze_id_2012_back

Удостоверение личности

Лицевая сторона

2018

✅

🔲

aze_id_2018_front

Удостоверение личности

Обратная сторона

2018

✅

🔲

aze_id_2018_back

Паспорт

Главный разворот

✅

🔲

arm_passport_main

Паспорт

Главный разворот

1996

✅

🔲

blr_passport_1996_main

Паспорт

Главный разворот

2014

✅

🔲

kz_passport_2014_main

Удостоверение личности

Лицевая сторона

1994

✅

✅

kz_id_1994_front

Удостоверение личности

Лицевая сторона

1994

✅

✅

kz_id_1994_back

Удостоверение личности

Лицевая сторона

2008

✅

✅

kz_id_2008_front

Удостоверение личности

Лицевая сторона

2008

✅

✅

kz_id_2008_back

Удостоверение личности

Лицевая сторона

2014

✅

✅

kz_id_2014_front

Удостоверение личности

Лицевая сторона

2014

✅

✅

kz_id_2014_back

Паспорт

Главный разворот

2004

✅

✅

kgz_passport_main

Паспорт

Главный разворот

2021

✅

🔲

kgz_passport_2021_main

Удостоверение личности

Лицевая сторона

2004

✅

✅

kgz_passport_plastic_red

Удостоверение личности

Лицевая сторона

2017

✅

✅

kgz_passport_plastic_blue

Паспорт

Главный разворот

2014

✅

🔲

mda_passport_2014_main

Документ неизвестной формы

✅

🔲

other

Не документ

Фото котика

✅

🔲

not_document

Пустая страница

Пустой разворот

✅

🔲

empty

Заграничный паспорт

Главный разворот

2010

✅

✅

tjk_passport_main

Паспорт

Главный разворот

2011

✅

✅

uzb_passport_2011_main

Паспорт

Главный разворот

2020

✅

🔲

uzb_passport_2020_main

Заграничный паспорт

Главный разворот

2015

✅

🔲

ukr_passport_global_2015_main

Паспорт

Главный разворот

1994

✅

✅

ukr_passport_main_1994_printed

Паспорт

Главный разворотПечатный образец

1994

✅

✅

ukr_passport_main_rus_1994_printed

Удостоверение личности

Лицевая сторона

2016

✅

✅

ukr_passport_2016_front

Удостоверение личности

Обратная сторона

2016

✅

✅

ukr_passport_2016_back

Водительское удостоверение

Лицевая сторона

✅

✅

driver_license_japan

Качество изображения

Оцениваем качество изображений. Это поможет вам решить: подойдёт ли изображение для бизнес-процесса или нужно запросить у клиента новое

Список проверок:

  1. Размер изображения по минимальной стороне.

  2. Вес изображения.

  3. Экспозиция (уровень освещённости изображения).

  4. Чёткость изображения.

Когда сервис заработает, вам понадобится эта информация:

Чтобы воспользоваться сервисом, отправьте POST-запрос на URL https://latest.dbrain.io/check/quality

В ответе на запрос к API:

  • min_side_pixel — integer. Число пикселей по минимальной стороне изображения. Рекомендуем отбраковывать изображения размером менее 640 пикселей.

  • weight — integer. Вес изображения в килобайтах. Рекомендуем отбраковывать изображения весом менее 100 Kb.

  • exposition — number от 0 до 2. Уровень освещённости изображения, где:

    • 1 — хорошо сбалансированное изображение: не слишком тёмное и не слишком светлое

    • 0 — очень тёмное, недоэкспонированное

    • 2 — очень светлое, переэкспонированное

    • Сервис также возвращает промежуточные значения. Мы рекомендуем отбраковывать изображения с exposition менее 0.5 и более 1.5

  • sharpness —  number от 0 до 1. Уровень чёткости изображения, где:

    • 1 — хорошее, чёткое изображение

    • 0 — максимально смазанное

    • Сервис также возвращает промежуточные значения. Рекомендуем отбраковывать изображения с sharpness менее 0.5

Проверка документов

Предоставляем набор сервисов для проверки изображений документов

Доступные проверки:

Подписи и печати

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

Чтобы воспользоваться сервисом, отправьте POST-запрос на URL https://latest.dbrain.io/check/sign_seal

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

Асинхронный запрос

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В ответ на запрос сервис вернёт в response body параметр task_id. Например:

"task_id": "96b8ccc950a70699927036842c624d7c"

Используйте этот task_id, чтобы получить результат работы сервиса в методе result:

curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды

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

return_crops — boolean

  • true — сервис вернёт в ответе API найденные области изображения с печатями и подписями

  • false (по умолчанию) —  cервис не вернёт найденные области изображения

Ответ приходит в объект images массива result

Тегирование запроса

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре task_tags удобный вам тег: task_tags=тэг

Тело запроса к API

Изображение

image — string ($binary)

Изображение обязательно для передачи в запросе. Сервис ожидает изображение документа в двоичном виде

В ответе на запрос к API:

task_id

string

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

error

string

Текстовое описание ошибки

task_tags

array[string]

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

success

boolean

Статус запроса

status_code

integer

HTTP-код статуса запроса

  • 200 — запрос выполнен успешно

result.images

array[$string]

result.doc_type

string

Всегда возвращается пустым. Оставлен для совместимости структуры ответа с другими методами API

result.confidence

number

Всегда равно 1. Оставлен для совместимости структуры ответа с другими методами API

result.page_num

integer

Номер страницы в оригинальном файле, на котором найдены подписи и печати

result.fields

array

Массив, содержащий найденные подписи и печати

result.fields.name

string

Тип и порядковый номер найденной области изображения. Для печатей это print_X, для подписей это signature_X, где X — порядковый номер

result.fields.value

string

Всегда возвращает «true». Оставлен для совместимости структуры ответа с другими методами API

result.fields.confidence

number

Уровень уверенности сервиса от 0 до 1 в корректности детекции печати или подписи

result.fields.page_num

integer

Номер страницы в оригинальном файле, на котором найдена печать или подпись

result.fields.coords

array[integer]

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

result.fields.crops

array[$string]

result.fields.is_found

boolean

  • true — поле найдено в документе

  • false — поле в документе не найдено

result.tables

array[array]]

Всегда возвращает пустой массив. Оставлен для совместимости структуры ответа с другими методами API

Операции с лицами

Предоставляем набор сервисов для работы с изображениям лиц

Признаки подделки

Анализируем файлы с изображениями и выдаём набор признаков подделки

Злоумышленники могут внести изменения в изображения документов. Сервис «Признаки подделки» ищет прямые и косвенные признаки того, что файл был умышленно модифицирован. Сервис не может гарантировать 100% защиты от злоумышленников, но позволяет автоматически отсеивать часть фрода и снижать нагрузку на операторов. Сервис запускает следующие проверки:

  1. Проверка соответствия вида документа ожидаемому.

  2. Определение паспортов, созданных в онлайн-генераторах документов.

  3. Поиск визуальных признаков модификации паспорта в цифровых редакторах. Например, подмена отдельных символов, или фотографии, или целых полей.

  4. Проверка метаданных изображения. По умолчанию метаданные присутствуют в любой фотографии или скане. Отсутствие метаданных — весомый повод отклонить документ. При наличии метаданных сервис проверяет их на внутреннюю непротиворечивость.

  5. Логические проверки полей паспорта. Проверяем наличие всех полей и фотографии: серию-номер, регион по ОКАТО, дату выдачи, дату рождения, код подразделения, пол человека, сверяем визуальные поля с машиночитаемой зоной.

  6. Проверяем источник изображения. Им может быть фотография, скан, скриншот или фотография экрана. Мы советуем отклонять изображения из последних двух источников, но в вашем бизнес-процессе также могут быть недопустимы сканы.

  7. Проверяем цветность изображения. Рекомендуем отклонять чёрно-белые изображения.

  8. Если вам заранее известны данные клиента (например, ФИО и дата рождения), сервис сверит их с написанными в документе с помощью функции сверки с внешним файлом.

Проверки 2, 3 и 5 работают только для главного разворота паспорта РФ

Чтобы воспользоваться сервисом, отправьте POST-запрос на URL

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

Вы можете использовать эти параметры при запросе к сервису определения подделок.

Асинхронный запрос

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В ответ на запрос сервис вернёт в response body параметр task_id. Например:

"task_id": "96b8ccc950a70699927036842c624d7c"

Используйте этот task_id, чтобы получить результаты классификации в методе result:

curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды.

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

return_crops — boolean

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

Если вам нужны найденные сервисом области изображения, укажите return_crops=true. Сервис вернёт в ответе API в параметре crop найденные области изображения с лицами.

Тегирование запроса

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре task_tags удобный вам тег: task_tags=тэг

Ожидаемый тип документа

doc_type — string

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

Тело запроса к API

Изображение

image — string ($binary)

Изображение обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

Сверка полей с внешним файлом

fraud/verify_fields — string ($binary)

С помощью этой функции можно быстро сравнить данные клиента, которые вам известны. Например, ФИО с текстом в самом документе. Для использования функции дополнительно укажите JSON-файл в параметре verify_fields.

Ниже показан пример JSON-файла для сравнения серии-номера и ФИО из паспорта РФ с данными из документа:

{
  "series_and_number": "1111 222222",
  "surname": "Иванов",
  "first_name": "Иван",
  "other_names": "Иванович"
}

Функция сверки возвращает результат в атрибут expected_text_missmatch.

В ответе на запрос к API:

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

  • error — string, текстовое описание ошибки

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

  • success — boolean, статус запроса

    • true — запрос выполнен успешно

    • false — запрос не выполнен

  • status_code — integer, HTTP-код статуса запроса

    • 200 — запрос выполнен успешно

  • result

    • doc_type_missmatch — boolean

      • true — найденный на изображении тип документа не соответствует ожидаемому

      • false — найденный на изображении тип документа соответствует ожидаемому

    • generated_document — boolean

      • true — документ создан в генераторе документов

      • false — документ не создан в генераторе документов

      • null — главный разворот Паспорта РФ не найден, поэтому проверка не запускалась

    • visual_modifications

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

      • result — boolean

        • true — в файл вносили изменения в графическом редакторе

        • false — в файл не вносили изменения в графическом редакторе

        • null — главный разворот Паспорта РФ не найден, поэтому проверка не запускалась

    • metadata — объект, содержащий информацию о метаданных

      • not_present — boolean

        • true — в файле отсутствуют метаданные

        • false — в файле найдены метаданные

      • inconsistency — boolean

        • true — в метаданных файла найдены противоречия

        • false — противоречия в метаданных файла не найдены

        • null — метаданные не найдены, проверка не запускалась

      • maker — string, производитель устройства

      • model — string, модель устройства

      • software — string, программное обеспечение, которое последним меняло изображение

      • date_time — объект, содержащий данные со всеми датами и временами, найденными в метаданных изображения:

        • modify_date — string, дата и время модификации изображения

        • сreate_date — string, дата и время создания изображения

        • date_time_original — string, оригинальные даты и время создания изображения

        • gps_date_stamp — string, дата и время снимка согласно GPS

      • gps_coords — объект, содержащий координаты согласно GPS метаданным:

        • latitude_ref — string, n или s — северная или южная широта, в которой сделан снимок 

        • latitude — string, широта снимка

        • longitude_ref — string, e или w — восточная или западная долгота, в которой сделан снимок

        • longitude — string, долгота снимка

        • altitude_ref — string, 1 или 0 — высота над уровнем моря или абсолютная

        • altitude — string, высота над уровнем моря

    • logical_inconsistency

      • result — boolean

        • true — в данных документа найдены противоречия

        • false — в данных документа противоречия не найдены

        • null — главный разворот Паспорта РФ не найден, поэтому проверка не запускалась

      • series_number_inconsistency — boolean

        • true — серия или номер паспорта на разных страницах не совпадают друг с другом

        • false — серия или номер паспорта на разных страницах совпадают

      • fake_series_okato — boolean

        • true — серия паспорта содержит несуществующий номер ОКАТО

        • false — серия паспорта содержит допустимый номер ОКАТО

      • series_mismatch_printing_year — boolean

        • true — серия паспорта выходит за допустимый диапазон отклонения от даты выдачи паспорта

        • false — серия паспорта находится в допустимом диапазоне относительно даты выдачи паспорта

      • issue_year_mismatch_date_of_birth — boolean

        • true — дата выдачи паспорта находится вне допустимого диапазона относительно даты рождения для действительного паспорта

        • false — дата выдачи паспорта находится в рамках допустимого диапазона относительно даты рождения для действительного паспорта

      • issue_code_mismatch_issue_authority — boolean

        • true — код подразделения не соответствует полю «Паспорт выдан»

        • false — код подразделения соответствует полю «Паспорт выдан»

      • fake_year_of_birth — boolean

        • true — год рождения находится вне допустимого диапазона относительно текущей даты

        • false — год рождения находится в допустимом диапазоне относительно текущей даты

      • photo_not_found — boolean

        • true — фотография не найдена

        • false — фотография найдена

      • photo_gender_mismatch — boolean

        • true — пол на фотографии не соответствует тексту в поле «Пол»

        • false — пол на фотографии соответствует тексту в поле «Пол»

      • mrz_presence_mismatch_issue_year — boolean

        • true — наличие или отсутствие машиночитаемой зоны паспорта невозможно при такой дате выдачи паспорта

        • false — наличие или отсутствие машиночитаемой зоны паспорта возможно при такой дате выдачи паспорта

      • visual_field_missing — boolean

        • true — одно или несколько обязательных полей паспорта не найдено

        • false — найдены все поля паспорта

      • visual_fields_mismatch_mrz — boolean

        • true — данные визуальных полей не совпадают с данными из машиночитаемой зоны

        • false — данные визуальных полей совпадают с данными из машиночитаемой зоны

    • image_origin — string, источник изображения, может принимать одно из четырёх значений:

      • photo — фотография

      • scan — скан

      • screenshot — скриншот

      • monitor_photo — фотография экрана

    • image_no_color — boolean

      • true — изображение чёрно-белое

      • false — изображение цветное

    • expected_text_mismatch — boolean

      • true — данные в документе не совпали с ожидаемыми

      • false — данные в документе совпали с ожидаемыми

      • null — проверка не запускалась, выводится в случае, если вы не подали JSON на вход.

Параметры fake и is_fake_visual в ответе метода recognize теперь не отражают результаты проверок на признаки подделки. Мы оставили их для совместимости API

Базы данных

Проверяем документы и физлиц по базам данных

Нам доступны:

  • ИНН физического лица

  • Действующие исполнительные производства из открытых источников главного управления по вопросам миграции МВД России

  • Архивные исполнительные производства из закрытых источников

  • Данные о розыске в открытых источниках ФССП

  • Данные о розыске из открытых источников ФСИН

  • Данные о наличии в списках экстремистов и террористов Росфинмониторинга

  • Данные о наличии в реестре залогов федеральной нотариальной палаты

  • Данные о розыске по данным открытых источников МВД

  • Данные о наличии в чёрных списках компаний в сфере каршеринга, проката, грузоперевозок, банков и МФО

  • Данные о наличии в эталонных базах данных человека с такой связкой ФИО, даты рождения и серии-номера паспорта

  • Данные о наличии серии-номера паспорта в списке недействительных паспортов МВД

  • Данные о наличии в реестре дисквалифицированных лиц

  • Данные о наличии судимости

  • Данные о наличии в списке публичных должностных лиц

Список проверок, которые мы можем оперативно добавить в API по запросу:

  • Проверка паспорта по списку недействительных паспортов

  • Проверка связки ФИО + ДР / паспорта и ИНН

  • Проверка ФЛ на банкрота

  • Проверка ФЛ на наличие в списке номинальных ГД

  • Проверка ФЛ на наличие статуса ИП

  • Проверка ФЛ на участие в ЮЛ

  • Проверка ФЛ на дисквалификацию

  • Проверка ФЛ на ограничение в участие ЮЛ

  • Проверка ФЛ на получение статуса самозанятого

  • Проверка ФЛ по арбитражным делам

  • Проверка ФЛ на долги за налоги

  • Подтверждение связки ФИО–телефон

  • Проверка совершеннолетия

  • Проверка на вероятность «дропа»

  • Наличие двойного гражданства

  • Верификация через Госуслуги

  • Подтверждение связки email–телефон, ФИО

  • Проверка тегов по телефону на наличие ключевых слов (жулик, мошенник, вор и пр.)

  • Проверка связи между ФЛ

  • Маркер проверки со стороны МВД

  • Проверка срока жизни / оценка активности телефонного номера

  • Проверка водительского удостоверения

  • Специализированные проверки по конфиденциальным данным

  • Получение СНИЛС, серии и номера паспорта по ФИО и ДР

  • Скоринг благонадёжности

  • Скоринг на мошенничество

Чтобы воспользоваться сервисом, отправьте POST-запрос на URL https://latest.dbrain.io/check/external

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

Асинхронный запрос

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В ответ на запрос сервис вернёт в response body параметр task_id. Например:

"task_id": "96b8ccc950a70699927036842c624d7c"

Используйте этот task_id, чтобы получить результат работы сервиса в методе result:

curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды.

Тегирование запроса

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре task_tags удобный вам тег: task_tags=тэг

Получение ИНН физического лица

get_inn — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле inn

Получение действующих исполнительных производств из открытых источников главного управления по вопросам миграции МВД России

get_current_enforcements — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле current_enforcements

Получение архивных исполнительных производств из закрытых источников

get_archive_fssp — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле archive_fssp

Получение данных о розыске человека в открытых источниках ФССП

is_fssp_wanted — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле is_fssp_wanted

Получение данных о розыске человека из открытых источников ФСИН

is_fsin_wanted — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле is_fsin_wanted

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

is_terrorist — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле is_terrorist

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

is_in_pledge_registry — boolean

  • true — получить данные

  • false (по умолчанию) — не данные

Ответ приходит в поле is_in_pledge_registry

Получение данных о розыске человека по данным открытых источников МВД

is_mvd_wanted — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле is_mvd_wanted

Получение данных о наличии человека в чёрных списках компаний в сфере каршеринга, проката, грузоперевозок, банков и МФО

is_in_black_list — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные о наличии в чёрных списках

Ответ приходит в поле is_in_black_list

Получение данных о наличии в эталонных базах данных человека с такой связкой ФИО, даты рождения и серии-номера паспорта

is_fio_birthday_passport_verified — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле is_fio_birthday_passport_verified

Получение данных о наличии серии-номера паспорта в списке недействительных паспортов МВД

is_passport_expired — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле is_passport_expired

Получение данных о наличии человека в реестре дисквалифицированных лиц

is_in_disqualified_list — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле is_in_disqualified_list

Получение данных о наличии судимости

is_criminal — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле is_criminal

Получение данных о наличии человека в списке публичных должностных лиц

is_in_pdl_list — boolean

  • true — получить данные

  • false (по умолчанию) — не получать данные

Ответ приходит в поле is_in_pdl_list

Тело запроса к API

Изображение

image — string ($binary)

В ответе на запрос к API:

task_id

string

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

error

string

Текстовое описание ошибки

task_tags

array[string]

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

success

boolean

Статус запроса

status_code

integer

HTTP-код статуса запроса

  • 200 — запрос выполнен успешно

inn

integer

  • 123456789000 — Найден ИНН

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

current_enforcements

integer

  • 1234 — Найден (в рублях)

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

archive_fssp

integer

  • 1234 — Найден (в рублях)

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_fssp_wanted

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_fsin_wanted

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_terrorist

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_in_pledge_registry

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_mvd_wanted

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_in_black_list

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_fio_birthday_passport_verified

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_passport_expired

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_in_disqualified_list

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_criminal

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

is_in_pdl_list

integer

  • 1 — Найден

  • 0 — Не найден

  • -1 — Источник не ответил

  • -2 — Проверка не оплачена

  • -3 — Не удалось извлечь нужные поля из документа

Базовый OCR

Возвращаем весь найденный текст из любых изображений документов

«Базовый OCR» подойдёт для случаев, когда вам не нужны структурированные данные из документа, а нужно просто извлечь весь текст. Сервис поможет, когда нужно организовать поиск по большому массиву данных. Например, по книге.

Чтобы воспользоваться сервисом, отправьте POST-запрос на URL https://latest.dbrain.io/basic_ocr

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

Асинхронный запрос

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В таком случае в ответ на запрос сервис вернёт в response body параметр task_id. Например:

Используйте этот task_id, чтобы получить результаты классификации в методе result:

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды.

Возврат изображений

return_crops — boolean

  • Поведение по умолчанию: false — сервис не возвращает изображения найденных слов

  • true — сервис возвращает изображения найденных слов

Тегирование запроса

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом. Для использования функции, укажите в параметре task_tags удобный вам тег: task_tags=тэг

Движок извлечения текста

engine — string

  • Поведение по умолчанию: i — основной движок извлечения текста, работает в локальных версиях сервиса. Мы не рекомендуем менять этот параметр без прямого указания от нашей службы поддержки.

  • g — второй альтернативный движок извлечения текста, работает только в облачной версии решения.

Рукописный текст

handwritten — boolean

  • Поведение по умолчанию: false — сервис ожидает документ, в котором содержится только печатный текст

  • true — сервис ожидает документ, в котором содержатся рукописные символы

Язык извлечения текста

language — string

  • Поведение по умолчанию: rus — русский язык.

  • eng — английский язык.

  • any — смесь русского, английского и других языков.

Тело запроса к API

Изображение

image — string ($binary)

Обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

В ответе на запрос API:

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

  • error — string, текстовое описание ошибки

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

  • success — boolean, статус выполнения запроса

  • result — массив, содержит смысловую часть ответа

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

      • text — массив, содержит весь найденный на странице текст

        • text — весь текст на странице

        • confidence — уровень уверенности алгоритма в корректности извлечения всего текста в блоке. Считается как усреднённый уровень уверенности по словам

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

      • blocks — массив, который содержит найденные на странице блоки текста — например абзацы

        • block — текст блока

        • confidence — уровень уверенности алгоритма в корректности извлечения всего текста в блоке, считается как усреднённый уровень уверенности по словам

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

      • words — массив, содержит найденные на странице слова

        • word — текст слова

        • confidence — уровень уверенности алгоритма в корректности извлечения текста слова

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

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

        • letter — текст буквы

        • confidence — уровень уверенности алгоритма в корректности извлечения текста буквы

Селфи-чек

Сравниваем лицо человека с лицом на фотографии в документе в рамках одного изображения

Сервис предназначен для обработки селфи с документами — фотографии, где видно и лицо человека, и документ, который он держит в руках. Дополнительно сервис проверяет, что человек предоставил именно главный разворот паспорта РФ, а также сообщает дополнительную информацию о положении головы, глазах и рте.

Параметры запроса к сервису

Асинхронный запрос

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В ответ на запрос сервис вернёт в response body параметр task_id. Например:

Используйте этот task_id, чтобы получить результаты классификации в методе result:

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды.

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

return_crops — boolean

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

Если вам нужны найденные сервисом области изображения, укажите return_crops=true. Сервис вернёт в ответе API в параметре crop найденные области изображения с лицами.

Тегирование запроса

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре task_tags удобный вам тег: task_tags=тэг

Тело запроса к API

Изображение

image — string ($binary)

Изображение обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

В ответе на запрос API:

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

  • error — string, текстовое описание ошибки

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

  • success — boolean, статус запроса

    • true — запрос выполнен успешно

    • false — запрос не выполнен

  • status_code — integer, HTTP-код статуса запроса

    • 200 — запрос выполнен успешно

  • items — массив, содержащий смысловую часть ответа сервиса

    • distance — number от 0 до 1, чем больше число, тем сильнее различаются лица

    • same_face — boolean, бинарный признак схожести лиц на двух изображениях

      • true — если distance меньше или равен 0.6

      • false — если distance больше 0.6

    • warnings — массив, описывающий предупреждения и ошибки, возможные значения:

      • More than two face detected — найдено более 2 лиц

      • No face detected on image — лицо вне документа не найдено

      • No face photo detected in document — фотография с лицом в документе не найдена

      • No document detected on image — на изображении не найден документ

      • Document type doesn't match requested — найденный тип документа не соответствует главному развороту паспорта РФ

      • Head yaw is too high — поворот головы относительно вертикальной оси превышает ±5 градусов (здесь и далее ISO/IEC 19794-5)

      • Head pitch is too high — наклон головы вверх или вниз относительно горизонтальной оси, проведённой через уши, превышает ±5 градусов

      • Head roll is too high — наклон головы налево или направо относительно горизонтальной оси, проведённой через нос, превышает ±5 градусов

      • Left eye closed — левый глаз закрыт

      • Left eye occluded — левый глаз заслонён более, чем на 5%

      • Right eye closed — правый глаз закрыт

      • Right eye occluded — правый глаз заслонён более, чем на 5%

      • Mouth occluded — рот заслонён более, чем на 5%

    • faces и faces_on_document — объекты, содержащие информацию о лице человека и о лице с фотографии в документе соответственно:

      • confidence — number от 0 до 1, уровень уверенности модели, что на изображении найдено именно лицо, а не что-то другое

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

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

        • 0 — поворот не требуется

        • 1 — требуется поворот на 90 градусов

        • 2 — требуется поворот на 180 градусов

        • 3 — требуется поворот на 270 градусов

      • head — объект, содержащий оценку положения головы в трёх измерениях

        • pitch — number от -180 до 180: оценка наклона головы вверх или вниз относительно горизонтальной оси, проведённой через уши, где 0 — нет наклона.

        • yaw — number от -180 до 180: оценка поворота головы налево или направо относительно вертикальной оси, где 0 — нет поворота.

        • roll — number от -180 до 180: оценка наклона головы налево или направо относительно горизонтальной оси, проведённой через нос, где 0 — нет наклона.

      • left_eye — объект, содержащий оценку левого глаза

        • occluded — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён

        • open — true/false, где true — глаз открыт

      • right_eye — объект, содержащий оценку правого глаза

        • occluded — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён

        • open — true/false, где true — глаз открыт

      • mouth — объект, содержащий оценку рта

        • occluded — number от 0 до 1, где 0 — рот ничем не закрыт, а 1 — рот полностью закрыт

    • document — объект, содержащие информацию о документе на изображении, из которого сервис взял фотографию для сравнения

      • confidence — number от 0 до 1, уровень уверенности модели, что на изображении найдено именно лицо, а не что-то другое

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

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

        • 0 — поворот не требуется

        • 1 — требуется поворот на 90 градусов

        • 2 — требуется поворот на 180 градусов

        • 3 — требуется поворот на 270 градусов

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

Сравнение лиц

Сравниваем лица на двух изображениях и даём оценку их схожести

Если на изображении несколько лиц, сервис выберет лицо, которое занимает большую площадь кадра, так что фото с друзьями и котами не возбраняются. Помимо сравнения лиц сервис сообщает дополнительную информацию о положении головы, глазах и рте.

Параметры запроса к сервису

Асинхронный запрос

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В ответ на запрос сервис вернёт в response body параметр task_id. Например:

Используйте этот task_id, чтобы получить результаты классификации в методе result:

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды.

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

return_crops — boolean

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

Если вам нужны найденные сервисом области изображения, укажите return_crops=true. Сервис вернёт в ответе API в параметре crop найденные области изображения с лицами.

Тегирование запроса

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре task_tags удобный вам тег: task_tags=тэг

Тело запроса к API

Сервис ожидает два изображения в атрибутах image1 и image2.

Изображение

image1 — string ($binary)

image2 — string ($binary)

Оба изображения обязательны для передачи в запросе. Сервис ожидает изображение в двоичном виде.

В ответе на запрос API:

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

  • error — string, текстовое описание ошибки

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

  • success — boolean, статус запроса

    • true — запрос выполнен успешно

    • false — запрос не выполнен

  • status_code — integer, HTTP-код статуса запроса

    • 200 — запрос выполнен успешно

  • items — массив, содержащий смысловую часть ответа сервиса

    • distance — number от 0 до 1, чем больше число, тем сильнее различаются лица

    • warnings — массив, описывающий предупреждения и ошибки, возможные значения:

      • More than one face detected on image 1 — найдено более 1 лица на изображении 1

      • More than one face detected on image 2 — найдено более 1 лица на изображении 2

      • No face detected on image1 — лицо не найдено на изображении 1

      • No face detected on image2 — лицо не найдено на изображении 2

      • Head yaw is too high on image 1 — поворот головы относительно вертикальной оси превышает ±5 градусов (здесь и далее ISO/IEC 19794-5) на изображении 1

      • Head yaw is too high on image 2 — поворот головы относительно вертикальной оси превышает ±5 градусов (здесь и далее ISO/IEC 19794-5) на изображении 2

      • Head pitch is too high on image 1 — наклон головы вверх или вниз относительно горизонтальной оси, проведённой через уши превышает ±5 градусов на изображении 1

      • Head pitch is too high on image 2 — наклон головы вверх или вниз относительно горизонтальной оси, проведённой через уши, превышает ±5 градусов на изображении 2

      • Head roll is too high on image 1 — наклон головы налево или направо относительно горизонтальной оси, проведённой через нос, превышает ±5 градусов на изображении 1

      • Head roll is too high on image 2 — наклон головы налево или направо относительно горизонтальной оси, проведённой через нос, превышает ±5 градусов на изображении 2

      • Left eye closed on image 1 — левый глаз закрыт на изображении 1

      • Left eye closed on image 2 — левый глаз закрыт на изображении 2

      • Left eye occluded on image 1 — левый глаз заслонён более, чем на 5% на изображении 1

      • Left eye occluded on image 2 — левый глаз заслонён более, чем на 5% на изображении 2

      • Right eye closed on image 1 — правый глаз закрыт на изображении 1

      • Right eye closed on image 2 — правый глаз закрыт на изображении 2

      • Right eye occluded on image 1 — правый глаз заслонён более, чем на 5% на изображении 1

      • Right eye occluded on image 2 — правый глаз заслонён более, чем на 5% на изображении 2

      • Mouth occluded on image 1 — рот заслонён более, чем на 5% на изображении 1

      • Mouth occluded on image 2 — рот заслонён более, чем на 5% на изображении 2

    • same_face — boolean, бинарный признак схожести лиц на двух изображениях

      • true — если distance меньше или равен 0.4

      • false — если distance больше 0.4

    • faces1 и faces2 — объекты, содержащие информацию о лице с изображения 1 и изображения 2 соответственно:

      • confidence — number от 0 до 1, уровень уверенности модели, что на изображении найдено именно лицо, а не что-то другое

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

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

        • 0 — поворот не требуется

        • 1 — требуется поворот на 90 градусов

        • 2 — требуется поворот на 180 градусов

        • 3 — требуется поворот на 270 градусов

      • head — объект, содержащий оценку положения головы в трёх измерениях

        • pitch — number от -180 до 180: оценка наклона головы вверх или вниз относительно горизонтальной оси, проведённой через уши, где 0 — нет наклона.

        • yaw — number от -180 до 180: оценка поворота головы налево или направо относительно вертикальной оси, где 0 — нет поворота.

        • roll — number от -180 до 180: оценка наклона головы налево или направо относительно горизонтальной оси, проведённой через нос, где 0 — нет наклона.

      • left_eye — объект, содержащий оценку левого глаза

        • occluded — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён

        • open — true/false, где true — глаз открыт

      • right_eye — объект, содержащий оценку правого глаза

        • occluded — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён

        • open — true/false, где true — глаз открыт

      • mouth — объект, содержащий оценку рта

        • occluded — number от 0 до 1, где 0 — рот ничем не закрыт, а 1 — рот полностью закрыт

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

Liveness

Оцениваем фотографию на «живость», чтобы убедиться, что перед нами фото человека, а не снимок экрана или другой фотографии

Чтобы воспользоваться сервисом, отправьте POST-запрос на URL

Параметры запроса к сервису

Асинхронный запрос

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В ответ на запрос сервис вернёт в response body параметр task_id. Например:

Используйте этот task_id, чтобы получить результаты классификации в методе result:

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды.

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

return_crops — boolean

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

Если вам нужны найденные сервисом области изображения, укажите return_crops=true. Сервис вернёт в ответе API в параметре crop найденные области изображения с лицами.

Тегирование запроса

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции, укажите в параметре task_tags удобный вам тег: task_tags=тэг

Тело запроса к API

Изображение

image — string ($binary)

Изображение обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде.

В ответе на запрос API:

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

  • error — string, текстовое описание ошибки

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

  • success — boolean, статус запроса

    • true — запрос выполнен успешно

    • false — запрос не выполнен

  • status_code — integer, HTTP-код статуса запроса

    • 200 — запрос выполнен успешно

  • result — объект, содержащий смысловую часть ответа сервиса

    • liveness_score — number от 0 до 1, чем больше число, тем выше витальность (живость) лица на изображении

    • warnings — массив, описывающий предупреждения и ошибки, возможные значения:

      • More than two face detected — найдено более 2 лиц

      • No face detected on image — лицо не найдено

      • Head yaw is too high — поворот головы относительно вертикальной оси превышает ±5 градусов (здесь и далее ISO/IEC 19794-5)

      • Head pitch is too high — наклон головы вверх или вниз относительно горизонтальной оси, проведённой через уши, превышает ±5 градусов

      • Head roll is too high — наклон головы налево или направо относительно горизонтальной оси, проведённой через нос, превышает ±5 градусов

      • Left eye closed — левый глаз закрыт

      • Left eye occluded — левый глаз заслонён более, чем на 5%

      • Right eye closed — правый глаз закрыт

      • Right eye occluded — правый глаз заслонён более, чем на 5%

      • Mouth occluded — рот заслонён более, чем на 5%

    • face — объекты, содержащие информацию о лице человека:

      • confidence — number от 0 до 1, уровень уверенности модели, что на изображении найдено именно лицо, а не что-то другое

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

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

        • 0 — поворот не требуется

        • 1 — требуется поворот на 90 градусов

        • 2 — требуется поворот на 180 градусов

        • 3 — требуется поворот на 270 градусов

      • head — объект, содержащий оценку положения головы в трёх измерениях

        • pitch — number от -180 до 180: оценка наклона головы вверх или вниз относительно горизонтальной оси, проведённой через уши, где 0 — нет наклона.

        • yaw — number от -180 до 180: оценка поворота головы налево или направо относительно вертикальной оси, где 0 — нет поворота.

        • roll — number от -180 до 180: оценка наклона головы налево или направо относительно горизонтальной оси, проведённой через нос, где 0 — нет наклона.

      • left_eye — объект, содержащий оценку левого глаза

        • occluded — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён

        • open — true/false, где true — глаз открыт

      • right_eye — объект, содержащий оценку правого глаза

        • occluded — number от 0 до 1, где 0 — глаз ничем не заслонён, а 1 — глаз полностью заслонён

        • open — true/false, где true — глаз открыт

      • mouth — объект, содержащий оценку рта

        • occluded — number от 0 до 1, где 0 — рот ничем не закрыт, а 1 — рот полностью закрыт

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

Ручная верификация

Вручную проверяем результаты извлечения текста в онлайн-режиме

Платформа не обрабатывает персональные данные: исполнители получают перемешанный набор полей из разных документов

Этапы работы HITL

  1. Исполнитель получает пару «вырезанное поле + оцифрованный текст» и оценивает корректность результата с помощью кнопок «Да»/«Нет». Каждое поле проходит через нескольких исполнителей. Оцифрованный текст считается корректным, только если все ответы сошлись.

  2. Если хотя бы один из исполнителей выбирает «Нет», вырезанное поле отправляется на ручной ввод. Исполнитель вводит текст, используя виджеты и словари. Например, дату нужно выбрать в календаре, а модель машины строго соответствует марке, выбранной в предыдущем поле. Алгоритм будет запрашивать новые ответы по полю у разных исполнителей, пока не будет достигнут консенсус.

Локальная установка

Описание вариантов локального использования сервисов

Установка на сервер

Написали инструкцию, чтобы вы смогли развернуть решение Dbrain в собственном закрытом IT-контуре

Функциональность локальной версии

Локальная версия в отличие от облачной имеет ограниченную функциональность.

Поддерживаются:

    • Россия: паспорт, главный разворот, печатный образец — passport_main

    • Россия: паспорт, главный разворот, рукописный образец — passport_main_handwritten

    • Россия: паспорт, место жительства, печатный штамп — passport_registration

    • Россия: паспорт, место жительства, рукописный штамп — passport_registration_handwritten

    • Россия: паспорт, место жительства, штамп о снятии с регистрации — passport_registration_deregistered

    • Россия: Водительское удостоверение, лицевая сторона — driver_license_2011_front

    • Россия: Водительское удостоверение, обратная сторона, образец 2011 года — driver_license_2011_back

    • Россия: Водительское удостоверение, обратная сторона, образец 2014 года — driver_license_2014_back

    • Россия: СТС, лицевая сторона — vehicle_registration_certificate_front

    • Россия: СТС, лицевая сторона — vehicle_registration_certificate_back

    • Россия: СНИЛС образца 1996 года — snils_front

    • Россия: СНИЛС образца 2003 года — insurance_plastic

    • Россия: СНИЛС образца 2019 года — adi_reg

    • Россия: ИНН физлица — inn_person

    • Россия: свидетельство о рождении — birth_certificate

    • Россия: свидетельство о браке — marriage_certificate

    • Россия: ПТС, лицевая сторона — pts_front

    • Россия: ПТС, обратная сторона — pts_back

    • Банковская карта — bank_card

Требования к аппаратной части

Сценарии использования:

Оценили скорость распознавания на изображениях этих документов в формате JPEG:

  • Паспорт РФ — главный разворот

  • Паспорт РФ — прописка с печатными и рукописными штампами

  • Водительское удостоверение — лицевая сторона

  • Водительское удостоверение — обратная сторона 2011 и 2014 годов

  • СТС — лицевая и обратная стороны

  • СНИЛС — образец 1996 года

1. Минимальный

  • Обработка одного документа: 10 секунд

  • Обработка комплекта из 100 документов: 100 секунд (1 RPS)

  • Виртуальная машина

  • Процессор: 16 ядер, 2.0 GHz, ориентир: Intel Skylake Xeon E3 v5

  • Оперативная память: 24 Gb

2. Дешёвый

  • Обработка одного документа: 5 секунд

  • Обработка комплекта из 100 документов: 66 секунд (1.5 RPS)

  • Виртуальная машина

  • Видеокарта: Nvidia Tesla T4

  • Процессор: 20 ядер, 2.0 GHz, ориентир: Intel Skylake Xeon E3 v5

  • Оперативная память: 32 Gb

3. Стандартный

  • Обработка одного документа: 3 секунды

  • Обработка комплекта из 100 документов: 50 секунд (2 RPS)

  • Физический сервер

  • Видеокарта: Nvidia Tesla T4

  • Оперативная память: 64 Gb

  • SSD 512 Gb

4. Корпоративный

  • Обработка одного документа: 3 секунды

  • Обработка комплекта из 100 документов: 15 секунд (6.5 RPS)

Балансировщик (2 сервера):

  • Процессор: 2 ядра

  • Оперативная память: 2 Gb

База данных (PostgreSQL, 2 сервера):

  • Процессор: 8 ядер

  • Оперативная память: 64 Gb

  • Накопитель: 512 Gb NVMe (допустимо использование SSD)

Сервисы (2 сервера):

  • Видеокарта (x3): Nvidia Tesla T4

  • Оперативная память: 256 Gb

  • Накопитель: 512 Gb SSD

Выше перечислены аппаратные требования для продуктивной эксплуатации. Dbrain запускается и на слабых конфигурациях. Например, на ноутбуке Core i5-8250U 1.6 GHz / 8 Gb ОЗУ / 250 Gb SSD. Но работоспособность на таких слабых конфигурациях не гарантируется.

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

  1. Современная операционная система на базе Linux (выпуска 2018 года или новее)

  2. Система менеджмента контейнеров Docker

  3. docker-compose

  4. Для использования мощностей видеокарт нужны:

    1. nvidia-docker

    2. Драйвера Nvidia последней доступной версии

    3. CUDA версии не ниже 11.1

  5. Доступ в интернет для проверки лицензии:

    • Адрес: https://license.ml.dbrain.io/check/v2

    • IP: динамический

    • Порт: 443

    • Протокол: TCP

    • Запрос: POST

Запуск локальной версии Dbrain

  1. Создайте файл с названием docker-compose.yml

  2. Скопируйте конфигурацию ниже и вставьте его в docker-compose.yml:

  1. Если на вашем сервере доступна видеокарта, допишите в раздел environment файла строку ALLOW_GPU: true

  2. Если вы используете прокси для доступа к сервису лицензий, укажите его в параметре LICENSE_TOKEN раздела environment

  3. Сохраните изменения в файле docker-compose.yml

  4. Залогиньтесь через докер для доступа в наш репозиторий. Для этого выполните команду:

  1. Введите логин r@b@t$docr+docr и пароль p2JDaaFKIDEoddf8mho7

  2. Проверьте, что сервис лицензий доступен. Для этого выполните команду:

  1. Если ответ 405 — всё хорошо. В противном случае вам нужно открыть нашему сервису доступ до этого адреса.

  2. Запустите сервис следующей командой:

  1. Подождите, когда сервис полностью развернётся. В логах появится надпись вида INFO: Uvicorn running on http://0.0.0.0:80

Сервис развёрнут локально. Теперь вы можете обращаться к нему по API. Примеры корректных запросов можно получить в свагере, он доступен по адресу localhost:8080/docs

Локально доступные методы:

  • Классификация документов: /pipelines/run/classify

  • Проверка документов на признаки подделки: /pipelines/run/fraud

  • Базовый OCR: /pipelines/run/fulltext

  • Извлечение данных из документов: /pipelines/run/recognize

Бухгалтерская первичка

Извлекаем данные из первичных документов

Классифицируем и распознаём 16 видов официальных документов, которые используются в бухгалтерском учете и налогообложении. Дальше — больше.

Типы первичных документов, с которыми работает сервис

Перечень извлекаемых полей

Как начать работать с сервисом извлечения данных

Подготовьте изображение документа для теста.

Через веб-демо
  1. Введите ключ лицензии в поле «Токен» и нажмите «Применить»

  2. Выберите «Бухгалтерская первичка»

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

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

  5. Нажмите кнопку «Распознать»

Через терминал
  • token — ваш ключ лицензии

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

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

Через Swagger
  • Подготовьте ключ лицензии

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

  • Прокрутите вниз до раздела pipelines/run/rus_invoices, нажмите на него

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

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

  • Нажмите на кнопку Choose file пункта image

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

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

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

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

Через Python

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

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

Через 1С

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

Асинхронный запрос

async — boolean

Поведение по умолчанию: async=false — сервис обрабатывает запросы синхронно. При отправке запроса вы получите ответ только после окончательного завершения обработки запроса сервисом.

Если вам нужен асинхронный режим, укажите в запросе async=true. В ответ на запрос сервис вернёт в response body параметр task_id. Например:

Используйте этот task_id, чтобы получить результат работы сервиса в методе result:

Не забудьте указать в параметре token ваш ключ лицензии. Рекомендуем запрашивать метод result в цикле с периодом 1-2 секунды.

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

return_crops — boolean

  • true — сервис вернёт в ответе API найденные области изображения с документами

  • false (по умолчанию) —  cервис не вернёт найденные области изображения

Ответ приходит в объект images массива result

Тегирование запроса

task_tags — string array

Поведение по умолчанию: параметр не используется.

Функция тегирует запросы по вашему усмотрению. Это упрощает отслеживание пакетов документов, связанных с конкретным клиентом-физлицом. Для использования функции укажите в параметре task_tags удобный вам тег: task_tags=тэг

Нормализация адресов по ФИАС

normalization_fias — boolean

  • false (по умолчанию) — сервис не нормализует адреса

Если сервис Dbrain развёрнут локально, он может обращаться за нормализацией адреса к локальному сервису Dadata. Для этого укажите адрес в параметре URL_DADATA в .env

Верификация результатов извлечения полей

verification — string

  • disabled (по умолчанию) — сервис сразу возвращает результаты работы алгоритмов

Тело запроса к API

Изображение

image — string ($binary)

Изображение обязательно для передачи в запросе. Сервис ожидает изображение документа в двоичном виде

В ответе на запрос к API:

Рассказываем про сервис, чтобы вы понимали его возможности. Воспользоваться им пока что нельзя. Если он вам нужен, напишите нам в или на

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

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

— анализируем файлы с изображениями и выдаем набор признаков подделки.

— оцениваем качество изображений.

— проверяем наличие и расположение подписей и печатей на документах.

— проверяем документы и физлиц по базам данных.

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

400, 403, 500 и т.д. — расшифрованы в «»

с MIME-типом JPEG в формате base64 — найденные области изображения с печатями и подписями. Возвращается, если в запросе передать return_crops=true

Массив с MIME-типом JPEG в формате base64 — изображения найденных областей изображения с печатью или подписью. Возвращается, если в запросе передать return_crops=true

— сравниваем лица на двух изображениях и даём оценку их схожести.

— сравниваем лицо человека с лицом на фотографии в документе в рамках одного изображения.

— определяем наличие на изображении человека, а не фотографии человека.

Поведение по умолчанию: doc_type=passport_main — сервис ожидает изображение с главным разворотом паспорта РФ. Другие допустимые варианты doc_type перечислены в разделе . Для проверки фотографии лица передайте тип not_document.

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

Для составления своего JSON-файла скопируйте наименования полей из

400, 403, 500 и т.д. — расшифрованы в «»

input_image — $string, с MIME-типом JPEG в формате base64 — оригинал изображения, возвращается, если в запросе передать return_crops=true

Если вам не хватает какой-то проверки, скорее всего, она у нас уже есть. Напишите нам в или на , и мы добавим её в API

Изображение обязательно для передачи в запросе. Сервис ожидает изображение в двоичном виде. Рекомендуем брать его из ответа сервиса .

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

400, 403, 500 и т.д. — расшифрованы в «»

Если вам нужны структурированные данные из документа, воспользуйтесь сервисом «».

Перед началом работы с сервисами советуем заглянуть в раздел «». В нём перечислили форматы файлов, которые поддерживают сервисы, описали общие для всех сервисов параметры API и расшифровали коды ошибок.

status_code — integer, дублирует

image — с MIME-типом JPEG в формате base64 — изображение слова. Возвращается, если в запросе передать return_crops=true

input_images — с MIME-типом JPEG в формате base64 — оригинальное изображение. Возвращается, если в запросе передать return_crops=true

Чтобы воспользоваться сервисом, отправьте POST-запрос на URL

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

400, 403, 500 и т.д. — расшифрованы в «»

crop — $string, с MIME-типом JPEG в формате base64, область изображения с найденным лицом, возвращается, если в запросе передать return_crops=true

crop — $string, с MIME-типом JPEG в формате base64, область изображения с найденным лицом, возвращается, если в запросе передать return_crops=true

type — string, тип найденного на изображении документа согласно

input_image — $string, с MIME-типом JPEG в формате base64 — оригинал изображения номер 1, возвращается, если в запросе передать return_crops=true

Сервис может подтвердить или опровергнуть факт: вот этот документ принадлежит вот этому человеку. На одном изображении должно быть лицо человека, а на втором — документ, удостоверяющий его личность. Документ мы рекомендуем брать из ответа сервиса «». Сервис сравнивает лицо человека с фотографией из документа и даёт оценку их схожести. Можно ли использовать сервис в других бизнес-сценариях? Пожалуйста.

Чтобы воспользоваться сервисом, отправьте POST-запрос на URL

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

400, 403, 500 и т.д. — расшифрованы в «»

crop — $string, с MIME-типом JPEG в формате base64, область изображения с найденным лицом, возвращается, если в запросе передать return_crops=true

input_image1 — $string, с MIME-типом JPEG в формате base64 — оригинал изображения номер 1, возвращается, если в запросе передать return_crops=true

input_image2 — $string, с MIME-типом JPEG в формате base64 — оригинал изображения номер 2, возвращается, если в запросе передать return_crops=true

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

400, 403, 500 и т.д. — расшифрованы в «»

input_image — $string, с MIME-типом JPEG в формате base64 — оригинал изображения номер 1, возвращается, если в запросе передать return_crops=true

crop — $string, с MIME-типом JPEG в формате base64, область изображения с найденным лицом, возвращается, если в запросе передать return_crops=true

Human-in-the-loop (человек-в-контуре) — дополнительный модуль верификации результатов распознавания и ручного ввода сложных случаев. Модуль доступен как в облачной, так и в локальной версии Dbrain. В качестве платформы разметки используется . На платформе зарегистрированы более 1 млн исполнителей, ежемесячно активны онлайн . Большое число исполнителей позволяет модулю HITL обрабатывать запросы в режиме online в любое время суток.

Модуль доступен только в сервисе . Чтобы воспользоваться ручной верификацией извлечённых данных, передайте в запросе параметр with_hitl=true. Формат ответа сервиса «Извлечение данных» останется без изменений. Мы рекомендуем использовать модуль ручной верификации в асинхронном режиме сервиса «Извлечение данных». Асинхронный режим описан в .

Модуль «Ручная верификация» оплачивается отдельно. Чтобы активировать его, напишите в службу поддержки в или на

Dbrain — серверное решение. Если хотите его протестировать, . Мы не используем долговременные хранилища данных. Все входящие файлы передаются на сервер по защищённому протоколу, обрабатываются в оперативной памяти и удаляются сразу после возврата результатов пользователю. В тестовых целях пригодится

:

Мы не гарантируем работоспособность сервиса на архитектурах, выпущенных до 2011 года. Рекомендуем использовать процессоры не старше у Intel и у AMD

Процессор: 16 ядер, 3.2-3.9 GHz, ориентир:

Процессор (x2): 24 ядра, 3.2-4.0 GHz, ориентир:

Замените *** в строке LICENSE_TOKEN: "***" на ваш токен. Если у вас нет токена, напишите нам в или на .

Сервис обращается к , чтобы повысить точность выдаваемых адресов.

Если у вас ограничен доступ в Интернет, внесите в белый список адрес . Если такой возможности нет, отключите обращение к Dadata.ru. Для этого в запросе к методуrecognize передавайте параметр normalization_fias=false

Ничего не получилось, и вы хотите рассказать, что эта инструкция никуда не годится? Пишите нам в или на , мы оперативно поможем

Вид документа
Название в API
Извлечение
Классификация
Поле в документе
Название в API

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

Откройте

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

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

true — сервис обращается к и возвращает адрес в . Это повышает точность извлечения поля «Адрес». Нормализация приводит неструктурированный адрес к общепринятому формату, который можно сопоставлять с адресами из других источников.

private — сервис отправляет результаты работы алгоритмов на ручную верификацию. Для получения доступа к интерфейсу станции верификации напишите нам в или на

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

🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇷🇺
🇦🇿
🇦🇿
🇦🇿
🇦🇿
🇦🇿
🇦🇲
🇧🇾
🇰🇿
🇰🇿
🇰🇿
🇰🇿
🇰🇿
🇰🇿
🇰🇿
🇰🇬
🇰🇬
🇰🇬
🇰🇬
🇲🇩
🚫
🚫
🚫
🇹🇯
🇺🇿
🇺🇿
🇺🇦
🇺🇦
🇺🇦
🇺🇦
🇺🇦
🇯🇵
Идентификатор объекта в базе GeoNames. Для российских адресов не заполняется.
телеграм
hello@dbrain.io
«Общая информация о сервисах»
телеграм
Признаки подделки
Качество изображений
Подписи и печати
Базы данных
«Общая информация о сервисах»
Сравнение лиц на двух изображениях
Селфи-чек
Liveness
https://latest.dbrain.io/check/fraud
«Типы документов»
«Общая информация о сервисах»
API-спецификации.
общей информации о сервисах
data URL
телеграм
hello@dbrain.io
главного разворота паспорта РФ
«Классификация документов»
«Общая информация о сервисах»
"task_id": "96b8ccc950a70699927036842c624d7c"
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
"task_id": "96b8ccc950a70699927036842c624d7c"
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
"task_id": "96b8ccc950a70699927036842c624d7c"
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
"task_id": "96b8ccc950a70699927036842c624d7c"
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'
version: "3.7"

# Сначала логинимся докером в наш реджистри:
# docker login registry.dbrain.io/docr
# login: r@b@t$docr+docr
# secret: p2JDaaFKIDEoddf8mho7

# Во всех сервисах закомментирован раздел volumes.
# Нужно самостоятельно решить куда монтировать,
# т.к. это зависит от вашего оркестратора.
# Для тестов - можно просто оставить закомментированными.


x-service: &service
  volumes:
    - "./data/files:/files"
#    - "./data/logs:/logs"
  environment:
    LOGURU_LEVEL: "INFO"
    LOGURU_COLORIZE: "YES"
    LICENSE_TOKEN: "***"  # Поменяйте на своё значение
    FACE_API_URL: ""
    FACE_API_USERNAME: ""
    FACE_API_PASSWORD: ""
    
  depends_on:
    - tasque
    - db
    - files
  tmpfs:
    - /tmp
  restart: always
  logging: &logging
    driver: "json-file"
    options:
      max-file: "10"
      max-size: "100m"


services:
  api:
    <<: *service
    image: registry.dbrain.io/docr/api:v4.52.0
    command: [ api ]

  specs:
    <<: *service
    image: registry.dbrain.io/docr/specs:v4.52.0
    command: [ specs ]

  agent:
    <<: *service
    image: registry.dbrain.io/docr/agent:v4.52.0
    command: [ agent ]

  files:
    image: registry.dbrain.io/docr/files:v4.52.0
    sysctls:
      net.core.somaxconn: 4096
#    volumes:
#      - "./data/files:/files"
    restart: always
    logging: *logging

  db:
    image: registry.dbrain.io/docr/db:v4.52.0
    user: root
#    volumes:
#      - "./data/postgres:/var/lib/postgresql/data"
    environment:
      POSTGRES_DB: postgres
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
    healthcheck:
      test: pg_isready -U postgres -h 127.0.0.1
      interval: 5s
    restart: always
    logging: *logging

# Это сервис очистки старых данных по уже отработавшим задачам.
# Он закомментирован, т.к. вы можете захотеть иначе очищать старые файлы.
# Для теста - можно просто оставить закомментированным.

#  cleaner:
#    image: alpine
#    volumes:
#      - "./data/files:/files"
#    command: sh -c "while true ; do find /files -mmin +"$(( ($PIPELINE_TIMEOUT+$COMPLETED_TASK_TTL_SECONDS) / 60 ))" -type f -print0 | xargs -0 -n 100 -P 4 rm -f; echo cleaning done ; sleep 60 ; done"
#    restart: always
#    logging: *logging

  demo:
    image: registry.dbrain.io/docr/demo:v4.52.0
    restart: always
    logging: *logging

  lb:
    image: registry.dbrain.io/docr/lb:v4.52.0
    restart: always
    ports:
      - 8080:80  # Поменяйте на своё значение, например, 8090:80
    logging: *logging

  tasque:
    image: registry.dbrain.io/docr/tasque:v4.52.0
#    volumes:
#      - "./data/logs:/logs"
    restart: always
    logging: *logging
docker login registry.dbrain.io/docr
curl https://license.ml.dbrain.io/check/v2
docker compose up

Акт приёма-передачи нематериальных активов

rus_act_completition

Счёт на оплату / Счёт

rus_bill

Счёт-фактура

rus_invoice

Универсальный передаточный документ (УПД)

rus_upd

Договор

rus_contract

Товарная накладная — ТОРГ-12

rus_torg_12

Акт сверки взаиморасчётов

rus_act_reconciliation

Акт приёма-передачи основных средств ОС-1

rus_os_1

Счёт-договор (оферта)

rus_contract_invoice

Банковский платёжный ордер

rus_bank_order

ОС-6

rus_os_6

Акт списания нематериальных активов

rus_act_retirement

ОС-15

rus_os_15

ОС-1Б

rus_os_1b

Доверенность

rus_power_of_attorney

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

other

Основание передачи

basis

Покупатель: адрес

buyer_address

Покупатель: название компании

buyer_company

Покупатель: ФИО

buyer_fio

Покупатель: ИНН

buyer_inn

Покупатель: КПП

buyer_kpp

Покупатель: ОКПО

buyer_okpo

Валюта

currency

Дата документа

date

Руководитель организации: ФИО

lead_name

Сумма НДС

nds_sum

Номер документа

number

Номер связанного документа

related_document

Продавец: адрес

seller_address

Продавец: номер банковского счёта

seller_bank_account_number

Продавец: БИК

seller_bank_bic

Продавец: название банка

seller_bank_name

Продавец: название компании

seller_company

Продавец: ФИО

seller_fio

Продавец: ИНН

seller_inn

Продавец: КПП

seller_kpp

Продавец: ОКПО

seller_okpo

Продавец: ОКУД

seller_okud

Главный бухгалтер: ФИО

senior_accountant_name

Груз принял: ФИО

shipment_acceptor_name

Груз принял: должность

shipment_acceptor_position

Получатель груза: адрес

shipment_recepient_address

Получатель груза: компания

shipment_recepient_company

Получатель груза: ИНН

shipment_recepient_inn

Получатель груза: КПП

shipment_recepient_kpp

Получатель груза: ОКДП

shipment_recepient_okdp

Получатель груза: ОКПО

shipment_recepient_okpo

Отпуск груза разрешил: ФИО

shipment_release_authorised_by_name

Отпуск груза разрешил: должность

shipment_release_authorised_by_position

Груз отпустил: ФИО

shipment_released_by_name

Груз отпустил: должность

shipment_released_by_position

Поставщик: адрес

shipment_supplier_address

Поставщик: название компании

shipment_supplier_company

Поставщик: ИНН

shipment_supplier_inn

Поставщик: КПП

shipment_supplier_kpp

Поставщик: ОКПО

shipment_supplier_okpo

Поставщик: главный бухгалтер: ФИО

shipment_supplier_senior_accountant_name

Поставщик: должность

shipment_supplier_senior_accountant_position

Сторона А: название компании

side_a_company

Сторона А: ФИО

side_a_name

Сторона А: должность

side_a_position

Сторона Б: название компании

side_b_company

Сторона Б: ФИО

side_b_name

Сторона Б: должность

side_b_position

Сумма

total_sum

curl -X 'POST' \
  'https://latest.dbrain.io/rus_invoices?token=xxx' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'image=@image.jpg;type=image/jpeg'
import requests

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

response = requests.post(url, headers=headers, files=files)
Функция РаспознатьДокумент(ПакетДвоичныеДанные, ИмяФайла) Экспорт
	// готовит HTTP-запрос, включая заголовки и тело, и отправляет его на сервер.
	ПараметрыЗапроса ="?token=B000000000000000000000"; // токен необходимо получить собственный!
	РазделительМультисообщения = "----MessageBoundary1C";

	HTTPЗапрос = Новый HTTPЗапрос("/rus_invoices"+ПараметрыЗапроса);
	HTTPЗапрос.Заголовки.Вставить("accept", "application/json");
	HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + РазделительМультисообщения);

	ТелоПоток = Новый ПотокВПамяти();
	
	ЗаписьДанных = Новый ЗаписьДанных(ТелоПоток); 
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения);
	ЗаписьДанных.Записать(СоздатьСообщение_XML("image", ИмяФайла, ПакетДвоичныеДанные)); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ВК); 
	ЗаписьДанных.ЗаписатьСимволы(Символы.ПС);
	ЗаписьДанных.ЗаписатьСтроку("--" + РазделительМультисообщения + "--");
	ЗаписьДанных.Закрыть();
	
	ТелоДвоичныеДанные = ТелоПоток.ЗакрытьИПолучитьДвоичныеДанные();
	
	Попытка
		Соединение = Новый HTTPСоединение("latest.dbrain.io",
										443,
										,
										,
										,
										60,	
										ЗащищенноеСоединение());
	Исключение
		Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));	
	КонецПопытки;

	HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(ТелоДвоичныеДанные);
	Возврат Соединение.ОтправитьДляОбработки(HTTPЗапрос);
	
КонецФункции	

Функция ЗащищенноеСоединение() 
	
	ЗащищенноеСоединение = Неопределено;
	
	СистемнаяИнфо = Новый СистемнаяИнформация;
	ТипПлатформыСервера = СистемнаяИнфо.ТипПлатформы;

	Если ТипПлатформыСервера = ТипПлатформы.Windows_x86
		Или ТипПлатформыСервера = ТипПлатформы.Windows_x86_64 Тогда
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
		Новый СертификатКлиентаWindows(),
		Новый СертификатыУдостоверяющихЦентровWindows());
	Иначе
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
	КонецЕсли;
	
	Возврат ЗащищенноеСоединение;
	
КонецФункции

Функция СоздатьСообщение_XML(ИмяСообщения, ИмяФайла, СообщениеДвоичныеДанные)   
	
	Поток = Новый ПотокВПамяти();
	ЗаписьДанных = Новый ЗаписьДанных(Поток);
	// Заголовки
	ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""" + ИмяСообщения + """; filename=""" + ИмяФайла + """");
	Если Прав(ИмяФайла, 4) = ".xml" Тогда
		ТипMIME = "text/xml";
	ИначеЕсли Прав(ИмяФайла, 4) = ".pdf" Тогда
		ТипMIME = "application/pdf";
	Иначе
		ЧастиИмени = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ИмяФайла, ".");
		Если ЧастиИмени.Количество() > 1 Тогда
			ТипMIME = "image/" + ЧастиИмени[ЧастиИмени.ВГраница()];	
		КонецЕсли;
	КонецЕсли;                                
	ЗаписьДанных.ЗаписатьСтроку("Content-Type: " + ТипMIME);
	ЗаписьДанных.ЗаписатьСтроку("");
	// Тело
	ЗаписьДанных.Записать(СообщениеДвоичныеДанные);
	ЗаписьДанных.Закрыть();

	Возврат Поток.ЗакрытьИПолучитьДвоичныеДанные();
		
"task_id": "96b8ccc950a70699927036842c624d7c"
curl -X 'GET' \
  'https://latest.dbrain.io/result/96b8ccc950a70699927036842c624d7c?token=XXX' \
  -H 'accept: application/json'

Требования к технической поддержке

Техническая поддержка участников информационного взаимодействия.

Услуги, описанные данным пунктом, оказываются Лицензиаром уполномоченным сотрудникам Лицензиата, использующим программу для ЭВМ (ПО «Dbrain») на условиях простой (неисключительной) лицензии, а также обеспечивает гарантийную поддержку ПО в целях исполнения бизнес-задач Лицензиата. В случае возникновения проблем во взаимодействии информационных систем, либо выявлении проблем с оказанием услуг, Лицензиар осуществляет регистрацию запроса на техническую поддержку в своей системе контроля и управления функционированием (СКУФ).

1. Состав услуги

Услуги по технической и информационной поддержке Лицензиата включают:

  • прием, регистрацию, классификацию и обработку запросов, выявленных средствами мониторинга и контроля функционирования ПО «Dbrain»;

  • анализ и решение запросов по ПО «Dbrain», переданному Лицензиату в рамках Договора;

  • отслеживание и эскалация запросов, срок решения которых истек.

2. Требования по порядку оказания услуг

В рамках оказания Услуги по неограниченной технической поддержке Программы Стороны согласовали следующие условия обработки инцидентов и уровня сервиса.Если Лицензиат информирует Лицензиара о возникновении технических проблем, Лицензиар предоставляет Лицензиату поддержку в виде информации об исправлении и предотвращении ошибок или предлагает альтернативный путь решения проблем. Лицензиат может направить Лицензиару сообщение о возникновении технических проблем (так называемый «инцидент») в любое время. Запросы к технической поддержке осуществляются по следующему адресу электронной почты Лицензиара: support@dbrain.io. Также запросы принимаются через бот Лицензиара в интернет-мессенджере Telegram: @dbrain_support_bot и по номеру телефона: +7 495 127 72 51

3. Требования по качеству оказания услуг:

Приоритизация запросов осуществляется по следующим правилам:

Инциденты с Приоритетом 1 («очень высокий»). Лицензиар реагирует на инциденты с Приоритетом 1 в течение 1 (одного) часа после получения Лицензиаром таких инцидентов (в будние дни, с 09:00 до 18:00 по московскому времени). Инциденту присваивается Приоритет 1, если возникшая проблема имеет очень серьезные последствия для осуществления обычных бизнес-операций и выполнение срочных, критичных для бизнеса работ становится невозможным. Обычно к таким обстоятельствам относятся следующие: полная потеря работоспособности системы, сбои в ключевых функциях системы, критичные проблемы, и в каждом из таких случаев обходные решения недоступны.

Инциденты с Приоритетом 2 («высокий»). Лицензиар реагирует на инциденты с Приоритетом 2 в течение 4 (четырех) часов после получения Лицензиаром таких инцидентов (в будние дни, с 09:00 до 18:00 по московскому времени). Инциденту присваивается Приоритет 2, если выполнение стандартных бизнес-операций в продуктивной системе значительно затруднено, и нет возможности выполнять ряд необходимых задач. Такая ситуация является результатом некорректной или неверной работы в продуктивной системе функций, предназначенных для выполнения таких операций и (или) задач.

Требования по времени предоставления корректирующих мер для инцидентов с Приоритетом 1:

Лицензиар предоставляет решение, метод обхода ошибки или план действий по решению проблемы (далее - «Корректирующие меры») для инцидентов Лицензиата, имеющих Приоритет 1, в течение 8 часов с момента получения таких сообщений (в будние дни, с 09:00 до 18:00 по московскому времени).

В случае, если в качестве Корректирующей меры Лицензиату предоставляется план действий по решению проблемы, такой план включает:

  • информацию о статусе процесса решения проблемы;

  • информацию о запланированных дальнейших шагах, с указанием ответственных лиц, назначенных Лицензиаром;

  • информацию о необходимых действиях Лицензиата по поддержке процесса решения проблемы;

  • по мере возможности, планируемые даты осуществления мер, предпринимаемых со стороны Лицензиара;

  • дату и время следующего обновления статуса со стороны Лицензиара.

Дальнейшие обновления статуса включают краткое описание мер, предпринятых до сих пор; информацию о следующих запланированных действиях; а также дату и время следующего обновления статуса. Техническая поддержка для Корректирующих мер относится только к той части времени обработки инцидента, когда инцидент обрабатывается Лицензиатом («Время обработки»). Время обработки не включает периоды, когда инцидент имеет статус «Действие Заказчика». Считается, что условия технической поддержки по Корректирующим мерам выполнены, если в течение 8 часов после получения инцидента: Лицензиар предложил решение (статус «Решение предоставлено ООО «Дибрейн»), метод обхода ошибки или план действий по решению проблемы; или если Лицензиат соглашается снизить приоритет инцидента.

Для инцидентов c Приоритетом 1 Лицензиат должен выполнить следующие дополнительные условия:

  • проблема и ее влияние на бизнес Лицензиата должны быть описаны настолько подробно, насколько это необходимо Лицензиару для оценки проблемы;

  • Лицензиат предоставляет для обмена информацией с Лицензиаром контактное лицо, доступное в будние дни, с 09:00 до 18:00 по московскому времени и обладающее достаточными знаниями и навыками для помощи в решении инцидента с Приоритетом 1;

  • должно быть назначено контактное лицо Лицензиата для открытия удаленного подключения к системе и для предоставления Лицензиару необходимых регистрационных данных для входа в систему Лицензиата.

Исключения. Применительно к Услугам из технической поддержки исключаются, в частности, следующие виды инцидентов:

  • исходная причина, лежащая в основе инцидента, не является дефектом или неисправностью, а представляет собой исходно отсутствующую функциональность («запрос на разработку»);

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

4. Ограничения

4.1. Действие настоящего Документа не распространяется на случаи Недоступности, вызванные следующими обстоятельствами:

4.1.1. действиями Лицензиата и (или) третьих лиц, в том числе, но не ограничиваясь, использованием оборудования и (или) программного обеспечения третьих лиц, повлекшие за собой Недоступность Решения;

4.1.2. проведением профилактических и Аварийных работ;

4.1.3. требованием государственных органов в соответствии с применимым законодательством;

4.1.4. совершением Лицензиатом запрещенных действий, предусмотренных Договором или Приложениями к нему;

4.1.5. обстоятельствами непреодолимой силы;

4.1.6. нарушением Лицензиата технических ограничений по использованию Решения;

4.1.7. нарушением Лицензиата условий Договора или Приложения к нему.

4.2. Лицензиар не несет ответственности за потерю и (или) повреждение информации и контента Лицензиата, размещенного на ресурсах Лицензиара, произошедшие по вине Лицензиата.

5. Термины

Термины, используемые в настоящем документе, с заглавной буквы и не определенные в Договоре и иных Приложениях к Договору, имеют следующие значения:

Аварийные работы – работы, проводимые Лицензиаром без уведомления Лицензиата, в целях предотвращения аварий и иных обстоятельств, угрожающих безопасности и работоспособности Решения, в том числе, но не ограничиваясь, следующие обстоятельства: несанкционированный доступ третьих лиц к Решению, обстоятельства непреодолимой силы (пожар, наводнение, землетрясение, военные действия, контртеррористические операции, действия и нормативные указания государственных органов, и иные).

Недоступность – интервал времени, в течение которого Решение не соответствует заявленным Лицензиаром параметрам работоспособности. Недоступность определяется индивидуально для каждого Решения.

data URL
data URL
Извлечение данных
Общая информация о сервисах
data URL
data URL
https://latest.dbrain.io/v2/face/selfie
«Общая информация о сервисах»
общей информации о сервисах
data URL
data URL
списку поддерживаемых документов
data URL
Классификация документов
https://latest.dbrain.io/v2/face/distance
«Общая информация о сервисах»
общей информации о сервисах
data URL
data URL
data URL
https://latest.dbrain.io/v2/face/liveness
«Общая информация о сервисах»
общей информации о сервисах
data URL
data URL
Яндекс.Толока
245 тысяч
«Извлечение данных»
«Общей инофрмации о сервисах»
телеграм
hello@dbrain.io
Установка сервисов Dbrain на ваш сервер
Использование локального сервиса лицензий в закрытых ИТ-контурах
SDK для мобильных устройств
воспользуйтесь веб-демо
паспорт России из Википедии
Классификация документов
Проверка документов на признаки подделки
Базовый OCR
Извлечение данных из документов
Sandy Bridge
Bulldozer
AMD EPYC 7343
AMD EPYC 74F3
телеграм
hello@dbrain.io
Dadata.ru
https://suggestions.dadata.ru
телеграм
hello@dbrain.io
телеграм
hello@dbrain.io
demo.dbrain.io
latest.dbrain.io
Swagger
API сервиса Dadata.ru
формате ФИАС
телеграм
hello@dbrain.io
«Общая информация о сервисах»
Общей информации о сервисах
общей информации о сервисах
код состояния HTTP

task_id

string

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

error

string

Текстовое описание ошибки

task_tags

array[string]

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

success

boolean

Статус запроса

status_code

integer

HTTP-код статуса запроса

  • 200 — запрос выполнен успешно

result.images

array[$string]

result.doc_type

string

result.confidence

number

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

result.page_num

integer

Номер страницы в оригинальном файле, на котором найден документ

result.fields

array

Массив, содержащий поля, которые сервис извлёк из документа

result.fields.name

string

result.fields.value

string

Текстовое содержимое поля, которое извлёк сервис

result.fields.confidence

number

Уровень уверенности сервиса от 0 до 1 в корректности содержимого, извлечённого из поля

result.fields.page_num

integer

Номер страницы в оригинальном файле, на которой найдено поле

result.fields.coords

array[integer]

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

result.fields.crops

array[$string]

result.fields.is_found

boolean

  • true — поле найдено в документе

  • false — поле в документе не найдено

result.tables

array[array]]

Массив, содержащий найденные в документе таблицы

result.tables.name

string

Название ячейки таблицы по схеме

table_id-X_row-Y_col-Z, где: • X — порядковый номер таблицы (сверху внизу) • Y — порядковый номер строки в таблице, начиная с 0 • Z — порядковый номер столбца в таблице, начиная с 0

result.tables.value

string

Текстовое содержимое ячейки таблицы

result.tables.confidence

number

Уровень уверенности сервиса от 0 до 1 в корректности содержимого, извлечённого из ячейки

result.tables.page_num

integer

Номер страницы в оригинальном файле, на котором найдена ячейка

result.tables.coords

array[integer]

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

result.tables.crops

array[$string]

result.tables.is_found

boolean

  • true — ячейка найдена в документе

  • false — ячейка в документе не найдена

Формальности

Раздел с документами для соответствия формальным требованиям

Мобильный SDK

Представляем Software Development Kit для мобильных платформ Android и iOS

Вы можете встроить SDK в мобильные приложения, в которых вам необходима обработка документов. Мы предоставляем два варианта SDK:

  • PassportIQA SDK — библиотека, которая отвечает за захват корректного изображения главного разворота паспорта РФ

  • ImageCapture SDK — библиотека, которая захватывает изображение любого документа

PassportIQA SDK

Общая схема работы:

  1. Внешнее приложение запрашивает изображение паспорта у PassportIQA SDK.

  2. Библиотека инициирует запуск камеры и проверяет полученные с неё изображения по следующим критериям:

  • glare — как минимум одно из полей документа засвечено, и его невозможно однозначно прочитать. Проверка учитывает засветы на МЧЗ паспорта

  • blur — изображение документа слишком расплывчато для уверенного чтения символов

  • crop — документ обрезан краями изображения, либо ключевые поля документа закрыты посторонними предметами. Например, пальцами

  • far — документ находится слишком далеко от камеры

  • other — документ не совпадает с целевым документом (паспорт РФ, разворот 2-3 страницы)

  1. Библиотека возвращает 5 стоп-кадров из видео, а также фотографию.

PassportIQA SDK для Android

PassportIQA SDK для iOS

ImageCapture SDK

ImageCapture SDK для Android

        val api = Retrofit.Builder()
            .baseUrl("https://latest.dbrain.io/")
            .build()
            .create(Api::class.java)

ImageCapture SDK для iOS

Локальный сервис лицензий

Если разворачиваете сервис Dbrain в закрытом IT-контуре без возможности выхода в Интернет, можете воспользоваться локальным сервисом лицензий

Установка локального сервиса лицензий

1. Запустите локальный сервис лицензий:

docker run --rm -d --name local-license-server -p 8081:8080 registry.dbrain.io/public/license-local:challenge-v2

2. Убедитесь, что сервис запущен:

curl http://localhost:8081/info
{"limit": 0, "used": 0, "left": 0, "activatedAt": null}

Если увидели такой ответ, значит сервис ещё не активирован.

3. Начните процесс активации, сгенерировав challenge строку. Это можно сделать через curl или любым иным http клиентом.

curl http://localhost:8081/activation/challenge
<challenge_string>

4. Получите challenge-answer — ответ на свою challenge строку одним из двух способов:

  • С помощью сотрудника Dbrain — утилитой nl_server_starter

  • Отправив e-mail по адресу robot@license.dbrain.io с единственным прикреплённым файлом в формате yaml:

auth_string: user_name:user_password
endpoint: local_license_activate
params:
  challenge: введите_тут_вашу_challenge-строку

username и user_password — заранее выданные логин и пароль. Запросите их у сотрудников Dbrain.

5. Завершите активацию сервиса лицензий, введя challenge-answer строку:

curl http://localhost:8081/activation/activate --data 'ответ_на_challenge-строку'

Обратите внимание: одинарные кавычки в параметре --data 'string' важны при использовании в командной строке, иначе некоторые символы challenge-answer строки будут неверно интерпретированы в bash и активация не удастся.

6. Проверьте успешность активации:

curl http://localhost:8081/info
{"limit": 1000, "used": 0, "left": 1000, "activatedAt": 1651771605}

activatedAt указывает на unixвремя активации.

7. Всё, можно пользоваться. Сервис лицензий доступен для сервисов Dbrain по адресу http://localhost:8081/check/v2. Не забудьте прописать этот адрес в переменной окружения сервисов Dbrain LICENSE_URL=<адрес-сервера-лицензий>/check/v2.

8. Лимиты и использованные квоты можно проверить в любой момент в эндпоинте /info.

9. Для повторной активации перезапускать сервис не нужно — достаточно снова перейти к пункту (3) и запросить новую challenge строку.

400, 403, 500 и т.д. — расшифрованы в «»

Массив с MIME-типом JPEG в формате base64 — изображения найденных документов. Возвращается, если в запросе передать return_crops=true

Тип документа из , поддерживаемых сервисом

Название поля в документе из

Массив с MIME-типом JPEG в формате base64 — изображения найденных частей поля. Возвращается, если в запросе передать return_crops=true

Массив с MIME-типом JPEG в формате base64 — изображение ячейки. Возвращается, если в запросе передать return_crops=true

SDK отвечает за захват изображения, отправку на сервер и приём результатов. По умолчанию обработка изображений происходит на серверах Dbrain по адресу .

. Адрес сервера, к которому обращается SDK для обработки изображения и получения результатов, можно изменить. Для этого замените адрес "/" в следующем :

. Адрес сервера, к которому обращается SDK для обработки изображения и получения результатов, можно изменить. Для этого при инициализации укажите новый адрес в параметрах classificationUrl и recognitionUrl константы flow.

Если вы используете Windows, обязательно и выполняйте процесс через него. В противном случае ничего не получится

data URL
data URL
data URL
Требования к технической поддержке
latest.dbrain.io
SDK для Android на Github
https://latest.dbrain.io
куске кода
SDK для iOS на Github
установите Powershell
Общей информации о сервисах
списка
документов
перечня извлекаемых полей

Changelog

4.14.1 — 2024.03.20

  • Оптимизировали работу сервиса с изображениями. Благодаря этому, скорость обработки документов с высоким разрешением теперь не уступает скорости обработки документов с низким разрешением.

  • Усовершенствовали алгоритм извлечения перфорированных символов. Это позволило улучшить распознавание зеркального текста. Такой текст часто встречается на развороте с пропиской в паспорте граждан РФ.

  • Добавили возможность извлечения серии и номера из разворота 18-19 паспорта РФ. На этом развороте указывается информация о ранее выданных паспортах.

  • Сервис теперь поддерживает извлечение номеров банковских карт нестандартной длины.

  • Дата документа в СТС (свидетельстве о регистрации транспортного средства) теперь корректно возвращается в формате дд.мм.гггг.

4.12.0 — 2024.02.29

  • Увеличили точность определения ориентации банковских карт и второстепенных разворотов паспорта РФ.

4.11.0 — 2024.02.22

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

4.10.0 — 2024.02.14

  • Swagger в локальной версии сервиса больше не обращается в интернет.

4.9.2 — 2024.01.25

  • Подняли точность извлечения полей «Марка» и «Модель» в ПТС.

4.7.0 — 2023.12.14

4.5.0 — 2023.11.21

4.4.11 — 2023.11.10

  • Обучили новый движок распознавания текста, написанного перфорацией. Теперь сервис уверенно извлекает серию-номер с перфорированных страниц паспорта.

  • Доработали извлечение данных из нестандартных банковских карт: с данными на одной стороне карты и с номером, написанным «лесенкой».

  • Устранили баг из-за которого сервис замедлялся при работе с большими изображениями.

  • Исправили баг, который приводил к путанице серии-номера на обратной стороне некоторых водительских удостоверений.

  • Нашли и обезвредили баг, из-за которого случалось некорректное извлечение многострочного поля «Место рождения» в СНИЛС образца 2003 года.

4.4.9 — 2023.10.30

  • Теперь возвращаем в прописках раскладку адреса по классификатору адресов КЛАДР.

4.4.7 — 2023.10.16

  • Исправили возврат координат полей в прописках.

4.4.4 — 2023.09.28

  • Научили метод recognize возвращать область документа из изображения. Чтобы воспользоваться, передайте параметр return_crops=true, тогда в ответе появится массив doc_crops.

  • Добавили виды топонимов в адресах прописок в полях address и street. Теперь вместо «Энтузиастов» возвращаем «Шоссе Энтузиастов».

  • Снова доступен возврат даты регистрации в прописках.

4.2.5 — 2023.06.02

  • Обновили классификатор документов — теперь он меньше путает типы документов. Обратные стороны водительских удостоверений, например.

  • Вернули поддержку параметра doc_type в методе recognize. Теперь можно выбрать из каких типов документов, которые лежат в файле, сервис должен извлекать данные.

  • Вернули извлечение следующих полей из штампов прописок:

    • код подразделения — subdivision_code

    • место выдачи — issuing_authority

    • регион — region

    • город — locality

    • улица — street

    • дом — house

    • квартира — apartment

  • Теперь возвращаем из штампов прописок ещё два поля:

    • address_gar — адрес в формате муниципального деления по справочнику ГАР

    • fias_id — код адреса по справочнику ФИАС

  • Включили нормализацию адреса по справочнику ФИАС в штампах прописок по умолчанию.

4.0.0 — 2023.03.29

Переписываем ядро системы сервисов распознавания. Переносим функционал в новую версию, но пока часть запросов будет продолжать обрабатываться через версию 3.7.8. И для локальной установки мы по-прежнему рекомендуем версию 3.7.8.

Основные моменты: 

  • API сделали обратно-совместимым. На вашей стороне ничего не нужно менять.

  • Скорость обработки одного документа сократилась до 1 секунды.

  • Добавили извлечение поля «Серия и номер» с разворота «Место жительства» паспорта РФ.

3.7.8 — 2022.12.07

Обновления

  • Обновили детектор отфотошопленных паспортов РФ. Теперь он идентифицирует больше способов подделки. Воспользоваться им можно с помощью параметра check_fake_visual методов recognize и classify.

  • Обучили классификатор различать новые виды документов:

    • Паспорт: Азербайджан 2013, Кыргызстан 2021, Молдавия 2014, Армения, Беларусия 1996, Казахстан 2014, Узбекистан 2011 и 2020;

    • Загранпаспорт: Украина 2015;

    • Лицевая и обратная сторона ID-карт Азербайджана 2012 и 2018 годов.

  • Переписали алгоритм, вычисляющий чёткость изображения. Теперь при оценке чёткости можно полностью полагаться на его показатели.

  • Научили алгоритм вычислять уровень уверенности для поля «кем выдано» в штампах прописки.

  • Дополнили ответ метода recognize координатами и ориентацией документа, по аналогии с ответом метода classify.

3.7.7 — 2022.10.05

Обновления

  • Подняли точность детектора отфотошопленных паспортов РФ. Воспользоваться им можно с помощью параметра check_fake_visual методов recognize и classify

  • Научили классификатор документов сообщать уровень уверенности в корректности классификации. Методы recognize и classify теперь возвращают параметр confidence

  • Научились распознавать документы СТД-Р и 182н

Багфиксы

  • Починили метод fulltext, он сломался в предыдущем релизе

3.7.5 — 2022.08.01

Обновления

  • Научились классифицировать вид на жительство и свидетельство о регистрации по месту пребывания

  • Добавили распознавание полей «название подразделения» и «код подразделения» в штампах о регистрации

Багфиксы

  • Исправили ошибку с некорректной работой ручки face/distance на повёрнутых изображениях

3.7.4 — 2022.07.07

Обновления

  • Обучили детектор отфотошопленных паспортов России. Воспользоваться им можно с помощью параметра check_fake_visual методов recognize и classify

  • Научились распознавать ЭПТС

  • Подняли качество распознавания обеих сторон СТС

  • Добавили настройку предельного времени ручного распознавания с помощью параметра hitl_deadline_seconds

Багфиксы

  • Исправили ошибку при чтения некоторых вариантов TIFF-файлов

3.7.3 — 2022.05.20

Обновления

  • Обучили новый объединённый движок распознавания печатных и рукописных штампов прописок. Метрики точности печатных штампов выросли вдвое, рукописных — ещё на 6%

  • Проапгрейдили рукописный OCR-движок для документов — теперь лучше извлекаем текст из рукописного паспорта России и европротокола

  • Добавили возврат координат слов в ответ полнотекстового распознавания

Багфиксы

  • В паспорте России, СТС, СНИЛС, свидетельстве о рождении и свидетельстве о браке отсутствовали координаты ряда полей

  • Классификатор источника изображений не работал

  • Бренд и марка в СТС без использования HITL возвращались одним полем

3.7.2 — 2022.04.29

Обновления

  • Обучили новый движок распознавания рукописных штампов прописок в паспорте РФ: метрики точности выросли на порядок. Рекомендуем использовать нормализацию по ФИАС параметром normalization_fias=true. Это даёт дополнительный прирост качества

  • Обновили алгоритм поиска последнего штампа прописки, теперь он меньше ошибается

  • Заменили движок распознавания зоны MRZ в паспорте РФ, теперь символы в ней распознаются намного уверенней. В результате выросли метрики точности распознавания самих паспортов

  • Освежили алгоритм распознавания лицевой стороны СТС — выросли метрики по большинству полей, добавили поддержку номеров ЭПТС

  • Переписали сервис чтения файлов. Теперь он поддерживает конвертацию файлов без расширения и многостраничные TIFF-файлы.

3.7.1 — 2022.04.06

Обновления

  • Обновили детектор документов на изображении: он стал вдвое быстрей и точней находит границы документов

  • Повысили качество распознавания всех полей главного разворота паспорта РФ. Для этого мы научили сервис выбирать между данными из машиночитаемой зоны и обычными полями

  • Переработали алгоритм нормализации поля «место выдачи» в паспорте РФ. Теперь мы применяем для него расширенный словарь собственной разработки. Рекомендуем включить нормализацию для всех запросов параметром use_internal_api=true

  • Убрали из библиотеки документов водительские удостоверения по форме 1999 года

3.6.10 — 2021.10.21

Фичи

  • Сократили время распознавания одного документа на 0,4-0,5 секунд

  • Добавили нормализацию адреса прописки с возвратом кода ФИАС. Используйте параметр normalization_fias=true

  • Научились извлекать из метаданных изображения широту, долготу, высоту и время снимка. Возвращаем их в поле image_exif

Багфиксы

  • Исправили возврат в ответе некорректных координат полей в случае подачи на распознавание неправильно ориентированных документов

  • Перестали путать пустые развороты паспорта с разворотом «Место жительства»

  • Сократили число ошибок 500 при распознавании штампов прописок

  • Уточнили зону замазывания даты регистрации в штампе прописок перед отправкой на ручное распознавание: она больше не перекрывает часть адреса

3.6.8 — 2021.10.12

Повысили качество

  • 2-НДФЛ

Фичи

  • Научили метод /fulltext_by_lines распознавать русский рукописный текст. Для распознавания укажите в параметре language значение handwritten_rus.

  • Научили сервис обрабатывать изображения в формате HEIF.

  • Добавили в методы /recognize и /classify массив task_tags, в котором можно указывать произвольные тэги запросов. Функцию можно использовать для сверки биллинга в случае с объединением документов в пакеты.

  • Добавили в методы /recognize и /classify параметр return_crops. В положении false сервис перестаёт возвращать изображения. Функцию можно использовать для экономии трафика и для удобства отладки — с ней ответ сервиса становится более читабельным.

  • Добавили в метод /recognize параметр first_occurrence_only. В положении true при обработке PDF сервис возвращает только первый найденный документ запрашиваемого класса. Это позволяет сократить время ответа сервиса.

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

3.5.12 — 2021.03.31

Фичи

  • Добавили параметр merge_and_name в методе /recognize. Укажите в нём нужное вам название, чтобы объединить все распознанные поля всех документов в один документ.

  • Dbrain теперь генерирует более осмысленные логи, которые удобней читать

Багфиксы

  • Исправили возврат некорректных координат полей в методе /recognize

  • Научились распознавать 2-НДФЛ и счета-фактуры в закрытом IT-контуре, раньше модель однократно подгружалась из Интернета

  • Теперь возвращаем корректное значение серии-номера СТС на образцах, где ГИБДД продублировала их дважды

3.5.10 — 2021.03.05

Добавили документы

  • Паспорт Украины 1994 года, машинопечатный образец, второй разворот

Повысили качество

  • Обновили алгоритм распознавания полнотекстовых документов в методе fulltext_by_lines. Качество распознавания выросло. Метод теперь возвращает результаты в виде отдельных слов, а не строчек

  • Усилили классификатор дополнительным обучением на паспортах Украины

  • Научились лучше распознавать ФИО и даты на главном развороте паспортов Украины образца 1994 года

Багфиксы

  • Исправили ошибку в эвристиках СТС. В единичных случаях баг приводил к возврату полей, не соответствующих документации

Фичи

  • Добавили параметр hitl_field_to_recognize. В нём можно перечислить поля документа, которые нужно распознать вручную

  • Методы /selfie , /distance и /face теперь возвращают вырезанные из изображений лица, их координаты и угол поворота; метод /selfieвозвращает тип документа на изображении

  • Добавили возврат пороговых значений confidence для целевого уровня точности распознавания в методе /metrics

3.5.8 — 2021.02.19

Повысили качество

  • Обновили алгоритмы поиска и сравнения лиц. Dbrain теперь лучше находит лица на сложных изображениях и обеспечивает отсутствие ложноположительных результатов сравнения

  • Паспорт России, главный разворот: повысили качество распознавания серии-номера

  • Паспорт Украины образца 2016 года: лицевая и обратная сторона

  • Паспорт Украины образца 1994 года, машинопечатный образец, главный разворот

Багфиксы

  • Исправили занижение confidence поля серия-номер на главном развороте паспорта России

  • Исправили баг, который в ряде случаев мешал находить штамп о регистрации на странице прописок

  • Исправили редкий баг, приводивший к ошибке 500 вместо результатов распознавания

Фичи

  • Добавили новый класс документа — passport_registration_handwritten. Он присваивается страницам паспорта, в которых последняя печать о регистрации рукописная.

  • Добавили возврат л.с. и кВт в ПТС отдельными полями engine_hp и engine_kw

  • Добавили комплексную проверку паспорта по внешним источникам. Она доступна в параметре external_check_passport_complex

  • Добавили возможность посимвольного возврата текста полей документов с ручного распознавания. За это отвечает новый параметр hitl_symbol_field. Для перечисленных в нём полей вернётся второй вариант ответа без нормализации по словарям и маскам.

3.5.7 — 2021.02.03

Добавили документы

  • Удостоверение личности Казахстана 2014 года: лицевая и обратная сторона

  • Удостоверение личности Казахстана 1994 года: лицевая и обратная сторона

Повысили качество

  • Научились уверенно распознавать половинки разворотов ПТС

  • Добавили эвристику к полю «Код подразделения» в Паспорте РФ, теперь поле возвращается строго по маске ddd-ddd

Багфиксы

  • Исправили баг с некорректным значением параметра rotation в ответе классификатора

  • Исправили ошибку при использовании параметра check_fake на некоторых изображениях

Фичи

  • Оптимизировали работу решения под нагрузкой

  • Локальные версии Dbrain теперь используют меньше подключений к MongoDB

  • Полностью переписали алгоритм обработки PDF. Теперь не нужно указывать дополнительные параметры в запросе, а PDF обрабатываются намного быстрее.

  • Научили классификатор возвращать четыре новых параметра, описывающих качество входящего изображения:

    • image_exposure

      • normal — нормальные

      • overexposed — переэкспонированные, пересвеченные

      • underexposed — недоэкспонированные, слишком тёмные

    • image_blured — смазанные

    • low_image_resolution — недостаточное разрешение изображения

    • low_image_weight — недостаточный вес изображения.

    Допустимые значения вы можете задать самостоятельно в запросе к классификатору.

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

  • Научились распознавать QR-коды на документах

  • Добавили возврат HTTP Status Code 213 для редких кейсов, когда ручное распознавание не уложилось в предельный SLA по времени

3.5.6 — 2020.12.23

Повысили качество

  • Рукописный паспорт России

  • Обратная сторона ВУ-2011 и ВУ-2014: поля «особые отметки», «серия-номер»

  • Обратная сторона СТС

  • 2-НДФЛ: поле «месяц»

  • Алгоритм поиска границ документа теперь лучше справляется с разворотами документов, например с паспортами

Фичи

  • Добавили проверки документов по базам через наших партнёров — IDX. За это отвечают параметры API external_check_***

3.5.5 — 2020.11.27

Добавили документы

  • Рукописный паспорт России

  • Паспорт Украины образца 2016 года: лицевая и обратная сторона

  • Паспорт Украины образца 1994 года, машинопечатный образец, главный разворот

  • Удостоверение личности Казахстана 2008 года: лицевая и обратная сторона

Повысили качество

  • Машинопечатный паспорт России

  • ПТС: лицевая сторона

  • 2-НДФЛ — теперь распознаём все поля

Исправили

  • Устранили редкую ситуацию с зависанием задачи

  • Добавили обработку файлов с некорректным расширением, например image.jpg?=

  • Исправили несколько сценариев в алгоритме распознавания, которые приводили к внутренней ошибке 500.

3.5.4 — 2020.11.03

Повысили качество

  • Доработали распознавание «половинок» главного разворота Паспорта России и ПТС

  • Обучили алгоритм поиска границ документов аккуратней обращаться с документами, в которых «подвал» находится на расстоянии от основной части документа.

Исправили

  • Локальные версии Dbrain больше не пишут избыточный объём логов на накопитель

3.5.3 — 2020.10.30

Повысили качество

  • Научили классификатор корректно обрабатывать половинки документов, например одну страницу паспорта вместо разворота.

Фичи

  • Добавили параметр priority для асинхронных запросов. Чем больше число, тем раньше балансировщик возьмёт запрос из очереди в обработку.

  • Добавили эндпоинт /cancel для асинхронных запросов. С его помощью можно отменить запрос, если он потерял актуальность. Это позволит быстрее получить результаты других запросов.

Прочие улучшения

  • Dbrain теперь эффективно обрабатывает большое число одновременных запросов.

3.5.2 — 2020.09.30

Добавили документы

  • Счёт-фактура rus_invoice

Повысили качество

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

  • ВУ-2011, обратная сторона: улучшили распознавание поля «особые отметки»

  • ВУ-1999, пластиковый образец: снизили число ложных распознаваний категории «А»

Фичи

  • Добавили параметр API simple_cropper. В положении «true» применяется упрощённый алгоритм вырезания документа от фона. Результаты классификации и распознавания в этом режиме могут быть чуть менее точными. Используйте этот параметр, если экономия 1 секунды даёт вам преимущества. По умолчанию simple_cropper не используется.

3.5.1 — 2020.09.23

Повысили качество

  • ПТС, лицевая сторона: значительно улучшили поля: марка, модель, VIN, шасси, кузов; улучшения по всем остальным полям

3.5.0 — 2020.09.22

Улучшения качества распознавания документов

  • Паспорт России, главный разворот: все поля

  • СТС, лицевая сторона, значительно улучшили поля: марка, модель, мощность двигателя, модель двигателя, номер двигателя, серия ПТС, номер ПТС, регистрационный знак, номер кузова, VIN; незначительные улучшения по другим полям

  • СТС, обратная сторона, значительно улучшили поля: город, имя, фамилия, отчество, республика.

  • Загранпаспорт России 2007, улучшили поля: имя, орган

  • Загранпаспорт России 2014, улучшили поля: имя, место рождения

  • ВУ-1999, бумажные, лицевая сторона: нижняя серия-номер теперь возвращается латиницей

Прочие улучшения

  • Скорректировали подсчёт уровня уверенности распознавания confidence

  • Обновили библиотеки обработки изображений и конвертации PDF

  • Паспорт России, прописка: дополнительно возвращаем информацию из печати с разбивкой на поля

3.4.7 — 2020.09.19

Добавили документы

  • СНИЛС: пластиковый образец

  • Полис ОМС: пластиковый образец Москвы

Повысили качество

  • Паспорт России, разворот с прописками: улучшили распознавание штампов прописки

  • ВУ-2011, обратная сторона, улучшили поля: C, CE

  • ВУ-2014, обратная сторона, улучшили поля: C, C1, CE, C1E

  • СТС, обратная сторона, улучшены поля: фамилия, дата, серия, номер и город

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

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

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

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

Исправили

  • Устранили утечку памяти

3.4.6.1 — 2020.09.03

Фичи

  • Новый параметр API hitl_async=true разрешает возврат неполного состава полей документа не дожидаясь окончания распознавания всех полей. Параметр работает только при использовании режима ручного распознавания документов with_hitl=true. В параметре hitl_required_fields нужно перечислить названия полей документа, после обработки которых HITL может возвращать неполный ответ. Ответ с неполным составом полей сопровождается кодом 202, полный — кодом 200.

  • Параметр use_external_api получил статус устаревшего. Обогащение ответов из внешних источников теперь контролируется в конфигах локальных версий.

Исправили

  • Вернули качество распознавания заграничных паспортов России 2007 и 2014 из версии 3.4.5.

  • Добавили обнуление уверенности в распознавании поля confidence, если ответ системы не удалось привести к допустимому значению. В поле ответа в таком случае будет пустая строка "text": "" .

  • Исправили поля серия и номер в заграничном паспорте России 2014 года, в версии 3.4.6 они были перепутаны.

3.4.6 — 2020.08.24

Добавили документы

  • Свидетельство о рождении

  • Свидетельство о заключении брака

  • Свидетельство о расторжении брака

  • Свидетельство о смерти

  • Полис ОМС: пластиковый образец (лицевая и обратная сторона)

  • Полис ОМС: бумажный образец (лицевая сторона)

Повысили качество

  • СТС, лицевая сторона: улучшено поле «тип ТС»

Фичи

  • Ускорили работу решения: модули классификации и распознавания работают на 2-3 секунды быстрее

Повысили точность извлечения данных из .

Добавили извлечение 66 новых полей из прописок. Полный перечень полей .

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

Полностью обновили сервис извлечения данных из первичных документов. Он классифицирует бухгалтерские документы и извлекает данные из актов, счетов, накладных, УПД и договоров. Попробуйте его через .

Разработали , который определяет наличие подписей и печатей на любых документах.

Увеличили точность и определения ориентации документов.

Сервис теперь возвращает нумерацию страниц паспорта РФ. Например, для прописок это может быть 4-5, 6-7 и так далее.

Добавили возврат корпуса/строения в адресе в поле block

Исправили баг с инвертированием итогового result в блоке логических проверок на

Добавили возврат координат документов в методе , теперь они возвращаются в массиве doc_coords

Исправили баги в логических проверках паспорта РФ в методе

Доработали визуальную часть

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

Открыли доступ к новому методу проверки liveness людей на изображениях. Метод доступен по адресу https://latest.dbrain.io/v2/face/liveness. Полное описание читайте .

Обновили метод «Базовый OCR». Он доступен по адресу https://latest.dbrain.io/basic_ocr. Полное описание читайте .

Выпустили новую версию веб-демо — . В ней доступен новый Антифрод.

Открыли доступ к сервису проверки подлинности изображений документов. Метод доступен по адресу https://latest.dbrain.io/check/fraud. Полное описание .

Реализовали новый метод проверки работоспособности сервиса. Метод доступен по адресу https://latest.dbrain.io/healthcheck. Более подробное описание .

Открыли доступ к новым методам сравнения лиц https://latest.dbrain.io/v2/face/distance и селфи https://latest.dbrain.io/v2/face/selfie. Чтобы начать ими пользоваться, перепишите интеграцию с нашим сервисом, . От текущих версий этих методов откажемся со временем, поэтому рекомендуем начать переход на новые уже сейчас.

Новая веб-демо для локальной версии коробки по аналогии с

первичных документов
«Приназки подделки»
веб-демо
новый сервис
классификации
извлечения данных
прописки
признаки подделки
Извлечение данных
Антифрод
демо-стенда
в веб-демо
в документации
в документации
demo.dbrain.io
читайте в документации
используя документацию
demo.dbrain.io
тут
читайте в документации
10MB
PassportIQA_Android_2023.11.24.zip
archive
10MB
PassportIQA_iOS_2023.12.13.zip
archive
175KB
Dbrain_SDK_Android_2020_11_11.zip
archive
249KB
Dbrain_SDK_iOS_2020_10_09.zip
archive
Пример документа из
Паспорт РФ, разворот «Место жительства» с печатным штампом о регистрации
Wikipedia