Установка и запуск контейнера пространственного анализа (предварительная версия)

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

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

  • Подписка Azure — создайте бесплатную учетную запись.
  • Ваша учетная запись Azure должна иметь роль, назначенную Cognitive Services Contributor для того, чтобы вы согласились с ответственными условиями ИИ и создайте ресурс. Чтобы назначить эту роль своей учетной записи, следуйте инструкциям, описанным в документации по назначению ролей, или обратитесь к администратору.
  • После получения подписки Azure создайте ресурс Компьютерное зрение для уровня Standard S1 в портал Azure, чтобы получить ключ и конечную точку. После развертывания ресурса выберите элемент Перейти к ресурсу.
    • Чтобы запустить контейнер для пространственного анализа, потребуется ключ и конечная точка из созданного ресурса. Ключ и конечная точка будут использоваться позже.

Требования к контейнерам для пространственного анализа

Чтобы запустить контейнер пространственного анализа, вам понадобится вычислительное устройство с GPU NVIDIA CUDA версии 6.0 или выше (например, NVIDIA Tesla T4, A2, 1080Ti или 2080Ti). Рекомендуется использовать Azure Stack Edge с ускорением GPU, однако контейнер может работать на любом компьютере, соответствующем минимальным требованиям. Мы называем это устройство главным компьютером.

Azure Stack Edge — это решение типа "аппаратное обеспечение как услуга" и пограничное вычислительное устройство с поддержкой искусственного интеллекта и функциями передачи данных по сети. Подробные инструкции по подготовке и настройке см. в Документации по Azure Stack Edge.

Требование Description
Камера Контейнер для пространственного анализа не привязан к камере определенного бренда. Устройство камеры должно: поддерживать протокол передачи потоков в реальном времени (RTSP) и кодирование в формат H.264; быть доступным для главного компьютера и поддерживать потоковую передачу с разрешением 15FPS и 1080p.
ОС Linux На главном компьютере должна быть установлена операционная система Ubuntu Desktop 18.04 LTS.

Настройка главного компьютера

Для главного компьютера рекомендуется использовать устройство Azure Stack Edge. Выберите Настольный компьютер, если выполняется настройка другого устройства, или Виртуальная машина при настройке виртуальной машины.

Настройка вычислений на портале Azure Stack Edge

Пространственный анализ использует функции вычислений Azure Stack Edge для запуска решения искусственного интеллекта. Чтобы включить функции вычислений, убедитесь, что выполнены следующие условия.

  • Устройство Azure Stack Edge подключено и активировано.
  • Имеется клиентская система Windows на платформе PowerShell 5.0 или более поздней версии для получения доступа к устройству.
  • Чтобы развернуть кластер Kubernetes, необходимо настроить устройство Azure Stack Edge с помощью локального пользовательского интерфейса в портал Azure:
    1. Включите функцию вычислений на устройстве Azure Stack Edge. Чтобы включить вычисления, перейдите на страницу Вычисление веб-интерфейса устройства.
    2. Выберите сетевой интерфейс, который будет использоваться для вычислений, а затем нажмите Включить. При этом на устройстве создается виртуальный коммутатор на этом сетевом интерфейсе.
    3. Оставьте поля IP-адресов узла тестирования Kubernetes и IP-адресов внешних служб Kubernetes пустыми.
    4. Нажмите Применить. Это может занять около двух минут.

Configure compute

Настройка роли Azure Stack Edge и создание ресурса центра Интернета вещей

На портале Azure перейдите к ресурсу Azure Stack Edge. На странице Обзор или в списке переходов нажмите кнопку пограничных вычислений Начать работу. На плитке Настройка вычислений Edge выберите Настроить.

Link

На странице Настройка пограничных вычислений выберите существующий центр Интернета вещей или создайте новый. По умолчанию для создания ресурса центра Интернета вещей используется ценовая категория "Стандартный" (S1). Чтобы использовать ресурс центра Интернета вещей ценовой категории "Бесплатный", создайте, а затем выберите его. В любом случае для ресурса центра Интернета вещей используется та же подписка и группа ресурсов, что и для ресурса Azure Stack Edge

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

