공간 분석 컨테이너 설치 및 실행(미리 보기)

공간 분석 컨테이너를 사용하면 실시간 스트리밍 비디오를 분석하여 사람 사이의 공간적 관계, 이들의 움직임 및 물리적 환경에서 물체와의 상호 작용을 이해할 수 있습니다. 컨테이너는 특정 보안 및 데이터 거버넌스 요구 사항을 충족하는 데 도움이 됩니다.

필수 조건

  • Azure 구독 - 체험 구독 만들기
  • 책임 있는 AI 약관에 동의하고 리소스를 만들려면 Azure 계정에 Cognitive Services Contributor 역할이 할당되어 있어야 합니다. 이 역할을 계정에 할당하려면 역할 할당의 단계를 수행하거나 관리자에게 문의하세요.
  • Azure 구독을 만든 후에는 Azure Portal에서 표준 S1 계층에 대한 Computer Vision 리소스를 만들어 키와 엔드포인트를 가져옵니다. 배포 후 리소스로 이동을 선택합니다.
    • 공간 분석 컨테이너를 실행하려면 직접 만든 리소스의 키와 엔드포인트가 필요합니다. 키와 엔드포인트는 나중에 사용합니다.

공간 분석 컨테이너 요구 사항

공간 분석 컨테이너를 실행하려면 NVIDIA CUDA Compute Capable GPU 6.0 이상(예: NVIDIA Tesla T4, A2, 1080Ti 또는 2080Ti)이 포함된 컴퓨팅 디바이스가 필요합니다. GPU 가속과 함께 Azure Stack Edge를 사용하는 것이 좋지만 컨테이너는 최소 요구 사항을 충족하는 다른 데스크톱 컴퓨터에서 실행됩니다. 이 디바이스를 호스트 컴퓨터라고 합니다.

Azure Stack Edge는 HaaS(Hardware-as-a-Service) 솔루션이며, 네트워크 데이터 전송 기능을 갖춘 AI 지원 에지 컴퓨팅 디바이스입니다. 자세한 준비 및 설정 지침은 Azure Stack Edge 설명서를 참조하세요.

요구 사항 설명
카메라 공간 분석 컨테이너는 특정 카메라 브랜드에 연결되어 있지 않습니다. 카메라 디바이스는 RTSP(Real-Time Streaming Protocol) 및 H.264 인코딩을 지원하고, 호스트 컴퓨터에 액세스할 수 있어야 하며 15FPS 및 1080p 해상도로 스트리밍할 수 있어야 합니다.
Linux OS Ubuntu Desktop 18.04 LTS가 호스트 컴퓨터에 설치되어 있어야 합니다.

호스트 컴퓨터 설정

호스트 컴퓨터에 Azure Stack Edge 디바이스를 사용하는 것이 좋습니다. 다른 디바이스를 구성하는 경우 데스크톱 컴퓨터를 클릭하고, VM을 활용하는 경우 가상 머신을 선택합니다.

Azure Stack Edge 포털에서 컴퓨팅 구성

공간 분석은 Azure Stack Edge의 컴퓨팅 기능을 사용하여 AI 솔루션을 실행합니다. 컴퓨팅 기능을 사용하도록 설정하려면 다음을 확인해야 합니다.

  • Azure Stack Edge 디바이스를 연결하고 활성화했습니다.
  • 디바이스 액세스용으로 PowerShell 5.0 이상을 실행하는 Windows 클라이언트 시스템이 있습니다.
  • Kubernetes 클러스터를 배포하려면 Azure Portal에서 로컬 UI를 통해 Azure Stack Edge 디바이스를 구성해야 합니다.
    1. Azure Stack Edge 디바이스에서 컴퓨팅 기능을 사용하도록 설정합니다. 컴퓨팅을 사용하도록 설정하려면 디바이스의 웹 인터페이스에서 컴퓨팅 페이지로 이동합니다.
    2. 컴퓨팅에 사용하도록 설정하려는 네트워크 인터페이스를 선택한 다음 사용을 선택합니다. 그러면 네트워크 인터페이스에서 디바이스에 가상 스위치가 생성됩니다.
    3. Kubernetes 테스트 노드 IP 주소와 Kubernetes 외부 서비스 IP 주소는 비워둡니다.
    4. 적용을 선택합니다. 이 작업은 약 2분 정도 걸릴 수 있습니다.

Configure compute

Azure Stack Edge 역할 설정 및 IoT Hub 리소스 만들기

