Skip to main content
This section covers QIM SDK AI sample applications that demonstrate vision, audio, and multi-model inference on Qualcomm platforms using LiteRT models accelerated on Qualcomm AI hardware. The following tables list all available GStreamer C/C++ AI applications and their platform support. Select the appropriate configuration tab for your setup.

Prerequisites

Some of the steps in the pre-requisties will be removed from future releases once the necessary fixes are mainlined.
1

Set up Wi-Fi

Connect to the Wireless Access Point (Wi-Fi Router):
Check the connection and device status:
Login to the target deviceLocate the IP address of the device according to the type of network connection, using the device shell on the Linux host:
Use the IP address from the Linux host to establish an SSH connection to the device:
Example:
Connect to the SSH shell using the following password:
2

Download Models and Artifacts

On the target device, obtain the download_artifacts_2.x.sh script, set executable permissions, and run it to download the model, media, and label files:
On Qualcomm Ubuntu, run the above command with sudo.
3

Enable qticamsrc

In the terminal of the target device, run the following command to enable the qticamsrc on Config #2:
4

Enable Audio and GPU Delegate

In the terminal of the target device, run the following command to enable audio:
To set the default devices for sink and source, get the device numbers from wpctl status and run the following command:
In the terminal of the target device, run the following command to enable the GPU delegate and backend:
5

(Optional) Download the YOLOv8 model

Use one of the following methods:
1

Create a Qualcomm AI Hub account

2

Copy your API key

Go to Settings in the upper right corner and copy your API key.
3

Run the export script on the host computer

Replace <API_KEY> with your API key:
The models are downloaded to the export_assets directory.
4

Copy the model to the ${HOME}/Downloads/qimsdk_samples/models/ directory on the device

AI Vision Applications

Object Detection

The gst-ai-object-detection application allows you to detect objects within images and videos. The use cases show the execution of YOLOv5, YOLOv8 and YOLOX on Qualcomm AI HW accelerator. The following figure shows the pipeline, which receives the input from a live camera feed, file, USB source, or an RTSP stream, preprocesses it, runs inferences on AI hardware. The results are either displayed on the screen, saved as an encoded MP4 file, or streamed over the RTSP server. For information about the plugins used in the pipeline flow, see Pipeline flow
The onnx runtime is not supported for this sample application in the QLI GA 2.1 release.
Pipeline Diagram Application: gst-ai-object-detection
When the software image includes the qticamsrc plugin, the camera framework uses it by default. If absent, the framework switches to libcamera instead. Since Config #1 lacks support for qticamsrc, the system defaults to libcamera.

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config_detection.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config_detection.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-object-detection application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
For USB camera input, set the video-format, resolution, and framerate parameters in the config file to match the camera capabilities, see Configure USB camera.
The snpe-tensors field applies only to the SNPE runtime. To retrieve the output tensor names for a DLC model, open the model in Netron.
When using DLC models from the AI Hub, the snpe-tensors field is optional.
Camera source, LiteRT model, DSP runtime

Expected Output

Detected objects with bounding boxes and labels are overlaid on the video and displayed on the local display.Output Diagram

Pipeline Flow

The following table lists the plugins used in the object detection pipeline:

Config JSON Field Description

Image Classification

The gst-ai-classification application is designed to identify the subject in an image. The use cases are implemented using the Qualcomm Neural Processing SDK, LiteRT or Qualcomm AI Engine Direct models. The pipeline receives a video stream from a camera, file source, USB source, or RTSP, preprocesses it, and runs the inference on AI hardware. The results are either displayed on the screen, saved as an encoded MP4 file, or streamed over the RTSP server. For information about the plugins used in the pipeline flow, see Pipeline flow
The onnx runtime is not supported for this sample application in the QLI GA 2.1 release.
Pipeline Diagram Application: gst-ai-classification
When the software image includes the qticamsrc plugin, the camera framework uses it by default. If absent, the framework switches to libcamera instead. Since Config #1 lacks support for qticamsrc, the system defaults to libcamera.

