本文共 3720 字,大约阅读时间需要 12 分钟。
This is an open source library for CNN-based face detection in images. The CNN model has been converted to static variables in C source files. The source code does not depend on any other libraries. What you need is just a C++ compiler. You can compile the source code under Windows, Linux, ARM and any platform with a C++ compiler.
SIMD instructions are used to speed up the detection. You can enable AVX2 if you use Intel CPU or NEON for ARM.
The model file has also been provided in directory ./models/.
examples/libfacedetectcnn-example.cpp shows how to use the library.
You can copy the files in directory src/ into your project, and compile them as the other files in your project. The source code is written in standard C/C++. It should be compiled at any platform which support C/C++.
Some tips:
If you want to compile and run the example, you can create a build folder first, then run the command:
mkdir build; cd build; rm -rf *
The model has been added to . Tengine, developed by OPEN AI LAB, is a lite, high-performance, and modular inference engine for embedded device.
The model in Tengine can run faster than the C++ source code here because Tengine has been optimized according to ARM CPU. There are detailed manual and example at Tengine web site:
cmake \ -DENABLE_INT8=ON \ -DENABLE_NEON=ON \ -DCMAKE_BUILD_TYPE=RELEASE \ -DCMAKE_TOOLCHAIN_FILE=../aarch64-toolchain.cmake \ ..make
cmake \ -DENABLE_AVX2=ON \ -DCMAKE_BUILD_TYPE=RELEASE \ -DDEMO=ON \ ..make
Method | Time | FPS | Time | FPS |
---|---|---|---|---|
X64 | X64 | X64 | X64 | |
Single-thread | Single-thread | Multi-thread | Multi-thread | |
OpenCV Haar+AdaBoost (640x480) | -- | -- | 12.33ms | 81.1 |
cnn (CPU, 640x480) | 64.21ms | 15.57 | 15.59ms | 64.16 |
cnn (CPU, 320x240) | 15.23ms | 65.68 | 3.99ms | 250.40 |
cnn (CPU, 160x120) | 3.47ms | 288.08 | 0.95ms | 1052.20 |
cnn (CPU, 128x96) | 2.35ms | 425.95 | 0.64ms | 1562.10 |
Method | Time | FPS | Time | FPS |
---|---|---|---|---|
Single-thread | Single-thread | Multi-thread | Multi-thread | |
cnn (CPU, 640x480) | 512.04ms | 1.95 | 174.89ms | 5.72 |
cnn (CPU, 320x240) | 123.47ms | 8.10 | 42.13ms | 23.74 |
cnn (CPU, 160x120) | 27.42ms | 36.47 | 9.75ms | 102.58 |
cnn (CPU, 128x96) | 17.78ms | 56.24 | 6.12ms | 163.50 |
Some contributors are listed .
The contributors who are not listed at GitHub.com:
The work is partly supported by the Science Foundation of Shenzhen (Grant No. JCYJ20150324141711699 and 20170504160426188).
转载地址:http://ulsws.baihongyu.com/