При настройке роли вычислений Edge на устройстве Edge создается два устройства — устройство Интернета вещей и устройство IoT Edge. Оба устройства можно просмотреть в ресурсе Центра Интернета вещей. Среда выполнения Azure IoT Edge будет уже запущена на устройстве IoT Edge.

Примечание.

Включение MPS на Azure Stack Edge

Выполните следующие действия, чтобы удаленно подключиться из клиента Windows.

  1. Запустите сеанс Windows PowerShell от имени администратора.

  2. Убедитесь, что на вашем клиенте запущена служба удаленного управления Windows. В командной строке введите:

    winrm quickconfig
    

    Дополнительные сведения см. в разделе "Установка и настройка" для удаленного управления Windows.

  3. Назначьте переменную строке подключения, используемой в файле hosts.

    $Name = "<Node serial number>.<DNS domain of the device>"
    

    Замените <Node serial number> и <DNS domain of the device> серийным номером узла и доменом DNS вашего устройства. Вы можете получить значения серийного номера узла на странице Сертификаты, а домена DNS — на странице Устройство в локальном веб-интерфейсе устройства.

  4. Введите следующую команду, чтобы добавить эту строку подключения для устройства к списку доверенных узлов клиента:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Запустите сеанс Windows PowerShell на устройстве:

    Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
    

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

  6. В ответ на запрос укажите пароль. Используйте тот же пароль, который используется для входа в локальный веб-интерфейс. Пароль локального пользовательского веб-интерфейса по умолчанию — Password1. При успешном подключении к устройству с помощью удаленной оболочки PowerShell появится следующий пример выходных данных:

    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    PS C:\WINDOWS\system32> winrm quickconfig
    WinRM service is already running on this machine.
    PS C:\WINDOWS\system32> $Name = "1HXQG13.wdshcsso.com"
    PS C:\WINDOWS\system32> Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
    
    WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing. Changes made through this interface without involving Microsoft Support could result in an unsupported configuration.
    [1HXQG13.wdshcsso.com]: PS>
    

Манифест развертывания Интернета вещей

Чтобы упростить развертывание контейнеров на нескольких главных компьютерах, можно создать файл манифеста развертывания, в котором указываются параметры создания контейнера и переменные среды. Пример манифеста развертывания для Azure Stack Edge, других настольных компьютеров и виртуальной машины Azure с GPU можно найти на сайте GitHub.

В следующей таблице приведены различные переменные среды, используемые модулем IoT Edge. Их также можно задать в вышеупомянутом манифесте развертывания с помощью атрибута env в spatialanalysis:

Имя параметра значение Описание
ARCHON_LOG_LEVEL Info; Verbose Уровень ведения журнала: выберите одно из двух значений
ARCHON_SHARED_BUFFER_LIMIT 377487360 Не изменять
ARCHON_PERF_MARKER false Задайте для ведения журнала производительности значение true; в других случаях — значение false
ARCHON_NODES_LOG_LEVEL Info; Verbose Уровень ведения журнала: выберите одно из двух значений
OMP_WAIT_POLICY PASSIVE Не изменять
QT_X11_NO_MITSHM 1 Не изменять
APIKEY ваш ключ API Соберите это значение из портал Azure из ресурса Визуального зрения. Его можно найти в разделе Ключ и конечная точка этого ресурса.
ВЫСТАВЛЕНИЕ СЧЕТОВ ваш URI конечной точки Соберите это значение из портал Azure из ресурса Визуального зрения. Его можно найти в разделе Ключ и конечная точка этого ресурса.
Лицензионное соглашение accept Значение accept необходимо для запуска контейнера
ОТОБРАЖЕНИЕ 1: Это значение должно совпадать с выходными данными echo $DISPLAY на главном компьютере. Устройства Azure Stack Edge не имеют дисплея. Эта настройка не применяется
KEY_ENV Ключ шифрования ASE Добавьте эту переменную среды, если Video_URL является замаскированной строкой
IV_ENV Initialization vector Добавьте эту переменную среды, если Video_URL является замаскированной строкой

