libfacedetection是一个用于图像中人脸检测的开源库。人脸检测速度可达1500FPS。
Github项目地址:
https://github.com/ShiqiYu/libfacedetection
这是一个用在图像中的基于CNN的人脸检测开源库。 CNN模型已转换为C源文件中的静态变量。 源代码不依赖于任何其他库。 你只需要一个C++编译器,在Windows,Linux、ARM和任何平台下均可以编译源代码。
SIMD指令用于加速检测。 如果使用Intel CPU或NEON for ARM,则可以采用AVX2。
模型文件也已在项目的 ./models/ 目录中提供。
examples/libfacedetectcnn-example.cpp 文件显示了如何使用该开源库。
注:图片来自本Github项目(https://github.com/ShiqiYu/libfacedetection)
在使用 g++ 编译源代码时,请添加 -O3 来启用优化。
在使用Microsoft Visual Studio编译源代码的时候,请选择“Maximize Speed(最大化速度)/-O2”。
创建构建文件夹
mkdir build; cd build; rm -rf *
aarch64的交叉构建
为aarch64设置交叉编译器(请参考aarch64-toolchain.cmake)
设置opencv的路径,因为示例代码依赖于opencv
cmake \
-DENABLE_INT8=ON \
-DENABLE_NEON=ON \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_TOOLCHAIN_FILE=../aarch64-toolchain.cmake \
..
make
avx2的原生构建
cmake \
-DENABLE_INT8=ON \
-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.4 |
cnn (CPU, 160x120) |
3.47ms |
288.08 |
0.95ms |
1052.2 |
cnn (CPU, 128x96) |
2.35ms |
425.95 |
0.64ms |
1562.1 |
注:
OpenCV Haar + AdaBoost 运行的最小面部尺寸为48x48
仅作面部检测,不包括地标检测。
最小面部尺寸为 12x12
处理器:Intel(R)Core(TM)i7-7700 CPU @ 3.6GHz。
结果如下所示:
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.1 |
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.5 |
注:
仅作面部检测,不包括地标检测。
最小面部尺寸为 12x12
处理器:Raspberry Pi 3 B +,Broadcom BCM2837B0,
Cortex-A53(ARMv8)64位 SoC @ 1.4GHz
于仕琪,深圳大学计算机科学与软件工程学院副教授,shiqi.yu @ gmail.com
Jia Wu、Shengyin Wu、Dong Xu
本研究部分得到了深圳市科学基金会的资助(批准号:JCYJ20150324141711699)。
扫码加入计算机视觉基础入门课程学习
点击阅读原文,查看划线部分链接内容