NVIDIA DeepStream Graph Composer 소개

완료됨

이전에 NVIDIA DeepStream SDK를 도입했습니다. 개발자는 이를 사용하여 여러 비디오 입력 원본을 수집하고 처리된 프레임에 계단식 추론을 적용하고 Microsoft Azure와 같은 클라우드 서비스에 게시할 수 있는 원격 분석을 생성할 수 있는 최적화된 IVA(Intelligent Video Analytics) 애플리케이션을 만들 수 있습니다.

구성 파일 기반 접근 방식을 사용하여 NVIDIA DeepStream SDK를 사용하여 애플리케이션을 개발하는 방법을 살펴보았습니다. 이 방법은 IVA 개발에 매우 유용한 전략이지만 NVIDIA Graph Composer는 이 방식을 한 단계 더 발전시킵니다. 끌어서 놓기 구성 요소가 있는 시각적 편집기를 사용하여 DeepStream 호환 IVA 파이프라인을 생성하는 데 사용할 수 있습니다. 이 메커니즘을 사용하면 개발을 더욱 간소화할 수 있으며, 대화형 그래프에서 구성 요소가 서로 어떻게 관련되는지도 확인할 수 있습니다.

NVIDIA DeepStream Graph 작성기 애플리케이션을 보여주는 스크린샷

사용 가능한 구성 요소는 이전에 사용한 구성 그룹 때문에 친숙해 보일 수 있습니다. 이러한 구성 요소와 구성 그룹은 모두 DeepStream SDK C 라이브러리에 제공된 함수에서 파생됩니다. 이러한 구성 요소는 NVIDIA에서 제공하는 확장을 끌어오고 저장하는 로컬 레지스트리를 사용하여 Composer 애플리케이션에서 사용할 수 있습니다. Composer 애플리케이션에서는 구성 요소를 지원하기 위해 사용자 지정 확장을 가져올 수도 있습니다.

그래프를 프로덕션에 사용할 준비가 되면 포함된 container-builder 도구를 사용하여 개발자가 Composer 그래프를 x86 또는 ARM64 디바이스에서 실행할 수 있는 컨테이너 워크로드로 패키지할 수 있습니다. 이 기능을 Graph Composer와 함께 사용하여 서버 클래스 또는 에지 지원 디바이스에 배포할 수 있는 컨테이너화된 IVA 파이프라인을 빌드할 수 있습니다.

이 워크플로의 전체 프로세스는 여기에 나와 있습니다.

NVIDIA DeepStream Graph 작성기 워크플로를 보여주는 다이어그램

컨테이너화된 Graph Composer 워크로드를 Azure IoT 서비스와 통합

DeepStream Graph Composer 워크로드를 컨테이너에 패키지하면 IVA 애플리케이션을 다음과 같은 다양한 기능을 갖춘 에지-클라우드 시나리오에서 실행할 수 있습니다.

  • 디바이스-클라우드 메시징
  • 클라우드-디바이스 메시징
  • 디바이스 모니터링
  • 원격 업데이트
  • Azure IoT Edge와의 통합을 통해 확장 가능한 배포

이 서비스 제공 사항을 사용하면 컨테이너화된 워크로드의 오케스트레이션과 IoT 허브라고 하는 수집 지점으로의 보안 연결을 제공하는 런타임으로 지원 디바이스를 계측할 수 있습니다.

IoT Edge 런타임은 컨테이너화된 워크로드를 모듈이라고 하는 물리적 디바이스에서 실행됩니다. 이러한 모듈은 메시지 라우팅을 사용하여 서로 통신할 수 있습니다. 예를 들어 한 모듈은 원격 분석을 생성할 수 있고 다른 모듈은 에지에서 Azure Stream Analytics를 사용하여 첫 번째 메시지의 메시지를 집계할 수 있습니다. 그런 다음, 이 모듈의 메시지를 IoT 허브에 대한 연결을 통해 클라우드에 직접 게시할 수 있습니다.

Azure IoT Edge 런타임을 보여주는 다이어그램

IoT 허브에서 안전하게 등록 및 관리되는 디바이스를 사용하면 업데이트된 워크로드를 디바이스에 원활하게 배포하고 전체 플릿의 연결 상태를 모니터링할 수 있습니다. 따라서 소프트웨어 개발 수명 주기의 모든 단계를 지원하여 DeepStream Graph Composer 애플리케이션을 프로덕션 환경에 배치할 수 있습니다. 이러한 영역에는 Azure DevOps에 대한 플러그 인 지원, 모듈 쌍을 사용하여 실행 중인 워크로드를 수정하는 기능, 디바이스 메타데이터를 기반으로 하는 대상 배포가 포함됩니다.

Azure IoT Hub 클라우드 인터페이스를 보여주는 다이어그램

이 모듈에서는 DeepStream Graph Composer를 사용하여 애플리케이션을 개발하는 방법을 살펴봅니다. 다음으로, 해당 출력을 컨테이너화된 워크로드로 패키지합니다. 마지막으로 컨테이너를 Azure Container Registry 인스턴스에 게시하여 프로덕션을 위해 해당 컨테이너를 준비합니다. 후속 모듈에서는 보안 컨테이너 레지스트리에서 해당 워크로드를 끌어와서 IoT Edge를 실행하는 NVIDIA 기반 임베디드 디바이스에 배포하는 방법을 살펴보겠습니다.

사용 방법

식당에 들어가는 사람들의 수를 세는 IVA 애플리케이션을 개발하는 임무를 맡았다고 가정해 보겠습니다. 이제 CEO가 귀하의 개념 증명을 좋아해서 이 애플리케이션을 전 세계 1,000개 위치에 배포하려 한다고 가정합니다. 이 배포를 수행하기 위한 전략은 어떻게 설계해야 할까요? 개발 및 테스트 주기를 가속화하기 위해 어떤 도구를 사용할 수 있나요?