Методы для управления видеодетекцией лиц
В этом разделе:
Создание 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
З