Face系列文章目录

文章目录

  • Face系列文章目录
  • 前言
  • Abstract
  • 1.Introduction
  • 2.Related Work
  • 3. TinaFace
    • 3.1. Deformable Convolution Networks
    • 3.2. Inception Module
    • 3.3. IoU-aware Branch
    • 3.4. Distance-IoU Loss
  • 4. Experiments
    • 4.1. Dataset
    • 4.2. Implementation Details
    • 4.3. Evaluation on WIDER FACE
    • 4.4. Comparsion with other methods on WIDER FACE

前言

20201215人脸检测算法新SOTA。该模型基于RetinaNet,相比RetinaNet只做了很小的改动:
将BN换成GN;
加了一个IoU预测分支;
在backbone上嵌入了DCNv1;
将框回归的loss从smooth l1 loss替换为DIoU loss。
在单模型,backbone仅为ResNet50的情况下。

1、验证集上

1.1、不使用TTA的TinaFace:TinaFace的AP为93.0%,比基于ResNet152的ASFD(使用TTA)高0.5%,比基于ResNet152的DSFD(使用TTA)高1.8%;

1.2、使用TTA的TinaFace:TinaFace的AP为93.4%,比基于ResNet50的HAMBox(使用TTA)高0.1%。

2、测试集上

2.1、不使用TTA的TinaFace:TinaFace的AP为92.1%,与基于ResNet152的ASFD(使用TTA)一样,比基于ResNet152的DSFD(使用TTA)高2.1%;

2.2、使用TTA的TinaFace:TinaFace的AP为92.4%,比基于ResNet50的HAMBox(使用TTA)高0.1%。

TinaFace非常简单,基于RetinaNet,所添加的模块在在通用的目标检测框架(比如mmdetection、vedadet)中都是现成的。而且训练不需要大batch,即使你的显存只有11G,也可以复现TinaFace。也正因为TinaFace使用的模块都非常经典、成熟,TinaFace也会比较容易部署。

Abstract

人脸检测近年来受到了广泛的关注。许多工作从模型架构、数据增强、标签分配等不同角度提出了大量的人脸检测专用方法,使得整个算法和系统变得越来越复杂。在本文中,我们指出了人脸检测与一般目标检测之间没有差距。在此基础上,我们提出了一种较强而简单的人脸检测基线方法TinaFace。我们以ResNet-50[11]为骨干,TinaFace中的所有模块和技术都是在现有模块上构造的,易于实现,基于通用对象检测。在最流行和最具挑战性的人脸检测基准Wider-Face[48]的hard测试集上,单模型和单尺度,我们的TinaFace达到了92.1%的平均精度(AP),这超过了大多数最近的更大骨干的人脸检测器。在使用了测试时间增加(TTA)之后,我们的TinaFace比目前最先进的方法表现更好,达到了92.4%的AP。

1.Introduction

人脸检测是计算机视觉中一个非常重要的任务,它是人脸识别、验证、跟踪、对齐、表情分析等大多数任务和应用的第一步和基础。因此,近年来在这一领域出现了许多不同角度的方法。一些文献[6,7,49]将带注释的地标信息作为额外的监督信号,另外一些文献[51,57,37,17,26,25,58]更加注重网络的设计。此外,还提出了一些新的损失设计[51,57,16]和数据增强方法[17,37]。更重要的是,还有一些工作开始重新设计匹配策略和标签分配流程。显然,人脸检测似乎逐渐从一般的目标检测中分离出来,形成了一个新的领域。
直观地说,人脸检测实际上是通用目标检测的一种应用。在某种程度上,脸是一个物体。所以自然就会出现一系列问题,“人脸检测与一般对象检测有什么区别?”“为什么不用一般对象检测技术来处理人脸检测?”“是否有必要另外设计处理人脸检测的特殊方法?”
首先,从数据的角度来看,人脸拥有的属性也存在于物体中,比如姿态、比例、遮挡、光照、模糊等。面部的独特属性,比如表情和化妆,也可以对应物体的扭曲和颜色。那么,从人脸检测所遇到的多尺度、小人脸、密集场景等挑战来看,它们都存在于一般的目标检测中。因此,人脸检测似乎只是一般对象检测的一个子问题。为了更好地进一步回答上述问题,我们提供了一种基于通用对象检测的简单基线方法,在wider-face hard测试集上胜过目前最先进的方法。
本文的主要贡献可以总结为:
说明人脸检测实际上是一类通用对象检测问题,可以通过通用对象检测技术进行处理。

