Skip to main content

AnalyticsMeta

Struct AnalyticsMeta 

Source
pub struct AnalyticsMeta {
    pub nodes: Vec<AnalyticsNode>,
    pub relations: Vec<Relation>,
    pub class_names: Option<Arc<[Box<str>]>>,
}
Expand description

The per-frame analytics relation graph (the GstAnalyticsRelationMeta analog): typed detection / classification / tracking nodes plus directed relations between them, so downstream elements (overlay, recorder, alarm) read results by node kind and traversal instead of decoding raw tensors.

Fields§

§nodes: Vec<AnalyticsNode>§relations: Vec<Relation>§class_names: Option<Arc<[Box<str>]>>

Class names indexed by a node’s label, so a consumer can show “person” rather than 12. Shared rather than stored per node: the names repeat on every detection of every frame, and a node stays Copy. None means the producer published no table.

Implementations§

Source§

impl AnalyticsMeta

Source

pub fn new() -> Self

Source

pub fn set_class_names<I, S>(&mut self, names: I)
where I: IntoIterator<Item = S>, S: Into<Box<str>>,

Set the class-name table, indexed by label id.

Source

pub fn class_name(&self, label: u32) -> Option<&str>

The name for a label id. None with no table, or for an id past its end: that means the table and the producer disagree, and showing a neighbour’s name would be worse than showing none.

Source

pub fn push(&mut self, node: AnalyticsNode) -> usize

Append a node, returning its index (used to wire relations).

Source

pub fn add_detection(&mut self, detection: ObjectDetection) -> usize

Append a detection node, returning its index.

Source

pub fn relate(&mut self, from: usize, to: usize, kind: RelationKind)

Wire a directed relation between two node indices.

Source

pub fn detections(&self) -> impl Iterator<Item = &ObjectDetection>

Iterate the detection nodes.

Source

pub fn segmentations(&self) -> impl Iterator<Item = &Segmentation>

Iterate the instance-segmentation nodes.

Source

pub fn rois(&self) -> impl Iterator<Item = &Roi>

Iterate the region-of-interest nodes.

Trait Implementations§

Source§

impl Clone for AnalyticsMeta

Source§

fn clone(&self) -> AnalyticsMeta

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AnalyticsMeta

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AnalyticsMeta

Source§

fn default() -> AnalyticsMeta

Returns the “default value” for a type. Read more
Source§

impl FrameMeta for AnalyticsMeta

Source§

fn propagate(&self, transform: Transform) -> Propagation

Normalized coordinates survive a scale / crop / copy unchanged; a re-encode to a compressed codec discards pixel-derived analytics.

Source§

fn as_any(&self) -> &dyn Any

Source§

fn as_any_mut(&mut self) -> &mut dyn Any

Source§

fn clone_box(&self) -> Box<dyn FrameMeta>

A boxed deep copy of this meta, the GstMeta copy_func analog. Backs the copy-on-write of a shared meta when a tee branch mutates it (see FrameMetaSet::get_mut); each FrameMeta impl is its own concrete type, so the duplication can only be expressed on the trait.
Source§

impl PartialEq for AnalyticsMeta

Source§

fn eq(&self, other: &AnalyticsMeta) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for AnalyticsMeta

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> ElementBound for T
where T: Send,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.