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
| Component | Tested version | Notes |
|---|---|---|
| Qt Edge AI | 1.0.0 | Technical Preview |
| Qt | 6.12.0 or later | Required by Qt Edge AI. |
| Qt Onboard release | Same as Qt version | |
| GStreamer on the target | 1.20 or later | Required by the GStreamer backend of Qt Edge AI. |
| Qualcomm Intelligent Multimedia SDK | qcom-6.6.142-QLI.1.9.1-Ver.1.1_qim-product-sdk-2.5.1 | Used 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.
- Get the example sources from the Qt Edge AI repository:
git clone https://github.com/TheQtCompanyRnD/qt-edge-ai.git - Open
examples/vision/simplefacedetection/CMakeLists.txtin Qt Creator, select the kit that the QBSP added, and build the example, as described in the quick start guide. - Copy the executable, its
configsandmodelsdirectories, and the Edge Impulse plugin library to a writable directory on the device. Keep the directories, because the example looks forconfigs/<backend>/inference.jsonrelative 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>/ - Set
pluginPathin<TARGET_DIR>/configs/edgeimpulse/inference.jsonto the file name of the plugin library. The example ships withlibgstedgeimpulse.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.
- 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 imsdkThe 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
- Installing Qt Edge AI: other ways to install Qt Edge AI
- Qt Edge AI overview
- Simple Face Detection
© 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.