Сервер на базе Intel NUC, который осуществляет обработку данных с 80 камер с агрегацией этих данных через ПО Cumulator
Цели и задачи, которые решает программный продукт Cumulator:
- Сборка данных с множества устройств
- Единая точка доступа к событиям по REST API
- Централизованное хранение событий
- Визуализация и отображение данных об установленных и подключенных устройствах и событиях на них в режиме реального времени
- Управление множеством устройств (мониторинг, подключение)
Для интеграции мы остановились на QNAP AppCenter, т.к. внутри используются Docker-контейнеры, в рамках которых может работать программное обеспечение сторонних разработчиков. Тестовое оборудование QNAP:
СХД QNAP для агрегации данных в объектовой видеоаналитике
Технические детали
Все ПО было запущено на QNAP TVS-871T, Intel Core(TM) i5-4590S CPU 3.00GHz, Version 4.4.1.1086 (2019/10/10), Linux-kernel 4.14.24-qnap, под system-docker Version:17.09.1-ce, API version: 1.32, OS/Arch: linux/amd64
СХД укомплектовали дисками Seagate 7200 Exos 7E2 объемом 1 Tb.
Cumulator запустился из консоли с помощью system-docker и через Container Station V2.0.356 (приложение в GUI-обертке для docker из AppCenter).
QNAP Container Station
Параллельно мы протестировали работу инференса на СХД. Мы смогли запустить инференс только в консоли на system-docker. Причина – в графическом интерфейсе нет настроек по расширенному монтированию разделов (проблема всех GUI-приложений — урезание настроек, которые обычным пользователям не нужны).
Запуск инференса в консоли на system-docker
Docker-контейнеры собираются из образа с помощью docker-compose, на этом этапе сборку из Dockerfile не делали. Строка запуска выглядит так:
system-docker run --detach --name=edgeserver-testing -p 18081:8081 -p 18082:8082 -p 15433:5433 --mount type=bind,source=/sys/fs/cgroup,target=/sys/fs/cgroup --mount type=bind,source=/sys/fs/fuse,target=/sys/fs/fuse --mount type=tmpfs,destination=/run --privileged -v /dev/bus/usb:/dev/bus/usb --mount type=tmpfs,destination=/run/lock ubuntu-edge
Как можно заметить, мы запустили Docker в привилегированном режиме для того, чтобы ПО смогло обнаружить USB-ключи Sentinel (все порты, так как мы заранее не знаем куда могут быть вставлены ключи, в каком количестве и не будут ли они потом перемещены на другой порт). На этом этапе запуск в привилегированном режиме посчитали приемлемым.
Резюме
Приложение Cumulator, запущенное на QNAP со статистикой потребления ресурсов CPU, RAM:
Приложение Cumulator, запущенное на СХД QNAP
По статистике потребления ресурсов видно, что их достаточно в рамках СХД. Фактически, инференс, т.е. исполнение нейронных сетей, выполняется на удаленных устройствах (серверах, камерах, специализированных устройствах рядом с камерами), а агрегацией, сборкой и хранением данных занимается само СХД со специализированным ПО. Это программное обеспечение собирает данные по REST API и по мере необходимости отдает смежным информационным системам.