提供了一种强大而简单的面部检测基线方法TinaFace。TinaFace中使用的所有思想和模块都是基于通用对象检测的。

在单尺度和单模型的情况下,我们在较宽面部测试子集的硬设置下达到了92.1%的平均精度(AP),这已经超过了当前大多数具有较大主干性和测试时间增加(TTA)的方法。我们最终的模型在测试子集的hard中获得92.4%的AP,并优于当前最先进的人脸检测方法。

2.Related Work

Generic Object Detection. ,通用目标检测的目的是对给定图像中存在的目标进行定位和分类。在深度学习蓬勃发展之前,一般的目标检测主要是基于手工制作的特征描述子,如SIFT[24]和HOG[5]。最成功的方法如DPM[8]将多尺度手工制作的特征、滑动窗口、可变形部件和SVM分类器相结合,形成通用的目标检测器。

随着AlexNet[15]以较大差距获得2012年大规模视觉识别挑战赛(ILSVRC2012)冠军,深度学习时代即将到来,通用目标检测迅速被深度学习方法所主导。两阶段方法从R-CNN[10]和快速R-CNN[9]开始。很快,R-CNN[31]就提出了RPN网络,用预定义锚点代替选择性搜索生成建议,成为最经典的基于锚点的通用目标检测方法。基于Faster R-CNN[31],提出了很多新方法,如FPN[18]、Mask R-CNN[12]、级联R-CNN[1]等。为了克服两阶段方法的高潜伏期,出现了许多单阶段方法,如YOLO系列[30,28,29]、SSD[22]和RetinaNet[19]等。为了解决多尺度或小物体的问题,YOLOs[30,28,29]提出了新的锚点匹配策略,包括考虑建议反馈和一个地真对一个锚点,并对物体宽度和高度的回归进行重估。然后SSD[22]使用一个主干特征的层次结构,而FPN[18]使用特征金字塔。此外,SNIP[34]、SNIPER[35]系列、多尺度训练、多尺度测试也可以应对多尺度问题。

除了通用目标检测中提出的新方法外,其他领域的发展,如归一化方法和深度卷积网络,也促进了通用目标检测。批处理归一化(BN)[14]沿通道维对批处理内的特征进行归一化,可以帮助模型收敛,使模型能够训练。为了处理batch size = BN的依赖关系,group normalization (GN)[44]将通道分成组,并在每组内计算归一化的平均值和方差。之后深卷积网络,AlexNet [15], VGG[33]增加深度使用架构和非常小的3×3卷积过滤器,GoogLeNet[36]介绍了《盗梦空间》模块使用不同数量的小过滤器并联形成的特性不同的接受域和帮助捕获对象以及上下文模型在多尺度,ResNet[11]展示了原始信息流的重要性,并提出了跳过连接来处理更深网络的退化(残差网络)。
Face Detection 人脸检测作为通用目标检测的一种应用,其发展历史几乎是相同的。在深度学习时代之前,人脸检测器也是基于Haar[39]等手工制作的特征。继[48]提出的最受欢迎和最具挑战性的人脸检测基准WIDER face dataset之后,人脸检测针对尺度、姿态、遮挡、表情、化妆、光照、模糊等极端和真实变化问题得到了快速发展。目前几乎所有的人脸检测方法都是从现有的通用目标检测方法发展而来的。基于SSD[22],年代3 FD [58] anchor-associated层延伸至C3阶段,提出了一种补偿规模锚匹配策略为了覆盖的小脸上,PyramidBox[37]提出PyramidAnchors (PA),低级特征金字塔网络(LFPN),上下文敏感的预测模块(CPM)强调环境的重要性和data-anchor-sampling增加增加较小的面孔,DSFD[16]引入了改进锚匹配(IAM)和渐进锚丢失(PAL)的双镜头检测器。然后,RefineFace[57]基于视网膜et[19],通过视网膜aface[6]人工标注人脸上的5个地标作为额外的监督信号,引入了选择性两步回归(Selective Two-step Regression, STR)、选择性两步分类(Selective Two-step Classification, STC)、尺度感知边缘损失(Scale-aware Margin Loss, SML)、特征监督模块(Feature supervision Module, FSM)和接受场增强(RFE) 5个额外模块,HAMBox[23]强调了一些不匹配锚的强大回归能力,提出了一种在线高质量锚挖掘策略(HAMBox)。此外,ASFD[51]采用神经体系结构搜索技术自动搜索体系结构,实现高效的多尺度特征融合和上下文增强。