Azure Portal에서 Azure Stack Edge 리소스로 이동합니다. 개요 페이지 또는 탐색 목록에서 Edge 컴퓨팅 시작 단추를 선택합니다. Edge 컴퓨팅 구성 타일에서 구성을 선택합니다.

Link

Edge 컴퓨팅 구성 페이지에서 기존 IoT Hub를 선택하거나 새 항목을 만들도록 선택합니다. 기본적으로 IoT Hub 리소스를 만드는 데는 표준(S1) 가격 책정 계층이 사용됩니다. 무료 계층 IoT Hub 리소스를 사용하려면 리소스를 만든 다음 선택합니다. IoT Hub 리소스는 Azure Stack Edge 리소스에서 사용하는 것과 동일한 구독 및 리소스 그룹을 사용합니다.

만들기를 실행합니다. IoT Hub 리소스 만들기는 몇 분 정도 걸릴 수 있습니다. IoT Hub 리소스가 만들어지면 Edge 컴퓨팅 구성 타일이 새 구성을 표시하도록 업데이트됩니다. Edge 컴퓨팅 역할이 구성되었는지 확인하려면 컴퓨팅 구성 타일의 구성 보기를 선택합니다.

Edge 컴퓨팅 역할이 Edge 디바이스에 설정되면 두 가지 디바이스, 즉 IoT 디바이스와 IoT Edge 디바이스가 만들어집니다. 이 두 디바이스는 모두 IoT Hub 리소스에서 볼 수 있습니다. Azure IoT Edge 런타임은 이미 IoT Edge 디바이스에서 실행되고 있습니다.

참고 항목

Azure Stack Edge에서 MPS 사용

다음 단계에 따라 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 도메인으로 바꿉니다. 디바이스의 로컬 웹 UI에 있는 디바이스 페이지에서 인증서 페이지 및 DNS 도메인의 노드 일련 번호에 대한 값을 가져올 수 있습니다.

  4. 디바이스의 연결 문자열을 클라이언트의 신뢰할 수 있는 호스트 목록에 추가하려면 다음 명령을 입력합니다.

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. 디바이스에서 Windows PowerShell 세션을 시작합니다.

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

    신뢰 관계와 관련된 오류가 표시되는 경우 디바이스에 업로드된 노드 인증서의 서명 체인이 디바이스에 액세스하는 클라이언트에도 설치되어 있는지 확인합니다.

  6. 메시지가 표시되면 암호를 제공합니다. 로컬 웹 UI에 로그인하는 데 사용되는 것과 동일한 암호를 사용합니다. 기본 로컬 웹 UI 암호는 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>
    

IoT 배포 매니페스트

여러 호스트 컴퓨터에서 컨테이너 배포를 간소화하기 위해 배포 매니페스트 파일을 만들어서 컨테이너 생성 옵션 및 환경 변수를 지정할 수 있습니다. GitHub에서 Azure Stack Edge, 기타 데스크톱 머신GPU가 있는 Azure VM에 대한 배포 매니페스트의 예를 찾을 수 있습니다.

다음 표에서는 IoT Edge 모듈에 사용되는 다양한 환경 변수를 보여줍니다. 위에 연결된 배포 매니페스트에서 envspatialanalysis특성을 사용하여 설정할 수도 있습니다.

설정 이름 설명
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 Portal의 비전 리소스에서 수집합니다. 리소스의 키 및 엔드포인트 섹션에서 찾을 수 있습니다.
청구 엔드포인트 URI 이 값은 Azure Portal의 비전 리소스에서 수집합니다. 리소스의 키 및 엔드포인트 섹션에서 찾을 수 있습니다.
EULA 동의 컨테이너를 실행하려면 이 값을 accept로 설정해야 합니다.
표시 1: 이 값은 호스트 컴퓨터의 echo $DISPLAY 출력과 동일해야 합니다. Azure Stack Edge 디바이스에는 디스플레이가 없습니다. 이 설정은 적용할 수 없습니다.
KEY_ENV ASE 암호화 키 Video_URL이 난독 처리된 문자열인 경우 이 환경 변수를 추가합니다.
IV_ENV Initialization vector Video_URL이 난독 처리된 문자열인 경우 이 환경 변수를 추가합니다.

Important

컨테이너를 인스턴스화하려면 Eula, BillingApiKey 옵션을 지정해야 합니다. 그렇지 않으면 컨테이너가 시작되지 않습니다. 자세한 내용은 Billing을 참조하세요.

