Processors are the modules that work inside a processing pipeline and do various transformations of the frame or its meta-data. The standard processing modules are listed here.

Crop

The crop processor takes a frame, crops the area inside blue rectangle and passes the cropped image to the next processing module. User can define the rectangle area by drawing on a sample frame or set exact values of (x1, y1) - upper left corner and (x2, y2) - lower right corner. Values are in percents of the frame dimensions.

Crop processor

Event trigger

This processor triggers a custom event if a condition meets.

Event trigger

The parameters are:

  • Event name: Name of the triggered event.
  • Event property: Property format: {property_name: property_value}.
  • Value to check: The name of the filed in meta-data to check.
  • Value suffix: This suffix is added to the end of main value, for example: suffix 'color' results in 'event.properties.color'.
  • Condition function: Formula
  • Reference value: Check the value against this number or string.

General events generator

This processor performs general monitoring of all objects and other events. Place it right before the output if you want to save best_shot events or other modules requires this generator.

General events generator

General meter

This processor calculates basic object's parameters and saves them to object's properties.

Measurement of general parameters of an object

General_meter saves following parameters:

  • height: the height of the object's bounding box in pixels
  • width: the width of the object's bounding box in pixels
  • area: height x width
  • brightness: average brightness of the object. 0 meas black and 1 means white
  • speed: average speed of the object in pixels per second

These parameters as stored at object's properties, like objects.properties.height. They are typically used in the rename object's conditions for defining objects' subclasses.

Line cross detector

The line_cross tool is an important processor for objects counting, wrong way detection, restricted area protection and similar use cases. User can draw a line right on a sample frame or set exact values for the line: x1, y1 (line beginning) and x2, y2 (line end). Values are in percents of the frame dimensions.

Line cross detector

  • Line name: There can be arbitrary number of lines in one pipeline. User can define a name for a line, that will be used as a filter or an additional parameter in the reports.
  • Zone width: this parameter shows how wide should be the neutral zone. The processor will register a line_cross event only when an objects cross this neutral zone completely.
  • Save mode: if you have just a single line in your scene - use One event per line. The system will save the object together with movement direction when it crosses the line. In this mode the detector saves information about the direction: It can be forward or backward and available through reports as properties.direction parameter. If you have multiple lines - switch to One event per object to avoid saving the same object multiple times.

Important

The line_cross processor should go after the tracker, because it detects the events when tracking path crosses the line. If Line cross goes before a tracker, there will be no path in meta-data, therefore no line_cross event will be detected.

Objects filter

This processor allows filtering out unwanted objects using various parameters.

OSD settings module

There are following parameters allows adjusting behaviour of the objects filter processor:

  • Objects to exclude: List here unwanted objects' classes using ; and they will be removed from further processing.
  • Objects to include: Instead of exclude some certain objects you can include only the target object classes and all the rest will be filtered out. Use ; to specify several objects.
  • Min detection confidence: Objects with the recognition confidence lower than this value will be dropped.
  • overlap_suppression_degree: This parameter allows removing overlapping detections, keeping the only one with the highest confidence. Degree defines how close objects intersect to be filtered out. 0.1 means: object needs to intersect slightly another object to be filtered out. And 0.9 means that that object needs to be almost of the same size and at the same location before it will be filtered out.
  • Max object size: This parameter allows filtering out too big objects. If sum of an object's height and width (in pixels) exceeds this value it will be dropped. 0 means no restrictions.
  • Min object size: This parameter allows filtering out too small objects. If sum of an object's height and width (in pixels) falls below this value the object will be dropped. 0 means the filter is off.

Objects tracker

After a new object is detected, the tracking processor assigns a fresh track ID and tracks it across the subsequent frames. Without tracking processor an object detected in each subsequent frame will be saved as a new object.

Object tracker

  • Patience: Increase this value if you want the system to wait longer until an occluded object re-appears.
  • Tolerance: If your video FPS is too low, you may need to increase tolerance, otherwise the system will not be able to build the objects' movement tracks.

Pixelate

You can add this element to your pipeline to cover the detected objects with the pixel mask in order to meet privacy requirements.

Pixel mask

Rename object

This processor takes names of detected objects and change their names if the condition met.

Object rename processor

Speedometer

In order to measure speed, first define a road segment by drawing start and stop lines. Then provide actual distance between these two lines in meters to let the system calibrate the space.

Speedometer

Once an object crosses both lines the system will add speed as the objects property.

Static counter

This processor counts objects within defined rectangle. This number is recoded as a frame's property: frame.properties.objects_in_frame.

Static counter

  • Area name: You can add multiple counting areas. In this case set different names for them.
  • Objects to count: If you add object names here, the counter will count only the objects with the defined names, ignoring any other object.

Static object

This processing element creates a static object.

Static object generator


Info

This is the list of common processors. RoadData offers customized processors for solving clients' specific tasks. Custom processors are supplied as separate .zip libraries. Click on the Upload .zip button next to the processor's dropdown list and choose the zipped module. This module will appear in the dropdown list immediately after the upload completed.