AI Development/DeepStream

[DeepStream] 딥스트림 개요 및 참고자료들

꾸준희 2021. 1. 24. 17:20
728x90
반응형

 

 

DeepStream 이란 ?

 

 

딥 러닝을 활용한 비디오 분석 응용 프로그램의 고 성능 개발을 손쉽게 할 수 있도록 만든 NVIDIA의 라이브러리이다. 높은 수준의 C++ API와 고성능 런타임 (High Performance Runtime)을 통해 GPU 가속 Transcoding 과 딥러링 추론 기능을 빠르게 통합하여 보다 반응이 빠른 AI 기반 서비스를 제공할 수 있도록 한다. 이는 Intelligent Video Analytics의 보다 손 쉬운 개발을 지원하며 개발자들은 딥스트림을 사용해 실시간으로 동영상 프레임을 처리하고, 이해하며 분류 작업을 진행 할 수 있다. 또한 매우 높은 수준으로 요구되는 처리량(Throughput) 및 반응 시간(Latency)에 대한 요건을 충족 시킬 수 있다. 

 

이러한 DeepStream SDK 는 AI 기반 다중 센서 처리, 비디오 및 이미지 이해를 위한 완전한 스트리밍 분석 툴킷을 제공한다. 또한 픽셀 및 센서 데이터를 실행 가능한 인사이트로 변환하는 End-to-End 서비스 및 솔루션을 구축하기 위한 플랫폼인 NVIDIA Metropolis 의 필수적인 부분이기도 하다.

 

 

NVIDIA Metropolis 

이 메트로폴리스(Metropolis)는 리테일 분석, 지능형 교통시스템, 창고 및 물류, 제조, 치안, 배수 시스템 등의 유지보수, 생체 인식을 활용하는 액세스 제어, 차량의 교통상황을 측정하여 교통 체증을 해소하는 대중교통 분야에 널리 이용된다. 이 메트로폴리스는 본 글에서 언급하는 NVIDIA DeepStream 을 사용하여 더 뛰어난 성능과 확장성을 경험해 볼 수 있다. 그 외에도 Transfer Learning Toolkit 및 TensorRT 도 활용할 수 있다. 

 

참고로 메트로폴리스는 AI 및 IoT 애플리캐이션을 에지에서 클라우드까지 생성, 배포 및 확장할 수 있는 플랫폼이다. 많은 중국의 지능형 영상분석(IVA) 기업들이 메트로폴리스를 채택하고 있다. 그 중 유명한  하이크비전(Hikvision)의 인식 및 매칭 기술은 데이터 규모가 10배 이상 증가하는데도 90% 이상의 검출율(recall rate)을 기록하는 놀라운 성과를 보였는데, 이를 위해 하이크비전은 엔비디아 젯슨(Jetson)이 적용된 카메라와 네트워크 비디오 레코더, 테슬라(Tesla) P4 GPU 가속기로 구동되는 클라우드 서버, 트레이닝에 활용되는 DGX-1 AI 슈퍼컴퓨터의 엄청난 컴퓨터 연산력을 함께 활용했다고 한다. 하이크 비전 연구소의 쉬리앙 푸(Shiliang Pu) 소장은 "뛰어난 GPU 성능과 엔비디아의 엔드-투-엔드 AI 및 딥러닝 플랫폼을 동영상 스트림에 적용할 경우 여러 산업 부문에서 보다 스마트한 애플리캐이션 개발이 가능하다"라고 말했다. 

 

 

 

 

 

