ElectronBotCli/retinaface_rknn
By ElectronBotCli · ↓ 0 · ♥ 0 · Updated 2026-03-15
What's in this repo
This page lists the files in ElectronBotCli/retinaface_rknn, including RetinaFace_mobile320.onnx.
- 1 ONNX models (.onnx files)
- 16 files, including 3 .cc, 2 .txt, 2 .h, 2 .jpg, 2 .py, 1 .md
- Last updated 2026-03-15
ONNX files
| File | Size | Download |
|---|---|---|
| model/RetinaFace_mobile320.onnx | — | Download |
How to use
These ONNX files can be loaded with ONNX Runtime. To inspect a model graph, upload the file to the Netron viewer. Download links point to the original files on Hugging Face.
README
RetinaFace
Table of contents
- 1. Description
- 2. Current Support Platform
- 3. Pretrained Model
- 4. Convert to RKNN
- 5. Python Demo
- 6. Android Demo
- 7. Linux Demo
- 8. Expected Results
1. Description
The model used in this example comes from the following open source projects:
https://github.com/biubug6/Pytorch_Retinaface
2. Current Support Platform
RK3562, RK3566, RK3568, RK3576, RK3588, RV1126B, RV1109, RV1126, RK1808, RK3399PRO
3. Pretrained Model
Download link:
RetinaFace_mobile320.onnx
RetinaFace_resnet50_320.onnx
Download with shell command:
cd model
./download_model.sh
4. Convert to RKNN
Usage:
cd python
python convert.py <onnx_model> <TARGET_PLATFORM> <dtype(optional)> <output_rknn_path(optional)>
# such as:
python convert.py ../model/RetinaFace_mobile320.onnx rk3588
# output model will be saved as ../model/RetinaFace_mobile320.rknn
Description:
<onnx_model>: Specify ONNX model path.<TARGET_PLATFORM>: Specify NPU platform name. Support Platform refer here.<dtype>(optional): Specify asi8orfp.i8for doing quantization,fpfor no quantization. Default isi8.<output_rknn_path>(optional): Specify save path for the RKNN model, default save in the same directory as ONNX model with nameRetinaFace_mobile320.rknn
5. Python Demo
Usage:
cd python
# Inference with RKNN model
python RetinaFace.py --model_path <rknn_model> --target <TARGET_PLATFORM>
# The inference result will be saved as the image result.jpg.
Description:
- : Specified as the NPU platform name. Such as 'rk3588'.
- : Specified as the model path.
6. Android Demo
6.1 Compile and Build
Usage:
# go back to the rknn_model_zoo root directory
cd ../../
export ANDROID_NDK_PATH=<android_ndk_path>
./build-android.sh -t <TARGET_PLATFORM> -a <ARCH> -d RetinaFace
# such as
./build-android.sh -t rk3588 -a arm64-v8a -d RetinaFace
Description:
<android_ndk_path>: Specify Android NDK path.<TARGET_PLATFORM>: Specify NPU platform name. Support Platform refer here.<ARCH>: Specify device system architecture. To query device architecture, refer to the following command:# Query architecture. For Android, ['arm64-v8a' or 'armeabi-v7a'] should shown in log. adb shell cat /proc/version
6.2 Push demo files to device
With device connected via USB port, push demo files to devices:
adb root
adb remount
adb push install/<TARGET_PLATFORM>_android_<ARCH>/rknn_RetinaFace_demo/ /data/
6.3 Run demo
adb shell
cd /data/rknn_RetinaFace_demo
export LD_LIBRARY_PATH=./lib
./rknn_retinaface_demo model/RetinaFace_mobile320.rknn model/test.jpg
-
After running, the result was saved as
result.jpg. To check the result on host PC, pull back result referring to the following command:adb pull /data/rknn_RetinaFace_demo/result.jpg
7. Linux Demo
7.1 Compile and Build
usage
# go back to the rknn_model_zoo root directory
cd ../../
# if GCC_COMPILER not found while building, please set GCC_COMPILER path
(optional)export GCC_COMPILER=<GCC_COMPILER_PATH>
./build-linux.sh -t <TARGET_PLATFORM> -a <ARCH> -d RetinaFace
# such as
./build-linux.sh -t rk3588 -a aarch64 -d RetinaFace
Description:
-
<GCC_COMPILER_PATH>: Specified as GCC_COMPILER path.export GCC_COMPILER=~/opt/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf -
<TARGET_PLATFORM>: Specify NPU platform name. Support Platform refer here. -
<ARCH>: Specify device system architecture. To query device architecture, refer to the following command:# Query architecture. For Linux, ['aarch64' or 'armhf'] should shown in log. adb shell cat /proc/version
7.2 Push demo files to device
- If device connected via USB port, push demo files to devices:
adb push install/<TARGET_PLATFORM>_linux_<ARCH>/rknn_RetinaFace_demo/ /userdata/
- For other boards, use
scpor other approaches to push all files underinstall/<TARGET_PLATFORM>_linux_<ARCH>/rknn_RetinaFace_demo/touserdata.
7.3 Run demo
adb shell
cd /userdata/rknn_RetinaFace_demo
export LD_LIBRARY_PATH=./lib
./rknn_retinaface_demo model/RetinaFace_mobile320.rknn model/test.jpg
-
After running, the result was saved as
result.jpg. To check the result on host PC, pull back result referring to the following command:adb pull /userdata/rknn_RetinaFace_demo/result.jpg -
Note:
- For the generation of BOX_PRIORS_320 and BOX_PRIORS_640 in C demo post-processing, please refer to the PriorBox function in python/RetinaFace.py. This function aims to pre-generate the anchors box parameters. In order to speed up the demo post-processing, the C code directly generates the array.
- In C demo post-processing, num_priors is the number of anchor boxes. When the model shape is 320x320, num_priors is 4200. When the model shape is 640x640, num_priors is 16800.
8. Expected Results
This example will print the labels and corresponding scores of the test image detect results, as follows:
face @(302 76 476 300) score=0.999512

- Note: Different platforms, different versions of tools and drivers may have slightly different results.
Files (16)
Related models
More from ElectronBotCli
No other models by this author.
More models
No task type declared.