Перейти к содержанию

Использование FaceStream с конфигурационными файлами#

При необходимости можно запускать FaceStream независимо от настроек "FACE_STREAM_CONFIG" и "TRACK_ENGINE_CONFIG" сервиса LUNA Configurator, используя настройки из конфигурационных файлов.

При таком варианте запуска подразумевается, что зависимые сервисы LUNA PLATFORM также будут запущены с конфигурационными файлами. Описание запуска сервисов LUNA PLATFORM с конфигурационными файлами не приведено в данной документации.

Запуск FaceStream с настройками из конфигурационных файлов осуществляется с использованием следующих конфигурационных файлов:

  • fs3Config.conf (настройки аналогичны секции "FACE_STREAM_CONFIG" в LUNA Configurator)
  • trackengine.conf (настройки аналогичны секции "TRACK_ENGINE_CONFIG" в LUNA Configurator)
  • faceengine.conf

Следует предварительно задать все необходимые параметры в данных файлах перед запуском FaceStream.

Команда ручного запуска контейнера с использованием конфигурационных файлов будет отличаться от команды запуска c Configurator и будет выглядеть следующим образом:

docker run \
--env=CONFIGURATION_PATH=/srv/facestream/data/fs3Config.conf
-v /var/lib/fs/fs-current/extras/conf/configs/fs3Config.conf:/srv/facestream/data/fs3Config.conf \
-v /var/lib/fs/fs-current/extras/conf/configs/faceengine.conf:/srv/facestream/data/faceengine.conf \
-v /var/lib/fs/fs-current/extras/conf/configs/trackengine.conf:/srv/facestream/data/trackengine.conf \
-v /etc/localtime:/etc/localtime:ro \
--restart=always \
--detach=true \
--name=facestream \
--network=host \
--env=PORT=34569 \
--entrypoint /srv/facestream/FaceStream \
dockerhub.visionlabs.ru/luna/facestream:v.5.2.8 \
--config-path /srv/facestream/data/fs3Config.conf \
--data-dir /srv/facestream/data \
--log-dir /srv/facestream/logs \
--http-address http://0.0.0.0:34569

Обратите внимание, что если указаны переменные окружения "CONFIGURATOR_HOST" и "CONFIGURATOR_PORT", то флаг "CONFIGURATION_PATH" будет проигнорирован.

Файлы настроек находятся в комплекте поставки FaceStream в директории "extras/conf/configs/" и добавляются в контейнер при запуске следующими командами:

-v /var/lib/fs/fs-current/extras/conf/configs/fs3Config.conf:/srv/facestream/data/fs3Config.conf \
-v /var/lib/fs/fs-current/extras/conf/configs/faceengine.conf:/srv/facestream/data/faceengine.conf \
-v /var/lib/fs/fs-current/extras/conf/configs/trackengine.conf:/srv/facestream/data/trackengine.conf \

Ключи запуска с конфигурационными файлами#

Для запуска FaceStream с конфигурационными файлами внутри контейнера используется следующая команда, которая позволяет указать корректные пути до директорий внутри контейнера.

--config-path /srv/facestream/data/fs3Config.conf \
--data-dir /srv/facestream/data \
--log-dir /srv/facestream/logs \
--streams-id 426542d6-5509-4e5b-8a01-e2abd5c0a8c6 ee4c42b6-23ae-410e-a2aa-a4220e64ba4b
--groups-name stream_group-1 stream_group-2
--config-reload 1
--pulling-time 1800
--http-address http://0.0.0.0:34569

Доступны следующие ключи:

  • --help — выдает перечень доступных ключей и их описание.

  • --config-path – полный путь к файлу настроек приложения "fs3Config.cfg". Если определен данный параметр, то при поиске конфигурационного файла игнорируется путь к данным.

  • --data-dir – путь к директории с данными детекторов и настройками.

  • --log-dir – директория для записи файлов логирования.

  • --streams-id — в теге задается список идентификаторов потоков, которые будут запрошены из LUNA Streams для обработки. Остальные потоки будут отфильтрованы. Параметр "stream_id" выдается в ответе на запрос "create stream".

Если тег --streams-id не задан, то FaceStream будет брать из очереди все существующие "stream_id".

Если задано несуществующее значение, то при запуске FaceStream будет указана ошибка о некорректном UUID.

  • --streams-name — в теге задается список имен потоков. Имена потоков задаются с помощью параметра "name" во время их создания (запрос "create streams"). Потоки с данными именами будут запрошены из LUNA Streams для обработки. Остальные потоки будут отфильтрованы.

В остальном принцип работы схож с тегом --streams-id.

  • --groups-id и --groups-name — в тегах задаются список идентификаторов групп или список имён групп. Параметры "group_id" или "group_name" задаются во время создания потока (запрос "create stream"). Потоки с данными параметрами будут запрошены из LUNA Streams для обработки. Остальные потоки будут отфильтрованы.

Если теги --groups-id/--groups-name не заданы, то FaceStream не будет фильтровать потоки по группам.

Если задано несуществующее значение, то при запуске FaceStream будет указана ошибка о некорректном UUID.

  • --config-reload — тег, включающий проверку наличия изменений в файле "fs3Config.conf" и принимающий следующие значения:

  • "1" — отслеживание изменений включено, при наличии изменений в конфигурации будут автоматически перезапущены все контейнеры FaceStream.

  • "0" — отслеживание изменений отключено.

По умолчанию значение равно "1"

  • --pulling-time — тег, задающий период получения новых параметров из файла "fs3Config.conf" в диапазоне [1...3600] сек. Используется совместно с тегом --config-reload.

По умолчанию значение равно "10".

  • --http-address — HTTP адрес, который будет прослушивать FaceStream. Задаётся в формате "address:port" (используется только для FaceStream в серверном режиме). На этот адрес пользователь будет отправлять запросы.

Следует задать внешний IP сервера FaceStream. По умолчанию задано «http://0.0.0.0:34569».