GstInference with GstClassificationMeta metadata
< GstInference | Metadatas
Make sure you also check GstInference's companion project: R2Inference |
GstInference |
---|
Introduction |
Getting started |
Supported architectures |
InceptionV1 InceptionV3 YoloV2 AlexNet |
Supported backends |
Caffe |
Metadata and Signals |
Overlay Elements |
Utils Elements |
Legacy pipelines |
Example pipelines |
Example applications |
Benchmarks |
Model Zoo |
Project Status |
Contact Us |
|
This metadata consists of a probability for each of the model's trained classes.
Fields
All classification elements on GstInference use the same metadata standard. GstClassificationMeta consist on the following fields:
field | type | description |
---|---|---|
num_labels | gint | The number of labels outputted by the model. This can vary from model to model. |
label_probs | gdouble * | The probability for each label. |
Access metadata
If you want to access this metadata from your custom Gstreamer element instead the process is fairly easy:
- Add a GstInference classification element such as InceptionV4 to your pipeline
- Include GstInference metadata header:
#include "gst/r2inference/gstinferencemeta.h"
- Get a GstClassificationMeta object from the buffer:
class_meta = (GstClassificationMeta *) gst_buffer_get_meta (frame->buffer, GST_CLASSIFICATION_META_API_TYPE);
All GstInference classification elements also raise a signal containing GstClassificationMeta, for details on how to use this signal please check the example applications section.
In the following section of code, we add the include like in point 2 and safe the GstClassificationMeta in the class_meta variable like in point 3.
#include "gst/r2inference/gstinferencemeta.h" static void get_buffer(GstPadProbeInfo * info) { GstBuffer *buffer; GstDetectionMeta *meta; buffer = gst_pad_probe_info_get_buffer (info); class_meta = (GstClassificationMeta *) gst_buffer_get_meta (buffer, GST_DETECTION_META_API_TYPE); g_print ("Class: 0 has probability %f\n", class_meta->label_probs[0]); }