Skip to content

ObjectFlow

The ObjectFlow application captures motion trajectories of objects in the video stream in realtime and measures crossline and occupancy via configurable lines and areas.

Application Identifier:

"type": "OBJECTFLOW"

Data Channels

LINE

{
    "type":   "LINE"
    "uuid":   # UUID of the line
    "name":   # Readable name
    "tags":   # List of user-definable tags
    "coordinates_uv":  # Coordinates in uv [u1, v1, u2, v2]
    "coordinates_geo": # Cordinates in geo [lat1, lon1, lat2, lon2] (if available, otherwise null)
    "length_uv":  # Length in uv
    "length_geo": # Length in real world meters (if available, otherwise null)
    "interval":   # Time interval between messages in milliseconds
    "count": {
        "CLASS1": {    # Object class
            "in":      # IN count
            "out":     # OUT count
        },
        "CLASS2": {
           ...
        },
        ...
    }
}

AREA

{
    "type":   "AREA"
    "uuid":   # UUID of the area
    "name":   # Readable name
    "tags":   # List of user-definable tags
    "coordinates_uv":  # Closed form path coordinates in uv [u1, v1, u2, v2, u3, v3, ...]
    "coordinates_geo": # Closed form path in geo [lat1, lon1, lat2, lon2, lat3, lon3, ...] (if available, otherwise null)
    "area_uv":  # Size of area in "square uv"
    "area_geo": # Size of area in real world square meters (if available, otherwise null)
    "count": {
        "CLASS1": # Object class and count
        "CLASS2": ...
        ...
    }
}

TRAJECTORY

{
    "type":     "TRAJECTORY"
    "uuid":     # UUID of this trajectory
    "class":    # Object class
    "start":    # Start time
    "end":      # End time
    "duration": # Duration in seconds

    # Tracking trajectory
    "trajectory": [
       {
          "time":     # Time diff to start in seconds
          "box":      # Box in uv coordinates [u1, v1, u2, v2]
          "geo":      # Geo coordinates [lat, lon] (if available, otherwise null)
       },
       ...
    ]
    "velocity_uv":   # Average velocity in uv coordinates (uv/s)
    "velocity_geo":  # Average velocity in geo coordinates (m/s)
    # Subtrajectory for each defined AREA on the same application
    "area_intersect": [ 
        {
            "uuid":   # UUID of the area
            "name":   # Readable name
            "tags":   # List of user-definable tags
            # List of index bounds for which the trajectory intersecting the area (points inside)
            "subtrajectories": [
                {
                    "start":    # start index (inclusive)
                    "end":      # end index (exclusive)
                    "duration": # duration of subtrajectory
                },
                ...
            ]
        },
        ...
    ]
    # List of trajectories belonging to this trajectory (e.g. a bicycle belonging to a person)
    # Referenced trajectories might be submitted at a later time
    "belongings":  [
        {
            "uuid":   # UUID of the belonging trajectory
            "class":  # Object class of the belonging trajectory
        },
        ...
    ]
}

ALARM

{
    "type":            "ALARM"
    "uuid":            # UUID of the alarm
    "name":            # Name of the alarm
    "tags":            # List of user-definable tags
    "query":           # Query string of the alarm
}

EVENT

{
    "type":            "EVENT"
    "uuid":            # UUID of the event
    "name":            # Name of the event
    "tags":            # List of user-definable tags
    "query":           # Query string of the event
}

GROUP

{
    "type":      "GROUP"
    "groups":    # List of lists of submitted trajectory uuids belonging to a group  
}