Развертывание веб-приложения пространственного анализа

Используйте эту статью, чтобы узнать, как развернуть веб-приложение, которое собирает данные и аналитические данные пространственного анализа из Центр Интернета вещей и визуализирует его. Это позволяет выполнять полезные задачи в широком спектре сценариев и отраслей. Например, если компания хочет оптимизировать использование своего пространства недвижимости, они могут быстро создать решение с различными сценариями.

Из этого руководства вы узнаете, как:

  • Развертывание контейнера пространственного анализа
  • Настройка работы и камеры
  • Настройка подключения Центр Интернета вещей в веб-приложении
  • Развертывание и тестирование веб-приложения

Приложение продемонстрирует следующие сценарии:

  • Определение числа людей, входящих в помещение или на территорию и выходящих оттуда
  • Определение числа людей, входящих в определенную область или зону и выходящих оттуда, и времени, проведенного им там
  • Определение числа людей в масках
  • Определение числа людей, нарушающих правила социального дистанцирования

Необходимые компоненты

Развертывание контейнера пространственного анализа

Выполните инструкции по настройке главного компьютера и подключите устройство IOT Edge к Центру Интернета вещей Azure.

Развертывание службы Центра Интернета вещей Azure в подписке

Сначала создайте экземпляр службы Центра Интернета вещей Azure с ценовой категорией "Стандартный" (S1) или "Бесплатный" (S0). Выполните инструкции ниже, чтобы создать экземпляр с помощью Azure CLI.

Укажите обязательные параметры.

  • Подписка: имя или идентификатор подписки Azure.
  • Группа ресурсов: создайте имя группы ресурсов.
  • Имя Центра Интернета вещей: создайте название Центра Интернета вещей.
  • Имя Центра Интернета вещей: созданное вами название Центра Интернета вещей.
  • Имя пограничного устройства: создайте имя для своего пограничного устройства.
az login
az account set --subscription <name or ID of Azure Subscription>
az group create --name "<Resource Group Name>" --location "WestUS"

az iot hub create --name "<IoT Hub Name>" --sku S1 --resource-group "test-resource-group"

az iot hub device-identity create --hub-name "<IoT Hub Name>" --device-id "<Edge Device Name>" --edge-enabled

Развертывание контейнера в Azure IoT Edge на главном компьютере

Далее нужно выполнить развертывание контейнера для пространственного анализа в качестве модуля IoT на главном компьютере посредством Azure CLI. Для процесса развертывания требуется файл манифеста развертывания, который описывает необходимые контейнеры, переменные и конфигурации для развертывания. Пример манифеста развертывания можно найти здесь (DeploymentManifest.json). Он содержит предварительно созданные конфигурации для всех сценариев.

Настройка переменных среды

Основная часть переменных среды для модуля IoT Edge уже заданы в примере файла DeploymentManifest.json по ссылке выше. В файле найдите указанные ниже переменные среды ENDPOINT и APIKEY. Замените значения на URI конечной точки и созданный ранее ключ API. Для параметра EULA (лицензионное соглашение) должно быть установлено значение "accept" (принять).

"EULA": { 
    "value": "accept"
},
"BILLING":{ 
    "value": "<Use the endpoint from your Vision resource>"
},
"APIKEY":{
    "value": "<Use a key from your Vision resource>"
}

Настройка параметров работы

Если вы используете образец DeploymentManifest.json, в котором уже есть все необходимые конфигурации (операции, URL-адреса записанных видеофайлов и зоны и т. д.), можно перейти к разделу Выполнение развертывания.

Теперь, когда начальная конфигурация контейнера пространственного анализа завершена, следующим этапом является настройка параметров работы и их добавление в развертывание.

Сначала нужно внести изменения в файл DeploymentManifest.json и настроить режим работы. Например, ниже показана конфигурация для cognitiveservices.vision.spatialanalysis-personcount:

"personcount": {
    "operationId": "cognitiveservices.vision.spatialanalysis-personcount",
    "version": 1,
    "enabled": true,
    "parameters": {
        "VIDEO_URL": "<Replace RTSP URL here>",
        "VIDEO_SOURCE_ID": "<Replace with friendly name>",
        "VIDEO_IS_LIVE":true,
        "DETECTOR_NODE_CONFIG": "{ \"gpu_index\": 0 }",
        "SPACEANALYTICS_CONFIG": "{\"zones\":[{\"name\":\"queue\",\"polygon\":[<Replace with your values>], \"events\": [{\"type\":\"count\"}], \"threshold\":<use 0 for no threshold.}]}"
    }
},

После обновления манифеста развертывания установите камеру с помощью инструкций производителя, настройте ее URL-адрес, а также имя пользователя и пароль.

Затем для параметра VIDEO_URL задайте URL-адрес RTSP камеры и укажите учетные данные для подключения к ней.

