Speed Estimation
Estimates speeds of objects in a ROI and sets triggers based on low/high thresholds.
Overview
The Speed Estimation node estimates speeds of objects in a ROI and sets triggers based on low/high thresholds. This node makes it easy to build common use cases such as No running zones, traffic jams, etc.
This node requires a AI Model Node and a Track Objects Node before it in order to function properly.
Inputs & Outputs
- Inputs : 1, Media Format : Raw Video
- Outputs : 1, Media Format: Raw Video
- Output Metadata : Speed Information
Properties
Property | Description | Type | Default | Required |
---|---|---|---|---|
rois | Region of interests in the video within which the Speed Estimation tracks objects. Format: x1,y1,x2,y2,x3,y3; X1,Y1,X2,Y2,X3,Y3,X4,Y4 . | polygon | null | Yes |
roi_labels | Region of interests labels for each ROI in the rois list. Conditional on rois . Format: table,room | hidden | - | Yes |
object_types | Comma separated list of object types to measure speed. Ex. car,person Accepted formats: object_label : any object of this type, with or without a classifier attribute. Example: car , object_label.class_type : any object of this type that | |||
has a specific classifier attribute. Example: car.red , object_label.* : any object of this type that has at least one classifier attribute. Example: car.* (this will match car.red , car.yellow , etc) | model-label | null | Yes | |
speed_unit | Unit of speed measurement. Options: mph (Requires Camera Calibration node), kmph (Requires Camera Calibration node), pph (Pixels per hour. Deprecated. Use pixels per second instead), pps (Pixels per second). | enum | pps | No |
speed_trigger_threshold_high | Classify as High speed above this threshold. | float | 100.0 | Yes |
speed_trigger_threshold_low | Classify as Low Speed below this threshold. | float | 20.0 | Yes |
speed_trigger_threshold_stationary | Classify as Stationary below this threshold. | float | 0 | Yes |
objects_to_flag | Objects to flag for triggering downstream events. Options: low , medium , high , stationary , regular , stop_and_go , hover . | enum-multi | null | No |
display_objects_mode | Display objects on video based on criteria. Options: none , triggered (Speed Above/Below Thresholds), regular , irregular (Stop-and-go or Hover Motion), stationary , all . | enum | triggered | No |
display_roi | Display ROI on video? | bool | true | No |
tracking_mode | Which point of the object to track. Options: centroid , top-center , bottom-center , left-center , right-center . | enum | bottom-center | No |
analysis_window | Analyze the last n seconds of an object's motion to determine motion type. | float | 10.0 | No |
sensitivity | Sensitivity for motion type detection. Higher sensitivity counts smaller movements as motion. Lower sensitivity counts only larger movements as motion. Range: 0-100. | slider-optional | 50 | No |
speed_labels_to_add | Add motion class to objects. Options: none , speed_category (speed_stationary/speed_low/speed_medium/speed_high), motion_type (motion_hover/motion_stop_and_go/motion_regular), all . | enum | all | No |
Metadata
Metadata Property | Description |
---|---|
nodes.<node_id> | Describes the ROIs monitored by this node, and their properties. Format : as defined in the table below. <node_id> for Speed Estimation Nodes is of the form annotate_speedX (ex. annotate_speed1 ) |
Example
"nodes": {
"annotate_speed1": {
"type": "annotate_speed",
"rois": {
"<roi_label>": {
"coords": [[<point1_x>, <point1_y>],
[<point2_x>, <point2_y>],
[<point3_x>, <point3_y>]],
"average_speed": <int>,
"objects_stationary_count": <int>,
"objects_stationary_delta": <int>,
"objects_low_speed_count": <int>,
"objects_low_speed_delta": <int>,
"objects_medium_speed_count": <int>,
"objects_medium_speed_delta": <int>,
"objects_high_speed_count": <int>,
"objects_high_speed_delta": <int>,
"objects_flagged_count": <int>,
"objects_flagged_delta": <int>,
"objects_stationary": [object_id1, object_id2...],
"objects_low_speed": [object_id1, object_id2...],
"objects_medium_speed": [object_id1, object_id2...],
"objects_high_speed": [object_id1, object_id2...],
"objects_flagged": [object_id1, object_id2...]
}
}
}
}
Format
Key | Type | Description |
---|---|---|
<roi_label> | Array of dictionaries | Contains information about this specific ROI |
<roi_label>.coords | Array of Arrays | Contains the bounding box coordinates that represent this ROI |
<roi_label>.objects_low_speed_count | Integer | Number of objects currently in this ROI below thespeed_trigger_threshold_low_mph |
<roi_label>.objects_low_speed_delta | Integer | Number of new objects in the ROI whose speed was below speed_trigger_threshold_low_mph between last frame and this frame |
<roi_label>.objects_medium_speed_count | Integer | Number of objects currently in this ROI between thespeed_trigger_threshold_low_mph and speed_trigger_threshold_high_mph |
<roi_label>.objects_medium_speed_delta | Integer | Number of new objects in the ROI whose speed was between speed_trigger_threshold_low_mph and speed_trigger_threshold_high_mph between last frame and this frame |
<roi_label>.objects_high_speed_count | Integer | Number of objects currently in this ROI above thespeed_trigger_threshold_high_mph |
<roi_label>.objects_high_speed_delta | Integer | Number of new objects in the ROI whose speed was above speed_trigger_threshold_high_mph between last frame and this frame |
<roi_label>.objects_flagged_count | Integer | Number of objects currently in this ROI that meet the objects_to_flag criteria. |
<roi_label>.objects_flagged_delta | Integer | Number of new objects in the ROI which met the objects_to_flag criteria between last frame and this frame |
<roi_label>.objects_low_speed | List of long integers | List of object IDs of low speed objects |
<roi_label>.objects_medium_speed | List of long integers | List of object IDs of medium speed objects |
<roi_label>.objects_high_speed | List of long integers | List of object IDs of high speed objects |
<roi_label>.objects_flagged | List of long integers | List of object IDs of flagged objects |
Updated 3 months ago