pythia.iterators#
Shortcuts to iterate over pyds.GList -from metadata.
- pythia.iterators._iter_user_meta(container_list: GList, kind: Type[SupportedUserMeta]) Iterator [source]#
- pythia.iterators.analytics_per_frame(frame_meta: NvDsFrameMeta) Iterator[NvDsAnalyticsFrameMeta] [source]#
Yield frame-level analytics metadata.
- Parameters:
frame_meta – deepstream frame-level metadata from nvinfer.
- Yields:
analytics metadata. A single frame might have multiple values.
- pythia.iterators.analytics_per_obj(object_metadata: NvDsObjectMeta) Iterator[NvDsAnalyticsObjInfo] [source]#
Yield analytics metadata from a single object in a frame.
- Parameters:
object_metadata – deepstream detection metadata from nvinfer.
- Yields:
analytics metadata. A single object might have multiple values.
- pythia.iterators.classification_per_object(object_metadata: NvDsObjectMeta) Iterator[NvDsClassifierMeta] [source]#
Yield classification metadata from a single object in a frame.
- Parameters:
object_metadata – deepstream detection metadata from nvinfer.
- Yields:
- classification metadata. A single object might have multiple
values.
- pythia.iterators.frames_per_batch(batch_meta: NvDsBatchMeta) Iterator[NvDsFrameMeta] [source]#
Yield frame metadata from the batch in a buffer.
- Parameters:
batch_meta – deepstream batch metadata from a buffer, as received in a bufer pad probe.
- Yields:
- frame metadata. A single batch might have multiple values when
nvstreammux batches its input frames.
- pythia.iterators.glist_iter(container_list: GList, klass: Type[Union[NvDsAnalyticsFrameMeta, NvDsAnalyticsObjInfo, NvDsInferSegmentationMeta, NvDsUserMeta, NvDsLabelInfo, NvDsFrameMeta, NvDsObjectMeta, NvDsClassifierMeta]]) Iterator [source]#
Iterate over pyds.GList objects.
A Pythonic way for iterating over deepstream metadata.
Example
When extracting object metadata from frame_metadata, in c++:
for ( NvDsMetaList * l_obj = frame_meta->obj_meta_list; l_obj != NULL; l_obj = l_obj->next ) { NvDsObjectMeta *object_meta = (NvDsObjectMeta *) (l_obj->data); do_something_with(object_meta); }
And its equivalent in python:
for object_meta in glist_iter( frame_metadata.obj_meta_list, pyds.NvDsObjectMeta ): do_something_with(object_meta)
- Parameters:
container_list – The object to iterate over. Its data attribute (PyCapsule) is used to instantiate objects.
klass – This class is instantiated via its cast constructor, using container_list.data as its only argument.
- Yields:
The Object instantiated when calling the cast function.
- pythia.iterators.instance_masks_per_batch(batch_meta: NvDsBatchMeta) Iterator[Tuple[NvDsFrameMeta, NvDsObjectMeta, ndarray]] [source]#
Yield frame, object, and mask metadata from the batch in a buffer.
- Parameters:
batch_meta – deepstream batch metadata from a buffer, as received in a bufer pad probe.
- Yields:
- frame metadata. A single batch might have multiple values when
nvstreammux batches its input frames.
- object metadata. A single frame might have multiple values when
a single or multiple nvinfer generate multiple detections.
instance segmentation. bidimensional matrix.
- pythia.iterators.labels_per_classification(classifier_meta: NvDsClassifierMeta) Iterator[NvDsLabelInfo] [source]#
Yield label metadata from a single classification in an object.
- Parameters:
classifier_meta – deepstream classification metadata from nvinfer.
- Yields:
- label metadata. A single classification might have multiple
values.
- pythia.iterators.labels_per_obj(object_metadata: NvDsObjectMeta) Iterator[NvDsLabelInfo] [source]#
Yield label metadata from a single object in a frame.
- Parameters:
object_metadata – deepstream detection metadata from nvinfer.
- Yields:
label metadata. A single object might have multiple labels.
- pythia.iterators.objects_per_batch(batch_meta: pyds.NvDsBatchMeta) Iterator[tuple[pyds.NvDsFrameMeta, pyds.NvDsObjectMeta]] [source]#
Yield frame and object metadata from the batch in a buffer.
- Parameters:
batch_meta – deepstream batch metadata from a buffer, as received in a bufer pad probe.
- Yields:
- frame metadata. A single batch might have multiple values when
nvstreammux batches its input frames.
- object metadata. A single frame might have multiple values when
a single or multiple nvinfer generate multiple detections.
- pythia.iterators.objects_per_frame(frame_meta: NvDsFrameMeta) Iterator[NvDsObjectMeta] [source]#
Yield object metadata from a single frame in a batch.
- Parameters:
frame_meta – single frame metadata
- Yields:
- object metadata. A single frame might have multiple values when
a single or multiple nvinfer generate multiple detections.
- pythia.iterators.semantic_masks_per_frame(frame_meta: NvDsFrameMeta) Iterator[ndarray] [source]#
Yield frame-level semantic segmentation metadata.
- Parameters:
frame_meta – deepstream frame-level metadata from nvinfer.
- Yields:
- semantic segmentation bidimensional matrix. A single frame will
probably have several values.