On this page

Installing Qt Edge AI with a QBSP image

Qt Edge AI is a Technical Preview. On the Qualcomm Dragonwing IQ-9075 (IQ9), you get it as part of the Qt Onboard image. There is no prebuilt Qt Board Support Package (QBSP) for the IQ9, so you build the QBSP, including the image, yourself with Yocto.

The Qualcomm quick start guide of Qt Onboard describes how to build the QBSP, flash the device, and build and run applications on it. This page describes only what is different for Qt Edge AI.

Prerequisites

  • A Qt for Device Creation license. Qt Edge AI is available under a commercial license only.
  • The build host, the IQ-9075 evaluation kit, and the cables that the Qualcomm quick start guide lists.
  • An Edge Impulse account, to create the AI model that the example uses.

Version compatibility

ComponentTested versionNotes
Qt Edge AI1.0.0Technical Preview
Qt6.12.0 or laterRequired by Qt Edge AI.
Qt Onboard releaseSame as Qt version
GStreamer on the target1.20 or laterRequired by the GStreamer backend of Qt Edge AI.
Qualcomm Intelligent Multimedia SDKqcom-6.6.142-QLI.1.9.1-Ver.1.1_qim-product-sdk-2.5.1Used by the Qualcomm inference step providers.

Building and installing the QBSP

Build the QBSP as described in Customizing Qt Onboard for a Qualcomm device in the Qualcomm quick start guide. Qt Edge AI needs no extra build steps: the meta-qbsp-qcom layers include the meta-qt6-ai layer, which builds Qt Edge AI into the image and the toolchain.

Then install the QBSP that the build creates in tmp/deploy/qbsp/, and flash its image to the device, as the quick start guide describes. Installing the QBSP adds a Qt Creator kit for the device.

Creating an AI model with Edge Impulse

Edge Impulse does not provide a ready-made face detection model, so train one of your own, for example by cloning the public Face detection - FOMO project. Deploy it as a GStreamer plugin for the Qualcomm IM SDK (AARCH64, QNN). Edge Impulse compiles the model into a GStreamer plugin library. Its file name includes a variant suffix, for example libgstedgeimpulse-898869-face-detection-fomo.so. Keep the name that Edge Impulse gives the library. A renamed library fails to load with is not a GStreamer plugin.

Building and running the face detection example

The Simple Face Detection example uses Qt Edge AI to detect faces in the video from a camera.

  1. Get the example sources from the Qt Edge AI repository:
    git clone https://github.com/TheQtCompanyRnD/qt-edge-ai.git
  2. Open examples/vision/simplefacedetection/CMakeLists.txt in Qt Creator, select the kit that the QBSP added, and build the example, as described in the quick start guide.
  3. Copy the executable, its configs and models directories, and the Edge Impulse plugin library to a writable directory on the device. Keep the directories, because the example looks for configs/<backend>/inference.json relative to the directory of its executable:
    scp <BUILD_DIR>/simplefacedetection root@<DEVICE_IP>:<TARGET_DIR>/
    scp -r <BUILD_DIR>/configs <BUILD_DIR>/models root@<DEVICE_IP>:<TARGET_DIR>/
    scp <PLUGIN_LIBRARY>.so root@<DEVICE_IP>:<TARGET_DIR>/
  4. Set pluginPath in <TARGET_DIR>/configs/edgeimpulse/inference.json to the file name of the plugin library. The example ships with libgstedgeimpulse.so, which does not match a library that Edge Impulse named with a suffix:
    {
        "pluginPath": "libgstedgeimpulse-898869-face-detection-fomo.so"
    }

    The path is relative to the directory of the executable. For details, see Qt Edge AI Configuration Files.

  5. Run the example on the device:
    cd <TARGET_DIR>
    ./simplefacedetection --provider edgeimpulse

Running the face detection example with the IM SDK

The imsdk backend runs a TensorFlow Lite model with the Qualcomm IM SDK. It needs Qt Multimedia built with -DFEATURE_gstreamer_qt_api=ON; see Supported Qt versions. The example ships its labels, but not the model. Download Lightweight-Face-Detection_w8a8.tflite for the Dragonwing IQ-9075 EVK from AI Hub, and copy it to <TARGET_DIR>/models/. If your file has another name, change the model key in <TARGET_DIR>/configs/imsdk/inference.json to match.

The configuration names no delegate, so the backend runs the model on the NPU through the QNN delegate, libQnnTFLiteDelegate.so. The delegate loads its DSP libraries from the directories in ADSP_LIBRARY_PATH. If the example logs Failed to create engine!, set the variable to the DSP library directories of the device. On the tested IQ-9075 EVK, run the example with:

cd <TARGET_DIR>
export ADSP_LIBRARY_PATH="/usr/share/qcom/sa8775p/Qualcomm/SA8775P-RIDE/dsp/cdsp;/usr/lib/dsp/cdsp;/usr/lib/dsp"
./simplefacedetection --provider imsdk

The example uses the default camera of the device. It sets QT_MEDIA_BACKEND to gstreamer, so Qt Multimedia uses the same media framework as the GStreamer backend of Qt Edge AI.

The example shows the camera video in a window and logs the detection results to the console.

Next steps

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.