综上所述,人脸检测中的方法几乎涵盖了深度学习训练从数据处理到损失设计的每一个环节。很明显,所有这些方法都集中在小脸的挑战上。然而,实际上在通用对象检测中有很多方法可以解决这个问题,我们在前面提到过。因此,在这些方法的基础上,我们提出了TinaFace,一种强大但简单的人脸检测baseline方法。

3. TinaFace

基本上,我们像以前的一些工作一样,从一级检测器视网膜网[19]开始。TinaFace的架构如图1所示,红色虚线框显示了与RetinaNet[19]不同的部分。

3.1. Deformable Convolution Networks

卷积运算有其固有的局限性,即对采样位置的强先验是固定的、刚性的。因此,网络对复杂几何变换的学习和编码困难,模型的能力受到限制。为了进一步提高模型的性能,我们将DCN[4]应用到主干的第四阶段和第五阶段。

3.2. Inception Module

多尺度一直是通用目标检测中的一个难题。常用的处理方法有多尺度训练、FPN体系结构和多尺度测试。此外,我们在我们的模型中使用了inception模块[36]来进一步增强这种能力。inception模块使用不同数量的3×3卷积层并行形成不同接受域的特征,然后将它们组合在一起,帮助模型在多个尺度上捕捉对象和上下文。

3.3. IoU-aware Branch

oU感知的[43]是一种非常简单优雅的方法,可以缓解单级目标检测器分类分数与定位精度不匹配的问题,可以利用分类分数,抑制误报检测框(高分低IoU)。IoU-aware的架构如图1所示,唯一不同的是紫色部分,一个平行的头和一个回归头,用来预测被检测盒与对应的地真对象之间的IoU。而这个头部只有一个3×3的卷积层,然后是一个sigmoid激活层。在推理阶段,最终检测置信度计算公式如下:

其中p i和IoU i是第i个检测盒的原始分类分数和预测IoU,α∈[0,1]是控制分类分数和预测IoU对最终检测置信度贡献的超参数。

3.4. Distance-IoU Loss

在bbox回归中最常用的损失是smooth L1损失[9],它回归四个坐标(box的中心及其宽度和高度)的参数化。然而,这些优化目标与回归评价指标IoU并不一致,即损失越低并不等于IoU越高。因此,我们转向过去几年出现的不同IoU损失,直接回归IoU度量,如GIoU[32]、DIoU和CIoU[61]。我们之所以选择DIoU[61]作为我们的回归损失,是因为小人脸是人脸检测的主要挑战,因为在Widerface[48]中约有三分之二的数据属于小目标,而DIoU[61]对小目标更友好。在实际应用中,DIoU在MS COCO 2017[20]验证集APsmall上的性能较好。理论上,DIoU定义为:

其中b和b gt表示预测盒和地真盒的中心点,ρ(·)是欧氏距离,c是覆盖两个盒的最小外接盒的对角线长度。额外罚款项

提出对预测盒中心点与地面真盒之间的归一化距离进行最小化。相对于大目标,同样距离的小目标中心点会受到更多的惩罚,这有助于检测器在回归过程中对小目标学习更多。

4. Experiments

4.1. Dataset

Wider-Face[48]是最大的人脸检测数据集,包含32,203张图像和393,703张面孔。由于它的尺度、姿势、遮挡、表情、光照和事件的多样性,使得它很难接近现实。整个数据集在每个事件类中按50%/10%/40%的比例分为训练/val/测试集。此外,根据EdgeBox的检测率[64],将每个子集定义为“容易”、“中等”、“难”三个难度等级。从这三个关卡的名称,我们知道‘Hard’更具挑战性。进一步分析,我们发现Hard中的数据涵盖了Medium和Easy,这说明Hard上的表现能更好地反映不同方法的有效性。

4.2. Implementation Details

Feature Extractor。我们以ResNet-50[11]为主干,以特征金字塔网络(FPN)[18]为颈构建特征提取器。这种组合在几乎所有检测器中都被广泛使用,因此我们认为它可以作为复制和比较的一个公平的场所。为了覆盖微小的面孔,我们采用的FPN[18]和之前的一些工作一样,扩展到level p2。FPN[18]从p2级到p7级总共有6个级别。

