NvDsEventMsgMeta and exposing feature vectors


I’ve been experimenting with Deepstream 3 for various use cases. For object detection and classification it’s working well - I’m able to setup a pipeline and get meta data such as object type and bounding boxes from images without issue.

However, for use cases that require comparison of feature vectors (such as re-identification), I can’t see an obvious way to expose these vectors using the fields defined in the NvDsEventMsgMeta struct. Here’s a snippet from nvdsmeta.h:

typedef struct NvDsEventMsgMeta {
NvDsEventType type;
NvDsObjectType objType;
NvDsRect bbox;
NvDsGeoLocation location;
NvDsCoordinate coordinate;
NvDsObjectSignature objSignature;
gint objClassId;
gint sensorId;
gint moduleId;
gint placeId;
gint componentId;
gdouble confidence;
gint trackingId;
gchar *ts;
gchar *objectId;
gchar *otherAttrs;
gchar *videoPath;
gpointer extMsg;
guint extMsgSize;
} NvDsEventMsgMeta;

Attributes like objClassId, confidence and bbox are all that’s needed for, say, an object classifier pipeline. But where in this struct (if anywhere) could a feature vector be stored and therefore exposed for use outside of the pipeline?

If this is not currently supported, consider this question a feature request :-)



Good proposal. In Deepstream 4.0, user can attach “NVDS_GST_CUSTOM_META” metadata as well as “NVDS_EVENT_MSG_META”

Thanks for the info Chris - any details you can share on when Deepstream 4.0 will be available?

Hi godeassi,

We can’t disclose the schedule, but should not be too long, please stay tuned.