Github项目推荐 | 比快更快!速度超越OpenCV的人脸检测库 libfacedetection 开源!

2019 年 3 月 18 日 AI研习社

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


在Windows系统上进行基于CNN的人脸检测

结果如下所示:

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。


基于CNN的ARM Linux人脸检测(树莓派 3 B +)

结果如下所示:

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)。


扫码加入计算机视觉基础入门课程学习

点击阅读原文,查看划线部分链接内容

登录查看更多
10

相关内容

人脸检测(Face Detection)是一种在任意数字图像中找到人脸的位置和大小的计算机技术。它可以检测出面部特征,并忽略诸如建筑物、树木和身体等其他任何东西。有时候,人脸检测也负责找到面部的细微特征,如眼睛、鼻子、嘴巴等的精细位置。
专知会员服务
109+阅读 · 2020年3月12日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
最快人脸检测遇敌手!ZQCNN vs libfacedetection
极市平台
19+阅读 · 2019年3月27日
人脸检测库:libfacedetection
Python程序员
15+阅读 · 2019年3月22日
深大教授开源的人脸检测库,速度号称史上最快
大数据技术
9+阅读 · 2019年3月21日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
推荐|基于Python的人脸识别库,离线识别率高达99.38%!
全球人工智能
3+阅读 · 2017年12月25日
基于Python的开源人脸识别库:离线识别率高达99.38%
炼数成金订阅号
5+阅读 · 2017年7月28日
Arxiv
5+阅读 · 2019年2月28日
Arxiv
4+阅读 · 2018年12月20日
Arxiv
5+阅读 · 2018年5月16日
Arxiv
7+阅读 · 2018年3月19日
Arxiv
6+阅读 · 2018年2月6日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
专知会员服务
109+阅读 · 2020年3月12日
Keras作者François Chollet推荐的开源图像搜索引擎项目Sis
专知会员服务
29+阅读 · 2019年10月17日
相关资讯
最快人脸检测遇敌手!ZQCNN vs libfacedetection
极市平台
19+阅读 · 2019年3月27日
人脸检测库:libfacedetection
Python程序员
15+阅读 · 2019年3月22日
深大教授开源的人脸检测库,速度号称史上最快
大数据技术
9+阅读 · 2019年3月21日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
Github 项目推荐 | 用 PyTorch 0.4 实现的 YoloV3
AI研习社
9+阅读 · 2018年8月11日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
推荐|基于Python的人脸识别库,离线识别率高达99.38%!
全球人工智能
3+阅读 · 2017年12月25日
基于Python的开源人脸识别库:离线识别率高达99.38%
炼数成金订阅号
5+阅读 · 2017年7月28日
相关论文
Arxiv
5+阅读 · 2019年2月28日
Arxiv
4+阅读 · 2018年12月20日
Arxiv
5+阅读 · 2018年5月16日
Arxiv
7+阅读 · 2018年3月19日
Arxiv
6+阅读 · 2018年2月6日
Arxiv
8+阅读 · 2018年1月12日
Arxiv
4+阅读 · 2016年12月29日
Top
微信扫码咨询专知VIP会员