Input and Output Capabilities

camera use-case is not supported on IQ-2390 and CQ-2390.

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config_classification.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config_classification.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-classification application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
For USB camera input, set the video-format, resolution, and framerate parameters in the config file to match the camera capabilities, see Configure USB camera.
Camera source, LiteRT model, DSP runtime

Expected Output

The classified object label and confidence score are overlaid on the video and displayed on the local displayExpected output for gst-ai-classification application

Pipeline Flow

The following table lists the plugins used in the classification pipeline:

Config JSON Field Description

Face Detection

The gst-ai-face-detection application collects the live video input from a camera, file, or an RTSP stream and uses the Qualcomm AI Engine direct and LiteRT face detection models to produce a preview with the overlaid AI model output on the HDMI display. The following figure shows the pipeline, which receives the input, preprocesses it, runs inferences on AI hardware, and displays the results on the screen. For information about the plugins used in the pipeline flow, see Pipeline flow. Pipeline Diagram Application: gst-ai-face-detection

Input and Output Capabilities

camera use-case is not supported on IQ-2390 and CQ-2390.

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config_face_detection.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config_face_detection.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-face-detection application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
File source, LiteRT model, DSP runtime

Expected Output

Output Image Diagram

Pipeline Flow

The following table lists the plugins used in the face detection pipeline:

Config JSON Field Description


Semantic Segmentation

The gst-ai-segmentation application allows you to divide an image into different and meaningful parts or segments and assign a label to each homogeneous segment based on the similarity of the attributes. The application uses Qualcomm Neural Processing SDK runtime, Qualcomm AI Engine direct runtime, and LiteRT for image segmentation. The following figure shows the pipeline, which receives the input from a live camera feed, file, or an RTSP stream, preprocesses the video data, runs inferences using AI hardware, and displays the segmented data on the screen. For information about the plugins used in the pipeline flow, see Pipeline flow. Pipeline Diagram Application: gst-ai-segmentation

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config_segmentation.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config_segmentation.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-segmentation application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
File source, LiteRT model, DSP runtime

Expected Output

The segmented data is displayed on the local display.Expected output for gst-ai-classification application

Pipeline Flow

The following table lists the plugins used in the segmentation pipeline:

Config JSON Field Description

Pose Detection

The gst-ai-pose-detection application allows you to detect the body pose of the subject in an image or video. The use case processes input streams from a camera, file, or an RTSP source and uses LiteRT and Qualcomm AI Engine direct models for pose detection. The results are either displayed on the screen, saved as an encoded MP4 file, or streamed over the RTSP server. The following figure shows the pipeline, which receives the input from a live camera feed, file, USB source, or an RTSP stream, preprocesses it, conducts inference on AI hardware, and generates the output. This process allows for real-time pose detection and visualization of human poses. For information about the plugins used in the pipeline flow, see Pipeline flow. Pipeline Diagram Application: gst-ai-pose-detection

Input and Output Capabilities

camera use-case is not supported on IQ-2390 and CQ-2390.

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config_pose.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config_pose.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-pose-detection application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
For USB camera input, set the video-format, resolution, and framerate parameters in the config file to match the camera capabilities, see Configure USB camera.
To change the threshold, you must configure the confidence value in the hrnet_settings.json file.
File source, LiteRT model, DSP runtime

Expected Output

The displayed output shows the detected pose of the objects.Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the pose detection pipeline:

Config JSON Field Description

For better accuracy and detection results, use the gst-ai-daisychain-detection-pose application.

Mono Depth

The gst-ai-monodepth application allows you to infer depth of a source feed from a live camera stream, file, or an RTSP stream. The following figure shows the pipeline, which captures feed from the source, preprocesses it, and runs inferences using the AI hardware. For information about the plugins used in the pipeline, see Pipeline flow. Pipeline Diagram Application: gst-ai-monodepth

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config_monodepth.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config_monodepth.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-monodepth application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
File source, LiteRT model, DSP runtime

