论文笔记|[论文笔记] YOLO5Face 阅读笔记


YOLO5Face 阅读笔记

  • YOLO5Face: Why Reinventing a Face Detector(ECCV 2022)
    • 摘要
    • YOLO5Face Face Detector
      • Network Architecture(网络架构)
      • Key Modification(主要修改)
      • Landmark Regression(Landmark 回归)
      • Stem Block Structure(Stem 块结构)
      • SPP with Smaller Kernels(更小kernel的SPP)
      • P6 Output Block(增加高层特征图)
      • ShuffleNetV2 as Backbone(不同的 backbone)
    • 实验结果

YOLO5Face: Why Reinventing a Face Detector(ECCV 2022) 【论文笔记|[论文笔记] YOLO5Face 阅读笔记】论文链接:论文链接
代码链接:代码链接
可以直接在检测器后面添加 head 用于 landmark回归,可以和车牌检测联想起来
摘要
  • 动机:不重新设计人脸检测器,而是在YOLOv5的基础上进行设计
  • 方法:添加 5 个 landmark 回归头,使用 Wing loss 函数
YOLO5Face Face Detector Network Architecture(网络架构)
  • 网络架构图:由backbone、neck和head组成。在YOLOv5中,使用了一个新设计的骨干网,称为CSPNet。在neck,一个SPP和一个PAN被用来聚合特征。在head,使用回归和分类分支
    论文笔记|[论文笔记] YOLO5Face 阅读笔记
    文章图片
Key Modification(主要修改)
  • landmark 回归头:在 YOLOv5 网络中添加了一个 landmark 回归头。Wing损失被用作它的损失函数
  • Stem 块:用 Stem 块结构取代了 YOLOv5 的focus 层。它增加了网络的泛化能力,并降低了计算的复杂性,同时性能也没有下降
  • SPP 块:更改 SPP 块使用更小的 kernel,使YOLOv5更适合人脸检测,提高检测精度
  • P6 输出块:增加了一个 stride 为 64 的 P6 输出块。它提升了检测大型人脸的能力
  • 数据增强:一些通用对象检测的数据增强方法不适用于人脸检测,包括上下翻转和马赛克。而随机裁剪有助于提高性能
  • 轻量级模型:在 ShuffleNetV2 的基础上设计了两个超轻量级的模型。ShuffleNetV2 与 CSP 网络差别很大,它的模型很小,实现了嵌入式或移动设备的SOTA性能
Landmark Regression(Landmark 回归)
  • landmark 输出将被用于对齐人脸图像,然后再输入到人脸识别网络
  • Wing loss:
    • 使用 wing loss 的原因:与 L2、L1 或 Smooth-L1 函数相比,Wing loss 在接近零的小误差区域的响应得到了提升
    • 定义:
      w i n g ( x ) = { w ? l n ( 1 + ∣ x ∣ / e ) , i f< w ∣ x ∣ ? C , o t h e r w i s e( 1 ) wing(x)= \left\{ \begin{aligned} &w·ln(1+|x|/e),&if\space 非负数 w 设定非线性部分的范围为(-w,w),e 限制了非线性区域的曲率, C = w ? w l n ( 1 + w / e ) C = w ?wln(1 + w/e) C=w?wln(1+w/e)是一个常数,可以平滑地连接分段定义的线性和非线性部分
    • 应用:landmark 点向量为s = { s i } s=\{s_i\} s={si?},其gt 为s ′ = { s i } s'=\{s_i\} s′={si?},其中i = 1 , 2 , … … , 10 i=1,2,……,10 i=1,2,……,10,
      l o s s L ( s ) = ∑ i w i n g ( s i ? s i ′ )( 2 ) loss_L(s)=\sum_i wing(s_i-s'_i)\space (2) lossL?(s)=i∑?wing(si??si′?) (2)
      令 YOLOv5 的损失函数为l o s s O ( b o u n d i n g b o x , c l a s s , p r o b a b i l i t y ) loss_O(bounding_box, class, probability) lossO?(boundingb?ox,class,probability),那么整个的损失函数为l o s s ( s ) = l o s s O + λ L ? l o s s L loss(s)=loss_O+\lambda _L·loss_L loss(s)=lossO?+λL??lossL?,其中λ L \lambda_L λL? 是 landmark 回归损失的权重
Stem Block Structure(Stem 块结构)
  • 结构
    论文笔记|[论文笔记] YOLO5Face 阅读笔记
    文章图片
SPP with Smaller Kernels(更小kernel的SPP)
  • 小 kernel:在 YOLO5 中,使用了三种内核大小 13x13、9x9、5x5 。修改它们以使用更小的内核 7x7、5x5 和 3x3。这些较小的内核有助于更轻松地检测小人脸,并提高整体人脸检测性能
P6 Output Block(增加高层特征图)
  • 增加一个高层的 P6,增大感受野(这也能算创新?????
ShuffleNetV2 as Backbone(不同的 backbone)
  • 适用于移动设备或嵌入式设备
实验结果
  • modification 前后的对比
    论文笔记|[论文笔记] YOLO5Face 阅读笔记
    文章图片
  • 对比 SOTA 人脸检测器
    论文笔记|[论文笔记] YOLO5Face 阅读笔记
    文章图片
  • Face Landmark结果
    论文笔记|[论文笔记] YOLO5Face 阅读笔记
    文章图片
  • PR 曲线图
    论文笔记|[论文笔记] YOLO5Face 阅读笔记
    文章图片
  • FDDB 数据集结果
    论文笔记|[论文笔记] YOLO5Face 阅读笔记
    文章图片

    推荐阅读