DeepStream 06: DeepStream Plugin Guide 01

MetaData in the DeepStream SDK

Posted by NAB on December 26, 2022

GstBuffer là đơn vị cơ bản của truyền dữ liệu trong GStreamer. Mỗi GstBuffer có metadata liên quan. DeepStream SDK đính kèm mỗi đối tượng DeepStream metada, NvDsBatchMeta, được mô tả trong các phần sau.

NvDsBatchMeta: Basic Metadata Structure

DeepStream sử dụng dụng cấu trúc tiêu chuẩn có thể mở rộng cho metadata. Cấu trúc metadata cơ bản NvDsBatchMeta bắt đầu với batch cấp độ metadata, được tạo bên trong plugin Gst-nvstreammux. Cấu trúc metadata con chứa frame, object, classifier, và label data. DeepStream cũng cung cấp một cơ chế cho phép thêm metadata dành riêng cho người dùng ở cấp độ batch, frame hoặc object. DeepStream đính kèm metadata vào một GtsBuffer bằng cách đính kèm một structure NvDsBatchMeta và đặt GstNvDsMetaType.meta.type thành NVDS_BATCH_META trong plugin Gst-nvstreammux. Khi ứng dụng của bạn xử lý GstBuffer, nó có thể lặp đi lặp lại metadata đã đính kèm để tìm NVDS_BATCH_GST_META. Hàm gst_buffer_get_nvds_batch_meta() này trích xuất NvDsBatchMeta từ GstBuffer.

DeepStream Plugin metadata

Hình 1: DeepStream Plugin metadata

User/Custom Metadata Addition inside NvDsBatchMeta

Để đính kèm người dùng cụ thể metadata ở cấp độ batch, frame hoặc object với NvDsBatchMeta, bạn phải lấy một phiên bản NvDsUserMeta từ nhóm người dùng meta bằng cách gọi vds_acquire_user_meta_from_pool() (Xem chi tiết sources/includes/nvdsmeta.h). Sau đó bạn phải khởi tạo NvDsUserMeta. Các thành viên bạn phải đặt là user_meta_data, meta_type, copy_funce, và release_func. Chi tiết hơn, xem mã nguồn ứng dụng mẫu trong sources/apps/sample_apps/deepstream-user-metadata-test/deepstream_user_metadata_app.c.

Adding Custom Meta in Gts Plugins Upstream from Gst-nvstreammux

Adding metadata to the plugin before Gst-nvsteamux

New metadata fields


References