Expected Output

The overlaid model output stream is shown side by side with the live feed.Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the monodepth pipeline:

Config JSON Field Description

Super Resolution

The gst-ai-superresolution application allows you to generate high resolution video frames from low-resolution input. The following figures shows the pipeline, which receives a video stream from a file source as input, processes it through the super resolution module using LiteRT, and displays the output.
This application isn’t supported in Config #1 of Qualcomm Linux because CPU runtime is not supported.
For information about the plugins used in the pipeline, see Pipeline flow. Pipeline Diagram Pipeline Diagram Application: gst-ai-superresolution

Input and Output Capabilities

Sample Model Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-superresolution.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-superresolution.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-superresolution application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
The video super‑resolution application requires an input video resolution of 128 × 128.
File source, LiteRT model, DSP runtime

Expected Output

The output is displayed on an HDMI monitor.Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the superresolution pipeline:

Config JSON Field Description


AI Event Encoder

The gst-ai-event-encoder application receives the live video stream input from camera, file, or RTSP source. When a human enters the video frame the application preprocesses the video, runs inferences on the AI hardware, and encodes the video. The encoding stops 5 seconds after the human moves away from the frame and restarts when anyone enters the frame. The following figures show the event detection and recording pipelines for event encoder application. For information about the plugins used in the pipeline flow, see Pipeline flow. Pipeline Diagram Pipeline Diagram Application: gst-ai-event-encoder

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-event-encoder.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-event-encoder.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-event-encoder application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
File source, LiteRT model, DSP runtime

Expected Output

The output is saved as an MP4 file within ${HOME}/Downloads/qimsdk_samples/media folder as output-1.mp4, output-2.mp4, and so on.Output Image Diagram Diagram

Pipeline Flow

The following table lists the plugins used in the event encoder pipeline:

Config JSON Field Description

Metadata Parser

The gst-ai-metadata-parser-example application receives the live video stream input from camera, file, or RTSP source, and passes the stream to the YOLO models for object detection and preview. The overlaid AI model output, including labels and bounding boxes, is displayed on an HDMI display. The extracted metadata is logged to the console and used to count the number of humans in the frame. The following figure shows the pipeline for metadata parsing. For information about the plugins used in the pipeline flow, see Pipeline flow. Pipeline Diagram Application: gst-ai-metadata-parser-example

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-metadata-parser.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-metadata-parser.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-metadata-parser-example application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
File source, LiteRT model, DSP runtime

Expected Output

Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the metadata parser pipeline:

Config JSON Field Description

AI USB Camera

The gst-ai-usb-camera-app streams video from a USB webcam connected to the Qualcomm EVK. This webcam should be accessible as a /dev/videoX device. Additionally, you can perform object detection and preview the results. You can choose to preview the output on Wayland, or encode to a video file, or live stream through the RTSP. Alternatively, you can set enable-object-detection as True to perform object detection. The following figures show a pipeline, which processes the input from the USB camera to generate various outputs. For information about the plugins used in this pipeline, see Pipeline flow. Pipeline Diagram Pipeline Diagram Application: gst-ai-usb-camera-app

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-usb-camera-app.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-usb-camera-app.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-usb-camera-app application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
For USB camera input, set the video-format, resolution, and framerate parameters in the config file to match the camera capabilities.
You can run the Yolo-NAS-Quantized.tflite model using the YOLOv8 value in the yolo-model-type field.
The snpe-tensors field applies only to the SNPE runtime. To retrieve the output tensor names for a DLC model, open the model in Netron.
When using DLC models from the AI Hub, the snpe-tensors field is optional.
If the USB camera isn’t detected on the target device, Download the required firmware. See Download PCIe to USB controller firmware.
RTSP input, LiteRT, YOLOx model and DSP runtime

Expected Output

Output Diagram

Pipeline flow

The following table lists the plugins used in AI USB camera pipelines:

Config JSON field description


AI Audio Applications

Audio Classification

