Периферийные устройства
Что такое периферийные устройства
Периферийные устройства — это физические устройства (например, терминалы контроля доступа), которые могут отправлять изображения в 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 видеопотока. У вас нет видеопотока, поэтому укажите любое значение, начинающееся с |
active |
Статус активности объекта Camera. Установите значение “выключено”, для этого укажите |
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" } ] }