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

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

Предварительные требования

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

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

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

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

Требование Описание
Камера Контейнер для пространственного анализа не привязан к камере определенного бренда. Устройство камеры должно: поддерживать протокол передачи потоков в реальном времени (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. Нажмите кнопку Применить. Это может занять около двух минут.

настройка вычислений;

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

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

Ссылка

На странице Настройка пограничных вычислений выберите существующий центр Интернета вещей или создайте новый. По умолчанию для создания ресурса центра Интернета вещей используется ценовая категория "Стандартный" (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 необходимо для запуска контейнера
DISPLAY :1 Это значение должно совпадать с выходными данными echo $DISPLAY на главном компьютере. В устройствах Azure Stack Edge отсутствует дисплей. Эта настройка не применяется
KEY_ENV Ключ шифрования ASE Добавьте эту переменную среды, если Video_URL является замаскированной строкой
IV_ENV вектор инициализации Добавьте эту переменную среды, если 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. Убедитесь, что Требуемое значение и Сообщаемое значение для Состояния среды выполнения — это Выполнение.

Пример проверки развертывания

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итоги

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

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

Дальнейшие действия