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

相关推荐
青山木3 分钟前
Hot 100 --- LRU 缓存
java·数据结构·算法·leetcode·链表·缓存·哈希
“码”力全开4 分钟前
ONVIF摄像头接入项目实战记录
人工智能·算法·边缘计算
AI科技星32 分钟前
公理化数学化学|48小时确权终稿(完整投产包)
人工智能·数学·算法·重构·拓扑学·乖乖数学·全域数学
FriendshipT1 小时前
Ultralytics:解读Attention模块
人工智能·pytorch·python·深度学习·目标检测
想你依然心痛1 小时前
AtomCode在算法竞赛中的实战体验:LeetCode周赛辅助编程
linux·算法·leetcode
SilentSamsara1 小时前
模型部署方案选型:REST/gRPC/批量推理/边缘部署的场景决策
人工智能·深度学习·算法·机器学习
zzz_23681 小时前
【Java实习面试算法冲刺】哈希!
java·算法·面试
大耳朵糊涂1 小时前
找前/后驱节点
算法
孤狼warrior1 小时前
从冒泡到传送带流水线:一个3D沉浸式算法靶场,让思想的伟力改变世界
python·算法·typescript
bu_shuo1 小时前
计算机二级学习-查找和排序
学习·算法·排序算法