Paper: https://arxiv.org/ftp/arxiv/papers/1911/1911.03599.pdf
Special made for a bare Raspberry Pi 4 see Q-engineering deep learning examples
Model | framework | model | size | mAP | Jetson Nano 2015 MHz |
RPi 4 64-OS 1950 MHz |
---|---|---|---|---|---|---|
Ultra-Light-Fast | ncnn | slim-320 | 320x240 | 67.1 | - FPS | 26 FPS |
Ultra-Light-Fast | ncnn | RFB-320 | 320x240 | 69.8 | - FPS | 23 FPS |
Ultra-Light-Fast | MNN | slim-320 | 320x240 | 67.1 | 70 FPS | 65 FPS |
Ultra-Light-Fast | MNN | RFB-320 | 320x240 | 69.8 | 60 FPS | 56 FPS |
Ultra-Light-Fast | OpenCV | slim-320 | 320x240 | 67.1 | 48 FPS | 40 FPS |
Ultra-Light-Fast | OpenCV | RFB-320 | 320x240 | 69.8 | 43 FPS | 35 FPS |
Ultra-Light-Fast + Landmarks | ncnn | slim-320 | 320x240 | 67.1 | 50 FPS | 24 FPS |
LFFD | ncnn | 5 stage | 320x240 | 88.6 | 16.4 FPS | 4.85 FPS |
LFFD | ncnn | 8 stage | 320x240 | 88.6 | 11.7 FPS | 3.45 FPS |
LFFD | MNN | 5 stage | 320x240 | 88.6 | 2.6 FPS | 2.17 FPS |
LFFD | MNN | 8 stage | 320x240 | 88.6 | 1.8 FPS | 1.49 FPS |
CenterFace | ncnn | - | 320x240 | 93 | 16.5 FPS | 6.8 FPS |
YoloV5 face | ncnn | - | 320x320 | 93.6 | - FPS | 17.2 FPS |
YoloV5 face | ncnn | - | 480x480 | 93.6 | - FPS | 7.2 FPS |
YoloV5 face | ncnn | - | 640x640 | 93.6 | - FPS | 4.0 FPS |
YoloV5 face | ncnn | - | 1280x1280 | 93.6 | - FPS | 1.0 FPS |
YoloV5 face | ncnn | - | 1920x1920 | 93.6 | - FPS | 0.5 FPS |
To run the application, you have to:
- A raspberry Pi 4 with a 32 or 64-bit operating system. It can be the Raspberry 64-bit OS, or Ubuntu 18.04 / 20.04. Install 64-bit OS
- The Tencent ncnn framework installed. Install ncnn
- OpenCV 64 bit installed. Install OpenCV 4.5
- Code::Blocks installed. (
$ sudo apt-get install codeblocks
)
To extract and run the network in Code::Blocks
$ mkdir MyDir
$ cd MyDir
$ wget https://github.com/Qengineering/CenterFace-ncnn-Raspberry-Pi-4/archive/refs/heads/main.zip
$ unzip -j master.zip
Remove master.zip, LICENSE and README.md as they are no longer needed.
$ rm master.zip
$ rm LICENSE
$ rm README.md
Your MyDir folder must now look like this:
selfie.jpg
Walks2.mp4
CenterFace_ncnn.cpb
main.cpp
ncnn_centerface.h
ncnn_centerface.cpp
centerface.bin
centerface.param
To run the application load the project file CenterFace_ncnn.cbp in Code::Blocks.
Next, follow the instructions at Hands-On.
By default, the images are resized to 320x240. It gives you a fast, but less accurate result.
Commenting on line 8 #define RESIZE
will scan the full size of the image, resulting in the most accurate output. However, it will take more processing time depending on the size.