Методы для управления видеодетекцией лиц

В этом разделе:

Создание job-задания

POST /job/:id

Создает задание на обработку видеопотока (job) для компонента findface-video-worker.

Параметры в сегментах пути

id: id job-задания

Параметры в теле запроса:

  • stream_url: URL/адрес видеопотока или файла для обработки.
  • labels: метки, по которым будет осуществляться обработка обнаруженных лиц в компоненте findface-facerouter.
  • single_pass: если true (по умолчанию false), то не перезапускать обработку потока в случае ошибки.
  • Параметры конфигурации компонента findface-video-manager, которые должны быть уникальны для обрабатываемого видеоизображения по сравнению со значениями, заданными по умолчанию в файле конфигурации findface-video-manager.

Возвращает:

Объект job: все, что было передано в запросе, а также параметры объекта, предназначенные только для чтения.

Пример

Запрос

curl -s 'http://localhost:18810/job/myid-123' --data '{"stream_url":"http://1.2.3.4/stream.mp4", "labels": {"district": "SVAO"}}' | jq

Ответ

{
  "id": "myid-123",
  "stream_url": "http://1.2.3.4/stream.mp4",
  "labels": {
    "district": "SVAO"
  },
  "router_url": "http://localhost:1514/",
  "single_pass": false,
  "status": "AWAITING",
  "status_msg": "",
  "statistic": {
    "processed_duration": 0,
    "faces_posted": 0
  },
  "worker_id": ""
}

Получение списка всех заданий

GET /jobs

Данный метод возвращает список существующих job-заданий.

Параметры:

Отсутствуют.

Возвращает:

Список всех заданий в представлении JSON.

Пример

Запрос

curl -s 'http://localhost:18810/jobs' | jq

Ответ

[
    {
        "id": "b9c73bhg74hnekpaa0o0",
        "stream_url": "http://1.2.3.4/stream.mp4",
        "labels": {
            "district": "SVAO"
        },
        "router_url": "http://localhost:1514/",
        "single_pass": false,
        "status": "AWAITING",
        "status_msg": "",
        "worker_id": ""
    },
    {
        "id": "b9c73rhg74hnekpaa0og",
        "stream_url": "http://xxx.ru/stream.mp4",
        "labels": {
            "district": "ZAO"
        },
        "router_url": "http://localhost:1514/",
        "single_pass": false,
        "status": "AWAITING",
        "status_msg": "",
        "worker_id": ""
    }
]

Получение задания по id

GET /job/:id

Данный метод возвращает параметры задания по id.

Параметры в сегментах пути:

id: id job-задания.

Возвращает:

Представление JSON объекта job.

Пример

Запрос

curl -s 'http://localhost:18810/job/b9c73rhg74hnekpaa0og' | jq

Ответ

{
    "id": "b9c73rhg74hnekpaa0og",
    "stream_url": "http://xxx.ru/stream.mp4",
    "labels": {
        "district": "ZAO"
    },
    "router_url": "http://localhost:1514/",
    "single_pass": false,
    "status": "AWAITING",
    "status_msg": "",
    "worker_id": ""
}

Удаление задания по id

DELETE /job/:id

Данный метод удаляет задание по id.

Параметры в сегментах пути:

id: id job-задания.

Возвращает:

Представление JSON удаленного объекта job.

Пример

Запрос

curl -s 'http://localhost:18810/job/myid-123' -X DELETE | jq

Ответ

{
  "id": "myid-123",
  "stream_url": "http://1.2.3.4/stream.mp4",
  "labels": {
    "district": "SVAO"
  },
  "router_url": "http://myrouter",
  "single_pass": false,
  "status": "DELETED",
  "status_msg": "",
  "statistic": {
    "processed_duration": 0,
    "faces_posted": 0
  },
  "worker_id": "b9kqns1g74hm6mbmhbqg"
}

Изменение задания

PATCH /job/:id

Изменяет параметры задания по id.

Параметры в сегментах пути:

id: id job-задания.

Параметры в теле запроса:

  • id: id job-задания.
  • stream_url: URL/адрес видеопотока или файла для обработки.
  • labels: метки, по которым будет осуществляться обработка обнаруженных лиц в компоненте findface-facerouter.
  • single_pass: если true (по умолчанию false), то не перезапускать обработку потока в случае ошибки.
  • router_url: IP-адрес и порт компонента findface-facerouter, на который компонент findface-video_worker будет отправлять обнаруженные лица для обработки.
  • status: статус job-задания.
  • status_msg: дополнительная информация о статусе job-задания.
  • statistic: статистика выполнения задания (продолжительность использования задания, количество отправленных лиц).
  • worker_id: id экземпляра findface-video-worker, выполняющего job-задание.
  • Параметры конфигурации компонента find-video-manager с новыми значениями. Данные значения имеют приоритет по сравнению с заданными в файле конфигурации find-video-manager.

Возвращает:

Представление JSON измененного объекта job.

Пример

Запрос

curl -s 'http://localhost:18810/job/myid-123' -X PATCH --data '{"router_url":"http://myrouter"}' | jq
{
  "id": "myid-123",
  "stream_url": "http://1.2.3.4/stream.mp4",
  "labels": {
    "district": "SVAO"
  },
  "router_url": "http://myrouter",
  "single_pass": false,
  "status": "INPROGRESS",
  "status_msg": "",
  "statistic": {
    "processed_duration": 0,
    "faces_posted": 0
  },
  "worker_id": "b9kqns1g74hm6mbmhbqg"
}

Перезапуск задания

RESTART /job/:id

Данный метод перезапускает задание по id.

Параметры в сегментах пути:

id: id job-задания.

Возвращает:

HTTP/1.1 200 OK в случае успеха.

Пример

Запрос

curl -s -D - -X RESTART http://localhost:18810/job/1

Ответ

HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: VbhV3vC5
Date: Tue, 24 Apr 2018 15:23:19 GMT
Content-Length: 0
З