Overview of GPU Accelerated Motion Detector

From RidgeRun Developer Wiki



  Index Next: Overview/Architecture





Motion Detection for NVIDIA GPU
Motion Detection for NVIDIA GPU. Image by Freepik

GPU Accelerated Motion Detector is a library that implements motion detection algorithms and it can be divided into stages to better understand its operation. For this implementation there are 3 stages, which correspond to Motion Detection, Noise Reduction and Blob Detection. These stages can be seen through the following image:

Figure 1. GPU Accelerated Motion Detector Stages

Next, a brief description of each stage will be given to provide a more complete picture of how the library works:

  • Motion Detection: In this stage, the algorithm keeps a reference and each frame is compared with this reference to determine what parts of the scene have changed. When this analysis is carried out, a mask is generated to reflect the changes in the image. In this mask, the white pixels correspond to the objects in which a change was detected and if not, the pixels remain black.
  • Noise Reduction: In this stage, the previously generated mask is taken and filtered to remove the noise resulting from the Motion Detection stage. The resulting frame is a bit masked.
  • Blob Detection: First, for better understanding, it is important to describe what a blob is. A blob corresponds to a "large" binary object of a certain size that is of interest, while "small" binary objects are usually considered noise. In this stage, these blobs are detected by going through the entire mask generated in the Noise Reduction step. Then, a resulting list is created with these blobs that correspond to the motion objects. At this stage what we have is a list of the objects in the selected ROI (Region of interest) that moved, with an object being represented as x1, x2, y2, y2 coordinates. The box that encloses the identified blobs is also calculated in this stage and this feature of the box is an optional step. These boxes can be seen in the previous figure as the resulting frame of the blob detection stage. The algorithm also has a minimum area property for moving objects, this means that if an object has a smaller area than the one specified in the property it will not be taken into account and therefore a box will not be drawn over it.

If you want to know more about this library, please refer to the following sections:

  • Architecture: An overview of GPU Accelerated Motion Detector architecture.
  • Supported Platforms: The platforms supported by GPU Accelerated Motion Detector.
  • Capabilities: The input/output capabilities of GPU Accelerated Motion Detector.
  • GStreamer Elements: Details of the GStreamer elements of the GPU Accelerated Motion Detector plugin.


For more documentation on the library and plugin please take a look at the available documentation.

  Index Next: Overview/Architecture