YOLO5Face算法解读

论文:YOLO5Face: Why Reinventing a Face Detector

链接:https://arxiv.org/abs/2105.12931v1

机构:深圳神目科技&LinkSprite Technologies(美国)

开源代码:https://github.com/deepcam-cn/yolov5-face

目录

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,可以增加关键点辅助训练等。

相关推荐
学会870上岸华师26 分钟前
C 语言程序设计——第一章课后编程题
c语言·开发语言·学习·算法
小马过河R34 分钟前
RAG检索优化策略:系统性四层框架解析
人工智能·python·算法·ai·llm·rag·问答
AI技术控44 分钟前
论文解读:AE-TCN-SA——基于自编码器、TCN 与自注意力机制的锂电池内短路诊断方法
人工智能·python·深度学习·算法·机器学习·自然语言处理
ʚ希希ɞ ྀ1 小时前
动态规划基础知识---爬楼梯
算法·动态规划
计算机安禾1 小时前
【c++面向对象编程】第26篇:对象的内存模型:成员变量与成员函数的存储分离
开发语言·c++·算法
贩卖黄昏的熊1 小时前
陕西省ICPC省赛总结
算法
jieyucx1 小时前
Go 语言进阶:构造函数、父子结构体与组合复用详解
服务器·算法·golang·继承·结构体·构造函数
澈2071 小时前
滑动窗口算法:双指针高效解题秘籍
数据结构·c++·算法
渣渣苏2 小时前
硬核拆解 HNSW:亿级向量如何实现毫秒级召回?(上篇)
人工智能·算法·支持向量机·ai·向量数据库·hnsw·智能体
如竟没有火炬2 小时前
字符串相乘——int数组转字符串
开发语言·数据结构·python·算法·leetcode·深度优先