자체 설정 및 작업 선택으로 Azure Stack Edge 디바이스, 데스크톱 컴퓨터 또는 GPU가 있는 Azure VM에 대한 배포 매니페스트를 업데이트한 후에는 아래 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 IoT Hub 이름입니다.
--content 배포 파일의 이름입니다.
--target-condition 호스트 컴퓨터의 IoT Edge 디바이스 이름입니다.
-–subscription 구독 ID 또는 이름입니다.

이 명령을 실행하면 배포가 시작됩니다. Azure Portal에서 Azure IoT Hub 인스턴스 페이지로 이동하여 배포 상태를 확인합니다. 디바이스가 컨테이너 이미지 다운로드를 완료하고 실행을 시작할 때까지 상태가 417 -- 디바이스의 배포 구성이 설정되지 않았습니다라고 표시될 수 있습니다.

배포가 성공했는지 확인

컨테이너가 실행되고 있는지 확인하는 방법은 여러 가지가 있습니다. Azure Portal의 Azure IoT Hub 인스턴스에 있는 공간 분석 모듈에 대한 IoT Edge 모듈 설정에서 런타임 상태를 찾습니다. 런타임 상태에 대한 원하는 값보고된 값이 실행 중인지 확인합니다.

Example deployment verification

배포가 완료되고 컨테이너가 실행되면 호스트 컴퓨터가 Azure IoT Hub로 이벤트를 보내기 시작합니다. .debug 버전의 작업을 사용하는 경우 배포 매니페스트에서 구성한 각 카메라에 대한 시각화 도우미 창이 표시됩니다. 이제 배포 매니페스트에서 모니터링할 선과 영역을 정의하고 지침에 따라 다시 배포할 수 있습니다.

공간 분석에서 수행되는 작업 구성

연결된 카메라를 사용하도록 컨테이너를 구성하고 작업을 구성하는 등의 작업을 수행하려면 공간 분석 작업을 사용해야 합니다. 구성하는 각 카메라 디바이스의 경우 공간 분석 작업에서 Azure IoT Hub 인스턴스로 보내는 JSON 메시지의 출력 스트림을 생성합니다.

컨테이너에서 생성된 출력 사용

컨테이너에서 생성된 출력을 사용하기 시작하려면 다음 문서를 참조하세요.

  • Azure IoT Hub 엔드포인트에 연결하고 이벤트를 받을 수 있도록 Azure Event Hubs SDK를 선택한 프로그래밍 언어에 사용합니다. 자세한 내용은 기본 제공 엔드포인트에서 디바이스-클라우드 메시지 읽기를 참조하세요.
  • 이벤트를 다른 엔드포인트에 보내거나 이벤트를 Azure Blob Storage 등에 저장하도록 Azure IoT Hub에서 메시지 라우팅을 설정합니다.

문제 해결

컨테이너를 시작하거나 실행할 때 문제가 발생하는 경우 원격 분석 및 문제 해결에서 일반적인 문제에 대한 단계를 참조하세요. 이 문서에는 로그 생성 및 수집과 시스템 상태 수집에 대한 정보도 포함되어 있습니다.

Azure AI 서비스 컨테이너를 실행하는 데 문제가 있는 경우 Microsoft 진단 컨테이너를 사용해 볼 수 있습니다. 이 컨테이너를 사용하여 Azure AI 컨테이너가 예상대로 작동하지 못하게 할 수 있는 배포 환경의 일반적인 오류를 진단합니다.

컨테이너를 가져오려면 다음 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 AI 컨테이너는 측정/청구 엔드포인트에 연결되지 않고 실행할 수 있는 라이선스가 부여되지 않습니다. 컨테이너가 청구 엔드포인트와 청구 정보를 통신할 수 있도록 항상 사용하도록 설정해야 합니다. Azure AI 컨테이너는 고객 데이터(예: 분석 중인 비디오 또는 이미지)를 Microsoft에 보내지 않습니다.

요약

이 문서에서는 공간 분석 컨테이너를 다운로드, 설치 및 실행하기 위한 개념과 워크플로를 알아보았습니다. 요약:

  • 공간 분석은 Docker용 Linux 컨테이너입니다.
  • 컨테이너 이미지는 Microsoft Container Registry에서 다운로드됩니다.
  • 컨테이너 이미지는 Azure IoT Edge에서 IoT 모듈로 실행됩니다.
  • 컨테이너를 구성하고 호스트 컴퓨터에 배포합니다.

다음 단계