The gst-ai-audio-classification application shows audio classification using input from either a file source or a microphone. It displays both the classification results and a video preview. The following figure shows the pipeline, which gets the input from a file or a microphone, preprocesses it, and runs inferences on AI hardware. The results are displayed on the screen. For information about the plugins used in the pipeline flow, see Pipeline flow. Pipeline Diagram Application: gst-ai-audio-classification

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-audio-classification.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-audio-classification.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-audio-classification application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
File source, LiteRT model, CPU runtime

Expected Output

The output video and classified audio are played on the screen.Output Image Diagram

Pipeline Flow

The following table lists the plugins used in the audio classification pipeline:

Config JSON Field Description

AI Multi-Model Applications

Face Recognition

The gst-ai-face-recognition application collects the live video input from a camera or an RTSP stream and shares this input for face detection, facial landmarking, and face recognition. It uses the face_det_quantized models for face detection, facemap_3dmm_quantized model for facial landmarking, and face_attrib_net_quantized model for face recognition labels. The result is a preview of the overlaid AI model on the HDMI display.
This application isn’t supported in Config #1 of Qualcomm Linux because CPU runtime is not supported.
The following figure shows the pipeline, which receives the input, preprocesses it, runs inferences on AI hardware, and displays the results on the screen. Pipeline Diagram Application: gst-ai-face-recognition For information about the plugins used in the pipeline flow, see Pipeline flow.

Input and Output Capabilities

camera use-case is not supported on IQ-2390 and CQ-2390.

Sample Model and Label Files

Register a face for facial recognition

Before running the gst-ai-face-recognition application, you can register a face for secure verification and authentication:
1
Ensure that you complete the Prerequisites.
2
To register a face, use the following gst-pipeline on the target device shell:
3
To prepare for capturing a facial image, do the following:
1
Select the following options from the list. Choose the number corresponding to the option:
  • PLAYING: Move the pipeline to the Playing state.
  • Plugin Mode ➔ camsrc ➔ capture-image: Capture the image using a camera source.
2
Using the live preview on the display, face the camera and ensure that the camera is pointed straight and there is only one person in the frame.
3
In the terminal, enter 1 for the following values:
  • GstImageCaptureMode for arg0.
  • guint for arg1.
4
To capture all the sides of your face, select capture-image do the following for each side:
1
Left and right: Turn your head left by 40° while keeping the landmarks visible, then repeat steps 3 and 4. Turn your head right (by 40°) and repeat.
2
Up and down: Raise your head by 30° while keeping the landmarks visible, then repeat steps 3 and 4. Lower your head (by 30°) and repeat.
5
To stop the pipeline, use (b)Back and (q)Quit.
After running the pipeline, five individual tensor bins are created (tensor_0.bin to tensor_4.bin) with facial properties recorded for each side of the face.
6
On the target device, go to ${HOME}/Downloads/qimsdk_samples/data/, find the tensor bins.
To merge the tensor bins with all the facial properties into a cohesive image, download and run the facedb.py script in the same directory as the tensor bins on the target device.
1
Download the facedb.py script:
2
Run the script. Note that <Name of the person> is case and style sensitive. Ensure that you use the same name consistently.
A face.bin binary is created.
7
Rename the generated face.bin file to face{N}.bin, replacing {N} with the next serial number—for example, face0.bin, face1.bin and so on.
8
Use the following reference face_recognition.json file as an example for registering a new person in the database. The sample configuration demonstrates face registration for two individuals.
Update the ID field according to the number in the list. If more faces are registered, add the structure in a new line within face_recognition.json.
9
Use the following face_recognition_settings.json file as a reference when specifying the registered face database files:

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-face-recognition.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-face-recognition.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-face-recognition application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
Camera source, LiteRT, and DSP runtime

Expected output

Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the face recognition pipeline:

Config JSON Field Description


Daisychain Detection + Classification

