Document Recognition V2#
Описание#
Document Recognition V2 - это обновленная версия технологии распознавания документов, которая предоставляет расширенные возможности для анализа и проверки документов. Технология включает в себя комплексную проверку качества изображений, распознавание различных типов документов, проверку MRZ ( машиночитаемой зоны), а также оценку подлинности документов на основе различных параметров безопасности.
Основные преимущества V2:
- Детальная проверка качества изображений (фокус, блики, разрешение, яркость)
- Расширенные оптические проверки документов
- Улучшенное распознавание типов документов с оценкой уверенности
- Поддержка многостраничных документов
- Подробная информация о результатах проверок
Ниже подробнее описаны этапы для использования данной технологии. Вы также можете проверить OpenAPI-спецификацию всех доступных для использования технологий.
Этапы:#
1. Получение API-KEY организации#
Первый этап для использования технологии - получение API-KEY организации. Чтобы получить API-KEY организации, необходимо зайти в Личный Кабинет по данной ссылке. API-KEY находится в поле Backend Api Key
Пример API-KEY организации:
API-KEY: Efy202XKbVAWRu...
Примечание
Для наглядности используется укороченная длина
API KEY
. Его фактическая длина составляет 47 и более символов.
2. Отправка запроса для сканирования документа#
В запросах к сервису используются данные в формате multipart/form-data. Ответные данные от сервиса будут представлены в формате JSON.
URL запроса:
https://kyc.biometric.kz/api/v2/backend/document/process/
Формат запроса | Метод запроса |
---|---|
multipart/form-data | POST |
API KEY
необходимо передать в теле запроса:
Наименование поля | Тип | Обязательно | Описание |
---|---|---|---|
api_key | String | Да | API KEY организации в личном кабинете |
file | File[] | Да | Файлы документов для обработки |
Важно
В отличие от первой версии API, V2 позволяет загружать несколько изображений документа одновременно в массиве file
.
Пример запроса#
import requests
url = 'https://kyc.biometric.kz/api/v2/backend/document/process/'
files = [
('file', ('document-front.jpg', open('kz-id-front.jpg', 'rb'), 'image/jpeg')),
('file', ('document-back.jpg', open('kz-id-back.jpg', 'rb'), 'image/jpeg'))
]
data = {
'api_key': '<YOUR_API_KEY>'
}
response = requests.post(url, files=files, data=data)
print(response.json())
const formData = new FormData();
formData.append('api_key', '<YOUR_API_KEY>');
formData.append('file', document.querySelector('#frontside').files[0]);
formData.append('file', document.querySelector('#backside').files[0]);
fetch('https://kyc.biometric.kz/api/v2/backend/document/process/', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.log('error', error));
Пример ответа#
Описание полей в ответе#
-
backend_session_id - Уникальный идентификатор сессии
-
optical_checks - Результаты оптических проверок документа:
- overall_status - Общий статус проверок
- doc_type - Статус проверки типа документа
- expiry - Проверка срока действия документа
- image_qa - Проверка качества изображения
- mrz - Проверка машиночитаемой зоны
- pages_count - Количество страниц документа
- security - Проверка элементов защиты
- text - Проверка читаемости текста
-
quality_checks - Результаты проверки качества для каждой страницы документа:
- image_glares - Проверка отсутствия бликов на изображении
- image_focus - Проверка четкости изображения
- image_resolution - Проверка разрешения изображения
- image_colorness - Проверка цветопередачи изображения
- perspective - Проверка корректности угла съемки
- bounds - Проверка видимости границ документа
- portrait - Проверка качества фотографии в документе
- brightness - Проверка уровня освещенности
- page - Идентификатор страницы документа
-
document_types - Информация о типах документов:
- name - Наименование документа
- type - Тип документа. Все типы документов перечислены здесь
- type_id - Системный идентификатор типа документа
- issue_year - Год выпуска формы документа
- issuing_country - Страна выдачи документа
- has_rfid - Наличие RFID-чипа в документе
- has_mrz - Наличие машиночитаемой зоны
- format - Формат документа в системе
- country_code - Код страны по стандарту ISO
- prediction - Уровень уверенности в определении типа документа
- required_light_schemes - Требуемые схемы освещения для проверки
- authenticity_light_schemes - Схемы освещения для проверки подлинности
- page - Номер страницы документа
- document_id - Внутренний идентификатор документа в системе
-
visual_text_json - Текстовые данные, извлеченные из визуальной зоны документа. Все наименование полей, которые могут быть возвращены, перечисленны здесь
-
mrz_text_json - Данные, извлеченные из машиночитаемой зоны. Все наименование полей, которые могут быть возвращены, перечисленны здесь
-
images - Изображения документа и его элементов:
- type - Тип изображения. Все возможные типы изображений перечисленны здесь
- content - Изображение в формате base64
- page - Номер страницы для изображений документа
Пример ответа в формате JSON#
{
"backend_session_id": "54dc1539-f9a4-4488-8e0d-04e87f86bcbe",
"optical_checks": {
"overall_status": true,
"doc_type": true,
"expiry": true,
"image_qa": true,
"mrz": true,
"pages_count": 2,
"security": true,
"text": true
},
"quality_checks": [
{
"image_glares": true,
"image_focus": true,
"image_resolution": true,
"perspective": true,
"bounds": true,
"portrait": true,
"page": 0
},
{
"image_glares": true,
"image_focus": true,
"image_resolution": true,
"perspective": true,
"bounds": true,
"page": 1
}
],
"document_types": [
{
"name": "Kazakhstan - Id Card (2014) Side B",
"type": "identity_card",
"type_id": 12,
"issue_year": "2014",
"issuing_country": "Kazakhstan",
"has_rfid": true,
"has_mrz": true,
"format": 0,
"country_code": "KAZ",
"prediction": 0.9406079649925234,
"required_light_schemes": 25165824,
"authenticity_light_schemes": 3224,
"page": 1,
"document_id": -1040772430
},
{
"name": "Kazakhstan - Id Card (2014-2022)",
"type": "identity_card",
"type_id": 12,
"issue_year": "2014-2022",
"issuing_country": "Kazakhstan",
"has_rfid": false,
"has_mrz": false,
"format": 0,
"country_code": "KAZ",
"prediction": 0.9425698518753053,
"required_light_schemes": 25165824,
"authenticity_light_schemes": 152,
"page": 0,
"document_id": -1040772594
}
],
"visual_text_json": {
"surname_and_given_names": "ИВАНОВ ИВАН",
"years_since_issue": "4",
"age_at_issue": "24",
"place_of_birth": "КАЗАХСТАН, АЛМАТЫ",
"authority": "МВД РЕСПУБЛИКИ КАЗАХСТАН",
"date_of_issue": "01.01.2020",
"nationality": "КАЗАХ",
"surname": "ИВАНОВ",
"given_names": "ИВАН"
},
"mrz_text_json": {
"document_class_code": "ID",
"age": "29",
"nationality": "Kazakhstan",
"issuing_state_name": "Kazakhstan",
"remainder_term": "63",
"final_check_digit": "7",
"nationality_code": "KAZ",
"date_of_expiry_check_digit": "8",
"date_of_expiry": "01.01.2030",
"sex": "M",
"date_of_birth_check_digit": "7",
"date_of_birth": "01.01.1995",
"personal_number": "950101300123",
"mrz_strings": "IDKAZ0123456789950101300123<<<^9501017M3001018KAZ<<<<<<<<<<<7^IVANOV<<IVAN<<<<<<<<<<<<<<<<",
"document_number_check_digit": "1",
"document_number": "012345678",
"issuing_state_code": "KAZ",
"last_name": "IVANOV",
"first_name": "IVAN",
"given_names": "IVAN",
"surname": "IVANOV",
"mrz_type": "ID-1",
"surname_and_given_names": "IVANOV IVAN",
"line_2_optional_data": "KAZ",
"optional_data": "950101300123"
},
"images": [
{
"type": "portrait",
"content": "base64"
},
{
"type": "signature",
"content": "base64"
},
{
"type": "bar_code",
"content": "base64"
},
{
"type": "document_front",
"content": "base64",
"page": 0
},
{
"type": "document_front",
"content": "base64",
"page": 1
},
{
"type": "ghost_portrait",
"content": "base64"
}
]
}