上次五一假期更新后,在这个中秋假期,我们的人脸检测算法又更新了!假期更新成了这个库的传统
这次更新版本计算量不变,准确率提升2%。
项目代码链接:
https://github.com/ShiqiYu/libfacedetection
首先说说这个算法十几年的演进历史:
- 2008年,我刚参加工作不久,有家企业请我帮忙训练一个更好的人脸检测算法,我用Haar+AdaBoost训练了一下,准确率比OpenCV里开源方案有明显提升。
- 随后我自己写爬虫在网上爬了几万张照片,手动标注了所有人脸,效果更好了,项目顺利交付。
- 随后十年,研究人脸检测成了我的业余编程娱乐(我主业是步态识别)。我重写了Haar+AdaBoost提升训练效率,然后研究各种特征,把所有常见特征描述子(HOG、BRIEF、LBP、...)手写实现,把各种Boosting算法的变种手写实现,统统试了一遍。人脸检测每年提升一点点,最后做到了还算可以的效果。
- 因为算法体积小、速度快、准确率高,一些公司在产品中采用了我设计的人脸检测算法。这些企业里有比较大的,例如某某企业的市场占有率第一的某款视频监控芯片、某某企业第一款人脸识别手机等。
- 我苦苦思索和钻研人脸检测近十年,深度学习一拳打来,一下子刷新了我的认知。较早时候,我用Caffe训练了人脸检测,后来改用PyTorch,一点点提升着准确率,并把算法开源,以帮助更多的人。我用C++重写了深度学习算法的实现,只有1000行代码左右,也不需要依赖任何其他库,具有极佳的可移植性。
- 做了十年人脸检测,我和我团队有一些想法和观点,便写了一篇论文Feng et. al, Detect Faces Efficiently: A Survey and Evaluations,这篇论文最近被IEEE Trans. on Biometrics, Behavior, and Identity Science接收,最近会上线。
- 这个人脸检测模型,跟北邮邓伟洪教授的人脸识别模型,一起作为人脸方案,被即将发布的OpenCV 5.0采纳,敬请期待。
- 最近一年,我将更多精力放在步态识别科研、教学和服务。我的研究生参与进来,把人脸检测这事当作一项工作,而不是我节假日的业余工作。这样这个开源库可以持续高质量地维护下去,让更多人受益。
我们的开源人脸检测项目,在GitHub上已经获得10K星。欢迎大家三连(使用、反馈和建议)
项目代码链接:
https://github.com/ShiqiYu/libfacedetection
开源人脸检测库libfacedetection,有如下特点:
- 深度模型仅有85K个参数。
- 采用AVX512/AVX2/NEON指令提速。
- 代码简短和简洁,只有一千多行代码。
- 代码不依赖任何其他第三方库,只要平台能编译C++则可使用。
- 项目License采用3-Clause BSD License,可以商业应用。
上一次更新的变化(本次更新只是模型参数数值不同):
- 参数数量由2340K降到85K,参数量仅为上一版本的1/30。
- 弃用int8,采用float,节约数据类型转换时间,且代码更为简洁。
- 速度略有提升(提升速度好难,花了四五个月)。
- 训练程序采用我们新设计的EIoU损失函数,提升了准确率(论文:Hanyang Peng and Shiqi Yu, A Systematic IoU-Related Method: Beyond Simplified Regression for Better Localization, IEEE Transactions on Image Processing, vol. 30, pp. 5032-5044, 2021.)
准确率参数如下:
本次更新在Wider Face上的准确率变化
AP_easy:
0.834->
0.856
AP_medium: 0.824->
0.842
AP_hard: 0.708->0.727
主要贡献人:
- 这一版主要贡献人:吴伟同学
参考文献:
- Yuantao Feng, Shiqi Yu, Hanyang Peng, Yan-ran Li and Jianguo Zhang, Detect Faces Efficiently: A Survey and Evaluations, IEEE Transactions on Biometrics, Behavior, and Identity Science,(论文近日将上线)
- Hanyang Peng and Shiqi Yu, A Systematic IoU-Related Method: Beyond Simplified Regression for Better Localization, IEEE Transactions on Image Processing, vol. 30, pp. 5032-5044, 2021.