The gst-ai-daisychain-detection-classification application allows you to perform cascaded object detection and classification with a camera, file source, or RTSP stream. The use case involves detecting objects and classifying the detected objects. The following figures show the pipeline workflow, which captures the video stream from the source, preprocesses it, and runs inferences using AI hardware. The results are either displayed on the screen, saved as an encoded MP4 file, or streamed over the RTSP server. For information about the plugins used in this pipeline, see Pipeline flow. Pipeline Diagram Pipeline Diagram Application: gst-ai-daisychain-detection-classification

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config_daisychain_detection_classification.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config_daisychain_detection_classification.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-daisychain-detection-classification application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
For USB camera input, set the video-format, resolution, and framerate parameters in the config file to match the camera capabilities, see Configure USB camera.
File source, LiteRT model, DSP runtime

Expected Output

The cropped video frame is overlaid on the frame and displayed on a local device.Pipeline DiagramPipeline Diagram
The classification models trained on the Imagenet dataset don’t contain the person class.

Pipeline Flow

The following table lists the plugins used in the daisychain detection and classification pipeline:

Config JSON Field Description

Daisychain Detection + Pose

The gst-ai-daisychain-detection-pose application allows you to perform cascaded object detection and pose detection with a camera, file source, or an RTSP stream. The use cases involve detecting objects and estimating the body poses of the subject in an image or a video. The following figure show the application workflow, which receives the source, postprocesses it, and runs inferences on AI hardware. The results are either displayed on the screen, saved as an encoded MP4 file, or streamed over the RTSP server. For information about the plugins used in the pipeline flow, see Pipeline flow. Pipeline Diagram Application: gst-ai-daisychain-detection-pose

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-daisychain-detection-pose.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-daisychain-detection-pose.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-daisychain-detection-pose application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
For QCS6490, if file-path and rtsp-ip-port are not present in the configuration file, then the camera input is selected.
For USB camera input, set the video-format, resolution, and framerate parameters in the config file to match the camera capabilities, see Configure USB camera.
File source, LiteRT model, DSP runtime

Expected Output

The cropped video frame is overlaid on the frame and displayed on a local device.Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the daisychain detection and pose pipeline:

Config JSON Field Description

Multistream Inference

The gst-ai-multistream-inference application shows AI inference (object detection and classification) on up to 32 input streams coming from camera, file, or RTSP stream. The following figure shows the pipeline, which receives several input streams, preprocesses them, runs AI inferences, combines the streams, and merges them all into a single video output. The maximum number of input streams supported on each SoC as verified on 1080P and 720P are follows:
  • QCS6490–8
  • Dragonwing IQ-8275–16
  • Dragonwing IQ-9075–32
    This application isn’t supported in Config #1 of Qualcomm Linux because CPU runtime is not supported.
    The output is displayed on an HDMI display, saved as an H.264 encoded MP4 file, or converted into an RTSP stream.
For information about the plugins used in this pipeline, see Pipeline flow. Pipeline Diagram Application: gst-ai-multistream-inference

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-multistream-inference.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-multistream-inference.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-multistream-inference application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
Object Detection on 8 H.264 file inputs, LiteRT model, DSP runtime

Expected Output

Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the multistream inference pipeline:

Config JSON Field Description


Multi-Stream Batch Inference

The gst-ai-multistream-batch-inference application shows batched AI inference (object detection and segmentation) on up to 24 input streams from video files. The following figure shows the pipeline, which receives several input streams, preprocesses them, runs AI inferences, combines the streams with inference, and merges them into a single video output. The maximum number of input streams supported on each SoC are follows: QCS6490–8 Dragonwing IQ-8275–4 Dragonwing IQ-9075–4 The output is displayed either on an HDMI display or saved as an H.264 encoded MP4 file. For information about the plugins used in this pipeline, see Pipeline flow.
This application isn’t supported in Config #1 of Qualcomm Linux because CPU runtime is not supported.
Pipeline Diagram Application: gst-ai-multistream-batch-inference

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-multistream-batch-inference.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-multistream-batch-inference.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-multistream-batch-inference application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
For 16 and 24 streams, add the required elements in the pipeline-info parameter. The id parameter takes the values from 0 to 5 for each added batch.
File source, LiteRT model, DSP runtime