DeepStream을 사용하면 좋은점

  • AI 기반 비디오 및 이미지 분석을 위한 원활한 스트리밍 파이프라인 구축 가능
  • 개발자에게 C / C++ / Python 의 개발 옵션을 두어 개발 유연성 제공 
  • 다양한 하드웨어 가속 플러그인과 함께 제공됨 
  • SSD, YOLO, FasterRCNN 및 MaskRCNN 과 같은 광범위한 AI 모델 지원 (더 많이 지원되었으면 좋겠다.)
  • OpenCV 함수 및 라이브러리 통합 가능
  • Pytorch 및 TensorFlow 와 같은 기본 프레임워크에 모델을 배포하거나 다중 GPU, 다중 스트림 및 일괄 처리 지원 옵션과 함꼐 높은 처리량의 추론을 위해 NVIDIA TensorRT를 사용하여 최상의 성능 달성 가능 
  • 모든 클라우드 및 엣지에서 실행될 수 있으므로 엣지와 클라우드 간의 효과적인 양방향 메시징, 보안, 스마트 녹화 및 무선 AI 모델 업데이트와 같은 IoT 의 요구사항 처리 가능
  • 특히 Smart Record 기능을 사용하면 선택적 기록을 통해 엣지에서 디스크 공간을 절약 할 수 있음
  • 클라우드 레지스트리의 전체 앱 또는 개별 AI 모델에 대한 원활한 OTA(Over-the-Air) 업데이트를 통해 다운 타임 없이 정확성을 지속적으로 개선 가능
  • Kafka, MQTT 및 AMQP와의 IoT 통합 인터페이스 및 AWS IoT 및 Microsoft Azure IoT 와의 turnkey integration 제공 가능
  • NVIDIA NGC 컨테이너를 사용하여 고성능 딥스트림 클라우드 네이트브 애플리케이션 구축 가능
  • Kubernetes 및 Helm 차트를 통해 대규모로 배포하고 컨테이너화 된 앱 관리 가능

 

 

 

DeepStream SDK Plugins

 

  • H.264 and H.265 video decoding
  • Stream aggregation and batching
  • TensorRT-based inferencing for detection, classification and segmentation
  • Object tracking reference implementation

 

  • On-screen display API for highlighting objects and text overlay
  • Frame rendering from multi-source into a 2D grid array
  • Accelerated X11/EGL-based rendering
  • Filtering based on Region of Interest (ROI)

 

  • JPEG decoding
  • Scaling, format conversion, and rotation
  • Dewarping for 360-degree camera input
  • Metadata generation and encoding
  • Messaging to cloud

 

 

Transfer Learning Toolkit(TLT)를 사용하여 DeepStream 어플리케이션 구축 

 

딥스트림은 다양한 물체 감지, 이미지 분류 및 인스턴스 분할 기반 AI 모델에 탁월한 처리량을 제공한다. 처리량을 늘리기 위해 개발자는 Transfer Learning Toolkit(TLT)에서 매우 정확한 사전 훈련된 모델을 사용하고 딥스트림을 통해 배포할 수 있다. 

 

다음 표는 엔비디아 홈페이지에서 가져온 표이다. 1080p / 30 fps 입력 스트림에 대해 end-to-end 로 추론한 성능을 나타낸다. 

 

DeepStream

 

위와 같이 DeepStream SDK를 사용하면 스트리밍 비디오에 AI를 적용할 수 있으며 완전한 End-to-End 성능 최적화를 위해 디코딩/인코딩, 이미지 스케일링 및 변환, 엣지-클라우드 연결을 동시에 최적화 할 수 있다고 한다. 

 

DeepStream

 

성능 지표에 나온 딥러닝 모델들은 엔비디아에서 제공하는 딥러닝 모델이다. 즉 NVIDIA 전용 모델인 것이다. 이러한 모델들은 NGC(NVIDIA GPU Cloud)에서 무료로 다운 받을 수 있다. 지금(2021/01/24) 기준으로는 TLT 2.0 까지 배포되었고 아래 링크에서 다운로드 받을 수 있다. 

 

TLT(Transfer Learning Toolkit) Getting Started 

developer.nvidia.com/tlt-getting-started?fbclid=IwAR2avqXw60BNDEh9nnkv3IFuM6w10_jC5adrPwuwALl31vKDG3MFhRRSGJI

 

Transfer Learning Toolkit Getting Started

TLT 2.0 Highlights: Achieve 2x inference speedup with INT8 precision while maintaining comparable to FP16/FP32 using quantization aware training Speedup training time and save on memory bandwidth with automatic mixed precision running on Tensor Cores for N

developer.nvidia.com

 

자세히 살펴보니 다음과 같은 것들이 존재한다. 

 

TLT(Transfer Learning Toolkit) 

 

 

 

이는 quantization aware training 을 사용하여 FP 16 / FP 32 와 비슷한 수준을 유지하면서 INT8 정밀도로 2배의 추론 속도를 향상시켰기 때문에 큰 의미가 있으며 NVIDIA Volta 및 Turing GPU 용 Tensor 코어에서 실행되는 automatic mixed precision 으로 학습 시간을 단축하고 메모리 대역폭을 절약 할 수 있다.  

 

각 모델들은 YOLOv3, RetinNet, DSSD, FasterRCNN, DetectNet_v2, MaskRCNN 및 SSD 등으로 학습되었다고 하는데 모델들을 더 자세히 볼 필요가 있기 때문에 다음 포스팅에 설명 하도록 하겠다! 

 

