ITEA is the Eureka Cluster on software innovation
ITEA is the Eureka Cluster on software innovation
ITEA 4 page header azure circular

Macq QCAM Configurable pipeline

Project
19034 MIRAI
Type
New library
Description

The goal of the cam5-ai library is to acquire images from the sensors and feed them in a pipeline to achieve detection, regulation, image processing, etc.

We separated the recognition pipeline from the event framework . The new pipeline is less dependent on gstreamer. Gstreamer is used for its source and sink plugins but the recognitions and result handling are now done by our own pipeline that requires less boilerplate code. From a hardcode pipeline we went to a configurable pipeline.

Contact
Geert Vanstraelen, Macq
Email
geert.vanstraelen@macq.eu
Technical features

Cam5-ai defines its own framework to build a pipelines and manage its threads. The pipeline elements are either sources, plugins or sinks. These elements run in "Runners" which contain a single thread each, or in a "GroupRunner" which can contain several threads.

These are the main structures used in cam5-ai:

  • Frame: the object that navigates through the pipeline, from a source through plugins and to a sink. A Frame contains a primary image (black and white), a vector of synchronized images (color, radar, etc), and some metadata. The Frames are heavy to allocate and destruct, so there are only 128 frames allocated at start time and they are recycled by a ResourceManager when consumed by a sink.

  • Source: an element of the pipeline that generates a Frame, either from the sensor's driver, or from a video file, etc.

  • Plugin: an element of the pipeline that processes a frame and immediately returns it.

  • Sink: an element of the pipeline that consumes a frame, either by writing the image to a video file, or a video stream, or publishes the metadata to the database, etc.

  • Runner: an object that manages a single thread to run one or several plugins.

  • RunnerGroup: a runner that manages several threads to run multiple plugins at the same time and optionally reorder the frames at the exit.

  • RunnerQueue: a thread safe queue that links two runners. It is a sink and a source at the same time.

Example plugins that implement building blocks are object detectors, object classifiers, tracking and tracing, anonymization, image enhancement, sensor and illumination regulation algorithms, communication protocols

Integration constraints

cam5-ai is implemented under Linux in the Macq QCAM cameras. Some plugins depend on NVIDA GPU cores.

Targeted customer(s)

Municipalities and cities, police departments, Traffic and mobility centres

Conditions for reuse

License comes with the QCAM camera

Confidentiality
Public
Publication date
08-11-2023
Involved partners
Macq (BEL)