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

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

필수 구성 요소

  • Azure 구독 - 체험 구독 만들기
  • Azure 구독을 만든 후에는 Azure Portal에서 표준 S1 계층에 대한 Computer Vision 리소스를 만들어서 키와 엔드포인트를 가져옵니다. 배포 후 리소스로 이동 을 클릭합니다.
    • 공간 분석 컨테이너를 실행하려면 직접 만든 리소스의 키와 엔드포인트가 필요합니다. 키와 엔드포인트는 나중에 사용합니다.

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

공간 분석 컨테이너를 실행하려면 NVIDIA Tesla T4 GPU가 있는 컴퓨팅 디바이스가 필요합니다. GPU 가속과 함께 Azure Stack Edge를 사용하는 것이 좋지만 컨테이너는 최소 요구 사항을 충족하는 다른 데스크톱 컴퓨터에서 실행됩니다. 이 디바이스를 호스트 컴퓨터라고 합니다.

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

요구 사항 Description
카메라 공간 분석 컨테이너는 특정 카메라 브랜드와 관련이 없습니다. 카메라 디바이스는 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분 정도 걸릴 수 있습니다.

컴퓨팅 구성

Edge 컴퓨팅 역할 설정 및 IoT Hub 리소스 만들기

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

링크

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 사용

  1. 관리자 권한으로 Windows PowerShell 세션을 실행합니다.

  2. Windows 원격 관리 서비스가 클라이언트에서 실행되고 있는지 확인합니다. PowerShell 터미널에서 다음 명령을 사용합니다.

    winrm quickconfig
    

    방화벽 예외에 대한 경고가 표시되면 네트워크 연결 유형을 확인하고 Windows 원격 관리 설명서를 참조하세요.

  3. 디바이스 IP 주소에 변수를 할당합니다.

    $ip = "<device-IP-address>" 
    
  4. 디바이스의 IP 주소를 클라이언트의 신뢰할 수 있는 호스트 목록에 추가하려면 다음 명령을 사용합니다.

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

    Enter-PSSession -ComputerName $ip -Credential $ip\EdgeUser -ConfigurationName Minishell 
    
  6. 메시지가 표시되면 암호를 입력합니다. 로컬 웹 UI에 로그인하는 데 사용되는 것과 동일한 암호를 사용합니다. 기본 로컬 웹 UI 암호는 Password1입니다.

Start-HcsGpuMPS를 입력하여 디바이스에서 MPS 서비스를 시작합니다.

Azure Stack Edge 디바이스 문제 해결에 도움이 필요하면 Azure Stack Edge 디바이스 문제 해결을 참조하세요.

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

중요

컨테이너를 인스턴스화하려면 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 모듈 설정 에서 런타임 상태를 찾습니다. 런타임 상태에 대한 원하는 값보고된 값 이 실행 중인지 확인합니다.

배포 확인 예

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

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

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

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

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

녹화된 비디오 파일로 공간 분석 실행

공간 분석은 녹화된 비디오 또는 라이브 비디오 모두에 사용할 수 있습니다. 녹화된 비디오에 공간 분석을 사용하려면 비디오 파일을 녹화하고 mp4 파일로 저장해 보세요. Azure에서 Blob 스토리지 계정을 만들거나 기존 계정을 사용합니다. 그런 다음, Azure Portal에서 다음 Blob 스토리지 설정을 업데이트합니다. 1. 보안 전송 필요사용 안 함 으로 변경합니다. 2. Blob 공용 액세스 허용사용 으로 설정합니다.

컨테이너 섹션으로 이동하고 새 컨테이너를 만들거나 기존 컨테이너를 사용합니다. 그런 다음, 비디오 파일을 컨테이너에 업로드합니다. 업로드된 파일에 대한 파일 설정을 확장하고 SAS 생성 을 선택합니다. 테스트 기간을 포함할 만큼 만료 날짜 를 충분히 길게 설정해야 합니다. 허용되는 프로토콜HTTP(HTTPS 는 지원되지 않음)로 설정합니다.

SAS 토큰 및 URL 생성 을 클릭하고 Blob SAS URL을 복사합니다. 시작 httpshttp로 바꾸고 비디오 재생을 지원하는 브라우저에서 URL을 테스트합니다.

모든 그래프에 대해 Azure Stack Edge 디바이스, 데스크톱 컴퓨터 또는 GPU가 있는 Azure VM에 대한 배포 매니페스트의 VIDEO_URL을 직접 만든 URL로 바꿉니다. VIDEO_IS_LIVEfalse로 설정하고 업데이트된 매니페스트로 공간 분석 컨테이너를 다시 배포합니다. 아래 예제를 참조하세요.

공간 분석 모듈이 비디오 파일을 사용하기 시작하고 계속해서 자동으로 재생됩니다.

"zonecrossing": {
    "operationId" : "cognitiveservices.vision.spatialanalysis-personcrossingpolygon",
    "version": 1,
    "enabled": true,
    "parameters": {
        "VIDEO_URL": "Replace http url here",
        "VIDEO_SOURCE_ID": "personcountgraph",
        "VIDEO_IS_LIVE": false,
      "VIDEO_DECODE_GPU_INDEX": 0,
        "DETECTOR_NODE_CONFIG": "{ \"gpu_index\": 0, \"do_calibration\": true }",
        "SPACEANALYTICS_CONFIG": "{\"zones\":[{\"name\":\"queue\",\"polygon\":[[0.3,0.3],[0.3,0.9],[0.6,0.9],[0.6,0.3],[0.3,0.3]], \"events\": [{\"type\": \"zonecrossing\", \"config\": {\"threshold\": 16.0, \"focus\": \"footprint\"}}]}]}"
    }
   },

문제 해결

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

결제

공간 분석 컨테이너는 청구 정보를 Azure로 보내며, Azure 계정의 Computer Vision 리소스를 사용합니다. 공개 미리 보기에서 공간 분석을 사용하는 것은 현재 무료입니다.

Azure Cognitive Services 컨테이너는 측정/청구 엔드포인트에 연결되지 않은 상태에서 실행할 수 있는 권한이 없습니다. 사용자는 컨테이너가 항상 청구 엔드포인트와 청구 정보를 통신할 수 있도록 설정해야 합니다. Cognitive Services 컨테이너는 고객 데이터(예: 분석 중인 비디오 또는 이미지)를 Microsoft에 보내지 않습니다.

요약

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

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

다음 단계