Evaluating GPU Accelerated Motion Detector

From RidgeRun Developer Wiki



Previous: Getting Started/Dependencies Index Next: Getting Started/Building GPUMotionDetector






GPU Accelerated Motion Detector C++ Library

In order to request an evaluation binary for a specific architecture, please contact us by providing the following information:

  • Device (i.e.: Xavier NX, Xavier AGX, etc...)
  • Kernel version, you can provide the output of the following command: uname -a

The following steps will show how to install the evaluation version of the C++ Library (librrmotiondetection).

Step 1: Features of Evaluation

RidgeRun provides a fully-featured evaluation version of the plugins with a limited processing time, as shown in table 1:

Feature Professional Evaluation
C++ Library Y Y
Unlimited Processing Time Y N (1)
Unlimited days of use Y N (2)
Source Code Y N
Table 1. Features provided in the evaluation version

(1) The evaluation version will limit the processing to a maximum of 5000 frames.

(2) The evaluation version will limit the number of days to use, after that limit you won't be able to use it.

Step 2: Install the dependencies

Make sure the dependencies are fulfilled, for this check our Dependencies section before moving to the next step.

Step 3: Install the Binaries

RidgeRun should've provided you with a .tar package: librrmotiondetection-1.Y.Z-gst-1.X-P-eval.tar. Copy the files into your system:

 tar -xvf librrmotiondetection-1.Y.Z-gst-1.X-P-eval.tar
 sudo cp -r librrmotiondetection-1.Y.Z-gst-1.X-P-eval/usr/lib/* /usr/lib/


GPU Accelerated Motion Detector GStreamer Plugins

The following steps will show how to install the evaluation version of the GStreamer Plugins.

Step 1: Request the Evaluation Binaries

In order to request an evaluation binary for a specific architecture, please Contact Us by providing the following information:

Device (i.e.: Xavier NX, Xavier AGX, etc...) GStreamer version and kernel version, you can provide the output of the following commands:

 gst-launch-1.0 --gst-version
 uname -a

RidgeRun provides a fully-featured evaluation version of the plugins with a limited processing time, as shown in table 2:

Feature Professional Evaluation
rrmotiondetection Y Y
rrnoisereduction Y Y
rrblobdetector Y Y
rrcudablobdetector Y Y
rrmotionoverlay Y Y
rrmotiondetectionbin Y Y
Unlimited Processing Time Y N (1)
Unlimited days of use Y N (2)
Source Code Y N
Table 2. Features provided in the evaluation version of GStreamer

(1) The evaluation version will limit the processing to a maximum of 5000 frames.

(2) The evaluation version will limit the number of days to use, after that limit you won't be able to use it.

Step 2: Install the dependencies

Make sure the dependencies are fulfilled, for this check our Dependencies section before moving to the next step.

Step 3: Install the Binaries

RidgeRun should've provided you with a .tar package: gst-rrmotiondetection-1.Y.Z-gst-1.X-P-eval.tar. Copy the files into your system:

 tar -xvf gst-rrmotiondetection-1.Y.Z-gst-1.X-P-eval.tar
 sudo cp -r gst-rrmotiondetection-1.Y.Z-gst-1.X-P-eval/usr/lib/* /usr/lib/

You can verify the plug-in installation by running the following command in your terminal:

 gst-inspect-1.0 rrmotiondetectionbin

Please verify every element:

  • rrmotiondetection
  • rrnoisereduction
  • rrblobdetector
  • rrcudablobdetector
  • rrmotionoverlay
  • rrmotiondetectionbin

If the plugin was successfully installed you should see the plugin information printed in your terminal, similar to the information shown below. If the plugin information is not displayed, please visit our Troubleshooting section.


Factory Details:
  Rank                     none (0)
  Long-name                Motion Detection Bin
  Klass                    Filter/Video
  Description              Detects motion blobs
  Author                   Melissa Montero <melissa.montero@ridgerun.com>

Plugin Details:
  Name                     rrmotiondetection
  Description              Motion detection components based on OpenCV
  Filename                 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstrrmotiondetection.so
  Version                  0.1.0
  License                  Proprietary
  Source module            gstrrmotiondetection
  Binary package           gstrrmotiondetection
  Origin URL               www.ridgerun.com

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBin
                         +----GstRrMotionDetectionBin

Implemented Interfaces:
  GstChildProxy

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)I420, (string)YV12, (string)YUY2, (string)UYVY, (string)AYUV, (string)VUYA, (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)Y41B, (string)Y42B, (string)YVYU, (string)Y444, (string)v210, (string)v216, (string)Y210, (string)Y410, (string)NV12, (string)NV21, (string)GRAY8, (string)GRAY16_BE, (string)GRAY16_LE, (string)v308, (string)RGB16, (string)BGR16, (string)RGB15, (string)BGR15, (string)UYVP, (string)A420, (string)RGB8P, (string)YUV9, (string)YVU9, (string)IYU1, (string)ARGB64, (string)AYUV64, (string)r210, (string)I420_10BE, (string)I420_10LE, (string)I422_10BE, (string)I422_10LE, (string)Y444_10BE, (string)Y444_10LE, (string)GBR, (string)GBR_10BE, (string)GBR_10LE, (string)NV16, (string)NV24, (string)NV12_64Z32, (string)A420_10BE, (string)A420_10LE, (string)A422_10BE, (string)A422_10LE, (string)A444_10BE, (string)A444_10LE, (string)NV61, (string)P010_10BE, (string)P010_10LE, (string)IYU2, (string)VYUY, (string)GBRA, (string)GBRA_10BE, (string)GBRA_10LE, (string)BGR10A2_LE, (string)GBR_12BE, (string)GBR_12LE, (string)GBRA_12BE, (string)GBRA_12LE, (string)I420_12BE, (string)I420_12LE, (string)I422_12BE, (string)I422_12LE, (string)Y444_12BE, (string)Y444_12LE, (string)GRAY10_LE32, (string)NV12_10LE32, (string)NV16_10LE32, (string)NV12_10LE40 }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw(memory:NVMM)
                 format: { (string)I420, (string)I420_10LE, (string)P010_10LE, (string)I420_12LE, (string)UYVY, (string)YUY2, (string)YVYU, (string)NV12, (string)NV16, (string)NV24, (string)GRAY8, (string)BGRx, (string)RGBA, (string)Y42B }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)I420, (string)YV12, (string)YUY2, (string)UYVY, (string)AYUV, (string)VUYA, (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR, (string)RGB, (string)BGR, (string)Y41B, (string)Y42B, (string)YVYU, (string)Y444, (string)v210, (string)v216, (string)Y210, (string)Y410, (string)NV12, (string)NV21, (string)GRAY8, (string)GRAY16_BE, (string)GRAY16_LE, (string)v308, (string)RGB16, (string)BGR16, (string)RGB15, (string)BGR15, (string)UYVP, (string)A420, (string)RGB8P, (string)YUV9, (string)YVU9, (string)IYU1, (string)ARGB64, (string)AYUV64, (string)r210, (string)I420_10BE, (string)I420_10LE, (string)I422_10BE, (string)I422_10LE, (string)Y444_10BE, (string)Y444_10LE, (string)GBR, (string)GBR_10BE, (string)GBR_10LE, (string)NV16, (string)NV24, (string)NV12_64Z32, (string)A420_10BE, (string)A420_10LE, (string)A422_10BE, (string)A422_10LE, (string)A444_10BE, (string)A444_10LE, (string)NV61, (string)P010_10BE, (string)P010_10LE, (string)IYU2, (string)VYUY, (string)GBRA, (string)GBRA_10BE, (string)GBRA_10LE, (string)BGR10A2_LE, (string)GBR_12BE, (string)GBR_12LE, (string)GBRA_12BE, (string)GBRA_12LE, (string)I420_12BE, (string)I420_12LE, (string)I422_12BE, (string)I422_12LE, (string)Y444_12BE, (string)Y444_12LE, (string)GRAY10_LE32, (string)NV12_10LE32, (string)NV16_10LE32, (string)NV12_10LE40 }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw(memory:NVMM)
                 format: { (string)I420, (string)I420_10LE, (string)P010_10LE, (string)I420_12LE, (string)UYVY, (string)YUY2, (string)YVYU, (string)NV12, (string)NV16, (string)NV24, (string)GRAY8, (string)BGRx, (string)RGBA, (string)Y42B }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:
  async-handling      : The bin will handle Asynchronous state changes
                        flags: readable, writable
                        Boolean. Default: false
  cuda-blob-detection : Use blob detection algorithm (in charge of detecting the motion bounding boxes) implemented in cuda otherwise use cpu blob detection
                        flags: readable, writable
                        Boolean. Default: false
  grayscale           : When enabled, the motion detection is performed over a grayscaleimage (color dropped)
                        flags: readable, writable
                        Boolean. Default: true
  message-forward     : Forwards all children messages
                        flags: readable, writable
                        Boolean. Default: false
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "rrmotiondetectionbin0"
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"


Previous: Getting Started/Dependencies Index Next: Getting Started/Building GPUMotionDetector