Если на пограничном устройстве установлено более одного GPU, выберите тот GPU, на котором будет выполняться данная операция. Не забудьте сбалансировать нагрузку для операций таким образом, чтобы на одном GPU выполнялось не более 8 операций одновременно.

Затем настройте зону, в которой нужно подсчитать пользователей. Чтобы настроить многоугольник зоны, сначала с помощью инструкций производителя получите кадр с камеры. Чтобы определить каждую вершину многоугольника, выберите точку на кадре, возьмите координаты x и y точки относительно левого верхнего угла кадра и разделите их на соответствующие размеры кадра. Задайте результаты в качестве координат x и y вершины. Настроить конфигурацию многоугольников зоны можно в поле SPACEANALYTICS_CONFIG.

Это образец видеокадра, где показано, как вычисляются координаты вершин для кадра размером 1920:1080. Sample video frame

Вы также можете выбрать пороговое значение достоверности для подсчета обнаруженных людей и создания событий. Если вы хотите выводить все события, установите пороговое значение 0.

Выполнение развертывания

Теперь, когда манифест развертывания готов, используйте эту команду в Azure CLI для развертывания контейнера на главном компьютере в качестве модуля IoT Edge.

az login
az extension add --name azure-iot
az iot edge set-modules --hub-name "<IoT Hub name>" --device-id "<IoT Edge device name>" --content DeploymentManifest.json -–subscription "<subscriptionId>"

Укажите обязательные параметры.

  • Имя центра Интернета вещей: ваше имя центра Интернета вещей Azure
  • DeploymentManifest.json: имя вашего файла развертывания
  • Имя устройства IoT Edge: имя устройства IoT Edge вашего главного компьютера
  • Подписка: идентификатор или имя вашей подписки

Эта команда начнет развертывание, и вы сможете просмотреть его состояние в экземпляре Центра Интернета вещей Azure на портале Azure. До тех пор, пока устройство не закончит загрузку образов контейнеров и не начнет работать, может отображаться состояние 417 — конфигурация развертывания устройства не задана.

Проверка успешности развертывания

Найдите параметр Состояние среды выполнения в разделе "Параметры модуля IoT Edge" для модуля пространственного анализа в своем экземпляре Центра Интернета вещей на портале Azure. Убедитесь, для параметров Требуемое значение и Сообщаемое значение для состояния среды выполнения указано значение Running. Ниже показано, как это будет выглядеть на портале Azure.

Example deployment verification

На этом этапе контейнер пространственного анализа выполняет операцию. Он генерирует данные ИИ для операций и направляет эти сведения в качестве телеметрии в ваш экземпляр Центра Интернета вещей Azure. Чтобы настроить дополнительные камеры, можно обновить файл манифеста развертывания и выполнить развертывание еще раз.

Сборка веб-приложения

Веб-приложение "Пространственный анализ" позволяет разработчикам быстро настроить пример веб-приложения, разместить его в своей среде Azure и использовать приложение для проверки событий E2E.

Создание образа Docker

Воспользуйтесь этими инструкциями для создания и отправки образа в реестр контейнеров Azure в подписке.

Настройка контейнера Docker

Чтобы установить контейнер, создайте новую Службу приложений Azure и введите необходимые параметры. Затем перейдите на вкладку Docker и выберите Один контейнер, а затем — Реестр контейнеров Azure. Используйте свой экземпляр Реестра контейнеров Azure, в который отправили образ выше.

Enter image details

После ввода указанных выше параметров нажмите кнопку "Рецензирование и создание приложения".

Настройка приложения

Дождитесь завершения установки и перейдите к ресурсу на портале Azure. В разделе Конфигурация добавьте следующие два параметра приложения.

  • EventHubConsumerGroup — строковое имя группы потребителей из Центра Интернета вещей Azure; вы можете создать новую группу потребителей в Центре Интернета вещей или использовать группу по умолчанию.
  • IotHubConnectionString— строка подключения к Центр Интернета вещей Azure, это можно получить из раздела ключей ресурса Центр Интернета вещей AzureConfigure Parameters

После добавления этих параметров нажмите кнопку "Сохранить". Затем выберите проверку подлинности и авторизацию в меню навигации слева и обновите ее с требуемым уровнем проверки подлинности. Мы рекомендуем экспресс-идентификатор Microsoft Entra ID.

Тестирование приложения

Перейдите в службу Azure и убедитесь, что развертывание прошло успешно, а веб-приложение работает. Перейдите по настроенному URL-адресу (<yourapp>.azurewebsites.net) для проверки работающего приложения.

Test the deployment

Получение исходного кода PersonCount

Если вы хотите просмотреть или изменить исходный код для этого приложения, его можно найти на сайте GitHub.

Следующие шаги