Перейти к содержанию

Рукописное распознавание

Пример изображения документа:

Важно: документы для обработки должны быть закодированы в формат base64.

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

Endpoint: POST https://api.beorg.ru/api/bescan/add_document

Заголовки:

Content-Type: application/json

Тело запроса:

{
  "project_id": "U_RATE_2",
  "images": ["<строка base64>"],
  "process_info": [
    {
      "type": "PASSPORT",
      "options": {
        "stages": ["verification"]
      }
    }
  ],
  "token": "<token>",
  "machine_uid": "<machine_uid>"
}

Пример ответа об успешной загрузке:

{
  "document_id": "s-12345"
}

Структура передаваемых данных

Ключ Описание
project_id Название проекта
token Токен доступа
machine_uid Идентификатор устройства
images Список строк в формате base64 (файлов)
process_info Настройки обработки

Структура process_info

Ключ Описание
key Свободный ключ для разделения документов при загрузке и получении результатов. Если не указан, вместо него используется ключ type
type Тип документа (PASSPORT)
options Опции обработки документа

Для получения token, machine_uid и project_id обратитесь в подраздел «Начало работы».

Пример запроса (Python)

import requests
import base64

with open("<путь до файла паспорта>", "rb") as image_file:
    b64 = base64.b64encode(image_file.read()).decode()

r = requests.post(
    "https://api.beorg.ru/api/bescan/add_document",
    headers={"Content-Type": "application/json"},
    json={
        "project_id": project_id,
        "token": token,
        "machine_uid": machine_uid,
        "images": [b64],
        "process_info": [
            {
                "type": "PASSPORT",
                "options": {
                    "stages": ["verification"]
                }
            }
        ]
    }
)
print(r.json())

Получение результатов

Endpoint: GET/POST https://api.beorg.ru/api/document/result/s-12345?token=<token>

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

import requests

r = requests.get("https://api.beorg.ru/api/document/result/s-12345?token=<token>")
print(r.json())

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

{
  "document_id": "s-44529",
  "documents": [
    {
      "key": "PASSPORT",
      "type": "PASSPORT",
      "data": {
        "LastName": "",
        "FirstName": "",
        "MiddleName": "",
        "Gender": "",
        "BirthDate": "",
        "BirthPlace": "",
        "Series": "",
        "Number": "",
        "IssuedBy": "",
        "IssueDate": "",
        "IssueId": "",
        "Address": "",
        "HasPhoto": "",
        "HasOwnerSignature": "",
        "MRZ1": "",
        "MRZ2": ""
      },
      "metadata": {
        "confidences": {
          "LastName": 0.98,
          "FirstName": 0.97,
          "MiddleName": 0.95,
          "Gender": 0.99,
          "BirthDate": 0.96,
          "BirthPlace": 0.94,
          "Series": 0.99,
          "Number": 0.98,
          "IssuedBy": 0.93,
          "IssueDate": 0.95,
          "IssueId": 0.92,
          "Address": 0.88,
          "HasPhoto": 1.0,
          "HasOwnerSignature": 1.0,
          "MRZ1": 0.99,
          "MRZ2": 0.99
        },
        "verifications": {
          "document_integrity": true,
          "photo_authenticity": true
        }
      },
      "broken": false,
      "broken_reasons": [],
      "broken_reasons_ru": []
    }
  ]
}

Описание ключей в ответе

Ключ Тип Описание
document_id string Номер документа в формате s-<номер документа>
documents list Список данных по каждому документу
documents[].key string Ключ, заданный при отправке документа для отслеживания
documents[].type string Тип документа (PASSPORT)
documents[].data dictionary Обработанные данные по каждому полю — содержит ключи полей и их определённые значения
LastName string Фамилия
FirstName string Имя
MiddleName string Отчество
Gender string Пол
BirthDate string Дата рождения
BirthPlace string Место рождения
Series string Серия паспорта с первого разворота
Number string Номер паспорта с первого разворота
IssuedBy string Кем выдан паспорт
IssueDate string Дата выдачи паспорта
IssueId string Код подразделения
Address string Адрес регистрации
HasPhoto boolean или string Попала ли в кадр фотография владельца
HasOwnerSignature boolean или string Попала ли в кадр подпись владельца
MRZ1 string Первая строка машиночитаемой записи
MRZ2 string Вторая строка машиночитаемой записи
metadata dictionary Содержит ключи метаданных
confidences dictionary ({key: float}) Метаданные с точностью обработки по каждому полю —
содержит ключи полей и значения уровня уверенности.
Значения от 0.0000 до 0.9999, где чем значение больше,
тем уверенность в результате выше.
Максимальная уверенность — 0.9999
broken boolean Является ли документ бракованным
broken_reasons list Список причин брака (на английском языке)
broken_reasons_ru list Список причин брака (на русском языке)