Важно!

Для запуска контейнера необходимо указать параметры Eula, Billing и ApiKey. В противном случае контейнер не запустится. Дополнительные сведения см. в разделе о выставлении счетов.

После обновления манифеста развертывания для устройств Azure Stack Edge, настольного компьютера или виртуальной машины Azure с графическим процессором с использованием параметров пользователя и выбором операций можно использовать приведенную ниже команду Azure CLI для развертывания контейнера, как модуля IoT Edge, на главном компьютере.

sudo az login
sudo az extension add --name azure-iot
sudo az iot edge set-modules --hub-name "<iothub-name>" --device-id "<device-name>" --content DeploymentManifest.json --subscription "<name or ID of Azure Subscription>"
Параметр Описание
--hub-name Имя вашего центра Интернета вещей Azure.
--content Имя файла развертывания.
--target-condition Имя вашего устройства IoT Edge для главного компьютера.
-–subscription Идентификатор или имя подписки.

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

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

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

Example deployment verification

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

Настройка операций пространственного анализа

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

Использование выходных данных, сгенерированных контейнером

Сведения об использовании выходных данных, созданных контейнером, см. в следующих статьях:

  • Используйте пакет SDK Центров событий Azure для выбранного языка программирования, чтобы подключиться к конечной точке Центра Интернета вещей Azure и получить события. Дополнительные сведения см. в разделе Чтение сообщений, пересылаемых с устройства в облако из встроенной конечной точки.
  • Настройте маршрутизацию сообщений в Центр Интернета вещей Azure для отправки событий другим конечным точкам или сохранения событий в Хранилище BLOB-объектов Azure и т. д.

Устранение неполадок

Если при запуске или запуске контейнера возникли проблемы, поищите решение в статье Телеметрия и устранение неполадок. В этой статье также содержатся сведения о создании и сборе журналов, а также сборе сведений о работоспособности системы.

Если у вас возникли проблемы с запуском контейнера служб искусственного интеллекта Azure, можно попробовать использовать контейнер Microsoft диагностика. Используйте этот контейнер для диагностики распространенных ошибок в среде развертывания, которые могут предотвратить работу контейнеров ИИ Azure должным образом.

Чтобы получить контейнер, используйте следующую команду docker pull:

docker pull mcr.microsoft.com/azure-cognitive-services/diagnostic

Затем запустите контейнер. Замените {ENDPOINT_URI} на URI конечной точки, а {API_KEY} — на свой ключ для ресурса:

docker run --rm mcr.microsoft.com/azure-cognitive-services/diagnostic \
eula=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}

Контейнер проверит сетевое подключение к конечной точке выставления счетов.

Выставление счетов

Контейнер пространственного анализа отправляет сведения о выставлении счетов в Azure с помощью ресурса Визуального зрения в учетной записи Azure. В настоящее время использование пространственного анализа в общедоступной предварительной версии является бесплатным.

Контейнеры ИИ Azure не лицензируются для запуска без подключения к конечной точке измерения или выставления счетов. Вам необходимо обязательно разрешить контейнерам передачу данных для выставления счетов в конечную точку выставления счетов. Контейнеры искусственного интеллекта Azure не отправляют данные клиента, такие как видео или изображение, которое анализируется, в Корпорацию Майкрософт.

Итоги

В этой статье были рассмотрены основные понятия и рабочий процесс по скачиванию, установке и запуску контейнера для пространственного анализа. Сводка:

  • Пространственный анализ является контейнером Linux для Docker.
  • Образы контейнеров скачиваются из Реестра контейнеров Майкрософт.
  • Образы контейнеров запускаются как модули IoT в Azure IoT Edge.
  • Практическое руководство по настройке контейнера и его развертыванию на главном компьютере.

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