Skip to main content

Elements

Along with models, elements are the fundamental work item of Nimble. A Pipeline describes an ordered list of elements and can be designed to target multiple hardware devices. Metadata is passed to the elements from top to bottom. As metadata is passed from one element to the next the metadata is modified by the elements process function.

Apart from simple elements, there are two forms for defining the configurable parameters:

  • Short-form: A string with colon-delimited arguments (:).
  • Long-form: An object with named properties.

The API documentation for each pipeline will list its short-form and long-form if available. When describing the parameter lists f refers to a floating point value, s refers to a string, e refers to an enum, l refers to a list, and i refers to an integer.

All long-form representations of a pipeline element include these properties:

name: "element-name"  # required
config: {} # additional configuration, may be required by specific elements

Control Elements

This section describes the various control elements. These are designed to change the fundamental flow of data within the pipeline.

DEMUX

short-form : demux:<i-input_type>

The demux element splits a metadata blob of inferences into individual metadata blobs for processing one-at-a-time. Demux takes in one argument, the inference type to demux on:

  • i-input_type : supported input types {value between 1-4 where 1="detections", 2="poses", 3="classifications", 4="embeddings"}

MUX

short-form : mux:<i-input_type>

The mux element takes split metadata blobs and reconstructs the original metadata blob. This element is designed to occur after a demux. Mux takes in one argument, the inference type to mux on:

  • i-input_type : supported input types {value between 1-4 where 1="detections", 2="poses", 3="classifications", 4="embeddings"}