Dbrain Official
Dbrain Реестр ПО (backup)
Dbrain Реестр ПО (backup)
  • Dbrain
  • Общая информация о сервисах
  • Типы документов
  • Классификация документов
  • Извлечение данных
    • Паспорт
    • Паспорт: прописка
    • Водительское удостоверение
    • СТС
    • Бухгалтерская первичка
    • Договоры
    • Прочие документы
  • Проверка документов
    • Признаки подделки
    • Качество изображения
    • Подписи и печати
    • Базы данных
  • Операции с лицами
    • Сравнение лиц
    • Селфи-чек
    • Liveness
  • Базовый OCR
  • Ручная верификация
  • Локальная установка
    • Установка на сервер
    • Локальный сервис лицензий
    • Мобильный SDK
  • Формальности
    • Требования к технической поддержке
  • Changelog
Powered by GitBook
On this page
  • Как начать работать с сервисом извлечения данных
  • Параметры запроса к API
  • В ответе:
Export as PDF

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

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

PreviousКлассификация документовNextПаспорт

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

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

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

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

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

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

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

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

    • смазанные;

    • бликующие;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

сервисами проверки
телеграм
hello@dbrain.io
паспорт РФ из Википедии
demo.dbrain.io
latest.dbrain.io
Swagger
поддерживаемых типов документов
классификации документов
«Общая информация о сервисах»
классификации документов
Google таблице
Паспорт РФ
Паспорт РФ: прописка
Водительское удостоверение
Свидетельство о регистрации транспортного средства РФ
Первичные бухгалтерские документы
Договоры, уставы, решения, приказы
Прочие документы
Page cover image