Expected Output

Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the multistream batch inference pipeline:

Config JSON Field Description


Multi input/output object detection

The gst-ai-multi-input-output-object-detection application allows you to perform object detection, object classification, pose detection, and image segmentation on an input stream from different sources such as a camera, a file, or an RTSP network. The use cases implement the LiteRT models for object detection, image segmentation, classification, and pose detection. The following figure shows the pipeline workflow, which captures video streams for inferencing from different sources such as camera, file, or RTSP. For information about the plugins used in the pipeline, see Pipeline flow.
This application isn’t supported in Config #1 of Qualcomm Linux because CPU runtime is not supported.
Pipeline Diagram Application: gst-ai-multi-input-output-object-detection

Input and Output Capabilities

Sample Model and Label Files

Prerequisites

Update the following commands according to the Python version in your Linux host computer.
  • Create the Python 3.8 virtual environment:
  • Generate the yolov5.tflite model:
  • In the terminal of the host computer, run the following command to push the model to the target device:
If any model isn’t available after downloading the script file, you can download the model from IoT– Qualcomm AI Hub.
  • In the terminal of the host computer, run the following command to push the model files to the target device:

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-multi-input-output-object-detection.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-multi-input-output-object-detection.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-multi-input-output-object-detection application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
Ensure that the total number of input streams from the camera, RTSP, and file source doesn’t exceed 6.
For QCS6490, if file-path and rtsp-ip-port are not present in the configuration file, then the camera input is selected.
File source, LiteRT model, DSP runtime

Expected Output

Based on the use case, the results are either displayed on an HDMI screen, saved as an H.264 encoded MP4 file, or streamed over the RTSP server.Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the multi input output object detection pipeline:

Config JSON Field Description


Parallel Inferencing

The gst-ai-parallel-inference application allows you to perform object detection, object classification, pose detection, and image segmentation on an input stream from different sources such as a camera, a file, or an RTSP network. The use cases implement the LiteRT models for object detection, image segmentation, classification, and pose detection. The following figure shows the pipeline, which receives input streams from a camera, file, or an RTSP stream, performs the parallel inferencing for the four use cases, and displays the results side by side on the screen.
This application isn’t supported in Config #1 of Qualcomm Linux because CPU runtime is not supported.
For information about the plugins used in this pipeline, see Pipeline flow. Pipeline Diagram Application: gst-ai-parallel-inference

Input and Output Capabilities

Sample Model and Label Files

Run the application on the target device

1

Download artifacts

Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device.
Sample configuration files are available in /etc/configs. You can use the sample configuration or create a custom configuration file.
2

Run the application with the sample configuration file

To run the application with the sample configuration file, use:
This command runs the application using the sample configuration in /etc/configs/config-parallel-inference.json.To view the available command-line options, run:
Press CTRL + C to stop the execution.
3

Run the application with a custom configuration file

You can use a custom configuration file by specifying its path with --config-file:
If --config-file is specified, the application uses that file. Otherwise, it searches for config-parallel-inference.json in the following order:To create a user-specific configuration, copy the sample file to the user configuration directory:
Modify the copied configuration file to specify the required parameters. The custom configuration file must follow the schema defined in configurations.
Run the application:

Configurations

The gst-ai-parallel-inference application uses the following structure for its configuration file. Update its properties to match your model, input stream, and output. See Config JSON Field Description for all fields.
The application uses $HOME/Downloads/qimsdk_samples as its artifact directory. When a relative path or filename is specified, it is resolved against the corresponding subdirectory below. Alternatively, absolute paths are used as provided.
For QCS6490, if file-path and rtsp-ip-port are not present in the configuration file, then the camera input is selected.
File source, LiteRT model, DSP runtime

Expected Output

After performing the four parallel inferences, the results are displayed side by side on the screen.Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the parallel inference pipeline:

Config JSON Field Description


Gesture Recognition

