本文主要是介绍YOLO5Face算法解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
论文:YOLO5Face: Why Reinventing a Face Detector
链接:https://arxiv.org/abs/2105.12931v1
机构:深圳神目科技&LinkSprite Technologies(美国)
开源代码:https://github.com/deepcam-cn/yolov5-face
目录
- 1、算法概述
- 2、实验结果
- 3、算法特点
1、算法概述
作者在yolov5通用目标检测器的基础上做了针对性改进,使得利用yolov5的主体框架来检测人脸。对yolov5的关键性修改如下:
- (1)、在 YOLOv5 网络中加了一个关键点 regression head。损失函数用 Wing loss。
- (2)、用 Stem 块结构取代 YOLOv5 的 Focus 层。增加了网络的泛化能力,并降低了计算的复杂性,同时性能也没有下降。
- (3)、对 SPP 块进行了改变,使用一个更小的 kernel(内核)。促使 YOLOv5 更适合于人脸检测,并提高检测精度。
- (4)、增加一个 stride 为 64 的 P6 输出块。可以增加检测大型人脸的能力。
- (5)、作者发现,一些用于一般目标检测的数据增强方法并不适合用于人脸检测,包括 up-down flipping 和 Mosaic。去除 up-down flipping 性能会改善。当使用小图像时,Mosaic 增强法会降低性能。然而,当小脸被忽略时,它的效果很好。随机剪裁有助于提高性能。
- (6)、设计两个基于 ShuffleNetV2 的超轻量级模型。其骨干网与 CSP 网络大不相同。这些模型超级小,同时实现了嵌入式或移动设备的 SOTA 性能。
整体网络结构如下:
其中图中红色部分为作者基于yolov5结构做的修改。
Stem用于替换原来yolov5结构中的focus层,其结构如下:
2、实验结果
作者用WiderFace人脸库训练,用FDDB数据库作为测试。和现在最近的人脸检测器比对,其结果如下:
3、算法特点
Yolov5检测算法,它是通用目标检测算法,人脸检测是其中一个特殊情况,人脸检测有其特殊性,比如长宽比1:1,可以增加关键点辅助训练等。
这篇关于YOLO5Face算法解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!