이러한 모델들은 DeepStream SDK 5.0 과 즉시 사용가능한 호환성을 가진다고 한다. TLT 및 DeepStream 을 이용하여 지능형 비디오 분석 어플리캐이션을 구축에 대한 글은 아래 참고자료 7에 자세히 나와있다. 참고하면 좋을 것 같다. 

 

 

 

 

 

 

 

 

 

 

NVIDIA DeepStream 관련 링크

 

DeepStream Release Notes 

docs.nvidia.com/metropolis/deepstream/DeepStream_5.0.1_Release_Notes.pdf

 

DeepStream Development Guide

docs.nvidia.com/metropolis/deepstream/dev-guide/#

 

DeepStream SDK API Reference

docs.nvidia.com/metropolis/deepstream/sdk-api/index.html

 

DeepStream Plugin(GStreamer) Manual

docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_Intro.html

 

DeepStream Python API

docs.nvidia.com/metropolis/deepstream/python-api/index.html

 

DeepStream FAQ

docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_FAQ.html

 

DeepStream Troubleshooting

docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_troubleshooting.html

 

DeepStream Documentation Archive

docs.nvidia.com/metropolis/deepstream-archive.html

 

 

 

 

 

NVIDIA Transfer Learning Toolkit 관련 링크

 

Transfer Learning Toolkit - User Guide

docs.nvidia.com/metropolis/TLT/tlt-user-guide/index.html

 

Transfer Learning Toolkit - Release Notes

docs.nvidia.com/metropolis/TLT/tlt-user-guide/text/release_notes.html

 

 

 

 

 

이 글을 쓰면서 본 참고자료들

 

참고자료 1 : developer.nvidia.com/deepstream-sdk

 

NVIDIA DeepStream SDK

Build and deploy AI-powered Intelligent Video Analytics apps and services. DeepStream offers a multi-platform scalable framework to deploy on the edge or connect to any cloud.

developer.nvidia.com

참고자료 2 : blogs.nvidia.co.kr/2017/09/27/alibaba-huawei-metropolis/

 

엔비디아 메트로폴리스 AI 스마트 시티 플랫폼, 알리바바와 화웨이에 채택 - NVIDIA Blog Korea

AI 스마트 시티 구축을 위한 엔비디아 메트로폴리스(Metropolis) 플랫폼이 알리바바(Alibaba)와 화웨이(Huawei)에 채택됐으며, 실시간 동영상 분류를 돕는 엔비디아 딥스트림(DeepStream) SDK를 새롭게 탑재

blogs.nvidia.co.kr

참고자료 3 : www.nvidia.com/ko-kr/autonomous-machines/intelligent-video-analytics-platform/

 

Metropolis | NVIDIA

Nvidia의 교통 관리 및 스마트 주차를 위한 비디오 분석 솔루션

www.nvidia.com

참고자료 4 : ngc.nvidia.com/catalog/containers/nvidia:tlt-streamanalytics?fbclid=IwAR1DRKhq1W91oRGfXENSD7CgE6y7iRHzXJJqXfEMoYLpG8bSt1s31WcSHm4

 

NVIDIA NGC

 

ngc.nvidia.com

참고자료 5 : docs.nvidia.com/metropolis/deepstream/dev-guide/#

 

DeepStream Development Guide — DeepStream DeepStream Version: 5.0 documentation

© Copyright 2019-2020, NVIDIA. Last updated on Nov 17, 2020.

docs.nvidia.com

참고자료 6 : blogs.nvidia.com/blog/2020/09/17/gtc-transforming-video-analytics/

 

NVIDIA Blog: Discover AI-based Video Analytics Applications

GPU Technology Conference to feature AI-driven vision applications.

blogs.nvidia.com

참고자료 7 :

developer.nvidia.com/blog/building-iva-apps-using-deepstream-5-0-updated-for-ga/?fbclid=IwAR3ImmZDOlR-bffEK2ExgRVp62QAKijBdzHRd1KfLBQIut2W5kT5wG5nxuc

 

Building Intelligent Video Analytics Apps Using NVIDIA DeepStream 5.0 (Updated for GA) | NVIDIA Developer Blog

Whether it’s a warehouse looking to balance product distribution and optimize traffic, a factory assembly line inspection, or hospital management, making sure that employees and caregivers use…

developer.nvidia.com

 

 

728x90
반응형