摘要
尽管在非受控人脸检测方面取得了巨大的进步,但以低计算成本和高精度进行高效人脸检测仍然是一个巨大的挑战。本文指出,训练数据采样和计算分布策略是高效、准确人脸检测的关键。基于这些观察结果,我们介绍了两种简单而有效的方法(1)样本再分配(SR),该方法基于基准数据集的统计数据,为最需要的阶段增加训练样本;(2)计算再分配(CR),基于精心定义的搜索方法,在模型的主干、颈部和头部之间重新分配计算。在 WIDER FACE 上进行的大量实验证明了所提出的 SCRFD 系列在各种计算方案中的最先进的效率和精度权衡。特别是,SCRFD-34GF 比最好的竞争对手 TinaFace 高出 3.86%(困难模式AP),同时在具有 VGA 分辨率图像的 GPU 上速度提高了 3 倍以上。我们还发布了代码,以便于将来的研究。https://github.com/deepinsight/insightface/tree/master/detection/scrfd
1 介绍
人脸检测是计算机视觉中一个长期存在的问题,有很多应用,如人脸对齐[2],人脸重建[9],人脸属性分析[36,26],人脸识别[28,6]。继ViolaJones[32]的开创性工作之后,设计了许多人脸检测算法。其中,single-shot锚定方法[25、39、30、15、24、7、23、41]最近表现出了最有希望的性能。特别是在最具挑战性的人脸检测数据集 WIDER FACE [34],其困难测试集的平均精度 (AP) 已被 TinaFace [41] 提高到 92.4%。
尽管TinaFace[41]在无约束人脸检测方面取得了令人印象深刻的结果,但它采用了大规模(例如1650像素)测试,这会消耗大量的计算成本(如表1所示)。此外,TinaFace的设计基于一个通用的对象检测器(即RetinaNet[19]),直接以分类网络为主干,在多尺度特征图(即颈部的P2到P7)上平铺密集锚,并采用重型头部设计。在不考虑人脸先验知识的情况下,TinaFace的主干、颈部和头部设计是冗余和次优的。由于直接使用分类网络的主干进行目标检测是次优的,因此最近的CRNAS[17]在不同分辨率之间重新分配计算。根据观察,计算在不同分辨率之间的分配对有效感受野(ERF)有很大影响,并影响检测性能。在BFbox[22]中,观察到一个有意义的现象,即由于尺度分布的巨大差距,同一主干在COCO[20]上的一般目标检测任务与在更宽人脸上的人脸检测任务之间执行不一致。基于这一观察,在 BFbox [22] 中设计了一个适合人脸的搜索空间,包括骨干和颈部。在ASFD[35]中,另一个有趣的现象是观察到,之前的一些特征增强模块(FAE)在一般目标检测中表现良好,但在人脸检测中失败。为此,ASFD[35]中采用了差分体系结构搜索,以发现优化的特征增强模块,从而实现高效的多尺度特征融合和上下文增强。尽管工作[22,35]已经意识到直接将一般主干、颈部和头部设置应用于面部检测的局限性,CR-NAS[17]只关注主干的优化,BFbox[22]忽略了头部的优化,ASFD[35]只探索颈部的最佳设计。
在本文中,我们探索了在固定VGA分辨率(即640×480)下高效的人脸检测,而不是使用大规模测试来降低计算成本。在这种尺度设置下,WIDER FACE中的大多数人脸(78.93%)小于32×32像素,因此它们是通过浅层阶段进行预测的。为了获得这些浅层阶段的更多训练样本,我们首先通过大裁剪策略提出了一种样本再分配(SR)方法。此外,由于人脸检测器的结构决定了计算的分布,并且是决定其准确性和效率的关键,因此我们进一步发现了不同flop模式下计算分布的原则。受 [27] 的启发,我们控制自由度并减少搜索空间。更具体地说,我们在主干(主干和四级)、颈部和头部随机采样具有不同配置的模型架构。基于这些模型的统计数据,我们遵循计算经验引导程序 [8]并估计最佳模型的可能范围。为了进一步降低搜索空间的复杂度,我们将主干和整个检测器的计算比估计分为两步。
综上所述,本文做出了以下贡献:
- 我们探讨了VGA分辨率下人脸检测的效率,并提出了一种样本再分配策略(SR),该策略有助于获得更多的浅层训练样本。
- 我们设计了一个简化的搜索空间,用于在人脸检测器的不同组件(主干、颈部和头部)之间进行计算再分配。所提出的两步计算再分配方法可以很容易地了解计算分配。
- 在WIDER FACE上进行的大量实验表明,所提出的SCRFD在广泛的计算区域中的精度和效率权衡得到了显著提高,如图1所示。
图1.不同人脸检测器的WIDER FACE验证困难数据据集的性能计算权衡。在测试期间,通过使用VGA分辨率(640×480)报告Flops和AP。所提出的SCRFD通过使用更少的flops而优于一系列最先进的开源方法。
2 相关工作
Face Detection. 为了处理人脸检测中的极端变化(例如,比例、姿势、照明和遮挡)[34],目前,大多数single-shot人脸检测器都致力于改进定位点采样/匹配或特征增强。SSH[25]在不同的功能图上构建了具有丰富感受域的检测模块。S 3 ^3 3FD [39] 通过偏移外表面的锚点来引入锚点补偿策略。PyramidBox[30]制定了一种数据锚抽样策略,以增加训练数据中小人脸的比例。DSFD[15]在主干上引入了小人脸监督信号,这隐含地提高了金字塔特征的性能。群体抽样[24]强调了匹配锚和非匹配锚的比率的重要性。RetinaFace[7]采用可变形上下文模块和额外的人脸关键点标注来提高人脸检测的性能。HAMBox[23]发现,在训练阶段,许多不匹配的锚也具有很强的定位能力,并提出了在线高质量锚挖掘策略,为外部工作面分配高质量锚。BFbox[22]采用单路径单次搜索方法[11],共同优化面部检测器的主干和颈部。ASFD[35]探索了一种差分体系结构搜索,以发现优化的功能增强模块,从而实现高效的多尺度功能融合和上下文增强。所有这些方法都是根据专家经验设计的,或者在主干、颈部和头部进行了部分优化。相比之下,我们在各种计算模式中搜索人脸检测器不同组件(主干、颈部和头部)的计算再分配,这是一种全局优化。
Neural Architecture Search. 给定可能网络的固定搜索空间,神经结构搜索(NAS)会自动在搜索空间中找到一个好的模型。DetNAS[4]采用进化算法进行主干搜索,以增强COCO上的目标检测[20]。相比之下,CR-NAS[17]在主干内的不同阶段重新分配计算,以改进目标检测。NAS-FPN[10]使用强化学习来搜索合适的FPN以进行一般目标检测。由于COCO[20]和宽脸[34]之间存在明显的分布差距,上述方法的经验并不直接适用于人脸检测,但给了我们一个启示,即可以优化主干、颈部和头部,以提高人脸检测的性能。受RegNet[27]的启发,我们根据一组随机抽样模型的统计数据优化了主干、颈部和头部的计算分布。我们成功地减少了搜索空间,在特定的复杂区域下找到了稳定的计算分布,从而显著提高了模型的性能。
3 修订TinaFace
TinaFace基于RetinaNet,以ResNet-50为主干,以特征金字塔网络(FPN)为颈部构建特征提取器。对于头部设计,TinaFace首先在每个特征金字塔上使用一个特征增强模块,通过初始块中的不同感受野来学习周围的环境[29]。然后,在每个特征金字塔上附加四个连续的3×3卷积层。Focal损失[19]用于分类分支,DIoU损失用于框回归分支,交叉熵损失用于IoU预测分支。
为了检测微小的面部,TinaFace在FPN的每个级别上(即{ 2 4 / 3 2^{4/3} 24/3, 2 5 / 3 2^{5/3} 25/3, 2 6 / 3 2^{6/3} 26/3}×{4,8,16,32,64,128},从级别P2到P7)平铺三个不同比例的锚。纵横比设置为1.3。在训练过程中,使用从 [0.3,0.45,0.6,0.8,1.0] 中随机采样的比例因子乘以原始图像短边的长度,从原始图像中裁剪出方形块并将其大小调整为 640 × 640。在测试过程中,当图像的短边和长边不超过[1100,1650]时,TinaFace采用单尺度测试。否则,它将使用[500,800,1100,1400,1700]处的短边缩放,使用方向[(0,0),(0,1),(1,0),(1,1)]和水平filp进行移动。
图2.(a)TinaFace-ResNet50 在不同测试尺度下在 WIDER FACE困难验证子集上的精确率—召回率曲线。(b)以640×480为测试尺度,TinaFace在脊柱、颈部和头部的计算分布。
表1.TinaFace在不同测试尺度下的性能和计算比较。原始图像的平均比例约为882×1024。
如图2(a)和表1所示,我们比较了 Tina Face 在不同测试尺度下的表现。对于多尺度测试,TinaFace 取得了令人印象深刻的93.4%的AP,这是目前在 WIDER FACE 排行榜上的最佳表现。对于大型单尺度测试(1650),AP略微下降至93.0%,但计算量显著减少到1021.82 Gflops。在原始尺度(~1024)上,TinaFace 的性能仍然很高,以 508.47 Gflops 获得 91.4% 的 AP。此外,当测试规模降低到VGA级别(640)时,AP显著降低至81.4%,计算进一步减少至172.95 Gflops。
在 图2(b) 中,我们以640的测试量表说明了TinaFace在主干、颈部和头部组件上的计算分布。从特征金字塔的不同尺度来看,大部分计算成本(约68%)来自stride 4,因为特征图的分辨率相当大(120×160)。从人脸检测器的不同组件来看,大部分计算成本(约79%)来自头部,这是由于主干结构直接借用自ImageNet分类任务[5],无需任何修改。
尽管TinaFace在微小人脸检测方面取得了最先进的性能,但其计算量大,不适合实时应用。此外,现实世界中的人脸检测系统总是需要高精度(例如>98%),以避免频繁的误报。如表1中所示,当检测分数的阈值增加以满足高精度的要求,TinaFace的APs显着下降。
4 方法
基于上面对TinaFace的分析,以及后续细致的实验,我们在人脸检测设计上提出了以下效率改进:条件是(1)以 VGA 分辨率(640)为界的测试尺度,以及(2)步长 4 的特征图上没有平铺anchor。特别是,我们在步幅8的特征图上平铺{16,32}的anchors,在步幅16上平铺{64,128}的anchors,在步幅32上平铺{256,512}的anchors。由于我们的测试规模较小,大多数人脸将在stride 8进行预测。因此,我们首先研究正训练样本在不同尺度的特征图上的再分配(第4.1节)。然后,我们探讨了在给定预定义计算预算的情况下,在不同比例的特征图以及不同组件(即主干、颈部和头部)之间的计算再分配(第4.2节)。
图3. WIDER FACE 验证数据集上的累积人脸尺度分布(Easy ⊂ Medium ⊂ Hard)。 当长边固定为640pixels时,大部分easy face大于32×32,medium faces大部分大于16×16。对于困难跟踪,78.93%的人脸小于32×32,51.85%的人脸小于16×16,13.36%的人脸小于8×8。
图4. 一个epoch内的真值和正锚分布。基线方法使用集合[0.3,1.0]中的随机大小,而我们的方法使用集合[0.3,2.0]中的随机大小。使用大裁剪策略后,小人脸数(<32×32)显著增加。
4.1 样本再分配
我们发现stride 8的特征图在我们的设置中是最重要的。这在图 3 中很明显,我们在 WIDER FACE 验证数据集上绘制了累积人脸尺度分布。当测试尺度固定为640像素时,78.93% 的人脸小于 32 × 32。
在训练数据增强期间,从原始图像中裁剪出正方形块,其大小来自原始图像短边的集合 [0.3,1.0] 中的随机大小。为了为stride 8生成更多的正样本,我们将随机大小范围从[0.3,1.0]扩大到[0.3,2.0]。当裁剪框超出原始图像时,平均RGB值将填充缺失的像素。如图4(a) 所示,在使用提出的大裁剪策略后,32 尺度以下的人脸更多。此外,即使在大裁剪策略下会有更多的极小人脸(例如 < 4 × 4),但由于锚匹配不成功,这些真实人脸在训练过程中会被忽略。如 图4(b) 所示,一个 epoch 内的正锚在 16 的尺度上从 72.3K 显着增加到 118.3K,在 32 的尺度上从 95.9K 增加到 115.1K。随着更多的训练样本重新分布到小范围内,可以更充分地训练用于检测微小人脸的分支。
4.2 计算再分配
直接利用分类网络的主干进行特定尺度的人脸检测可能是次优的。因此,我们采用网络结构搜索[27],在各种flop模式下,在主干、颈部和头部重新分配计算。我们在 RetinaNet [18] 上应用我们的搜索方法,以 ResNet [12] 作为主干,路径聚合特征金字塔网络 (PAFPN) [21] 作为颈部,并为头部堆叠 3×3 卷积层。虽然总体结构很简单,但搜索空间中可能存在的网络总数却很难处理。在第一步中,我们探索在固定颈部和头部组件的同时,计算在主干部分(即stem、C2、C3、C4和C5)内的重新分配。基于我们发现的主干上的优化计算分布,我们进一步探索了计算在主干、颈部和头部的重新分配。通过这两种方式的优化,我们实现了人脸检测的最终优化网络设计。
Computation search space reduction. 我们的目标是通过重新分配计算来设计更好的网络,以实现高效的人脸检测。给定固定的计算成本,以及图3所示的人脸尺度分布,我们从模型总体中探索计算分布与性能之间的关系。根据RegNet[27],我们探索了人脸检测器的结构,假设固定的标准网络块(即基本残差块或瓶颈比为4的瓶颈块)。在我们的例子中,人脸检测器的结构包括:(1)主干,三个 3×3 卷积层,输出通道为 w 0 w_0 w0 [13],(2) 主干体,四个阶段以逐渐降低的分辨率运行,每个阶段由一系列相同的块组成。对于每个阶段 i,自由度包括块数 d i d_i di(即网络深度)和块宽度 w i w_i wi(即通道数)。人脸检测器的结构还包括:(3)颈部,一个多尺度特征聚合模块,由一个自上而下的路径和一个自下而上的路径,具有 n i n_i ni 个通道 [21],(4)头部,具有 h i h_i hi 通道 m m m 个块来预测人脸分数和回归人脸框。
由于stem的通道数等于 C 2 C2 C2中第一个残差块的块宽度,因此可以将stem的自由度合并到 w 1 w_1 w1中。此外,我们对三个比例的特征图采用共享头设计,并固定头内所有3×3卷积层的通道数。因此,我们在颈部和头部设计中将自由度降低到三个:(1) 颈部输出通道数 n n n,(2) 头部输出通道数 h h h,以及 (3) 3 × 3 卷积层数 m m m 。我们对 n ≤ 256 n ≤ 256 n≤256、 h ≤ 256 h ≤ 256 h≤256 和 m ≤ 6 m ≤ 6 m≤6 执行均匀采样(n 和 h 都可以被 8 整除)。主干搜索空间有8个自由度,因为有4个阶段,每个阶段 i i i 有2个参数:块数 d i d_i di和块宽度 w i w_i wi。在 RegNet[27] 之后,我们对 d i ≤ 24 d_i ≤ 24 di≤24 和 w i ≤ 512 w_i≤ 512 wi≤512( w i w_i wi 可被 8 整除)进行统一采样。由于最先进的主干具有越来越大的宽度[27],我们还缩小了受限于 w i + 1 ≥ w i w_i+1≥w_i wi+1≥wi 原则的搜索空间。
通过上述简化,我们的搜索空间变得更加简单。我们在搜索空间中重复随机抽样,直到在目标复杂度范围内获得 320 个模型,并在 WIDER FACE 训练集上训练每个模型 80 个 epoch。然后,我们在验证集上测试每个模型的AP。基于这 320 对模型统计数据 ( x i , A P i ) (x_i, AP_i) (xi,APi),其中 x i x_i xi 是特定组件的计算比率, A P i AP_i APi 是相应的性能,我们按照 [27] 计算经验引导程序 [8] 来估计最佳模型的可能范围。
最后,为了进一步降低搜索空间的复杂性,我们将网络结构搜索分为以下两个步骤:
- SCRFD1: 仅搜索主干的计算分布,同时将颈部和头部的设置固定为默认配置。
- SCRFD2:搜索整个人脸检测器上的计算分布(即主干、颈部和头部),主干内的计算分布遵循优化的SCRFD1。
在这里,我们使用限制为 2.5 Gflops 的 SCRFD(SCRFD-2.5GF) 为例来说明我们的两个阶段搜索策略。
Computation redistribution on backbone. 由于backbone执行大部分计算,因此我们首先关注backbone的结构,它是决定网络计算成本和精度的核心。对于 SCRFD1-2.5GF,我们将颈部的输出通道固定为 32,并使用两个具有 96 个输出通道的堆叠 3×3 卷积。由于在SCRFD1的整个搜索过程中颈部和头部的配置没有变化,我们可以很容易地找到backbone的最佳计算分布。如图5所述,我们展示了 320 个模型 AP(在 WIDER FACE 困难验证集上)的分布与backbone每个组件(即stem、C2、C3、C4 和 C5)的计算比率。在应用经验引导 [8] 后,出现了一个明显的趋势,表明backbone计算被重新分配到浅层阶段(即 C2 和 C3)。在图6中,我们给出了backbone的浅层(即stem、C2和C3)和深层(即C4和C5)之间的计算比率。根据这些搜索结果的观察,很明显,大约80%的计算被重新分配到浅层阶段。
Computation redistribution on backbone, neck and head. 在我们在 2.5 Gflops 的特定计算约束下找到主干内的优化计算分布后,我们在主干、颈部和头部上搜索最佳计算分布。在这一步中,我们只保留随机生成的网络配置,其主干设置遵循来自SCRFD1的计算分布,如图5所示。
现在还有另外三个自由度(即颈部的输出通道数 n,头部的输出通道数 h,头部的 3×3 卷积层数 m)。我们在搜索空间中重复随机抽样,直到我们在目标复杂度范围内获得320个合格模型(即2.5 Gflops)。如图9所示,大部分计算分配在主干中,头部跟随,颈部的计算比率最低。图9(d) 描述了模型架构的比较,在 2.5 Gflops 的约束下。基线(ResNet-2.5GF)的网络配置在表2中介绍。
通过采用提出的两步计算再分配方法,我们发现大量容量分配给了浅层,导致在 WIDER FACE 困难验证集上的 AP 从 74.47% 提高到 77.87%。
Higher compute regimes and mobile regime. 除了 2.5 Gflops 的复杂性约束外,我们还利用相同的两步计算重新分配方法来探索更高计算机制(例如 10 Gflops 和 34 Gflops)和低计算机制(例如 0.5 Gflops)的网络结构优化。在图7和图8中,我们展示了在不同计算约束下的计算再分配和优化网络结构。
我们最终的架构具有与基线网络几乎相同的flops。从这些再分配结果中,我们可以得出以下结论:(1) 更多的计算被分配在主干中,颈部和头部的计算被压缩; (2) 由于 WIDER FACE 上的特定规模分布,2.5 Gflops、10 Gflops 和 34 Gflops 机制在浅阶段重新分配了更多容量;(3) 对于高计算机制(例如 34 Gflops),所探索的结构利用瓶颈残差块,我们观察到显著的深度缩放,而不是浅阶段的宽度缩放。由于参数 [1] 的较大增加,缩放宽度会过度拟合。相比之下,缩放深度,尤其是在早期层中,与缩放宽度相比,引入的参数更少;(4)对于移动机制(0.5 Gflops),将深度阶段(例如C5)的有限容量分配给深度阶段捕获的判别特征,可以通过自上而下的颈部路径进行浅层小人脸检测。
图5. 在 2.5 Gflops 的约束下,在颈部和头部固定的主干(stem、C2、C3、C4 和 C5)上的计算重新分布。 对于主干网中的每个组件,最佳模型可能落入的计算比率范围由经验引导程序估计。
图6. 2.5 Gflops约束下主干浅层和深层之间的计算再分配。
表2. 跨不同计算机制的基线网络配置。 骨干中的×0.25 和×0.5 是指与原始设计[12, 14] 相比,将通道数减少0.25 和0.5。ResNet-2.5GF 和 ResNet-10GF 使用基本残差块,ResNet-34GF 使用瓶颈残差块。 对于 MobileNet-0.5GF,在主干和头部都使用深度卷积。
表3. SCRFD-2.5GF(即SR+CR@two-step)在WIDER FACE验证子集上的消融实验。基线模型是表2中介绍的 ResNet-2.5GF。“SR”和“CR”分别表示建议的样本和计算重新分配。
图7. 不同计算约束(2.5GF、10GF和34GF)下的计算再分配(左列)和搜索的网络结构(右列)。第二行的网络图图例包含实现SCRFD模型所需的所有信息,我们优化了各阶段和组件的计算。
图8. mobile (0.5 Gflops) 机制下计算再分配(左)和搜索到的网络结构(右)。
5 实验
5.1 实现细节
Training. 对于基线方法,正方形块从原始图像中裁剪出来,随机大小为 [0.3,0.45,0.6,0.8,1.0],这些块被缩放至640 × \times × 640用作训练。对于建议的样本再分配(SR),我们通过添加[1.2,1.4,1.6,1.8,2.0]尺度来扩大随机大小集。除了尺度增强外,训练数据还通过颜色失真和随机水平翻转来增强,概率为 0.5。对于anchor设置,我们分别在步幅8、16和32的特征图上平铺{16,32}、{641,28}和{256,512}的anchor。anchor比率设置为 1.0。 在本文中,我们采用自适应训练样本选择(ATSS)[37] 进行正锚匹配。在检测头中,使用了权重共享和组归一化[33]。分类和回归分支的损失分别为Generalised Focal Loss (GFL)[16]和DIoU损失[40]。
我们的实验是在基于开源mmdetection的PyTorch中实现的[3]。我们采用批量为8×4的SGD优化器(动量0.9,重量衰减5e-4),并在四台Tesla V100上进行训练。初始学习率设置为 0.00001,在前 3 个 epoch 内线性升温到 0.01。在网络搜索期间,学习率在第 56 和第 68 个epoch乘以 0.1。学习过程在第80个epoch结束。对于基线和搜索后的最佳配置的重新训练,学习率在第440和544个epoch衰减10倍,学习过程在第640个epoch终止。对于表2中计算受限的基线,我们也采用相同的训练计划。所有模型都是从零开始训练的,没有任何预先训练。
Testing. 我们只采用单尺度测试,以 VGA 分辨率(640×480)为界。 DSFD [15]、RetinaFace [7]、TinaFace [41]和Faceboxes [38]的结果是通过测试发布的模型得到的,而HAMBox[23]模型是作者分享的。
表4. 在WIDER FACE验证集上,不同方法的准确性和效率。测试图像的大小以640为界。ResNet-34GF、ResNet-10GF、ResNet-2.5GF 和 MobileNet-0.5GF 也采用了建议的样本重新分配,以进行公平比较。#Params和#Flops表示参数和乘法加法的数量。“推断”是指NVIDIA 2080TI上VGA分辨率(640×480)图像的网络推断延迟。
5.2 消融实验
在表3中,我们通过逐步包含所提出的样本和计算重新分配方法来展示模型的 AP 性能。我们的基线模型(即表2中介绍的 ResNet-2.5GF)在验证子集的三个设置中分别获得 91.87%、89.49% 和 67.32%。通过增加样本重新分配,hard set AP 显着增加到 74.47%,表明在 stride 8 的特征图上分配更多训练样本的好处。
在主干网和整个检测器上分别采用建议的计算重新分配后,hard set上的 AP 分别提高到 69.78% 和 70.98%。这表明:(1)从分类任务直接继承的网络结构对于人脸检测任务来说是次优的,(2)主干、颈部和头部的联合计算再分配优于仅应用于主干的计算优化。此外,所提出的两步计算再分配策略实现了 71.37% 的 AP,比整个检测器上的一步计算再分配高出 0.39%。由于我们通过提出的两步策略缩小了整个搜索空间,并且我们的随机模型采样数固定为 320,因此两步方法可以找到更好的网络配置从大搜索空间。由于样本再分配和计算再分配是正交的,它们的组合(即SCRFD-2.5GF)显示出进一步的改进,在hard track上达到77.87%的AP。
图9. 2.5 Gflops约束下的计算再分配和架构草图。SCRFD-2.5GF 在主干内的计算分布如图 5 所示。ResNet-2.5GF的网络配置请参考表2。在(d)中,C2到C5中的黄色矩形表示基本残差块。矩形的宽度对应于计算成本。计算重新分配后,更多的计算分配给浅层阶段(即C2和C3)。
图10. WIDER FACE 数据集验证集的精确率—召回率曲线和定性结果。黄色矩形显示了所提出的 SCRFD-2.5GF 的检测结果,亮度编码了检测置信度。
5.3 WIDER FACE 的准确性和效率
如表4和图10中,我们将所提出的方法与其他最先进的人脸检测算法进行了比较(例如DSFD[15]、RetinaFace[7]、HAMBox[23]和TinaFace[41])。由于我们将测试规模固定为 640,因此flops和推理时间直接对应于报告的 AP。所提出的 SCRFD-34GF 在三个子集上优于所有这些最先进的方法,特别是对于包含大量微小人脸的hard track。更具体地说,SCRFD-34GF比TinaFace多3.86%,而在GPU上的速度超过3倍。此外,SCRFD-34GF的计算成本仅为TinaFace的20%左右。由于 SCRFD-34GF 在较早的层中缩放深度,它还引入了更少的参数,从而导致模型尺寸更小(9.80M)。
总体而言,与基线模型(表2 中列出)相比,所有提议的 SCRFD 模型(例如 SCRFD-34GF、SCRFD-10GF、SCRFD-2.5GF 和 SCRFD-0.5GF)都提供了相当大的改进,通过在广泛的计算机制中单独优化网络结构(即计算重新分配)。对于低计算方案,SCRFD-0.5GF 在硬 AP 上显着优于 RetinaFaceM0.25 21.19%,同时仅消耗 63.34% 的计算和 45.57% 的推理时间。
对于真实世界的人脸检测系统,需要高精度(例如>98%)以避免频繁的误报。如图 10(d) 所示,SCRFD-2.5GF 获得了相当的 AP(53.7%) 与 TinaFace (53.9%) 相比,在提高阈值分数以实现高于 98% 的预测时,计算成本仅为 1.46%,推理时间仅为 10.8%。图 10(e) 显示了 SCRFD-2.5GF 产生的定性结果。 可以看出,我们的人脸检测器在不同条件下(例如姿势、遮挡和照明的外观变化)下的室内和室外拥挤场景中都能很好地工作。在广泛的范围内令人印象深刻的性能表明 SCRFD-2.5GF 具有非常高的召回率,即使没有大规模测试也可以准确地检测到人脸。
6 结论
在这项工作中,我们提出了一种用于高效人脸检测的样本和计算重新分配范式。我们的结果表明,与当前最先进的技术相比,所提出的SCRFD在广泛的计算模式下显著提高了准确性和效率。