본문 바로가기

반응형

Tech/DeepStream

(4)
[Deepstream] Gst-nvdsanalytics Gst-nvdsanalytics는 nvinfer와 nvtracker에 의해 추가된 metadata에 대한 분석을 진행한다. 분석은 ROI filtering, Overcrowding Detection, Direction Detection, Line Crossing에 대해서 진행한다. 해당 기능은 batch mode로 동작하는데, 여러 stream의 context를 독립적으로 조작한다. ROI 기반의 분석은 primary detector의 결과에서 동작하지만 Direction Detection이나 Line Crossing은 이전의 기록/상태를 분석하기 위해서 tracker-id가 필요하다. 해당 플러그인의 설정은 configuration file을 통해서 할 수 있다. Gst-nvdsanalytics는 ba..
[Deepstream] Gst-nvinfer Gst-nvinfer plugin은 NVDIA TensorRT를 사용하여 입력값을 inferencing한다. 이 플러그인은 NV12/RGBA buffer를 입력받는데, 이때 Gst Buffer에 NvDsBatchMeta structure가 미리 추가되어 있어야 한다. low-level library (libnvds_infer)는 network height와 width 차원의 INT8 RGB, BGR 또는 GRAY 데이터에서 작동한다. Gst-nvinfer는 해당 network의 요청에 맞춰 input data를 변형(conversion, scailing)하고, 이를 low-level library로 전달한다. low-level library는 변형된 frame을 전처리(normalizaation, mea..
[Deepstream] Gst-nvstreammux Gst-nvstreammux plugin은 multiple input sources로부터 생성되는 프레임들을 batch로 묶는 기능을 한다. nvstreammux에 source를 연결하기 위해서는 새로운 pad를 muxer에 요청하여 생성해야한다. 이때gst_element_request_pad() 함수와 pad 템플릿 sink_%u를 사용한다. muxer는 property에서 batch-size로 정해진 만큼의 frame들로 batched buffer를 구성한다. 만약 muxer의 input format과 output format이 같은 경우 해당 source에서 전송된 frame을 batched buffer에 포함시킨다. 만약 input과 output의resolution이 같지 않으면 muxer가 in..
[GStreamer] GStreamer 개념 정리 GStreamer는 스트리밍 미디어 애플리케이션을 개발을 위한 프레임워크로 Deepstream은 GStreamer를 기반으로 한 SDK이기 때문에 GStreamer의 기본 개념을 우선적으로 정리한다. gstreamer 프레임워크는 모든 형태의 스트리밍 미디어 애플리케이션을 개발할 수 있다. 오디오나 비디오 한가지 타입만 가능한 것이 아니라 두가지 타입 모두를 다룰 수 있도록 개발이 되었다. 또한 어떤 종류의 데이터 흐름도 구성할 수 있는 파이프라인 구조로 되어있다. [gstreamer plugins] - protocols handling- sources: for audio and video- formats: parsers, formaters, muxers, demuxers, metadata, subtit..

반응형