Object Motion Detection

Detects moving objects in the specified region of interest (ROI).

Overview

The Object motion detection node estimates if an object is moving or stationary, in a ROI. This node makes it easy to build common use cases such as alarm monitoring, object left behind, 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 : Motion information

Properties

PropertyDescriptionTypeDefaultRequired
roi_labelsRegion of interest labelstringNo
roisRegion of interest. Conditional on roi_labels. Format: comma-separated normalized x,y coordinate pairs; separate multiple polygons with semicolons (for example, 0.1,0.1,0.9,0.1,0.9,0.9).stringnullNo
object_typesex. car,person,car.red. Comma-separated list of object types to measure speed.model-labelsnullNo
objects_to_flagFlag objects with specified motion types so you can trigger downstream events using those. Options: Stationary (stationary); Moving (moving). Format: array of selected option values.string[]nullNo
display_objects_modeDisplay objects on video. Options: None (none); Flagged objects (flagged); All (all).enumflaggedNo
display_roiDisplay ROI on video?booltrueNo
motion_detection_triggerDetect object motion only during the time this condition is true. Use it to pause detection when ex. a PTZ camera is moving.trigger-conditionnullNo
tracking_modeTracking mode. Options: Centroid (centroid); Top center (top-center); Bottom center (bottom-center); Left center (left-center); Right center (right-center).enumbottom-centerNo
sensitivityHigher sensitivity counts smaller movements as motion. Lower sensitivity counts only larger movements as motion. Range: minimum 0, maximum 100. Step: 1.integer50No
analysis_windowAnalyze the last n seconds of an object's motion to determine motion type. Unit: seconds.float1.0No
min_motion_durationClassify objects as moving only when they have been moving for this duration in seconds. Unit: seconds.float0No

Output Metadata

The fields below are declared by this node's metadata schema; the JSON values are representative examples.

PathTypeDescription
nodes.<node_id>.rois.<roi_label>.objects_stationary_countintegerNumber of currently stationary objects.
nodes.<node_id>.rois.<roi_label>.objects_stationary_deltaintegerWhen one or more new objects are classified as stationary
nodes.<node_id>.rois.<roi_label>.objects_moving_countintegerNumber of objects currently moving.
nodes.<node_id>.rois.<roi_label>.objects_moving_deltaintegerWhen one or more new objects are classified as moving
nodes.<node_id>.rois.<roi_label>.objects_flagged_countintegerNumber of objects currently matching this node’s alert criteria.
nodes.<node_id>.rois.<roi_label>.objects_flagged_deltaintegerWhen one or more new objects are flagged
nodes.<node_id>.rois.<roi_label>.coordsarrayArray of pixel coordinates defining the configured ROI or line.
nodes.<node_id>.rois.<roi_label>.objects_stationaryarrayArray of tracking IDs of currently stationary objects.
nodes.<node_id>.rois.<roi_label>.objects_movingarrayArray of tracking IDs of objects currently moving.
nodes.<node_id>.rois.<roi_label>.objects_flaggedarrayArray of tracking IDs of objects currently matching this node’s alert criteria.
nodes.<node_id>.rois.<roi_label>.objects_of_interest_keysarrayArray of metadata keys that contain object IDs relevant to downstream integrations.
nodes.<node_id>.rois.<roi_label>.descriptionstringHuman-readable summary of the node’s current result.
nodes.<node_id>.typestringIdentifies the node type that produced this metadata.

JSON example

{
  "nodes": {
    "object_motion1": {
      "rois": {
        "roi1": {
          "coords": [],
          "description": "value",
          "objects_flagged": [object_id1, object_id2...],
          "objects_flagged_count": 0,
          "objects_flagged_delta": 0,
          "objects_moving": [object_id1, object_id2...],
          "objects_moving_count": 0,
          "objects_moving_delta": 0,
          "objects_of_interest_keys": [],
          "objects_stationary": [object_id1, object_id2...],
          "objects_stationary_count": 0,
          "objects_stationary_delta": 0
        }
      },
      "type": "object_motion"
    }
  }
}

Additional details

Object labels and attributes

  • Object labels/classes added: None.
  • Object attribute labels/classes added: motion_moving or motion_stationary, with class 12402.

Did this page help you?