madobet / webooru

Web Danbooru
32 stars 6 forks source link

dlib人脸检测优化 - 知乎 #217

Open madobet opened 4 years ago

madobet commented 4 years ago

1)算法内部的优化

为了实现通用性,各种类、模板用得飞起,应该会影响性能;

2)做并行化

3)做向量化

4)汇编级优化

5)算法流程优化,参考:

https://blog.csdn.net/xiaota00/article/details/54864824​blog.csdn.net

最近看到一个代码很不错,方法简单,而且速度很快。代码地址如下https://github.com/mc-jesus/face_detect_n_track

这里是作者给出的流程图,意思就是说第一帧图片先进行普通的全图搜索,如果找到了人脸那就在这个 boundingBox 两倍大的区域内再次调用检测器检测,如果检测不到就使用模板匹配的方法检测,2s 内检测不到就重置算法。跑了一下发现模板匹配其实没怎么用到,而且要配合特征点检测算法,这里不能使用模板匹配来搜索人脸,简化一下算法,只要使用两倍大的搜索框搜索就可以达到不错的效果。按照这个思想修改了 Dlib 版本的代码,在 320*240 的图片里检测人脸可以达到 30ms 以内。320*240 的分辨率不做缩放可以检测到差不多 3 米远的人脸。可以根据应用场景再做优化,而且现在这个速度其实也不快,还有很多简单的优化方法。

6)换算法和模型

MTCNN 等,

https://blog.csdn.net/Mono_1032290547/article/details/78912370

这里用到了大名鼎鼎于仕琪老师的开源库,下面附上于老师的项目下载链接

ShiqiYu/libfacedetection

然后就是环境的配置,具体见链接

http://blog.csdn.net/mono_1032290547/article/details/78912548

或者https://blog.csdn.net/fengzhongluoleidehua/article/details/80410389

不知道实现测试效果怎么样。

https://zhuanlan.zhihu.com/p/90788153