The gst-gesture-recognition provides four-stage cascading pipeline that performs palm detection, hand landmark estimation, gesture embedding, and gesture classification on a live camera stream using ROI-based metadata propagation.
This application is not supported on the QLI GA 2.1 release for the IQ-2390 and CQ-2390 platforms.
For information about the plugins used in the pipeline flow, see Pipeline flow Pipeline Diagram Application: gst-gesture-recognition

Input and Output Capabilities

camera use-case is not supported on IQ-2390 and CQ-2390.

Sample Model and Label Files

The gesture recognition pipeline uses the following floating-point LiteRT models and associated metadata files:
All AI models use floating-point precision.

Run the application on the target device

1

Download artifacts

  • Complete the Prerequisites to copy the sample models, labels, media files, and configuration files to the target device. The application reads models from $HOME/models and labels from $HOME/labels by default.
  • Enable the GPU delegate before running the application, as it supports execution on GPU only.
2

Run the application

To run the application with the ISP camera and display the annotated stream:
Display output is enabled by default but can be disabled with --no-display
To use a USB camera:
To process a video file and save the annotated output:
To view all supported options, run:
Press CTRL + C to stop the execution.

Expected Output

The application detects hands, estimates keypoints, and recognizes gestures. Results are overlaid on each frame and rendered on the display.Pipeline Diagram

Pipeline Flow

The following table lists the plugins used in the gesture recognition pipeline:

Config JSON Field Description

gst-gesture-recognition does not use a JSON configuration file. Configure the application with the following command-line options:

Hardware benchmarking application

The hardware benchmarking application monitors the device hardware usage for a defined set of sample applications to capture metrics such as CPU/GPU/NPU usage and device thermals. These metrics explain the resource usage and throttling, which help to tune your AI use cases according to the requirements. The following figure shows the pipeline, which processes the input from a set of USB cameras to generate various outputs.
This application isn’t supported in the QLI GA 2.1 release.
Pipeline Diagram For information about the plugins used in this pipeline, see Pipeline flow.

Sample Model and Label Files

Setup the target device

1
To access the target device from your Linux host computer, set up SSH. For instructions, see Sign in using SSH.
If SSH is already set up, you can skip this step.
2
Use the HDMI port to connect the display to the device. For instructions, see Set up HDMI display.If you face issues with display, see Troubleshoot display issues.
3
Connect two USB cameras and a mouse to the target device.
4
Install the Qualcomm® Profiler on the Linux host computer. For installation instructions see Qualcomm Profiler.After connecting the device to the PC, run InstallerLE from the following locations:
  • For Linux:
  • For Windows:

Run the application on the target device

1
Clone the repository for the demo application and push it to the target device:
2
Sign in to the target device over SSH and run the script to set up the resources for hardware benchmarking application:
3
Start the application:
Pipeline Diagram
4
Select the preferred sample applications from the Camera 1 and Camera 2 drop-downs. The system thermal and hardware usage details appear at the bottom of the screen.You may run different sample applications to check the output and understand the hardware utilization.
  • Example 1: Choose the Camera option from Camera 1 and Camera 2 drop-down lists to observe the preview streams on the screen.
  • Example 2: Choose any sample application from Camera 1 and Camera 2 drop-down lists to observe the AI inferencing camera streams on the screen. Pipeline Diagram
For more information and features of the application, select the Info icon.
5
Select the Exit icon to close the application.

Pipeline Flow

The following table lists the plugins used in the hardware benchmarking pipeline:

Troubleshooting

If any model isn’t available after downloading the script file, you can download the model manually from IoT — Qualcomm AI Hub and push it to the target device:
For example:
Remount the file system with read/write permissions:For Qualcomm Linux:
If you cannot locate the qticamsrc plugin, ensure that the camera server is running and clear the GStreamer cache using the following commands:
To enable basic GStreamer logging, run the following before launching the application:
To increase verbosity for specific plugins, use a comma-separated list with log levels (1–7):
To redirect logs to a file for offline analysis: