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는 batched buffer로부터 metadata를 추출해서 low-level nvdsanalytics library로 전달한다. 해당library는 각 stream의 각 특징에 대해 설정된 규칙에 따라 분석을 수행하고, 전체 frame에 대해서 추적된 객체에 대한 결과를 출력한다.
분석된 결과 중 frame level의 결과는 NvDsAnalyticsFrameMeta 구조로 캡슐화되고 NVDS_USER_FRAME_META_NVDSANALYTICS 타입으로 user meta에 추가된다. user meta는NvDsFrameMeta의 멤버인 frame_user_meta_list에 추가된다.
detected object에 대한 결과는 NvDsAnaltricsObjInfo 구조로 캡슐화 되어서 NVDS_USER_OBJ_META_NVDSANALYTICS 타입으로 user meta에 추가된고 해당 user meta는NvDsObjectMeta의 멤버인 obj_user_meta_list에 추가된다.
NvDsAnalyticsObjInfo와 NvDsAnalyticsFrameMeta의 정의는 sources/includes/nvds_analytics_meta.h에서 가능하다.
Gst-nvdsanalytics의 설정은 configuration file을 통해서 이루어지는데, configuration file에서 roi-filtering, overcrowding, direction-detection, line-crossing 등의 기능에 대한 설정이 이루어진다.
configuration file의 구성은 다음과 같다.
'Tech > DeepStream' 카테고리의 다른 글
[Deepstream] Gst-nvinfer (0) | 2021.08.18 |
---|---|
[Deepstream] Gst-nvstreammux (0) | 2021.08.16 |
[GStreamer] GStreamer 개념 정리 (0) | 2021.08.05 |