LOSS。分类损失、回归损失和IoU预测损失分别为Focal loss、DIoU损失和交叉熵损失。

批量归一化(BN)[14]是深度学习中一项非常重要的技术。它可以帮助模型输入集中,并使各种网络训练成为可能。但是,随着批处理规模的减小,模型的性能会下降,特别是批处理规模小于4时,由于批统计估计不准确而导致模型性能下降。考虑到大量gpu并不广泛使用,复制,这可能会导致问题的GeForce GTX 1080 Ti,我们替换所有BN层网络用Group Normalization[44]这是一个简单的替代BN和批量大小的独立,和性能的稳定。可查看上一篇博客

Anchor and Assigner Settings。基本上,我们从set 2 4/3×{4,8,16,32,64,128}中设置6个Anchor,因为我们的FPN[18]中有6个级别。我们将基础尺度调整为2 / 4/3,以便更好地覆盖微小面,使用地真长宽比的平均值作为Anchor定比,在步骤2 /3每层设置三个尺度。对于授权方,匹配策略的IoU阈值为0.35,不应用忽略区。

为了更好地理解我们设置的优势,我们使用检测分析工具1,并进行了两个实验,以获得分配给每个地面真实的阳性样本的分布,如图2所示。如图2a所示,虽然RetinaFace[6]能够回忆起大部分的面孔,但它没有注意到跨尺度的不平衡问题,即小的ground-truths得到的积极Anchor较少,而大的ground-truths得到的积极Anchor较多,导致在小的ground-truths上的表现下降。转到图2b,我们注意到不平衡问题在很大程度上得到缓解。positive分配样本的数量分布在尺度上高度相似。

Data Augmentation.。首先,从原始图像的短边集合[0.3,0.45,0.6,0.8,1.0]中随机裁剪出正方形的小块,如果脸盒的中心在裁剪块内,保留重叠的部分。然后做照片失真和随机水平翻转,概率为0.5。最后,将patch的大小调整为640×640,并进行归一化。

Training Setting。在3个GeForce GTX 1080 Ti上使用批量为3×4的SGD优化器(动量0.9,重量衰减5e-4)对模型进行训练。学习速率的过程是在630个epoch中每30个epoch用余弦衰减规则从3.75e-3退火到3.75e-5。在前500次迭代中,学习率从3.75e-4线性升到3.75e-3。

Testing Setting 。单尺度测试只包含保持比调整大小,保证图像的长短边缘不超过1100和1650。测试时间增强(Test Time Augmentation, TTA)由多尺度(图像的短边为[500,800,1100,1400,1700]),平移(方向为[(0,0),(0,1),(1,0),(1,1)]),水平翻转和框投票组成

4.3. Evaluation on WIDER FACE

如表1所示,我们展示了第3节中描述的模型在Wider face验证子集上的AP性能。我们使用单尺度测试的基线模型在验证子集的三个设置中得到95.9%,95.2%,92.4%。然后我们引入DIoU[61]、Inception[36]、IoU aware[43]、DCN[4]模块和TTA,在三种设置下分别将检测器性能提高了1.1%、1.1%、1.0%。

4.4. Comparsion with other methods on WIDER FACE

