Edge computing playground

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


Introduction

AI Playground User Experience Platform aims to provide industry users with “out-of-the-box” software-hardware integrated AI experiences. Whether individual developers or enterprise innovation teams, AI Playground provides full-chain support, efficiently transforming complex AI technologies into practical deployment paths.

This section introduces the deployment guide for Quectel AI algorithm SDKs on the RK3576 M2 Linux platform, covering two algorithm types: human keypoint detection and facial attributes detection.

Integrated Algorithm Services

Algorithm Type

Description

SDK

Human keypoint detection

17 human keypoints + sitting posture detection (cheek support / head bowing / unbalanced shoulder)

PeopleKptDet

Facial attributes detection

Face detection + emotion/age/gender classification

facial_attributes_detection

Pre-deployment Preparation

Development Environment Requirements

Item

Requirement

Development board

Quectel PI M2 RK3576 Board

Operating system

Ubuntu 20.04+ / Debian (aarch64, glibc 2.31+)

NPU

RK3576 built-in 6 TOPS (driver v0.9.8)

RKNN runtime

librknnrt.so 2.3.2 (bundled in SDK)

Inference engine

ModelInfer (libinference.so, bundled in SDK)

Connection

adb (board is rooted)

Note: Both SDKs are Quectel-delivered dynamic library packages (lib/*.so + 3rd_party/ + models/ + demo), ready to use after extraction — no compilation required.

Algorithm 1: Human Keypoint Detection (PeopleKptDet)

SDK Overview

Human keypoint + sitting posture detection SDK v1.2 (RK3576 Ubuntu aarch64). Detects 17 human keypoints in images and analyzes sitting postures: cheek support (CHEEK_SUPPORT), head bowing on desk (HEAD_BOWING_BEND_ON_DESK), unbalanced shoulder (UNBALANCED_SHOULDER). Inference based on ModelInfer + RKNN NPU.

Run (Measured on Board)

adb push PeopleKptDet_RK3576 /data/local/tmp/
cd /data/local/tmp/PeopleKptDet_RK3576
export LD_LIBRARY_PATH=$PWD/lib:$PWD/3rd_party/modelinfer:$PWD/3rd_party/rknn:$PWD/3rd_party/jsoncpp/lib:$PWD/3rd_party/opencv/lib
./demo images/frame_1.jpg 0.25 0.45

Measured Results (2026-09-01, RK3576 M2)

Test Image

Result

Keypoints

Time

frame_1.jpg

CHEEK_SUPPORT

17

25.17 ms

frame_2.jpg

HEAD_BOWING

17

25.19 ms

frame_3.jpg

UNBALANCED_SHOULDER

17

25.22 ms

Detection results:

../../_images/image_BDMObJygXovPeDxonlWciG4qnty.webp ../../_images/image_CKyVbKzyooBm2nxdHxccxq9vnXc.webp ../../_images/image_Ul1gbVPnHodwvnxFEticTb1Cn2c.webp

Interface Highlights

  • init(model, license, module=3, auth_code): RK3576 uses module=3 (DEV_RK3576)

  • inference(BGR image, rows, cols, ch, PoseFrameResult): returns human box + 17 keypoints + posture result

  • Authorization: official auth code or 30-minute trial (no code)

Algorithm 2: Facial Attributes Detection (facial_attributes_detection)

SDK Overview

Facial attributes detection SDK v1.2 (RK3576 Ubuntu aarch64). WiderFace face detection + FER emotion/age/gender classification in a single-process cascade: one BGR image → detect all faces → crop each → FER classify → emotion/gender/age results per face. Inference based on ModelInfer + RKNN NPU.

Run (Measured on Board)

adb push facial_attributes_detection_RK3576 /data/local/tmp/
cd /data/local/tmp/facial_attributes_detection_RK3576
export LD_LIBRARY_PATH=$PWD/lib:$PWD/3rd_party/modelinfer:$PWD/3rd_party/rknn:$PWD/3rd_party/opencv/lib
./demo images/input.jpg 0.25 0.20

Measured Results (2026-09-01, RK3576 M2)

inference ret=0 faces=1
face[0] box=[400.0,111.5,164.0,196.8] det=0.793 emotion=happy(0.537) gender=female(0.743) age=32
save_result: outputs/input.jpg_detected.jpg + outputs/input.jpg.json

Detection result:

../../_images/image_RelMbEEIYozFzGxQraWcqYI2nFh.webp

Interface Highlights

  • init(model1=widerface detection, model2=FER classification, module, auth_code)

  • inference(BGR image, FaceContext): returns box + emotion/gender/age per face

  • Module ID: FAD_MODULE_RK3576=3

Demo

Both SDKs include prebuilt demo programs, one-click run via command line (see each algorithm’s measured section).

Human keypoint detection: ./demo images/frame_1.jpg 0.25 0.45 → outputs/frame_1_detected.jpg (green box + red keypoints + posture text)

Facial attributes detection: ./demo images/input.jpg 0.25 0.20 → outputs/output.jpg (face box + attribute annotation)

Common Troubleshooting

Problem

Possible Cause

Solution

libopencv_core.so.4.2 not found

OpenCV library path not set

export LD_LIBRARY_PATH including 3rd_party/opencv/lib

init returns -1

Wrong auth code / model path

Check auth code and model path

30-minute trial expired

No auth code passed

Pass the official auth code

Slow inference

NPU frequency not fixed

Fix NPU frequency at 950MHz (see NPU usage guide)

More Algorithms at AlgoStore

AlgoStore Algorithm Marketplace

Introduction

AlgoStore is a one-stop AI algorithm service platform developed by Quectel. As a one-stop AIoT algorithm platform, AlgoStore is like a “supermarket” gathering rich cutting-edge AI algorithms. With powerful algorithm adaptation capabilities, convenient algorithm customization services, and a complete AIoT ecosystem, it allows enterprises and developers to easily obtain suitable AI algorithms like “shopping for products”.

AlgoStore Marketplace Entry

Core Features

  • Leading algorithms: Gathers advanced AI algorithms in vision, audio and other fields, verified by real customer projects

  • Hardware adaptation: Covers mainstream chips including Qualcomm, Unisoc, Rockchip, MediaTek

  • Deep customization: Globalized layout and customer service network for differentiated business needs

Contact Us

To get more algorithm experiences or algorithm integration SDKs, please contact us on the official website!

../../_images/image_HWiRbgFffokhAQxgQldcHzLsnQe.webp

AIDE Development Toolchain

Introduction

AIDE (AI Development Tools & Engines) is Quectel’s one-stop AI development toolchain platform, covering the full chain of “model conversion - optimization - on-device inference”.

AIDE Toolchain Entry

Core Modules

  • ModelForge AI model conversion & optimization tool: Supports multiple mainstream model formats and chip platforms, with channel quantization, bit-width quantization, model calibration and other optimization techniques.

  • ModelInfer AI inference engine: Deeply adapts to CPU/GPU/NPU heterogeneous computing units, supporting multi-computing-unit collaborative inference.

Model Conversion and Deployment

This section demonstrates converting a mobilenet v3 model to on-device deployment.

Model Conversion

Model upload: Log in to the AI open platform, select the AI development toolchain, choose the model format, agree to the privacy policy, upload the model.

../../_images/image_UR7rb6YtnoJBscxgQVAcJISInKe.webp

Select target hardware: Select the target hardware platform, chip platform, and inference engine.

../../_images/image_FxSwbIyx2oH9AqxGOUOc6lWYn8d.webp

Model configuration: Set model name and input size. Model quantization can reduce size and improve speed; configure channel optimization, quantization bit width, input mean/variance, and calibration dataset (default COCO).

../../_images/image_YH0CbMPnGot89dx0evrc6gmmn7c.webp

Confirm configuration: Review the conversion info and proceed.

../../_images/image_FEs4bp33xorwRHxLNBJcywPYnid.webp

Model conversion: After successful conversion, download the model.

../../_images/image_WBPdboRbOohhpDxg8DaciiddnHf.webp

Deployment Example

CMake integration: Set the ModelInfer SDK path in CMakeLists.txt and use find_package to locate the SDK package:

cmake_minimum_required(VERSION 3.1)
project(MODEL_INFER_TEST)
set(CMAKE_CXX_STANDARD 14)
set(OpenCV_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party/OpenCV-android-sdk/sdk/native/jni")
find_package(OpenCV REQUIRED)
find_library(log-lib log)
set(ModelInfer_DIR ${CMAKE_CURRENT_SOURCE_DIR}/model_infer_sdk/0.0.1/Android_aarch64_Release_Q)
find_package(ModelInfer REQUIRED)
include_directories(${ModelInfer_INCLUDE_DIRS})
add_definitions(${ModelInfer_DEFINITIONS})
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(${PROJECT_NAME} main.cc)
target_link_libraries(${PROJECT_NAME} ${ModelInfer_LIBRARIES} ${OpenCV_LIBRARIES} log)

SDK usage example: This example uses mobilenet classification. Declare the inference engine (QnnEngine), call Authenticate, then Init. Models downloaded from the conversion platform are encrypted, so set the second Init parameter to true. Prepare input/output parameters — ModelInfer supports multiple inputs/outputs; buffer memory is created and managed by the user. Finally call Inference to complete one inference cycle.

Compile and run:

adb shell "cd /data/local/tmp/model_infer_demo/ && chmod +x ./MODEL_INFER_TEST && export LD_LIBRARY_PATH=/data/local/tmp/model_infer_demo/:$LD_LIBRARY_PATH && ./MODEL_INFER_TEST ./mobilenetv3_ctx.bin ./20260204-101425.jpg"
init success
Top-5 Predictions:
Class ID: 340, Probability: 0.0700765, Class Name: zebra
Class ID: 396, Probability: 0.0140236, Class Name: lionfish
Class ID: 117, Probability: 0.0109065, Class Name: chambered nautilus
Class ID: 506, Probability: 0.0106358, Class Name: coil
Class ID: 56, Probability: 0.00643312, Class Name: king snake