date: 2019/03/21


前几天,深圳大学于仕琪老师突然开源了libfacedetection——号称最快的人脸检测项目(超越OpenCV,史上最快人脸检测系统开源 | 新智元)吸引了一大波人脸检测应用开发者围观,紧接着Tengine也立马对libfacedetection模型增加了支持,让我们一起来看看,在Tengine加持下的libfacedetection能快到什么程度吧!


libfacedetection


github项目:https://github.com/ShiqiYu/libfacedetection


模型结构


本次开源的库是基于卷积神经网络实现的,320x240模型如下图所示:

model.jpg


其整体框架参照SSD,并由若干组类似VGG的卷积层组合堆叠而成——



检测效果


原图:

test_org.jpg


FP32精度输出:

test_fp32.jpg


INT8精度输出:

test_int8.jpg


性能表现

至于速度,于老师的github上已经有了与OpenCV Haar+AdaBoost的比较数据,引用至此而不再赘述:

experiment_github.png


加持Tengine的libfacedetection


用开发者版的Tengine分别在EAIDK-610(RK3399,4A53@1.4GHz+2A72@1.8GHz)和树莓派3B(BCM2837,4A53@1.2GHz)、树莓派3B+(BCM2837,4A53@1.4Hz)平台上测试libfacedetection——

使用于老师github上的caffe模型,输入大小为320x240。


EAIDK-610

CPU-CoreTime(fp32)FPS(fp32)Time(int8)FPS(int8)FPS(int8)/FPS(fp32)
1A5368.26ms14.6559.25ms16.881.1520
2A5350.66ms19.7449.61ms20.161.0213
3A5345.97ms21.7547.90ms20.880.9598
4A5342.97ms23.2746.03ms21.730.9335
1A7234.70ms28.8224.56ms40.711.4126
2A7226.41ms37.8620.59ms48.571.2828


由于大小核共同运算时速度比单个大核还慢,所以此处不列出大小核测试的数据。



树莓派3B

CPU-CoreTime(fp32)FPS(fp32)Time(int8)FPS(int8)FPS(int8)/FPS(fp32)
1A5393.96ms10.64104.11ms9.610.9025
2A5366.74ms14.9862.90ms15.901.0611
3A5358.03ms17.2350.73ms19.711.1438
4A5356.57ms17.6843.69ms22.891.2947


树莓派3B+

CPU-CoreTime(fp32)FPS(fp32)Time(int8)FPS(int8)FPS(int8)/FPS(fp32)
1A5389.90ms11.1294.61ms10.570.9502
2A5365.87ms15.1858.34ms17.141.1290
3A5359.76ms16.7347.99ms20.841.2451
4A5358.22ms17.1841.26ms24.241.4111