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

![](/files/-MIQd8GjUGnXT-INX_AR)

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

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

1. Работает с фотографиями и сканами документов.
2. Находит на изображении все документы, даже если на одном скане присутствуют сразу паспорт, СНИЛС и водительские права.
3. Отделяет документы от фона. Например, от рук, столов или обоев в цветочек.
4. Поворачивает и при необходимости зеркально отражает документ.
5. Присваивает тип каждому найденному документу. Вы можете посмотреть, какие документы мы умеем классифицировать, в разделе [«Типы документов»](/dbrain-official/tipy-dokumentov.md).

{% hint style="info" %}
Обратите внимание, что классификатор может вернуть в API такие типы:

* **other** — документ неизвестного типа
* **not\_document** — не документ, например, фото кота
* **empty** — пустая страница
  {% endhint %}

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

Есть 4 популярных способа взаимодействия с сервисом. Для любого из них вам нужен ключ лицензии. Чтобы получить ключ, напишите нам в[ телеграм](https://t.me/dbrain_support_bot) или на <hello@dbrain.io>.

Подготовьте изображение документа для теста. Если у вас такого нет, используйте [паспорт РФ из Википедии](https://ru.wikipedia.org/wiki/Паспорт_гражданина_Российской_Федерации#/media/Файл:Pasport_RF.jpg).

<details>

<summary>Через терминал</summary>

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

* `token` — ваш ключ лицензии
* `image` — файл с изображением документа

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

```bash
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'
```

</details>

<details>

<summary>Через Swagger</summary>

* Подготовьте ключ лицензии
* Откройте [Swagger](https://latest.dbrain.io/docs) и нажмите кнопку `Authorize` в правом верхнем углу
* Введите свой токен в любое поле и нажмите `Authorize`
* Прокрутите вниз до раздела `Documents`, нажмите на метод `/classify`
* В открывшемся разделе нажмите на кнопку `Try it out`
* Прокрутите страницу вниз до раздела `Request body`
* Нажмите на кнопку `Выберите файл` пункта `image`
* Укажите изображение, которое нужно распознать
* Нажмите кнопку `Execute`
* Ответ сервиса появится в пункте `Response body` раздела `Responses`
* Полученный на этом этапе `Curl` мы рекомендуем использовать как основу для написания интеграции с API сервиса Dbrain

</details>

<details>

<summary>Через веб-демо</summary>

1. Откройте [demo.dbrain.io](https://demo.dbrain.io)
2. Введите ключ лицензии в поле «Введите токен»
3. Нажмите кнопку «Выберите файлы для распознавания»
4. Укажите изображение, которое нужно распознать
5. Нажмите кнопку «Классифицировать»

</details>

<details>

<summary>Через Python</summary>

{% code overflow="wrap" %}

```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)
```

{% endcode %}

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

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

</details>

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

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

{% hint style="success" %}
**return\_crops — boolean**
{% endhint %}

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

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

{% hint style="info" %}
Перед началом работы с сервисами изучите раздел [«Общая информация о сервисах»](/dbrain-official/obshaya-informaciya-o-servisakh.md). Там мы рассказываем про допустимые форматы файлов, виды запросов и ответов, набор HTTP-статусов и даём рекомендации по устранению ошибок
{% endhint %}

## В ответе API:

* `task_id` — string, идентификатор запроса, формат: 32 символа, 16-ричная строка
* `items` — массив, который содержит найденные документы
  * `document` — объект, который содержит один из найденных документов
    * `type`— string, тип найденного документа, возможные типы перечислены в таблице выше&#x20;
    * `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, сообщение об ошибке, которое содержит информацию о том, где произошла ошибка в коде и какие функции были вызваны перед ней. Это сообщение может помочь разработчикам понять причину возникновения ошибки и исправить ее. Передайте её нашей службе поддержки.

{% hint style="info" %}
Остальные поля не несут практического смысла. Оставили их для совместимости со старыми версиями.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.dbrain.io/dbrain-official/document-classification.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
