Object Processing Guide

Lumeo AI model inferencing nodes can detect and insert objects (AI Model, Generic Detector, AI Model by Roboflow, etc) or object attributes ( Generic Classifier, Vision Language Model Lookup, Local Vision Language Model Lookup, Recognize Barcodes, OCR, etc ) into the workflow metadata.

These objects and object attributes can used by downstream nodes which have a model-label property type to act on them. This guide shows you how to leverage this capability for conditional processing.

Metadata Format

Objects are inserted into the workflow metadata with a label and attributes in the format shown below.

'objects': [{
    'id': 5750484150146564100,
    'label': 'car',
    'class_id': 0,
    'probability': 0.70000000149011612,
    'rect': {
        'width': 47,
        'top': 201,
        'left': 656,
        'height': 25
    },
    'attributes': [{
        'label': 'white',
        'probability': 0.9437278509140015,
        'class_id': 10
    }]
}]

Label values

For Lumeo Marketplace models, they can be found in Lumeo Model Reference. For all other nodes, refer to the node documentation to determine which object labels and object attribute labels they insert.

You can use the Custom Function to insert your own attributes to objects as well.

Model-label Format

For any node property whose type is model-label, you can specify comma separated objects with optional attributes using the semantics below:

  • object_label — objects with or without attributes (e.g. car, person)
  • object_label.attribute_label1.attribute_label2 — e.g. car.red.motion_moving (attributes
    are added by some nodes or classifier models)
  • object_label.* — objects with at least one attribute
  • object_label.-* — objects with no attributes
  • *.attribute_label — any object type with this attribute
  • object_label.-attribute_label1 - object without this specific attribute
  • object_label.attribute_label1.-attribute_label2 - object with one attribute and without the other attribute

How to use

This approach gives you the ability to selectively process certain objects with certain attributes. Here are some examples.

Conditional counting

For instance, consider a workflow like this :

Video Source -> AI Model (vehicle detection) -> Track Objects -> Color Classifier -> Line Crossing Counter

In this workflow, the Line Crossing Counter node could be configured to count only red cars or blue cars by specifying it's objects_to_track property as car.red, car.blue


Conditional alerting

Consider this workflow:

Video Source -> AI Model (people detection) -> Track Objects -> Generic Classifier (configured to add a operating_machine attribute to person objects) -> Presence Monitor

In this workflow, the Presence Monitor node can be configured to alert only when there is a person NOT operating a machine in a given area by setting objects_to_track to person.-operating_machine



Did this page help you?