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
}