Периферийные устройства

Что такое периферийные устройства

Периферийные устройства — это физические устройства (например, терминалы контроля доступа), которые могут отправлять изображения в FindFace Lite для распознавания объектов. Для того, чтобы эти устройства получили результаты распознавания, необходимо настроить вебхуки.

Процесс распознавания с периферийных устройств такой же, как и с камер видеонаблюдения. Разница заключается в том, что Event’ы создаются непосредственно с периферийного устройства при помощи POST-запроса, а не из системы FindFace Lite.

Подготовка к процессу распознавания

Перед интеграцией периферийного устройства пройдите аутентификацию и укажите Object’ы и Card’ы , которые будут использоваться для распознавания данных из созданных Event’ов .

Пройдите аутентификацию

Для выполнения всех операций (кроме тех, которые связаны с Event’ами) авторизуйтесь в системе, используя POST-запрос /v1/auth/login. Для работы с Event`ами используется токен, указанный в конфигурационном файле.

Для параметров username и password используйте данные, полученные по завершению на ШАГА 5.

Пример запроса:

{
  "username": "login",
  "password": "password"
}

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

{
   "access_token": "token"
}

Создайте объект Card

Card используется для хранения нескольких Object’ов под единым профилем человека или автомобиля. В процессе распознавания Card рассматривается как результат распознавания.

Чтобы создать Card, используйте POST-запрос /v1/cards/. Все параметры описаны ниже.

Параметры

Типы значений

Описание

name

строка

Название Card.

active

true

Объект Card выключен.

false

Объект Card включен.

type

face

Объект Card создан для хранения информации о лице.

car

Объект Card создан для хранения информации об автомобиле.

wiegand

строка

Код интерфейса Wiegand в системе контроля доступа.

Пример запроса:

{
  "name": "test card",
  "active": true,
  "type": "face",
  "wiegand": "test wiegand code"
}

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

{
  "name": "test card2",
  "active": true,
  "type": "face",
  "wiegand": "test wiegand cod2e",
  "id": 2,
  "objects": []
}

Создайте объект Object

Objects соответствует реальному лицу или автомобилю. Чтобы создать объект необходимо добавить соответствующие изображение и ссылку на Card, используя POST-запрос /v1/objects/.

Все запросы описаны ниже.

Параметры

Типы значений

Описание

card_id:

число

Идентификатор объекта Card, с которым необходимо связать Object. К одной Card может быть привязано несколько Object’ов.

type

enum

Тип объекта, который вы хотите создать. Сar — изображение автомобиля, face — изображение лица, license_plate — изображение номерного знака автомобиля.

input_file:

строка

Укажите название файла, который содержит лицо человека или изображение автомобиля, которые вы хотите добавить в качестве Object’ов в систему.

Пример запроса:

{
  "card_id": "2",
  "type": "face",
  "input_file": "somehash.jpg"
}

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

{
  "id": 1,
  "emben": "vV1yPfc2izy...de8vY/bvNXLfDw=",
  "type": "face",
  "card": 4,
  "filename": "somehash.jpg"
}

Интеграция периферийного устройства

Чтобы интегрировать периферийное устройство, используйте API. Все необходимые шаги и связанные операции описаны ниже.

Создайте объект Camera

Создайте объект Camera, используя POST-запрос /v1/cameras/.

Примечание

Объект Camera не используется в процессе распознавания при помощи периферийных устройств. Он необходим только для создания объектов Event.

Ниже приведено описание параметров, необходимых для создания объекта Camera. Параметры, которые не включены в таблицу, описывают настройки для обработки видеопотоков. Вы можете не обращать внимание на них, т.к. при использовании периферийных устройств в FindFace Lite отправляются изображения, а не видеопотоки.

Параметры

Описание

name

Название объекта Camera. Выберите любое.

url:

URL видеопотока. У вас нет видеопотока, поэтому укажите любое значение, начинающееся с rtmp://.

active

Статус активности объекта Camera. Установите значение “выключено”, для этого укажите false.

stream_settings:

Настройки для видеопотоков с камеры видеонаблюдения. Необходимо заполнить только обязательный параметр — detectors.

detectors

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

Пример запроса:

{
  "name": "Edge device",
  "url": "rtmp://none",
  "active": false,
  "stream_settings": {
      "detectors": {
      }
  }
}

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

{
  "name": "Edge device",
  "url": "rtmp://none",
  "active": false,
  "single_pass": false,
  "stream_settings": {
      "rot": "",
      "play_speed": -1,
      "disable_drops": false,
      "ffmpeg_format": "",
      "ffmpeg_params": [],
      "video_transform": "",
      "use_stream_timestamp": false,
      "start_stream_timestamp": 0,
      "detectors": {}
  },
  "id": 2,
  "status": "UNKNOWN"
}

Настройте периферийное устройство

Предупреждение

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

Настройте отправку POST-запросов /v1/events/{object_type}/add периферийным устройством в FindFaceLite. В случае с периферийными устройствами, Event — это изображение зафиксированного лица или автомобиля, попавших в зону периферийного устройства.

Ниже описаны параметры, которые периферийное устройство должно отправлять в POST-запросе к FindFace Lite API.

Параметры

Типы значений

Описание

object_type

car

Параметр пути запроса /v1/events/{object_type}/add, который указывает на объект распознавания.

face

license_plate

token

строка

Авторизация при помощи токена, указанного в параметре event_creation_token конфигурационного файла.

camera

число

Идентификатор объекта Camera, с которым связан созданный Event.

fullframe

бинарные данные

Изображение в любом из подходящих форматов (jpeg, png, etc.).

rotate

true

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

false

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

timestamp

дата-время

Дата и время в формате yyyy-MM-dd’T’HH:mm:ss. SSSXXX, например: 2000-10-31T01:30:00.000-05:00.

mf_selector

all

Параметр фиксации множества объектов включен. Распознаются все объекты на изображении.

biggest

Параметр фиксации множества объектов выключен. Распознается только самый большой объект на изображении.

roi

числа

Аббревиатура roi используется для обозначения области распознавания. Укажите значения в формате [слева, сверху, справа, снизу], где значения в скобках — это числа в градусах. Указанными значениями формируется область распознавания.

Пример запроса:

{
    "object_type": "face",
    "token": "change_me",
    "camera": 2,
    "fullframe": "somehash.jpg",
    "rotate": true,
    "timestamp": "2000-10-31T01:30:00.000-05:00",
    "mf_selector": "biggest",
    "roi": 15,20,12,14
}

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

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

  • Отображается только ID Event’а.

{
  "events": [
    "cc04cc9c-f355-4121-80c4-94a02eec652a",
    "c7d51db3-5b52-4318-9565-e2651308c1a6"
  ]
}
  • Отображается полная информация о созданном Event’e, включая информацию о совпавшем Card, путь до полноразмерного изображения и др.

{
  "events": [
    {
      "bbox_bottom": 97,
      "bbox_left": 170,
      "bbox_right": 214,
      "bbox_top": 39,
      "bs_type": "realtime",
      "camera": 1,
      "card": null,
      "confidence": null,
      "created_date": "2022-12-29 13:02:07.910724+00:00",
      "emben": "bmY3Pff9Grt1Ah09lp8kvn+a6Tw8SZs8K5xtvLOjtrxFtJ+9d5WIPH3PHL39acg9oNWhu4Mv2j2VjPo8QqDjubiFkz05Bou9SywUvMZ39bxYIhs9ucWxPTbApD3n8468/aQBvfdqFD2/woc9j03iO5U3vT1P6ya9BfNyPUCBkz1Smmm8CIPvPRPxWTzWXxo8DwRGvMxfp7zRhGw8KyZzPtwoCT0Bx7C9AcKWvflgUb2NLWQ9KmmjPUJ83D3XFVY9wdO7vX7/BD7OU8M9grEbPVTZCb3mgXg+LxfEvdm6uL2wLh08BU6yPQhREz0kj1M98tY+PNbA9D1MDC07Tp4dPjh7n7zZAQS9/JFzPWEJCb1CTwU+3deFvQb/hz2YaAa+Qbjpvd0UFb7HVtG9NEhLPMfS1rouTk49f6DTOy9r/j373aG7hBa3PW/eJT5Zuz08cO+2PZXVDL3hemE8sYa0PY7Xtj06NAG+Stw4vrhQhb2KtJe9J8hCvTM/Gr4vr0m9S3jJvfnBHz2QVgk97HuzvH2V/71lQsk9l4UTvqE3XD1ssos9ErvcvY5CCr6ftJ+9EOarPOKvKr0JFa69sdyCvQPcuj2nLtO89I+iuzS+aj1bTgY+qT4dPtREVz2iwLu9pM45PTjxe7yOyOm88t74PXgj3b0FDKA9uiaRvcs1Ez5dchS+5lTpO7D3Tb3CVLw8zrQwvczzq7wPVEo9OeEgvORUOz1x2Qk9pWKDPTdDjT24pXQ9MCWJPRe8iD1Vxse7iNmivY+coT2VRrG93XugPeZlrr3LSoU9iwpcPTF2uT2Bwei8ffa+u6JwLTwAk8M8NfAaveDZqT3AchA9Y/rVPA==",
      "features": {
        "headpose": {
          "pitch": 11.207756,
          "roll": 3.1429868,
          "yaw": 4.652887
        },
        "liveness": 0.6584981
      },
      "fullframe": "2022/12/29/13/c436c2d92c4c627d5c6d13f9f1d9555a.jpg",
      "type": "face",
      "uuid": "2f25dd19-d0cd-4b44-9147-69a7dc57450e"
    },
    {
      "bbox_bottom": 75,
      "bbox_left": 57,
      "bbox_right": 100,
      "bbox_top": 15,
      "bs_type": "realtime",
      "camera": 1,
      "card": 1,
      "confidence": 0.8306973576545715,
      "created_date": "2022-12-29 13:02:07.917896+00:00",
      "emben": "yRukvSOo1r2Bcm699SGTO/SPBz64MvK9xINqPYDge708nSW9ba4BvAVgLz77ctw7A2OhvZ5LRD2rA1488DLnvSKQXT0ER367zf20vdypqb2Lhog8nIxjPa7E9rwqCuI9+lHAPDjvWLzxJko+aXkRPBgWfr1u9pi982G8PW4FEr3vlqM91VW5vXRxoz3B4OE9kLLPPfznu71po4w9sPVFPR4tH73Qe4+9/wKlvVlwr724Ll09LdqYPeOq170bDua8Zn2lPNy8dr0TF9G7VhMXPT6yQz0aCI49h8OJPQVTKb25oB+9x9++PEKCFj4uq0i8bBhoPbJPVjxkCgO+drV/PR3mrbxs+rW7TQqNO4QcFz2oI407H4nfvY/nQD57Y2m9ItFMPZQKibzobRi6cf9wPT1itz0lkw89qUv0vS9RVDxjGoC9E3SiOxqSsbzjnyc+P4ZnPpFjEz5XMZE8IuILvYvgQjwYu/A9waicOx9On7z0kW+9k7EmvIxuuLwdPPo9t5H3vQETLz6FcGQ+1fOqvfkwKz0rfSO9ckoivV65k70xw5296raIvYnnE70gaYa8IE1pvQZ+tr0VpJM8oAAWO8lU8zxlaai9WbnJvYPgHL29ouy8GyALvsoj1D1BiHg4+F2xPZlVhTyiiIS8eZFCPvUfTD4UcNQ9j2bqvUjSlbySk1+9q4ljvdcqyTzCnLa7hDgLvcb1oL2ScLo8GSYqvZW82b1Ppma9Ni2ePcrWQj34xxs8WU+2vbGUuD1+r0S9wieuPUfEkLthyCE9iZ3oOy9TED2RAVW93nXMvcVoAz1plvK9n8UOPUV3grvH+yO9DEohPAMYDD0hd+698x6TvQ==",
      "features": {
        "headpose": {
          "pitch": -2.1808214,
          "roll": -0.5856089,
          "yaw": -4.5041146
        },
        "liveness": 0.5574532
      },
      "fullframe": "2022/12/29/13/4ef96c620d738d87c00aaaaa12fccca2.jpg",
      "type": "face",
      "uuid": "9b718d45-919a-490f-9fe6-b2af58cbf83a"
    }
  ]
}
  • Отображается полная информация о созданном Event’e (включая информацию о совпавшем объекте Card, путь до полноразмерного изображения и др.), а также полная информация о Card.

{
  "events": [
    {
      "bbox_bottom": 97,
      "bbox_left": 170,
      "bbox_right": 214,
      "bbox_top": 39,
      "bs_type": "realtime",
      "camera": {
        "active": false,
        "id": 1,
        "name": "test camera",
        "single_pass": false,
        "status": "DISABLED",
        "url": "rtmp://test"
      },
      "card": null,
      "confidence": null,
      "created_date": "2022-12-29 13:48:34.624541+00:00",
      "emben": "bmY3Pff9Grt1Ah09lp8kvn+a6Tw8SZs8K5xtvLOjtrxFtJ+9d5WIPH3PHL39acg9oNWhu4Mv2j2VjPo8QqDjubiFkz05Bou9SywUvMZ39bxYIhs9ucWxPTbApD3n8468/aQBvfdqFD2/woc9j03iO5U3vT1P6ya9BfNyPUCBkz1Smmm8CIPvPRPxWTzWXxo8DwRGvMxfp7zRhGw8KyZzPtwoCT0Bx7C9AcKWvflgUb2NLWQ9KmmjPUJ83D3XFVY9wdO7vX7/BD7OU8M9grEbPVTZCb3mgXg+LxfEvdm6uL2wLh08BU6yPQhREz0kj1M98tY+PNbA9D1MDC07Tp4dPjh7n7zZAQS9/JFzPWEJCb1CTwU+3deFvQb/hz2YaAa+Qbjpvd0UFb7HVtG9NEhLPMfS1rouTk49f6DTOy9r/j373aG7hBa3PW/eJT5Zuz08cO+2PZXVDL3hemE8sYa0PY7Xtj06NAG+Stw4vrhQhb2KtJe9J8hCvTM/Gr4vr0m9S3jJvfnBHz2QVgk97HuzvH2V/71lQsk9l4UTvqE3XD1ssos9ErvcvY5CCr6ftJ+9EOarPOKvKr0JFa69sdyCvQPcuj2nLtO89I+iuzS+aj1bTgY+qT4dPtREVz2iwLu9pM45PTjxe7yOyOm88t74PXgj3b0FDKA9uiaRvcs1Ez5dchS+5lTpO7D3Tb3CVLw8zrQwvczzq7wPVEo9OeEgvORUOz1x2Qk9pWKDPTdDjT24pXQ9MCWJPRe8iD1Vxse7iNmivY+coT2VRrG93XugPeZlrr3LSoU9iwpcPTF2uT2Bwei8ffa+u6JwLTwAk8M8NfAaveDZqT3AchA9Y/rVPA==",
      "features": {
        "headpose": {
          "pitch": 11.207756,
          "roll": 3.1429868,
          "yaw": 4.652887
        },
        "liveness": 0.6584981
      },
      "fullframe": "2022/12/29/13/5e870f4f9dbd1e27652f6384663b8cab.jpg",
      "type": "face",
      "uuid": "df0821b4-6e52-4b66-abd2-0f642e2a090a"
    },
    {
      "bbox_bottom": 75,
      "bbox_left": 57,
      "bbox_right": 100,
      "bbox_top": 15,
      "bs_type": "realtime",
      "camera": {
        "active": false,
        "id": 1,
        "name": "test camera",
        "single_pass": false,
        "status": "DISABLED",
        "url": "rtmp://test"
      },
      "card": {
        "active": true,
        "id": 1,
        "name": "test card",
        "objects": [],
        "type": "face",
        "wiegand": "test wiegand code"
      },
      "confidence": 0.8306973576545715,
      "created_date": "2022-12-29 13:48:34.633562+00:00",
      "emben": "yRukvSOo1r2Bcm699SGTO/SPBz64MvK9xINqPYDge708nSW9ba4BvAVgLz77ctw7A2OhvZ5LRD2rA1488DLnvSKQXT0ER367zf20vdypqb2Lhog8nIxjPa7E9rwqCuI9+lHAPDjvWLzxJko+aXkRPBgWfr1u9pi982G8PW4FEr3vlqM91VW5vXRxoz3B4OE9kLLPPfznu71po4w9sPVFPR4tH73Qe4+9/wKlvVlwr724Ll09LdqYPeOq170bDua8Zn2lPNy8dr0TF9G7VhMXPT6yQz0aCI49h8OJPQVTKb25oB+9x9++PEKCFj4uq0i8bBhoPbJPVjxkCgO+drV/PR3mrbxs+rW7TQqNO4QcFz2oI407H4nfvY/nQD57Y2m9ItFMPZQKibzobRi6cf9wPT1itz0lkw89qUv0vS9RVDxjGoC9E3SiOxqSsbzjnyc+P4ZnPpFjEz5XMZE8IuILvYvgQjwYu/A9waicOx9On7z0kW+9k7EmvIxuuLwdPPo9t5H3vQETLz6FcGQ+1fOqvfkwKz0rfSO9ckoivV65k70xw5296raIvYnnE70gaYa8IE1pvQZ+tr0VpJM8oAAWO8lU8zxlaai9WbnJvYPgHL29ouy8GyALvsoj1D1BiHg4+F2xPZlVhTyiiIS8eZFCPvUfTD4UcNQ9j2bqvUjSlbySk1+9q4ljvdcqyTzCnLa7hDgLvcb1oL2ScLo8GSYqvZW82b1Ppma9Ni2ePcrWQj34xxs8WU+2vbGUuD1+r0S9wieuPUfEkLthyCE9iZ3oOy9TED2RAVW93nXMvcVoAz1plvK9n8UOPUV3grvH+yO9DEohPAMYDD0hd+698x6TvQ==",
      "features": {
        "headpose": {
          "pitch": -2.1808214,
          "roll": -0.5856089,
          "yaw": -4.5041146
        },
        "liveness": 0.5574532
      },
      "fullframe": "2022/12/29/13/6041c2a71f4e2020d4cbaa52ce9b41f8.jpg",
      "type": "face",
      "uuid": "4dad4c16-f1cd-4ff1-a18a-268b71c1dbec"
    }
  ]
}