Object Flow Counter

Provides a breakdown of object types that cross a line or a sequence of lines from the Line Crossing Counter.

Overview

The Object Flow Counter node provides a breakdown of specific object types that cross a line or a sequence of lines defined by a Line Crossing Counter node prior to it. This node makes it easy to build common use cases such as People flow mapping in retail environments, Traffic intersection analysis, etc.

This node requires a Line Crossing Counter before it in order to function properly.

Inputs & Outputs

  • Inputs : 1, Media Format : Raw Video
  • Outputs : 1, Media Format: Raw Video
  • Output Metadata : Line Counter Information

Properties

PropertyDescriptionTypeDefaultRequired
object_typesComma-separated list of object types to consider. Empty list processes all objects. ex. car, person, face.maskmodel-labelnullYes
object_flow_rulesComma-separated list of labels of lines or line pairs that an object must cross through to be counted. ex. line_freeway_exit, line_streetA_EB+line_streetB_NB, line_streetA_WB+line_streetB_SB. If empty, counts crossings through each line.stringnullNo
reset_triggerReset object counts when this condition evaluates to true. ex. nodes.time_trigger1.triggered. Use it in combination with a Time Trigger to accumulate statistics over a regular interval like 5 minutes.trigger-conditionnullNo
displayDisplay options. Values: none, basicenumbasicNo

Metadata

Metadata PropertyDescription
nodes.<node_id>Describes the Lines monitored by this node, and their properties. Format : as defined in the table below. <node_id> for Object Flow Nodes is of the form object_flowX (ex. object_flow1)

Example

"nodes": {
    "object_flow1": {
        "type": "object_flow",
        "total_objects_crossed_count": <number>,
        "total_objects_crossed_delta": <number>
        "lines": {
            "<line_rule>": {
                "total_objects_crossed_count": <number>,
                "total_objects_crossed_delta": <number>,
                "object_crossed_counts": {
                    "<object_label1>": <number>,
                    ...
                },
                "object_crossed_deltas": {
                    "<object_label1>": <number>,
                    ...
                },
                "crossed_objects": [ <object_tracking_id>,<object_tracking_id> ]
            }
        }
    }
}

Format

KeyTypeDescription
total_objects_crossed_countIntegerNumber of objects seen crossing all monitored rules since last time stats were reset
total_objects_crossed_deltaIntegerNumber of objects seen crossing all monitored rules between last frame and this frame
<line_rule>DictionaryContains information about this specific object flow rule (specific line or sequence of lines)
<line_label>.total_objects_crossed_countIntegerNumber of objects seen crossing this rule since the last time stats were reset
<line_label>.total_objects_crossed_deltaIntegerNumber of objects seen crossing this rule between last frame and this frame
<line_label>.object_crossed_countsDictionaryDictionary containing object crossing count accumulated since last time stats were reset
<line_label>.object_crossed_counts.<object_label>IntegerNumber of objects of this label seen crossing this rule since the last time stats were reset
<line_label>.object_crossed_deltasIntegerDictionary containing object crossing change from last frame to this frame
<line_label>.object_crossed_deltas.<object_label>IntegerNumber of objects of this label seen crossing this line between last frame and this frame
<line_label>.crossed_objectsList of object IDsInformation about the objects currently crossing the rule. object_tracking_id : Unique identifier for a specific object, as specified by object.id property (see AI Model Node )