如图3所示,我们将TinaFace与最近的人脸检测方法在验证和测试子集上进行了比较。为了更好的比较,我们选取了前5种方法组成表2 (HAMBox[23]没有列在图3中,因为它的结果没有更新到WIDER的官网

令人惊讶的是,对于单尺度和单模型,我们的模型已经获得了非常有前途和几乎是最先进的性能,特别是在硬设置,分别在验证子集和测试子集性能优于ASFD-D6[51]。此外,我们的模型使用ResNet-50作为主干,它比ASFD-D6[51]使用的要小得多。在使用相同主干的情况下,我们使用TTA的最终模型优于当前最先进的HAMBox方法.

TinaFace: Strong but Simple Baseline for Face Detection论文笔记相关推荐

  1. SECOND: Sparsely Embedded Convolutional Detection 论文笔记

    SECOND: Sparsely Embedded Convolutional Detection 论文链接: https://www.researchgate.net/publication/328 ...

  2. PointAugmenting: Cross-Modal Augmentation for 3D Object Detection论文笔记

    PointAugmenting: Cross-Modal Augmentation for 3D Object Detection(point-level fusion) CVPR2021 1.摘要+ ...

  3. Feature Pyramid Networks for Object Detection 论文笔记

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Jesse_Mx/article/details/54588085 论文地址:Feature Pyra ...

  4. ICDM‘20 AANE: Anomaly Aware Network Embedding For Anomalous Link Detection论文笔记

    AANE: Anomaly Aware Network Embedding For Anomalous Link Detection ICDM'20 1. Abstract 现有的网络嵌入模型将网络中 ...

  5. Towards High Performance Video Object Detection论文笔记

    这篇文章可以说是很牛逼的又快有准的文章,对比之前的这个团队的deep feature fow(快)和Flow-guided feature aggregation(准),这篇文章可以说是又快又准.但是 ...

  6. STS:Surround-view Temporal Stereo for Multi-view 3D Detection——论文笔记

    参考代码:None 1. 概述 介绍:这篇文章提出的方法是对LSS中深度估计部分进行改进,其改进的点是在深度估计部分引入立体匹配去估计周视相机下的深度信息,其中立体匹配使用前后视频帧进行构建(可以看作 ...

  7. CFT:Multi-Camera Calibration Free BEV Representation for 3D Object Detection——论文笔记

    参考代码:暂无 1. 概述 介绍:在相机数据作为输入的BEV感知算法中很多是需要显式或是隐式使用相机内外参数的,但是相机的参数自标定之后并不是一直保持不变的,这就对依赖相机标定参数的算法带来了麻烦.如 ...

  8. Scale-Equalizing Pyramid Convolution for Object Detection 论文笔记

    前言 特征金字塔是解决多尺度目标检测的有效方式,但是在特征金字塔中,不同层级的特征中所包含的语义信息相差很大,这可能会无法得到最优的检测结果.为了解决这个问题,人们提出了很多不同的特征融合策略,目的是 ...

  9. (IoU-Net)Acquisition of Localization Confidence for Accurate Object Detection 论文笔记

    前言 在大部分目标检测方法中,分类和定位的处理方法是不同的.给定一个proposal,预测的每个类标签的概率就作为这个proposal的分类置信度(classification confidence) ...

  10. [2017CVPR]Mimicking very efficient network for object detection 论文笔记

    目录 出发点 Method 总结 出发点 作者的出发点是,现有的检测backbone都是分类那边过来的,但是这些网络分类效果好,检测不一定就是最好的.假如我想要设计并找到一个更有效的网络,我们都需要预 ...

最新文章

  1. Wireshark数据抓包教程之Wireshark的基础知识
  2. python中url是什么_怎么在Python中实现URL的解析
  3. 32树莓派_你觉得树莓派的32位系统到了2038年会出现故障吗?
  4. 疫情冬天过去,二手经济春天到来
  5. 产生数(Floyd)
  6. oracle中数据导入导出问题
  7. GNOME 3.20 两大新特性说明
  8. hawk物联网组态工具_物联网web组态网关在智慧农业中的应用
  9. c语言混响,混响插件( 2cAudio Aether)
  10. TeXLive2021+TeXStudio安装及配置,亲测有效!
  11. 2021年氧化工艺报名考试及氧化工艺模拟试题
  12. Air Jordan 32 Performance Review
  13. 如何给Word重新排页码
  14. 【我的职场思想之转折点】
  15. 【全文】工信部正式发布《公共互联网网络安全突发事件应急预案》
  16. gcc流程及鲜有人知的参数
  17. 微信小程序接收富文本编辑器图片大小解决方法
  18. (一)微信公众号环境搭建与开发接入
  19. #HYSBZ3626[LNOI2014]#LCA(经典模型:树剖+线段树维护和)
  20. 在Wicket中配置404错误页面

热门文章

  1. 银尔达-----合宙Air724全网通4g DTU无线透传模块串口UART(TTL)+RS485核心板
  2. 杭州治堵有“智慧” 阿里云数加激活城市大脑
  3. 实验六—基本数据管理(三)
  4. android6 存储卡异常,手机SD卡无法读取时,如何在手机上修复损坏的SD卡?
  5. juniper 设备查看光衰的命令
  6. esp32运行linux,ubuntu系统搭建ESP32 开发环境
  7. oel+oracle,OEL7.6安装Oracle Database 19C(VERSION 19.3.0.0)
  8. 乔治城大学计算机科学硕士2019,[2019世界大学排名]2019乔治城大学排名
  9. 免费4s店汽车保养维修记录查询的方式
  10. python不区分大小写的列表比较_关于列表:不区分大小写’in’ – Python