SCRFD: Sample and Computation Redistribution for Efficient Face Detection

在这里插入图片描述

论文地址:https://arxiv.org/pdf/2105.04714.pdf
代码地址:https://github.com/deepinsight/insightface/tree/master/detection/scrfd

一、概述

创新点:

样本重分布(SR):基于基准数据集的统计数据,在最需要的步骤上分配更多训练样本。
计算重分布(CR): 基于精心定义的搜索方法,在模型的主干,颈部和头部之间重新分配计算,灵感来源于RegNet(关于网络设计范式)。

贡献:

  • 探讨了VGA分辨率下人脸检测的效率,并提出了样本重分配的策略,其有助于浅层步骤获取更多的训练样本。
  • 设计了一个简化的搜索空间,用于在人脸检测器的不同组件之间重新分配计算。
  • 在困难样本集上的准确率比TinaFace 高出3.86%, 同时速度提升3倍。

二、方法

2.1 Sample Reallocation

样本重分布方法(SR)相当于为模型增加先验,基于基准数据集的统计数据——人脸尺寸占比,在最需要的步骤上分配更多的训练样本,即在微小人脸分支上增加更多的训练图片,提升训练的准确率。
在这里插入图片描述

上图左侧为WIDER FACE 数据集的人脸尺寸占比,可以看出WIDER FACE 数据集中有78.93%的人脸尺寸小于32 * 32,而提升人脸检测器准确率的关键点在于增强微小人脸的检测,因此为微小人脸增加更多的样本数据显得尤为而重要。

传统裁剪Patch的做法是,在数据增强步骤,在原始图像的短边集合[0.3, 1.0] 以随机大小从原始图像进行裁剪。

本文提出的SR则是扩大了此随机比例,将随机比例从[0.3, 1.0] 扩大到[0.3, 2.0] ,这样可以获得更多尺寸小于32的人脸,便于训练检测微小人脸的分支。如上图(b),红色的为实施了此方法之后的人脸大小的数量分布,蓝色的为传统做法的人脸分布,明显可以看出在实施了SR方法之后的,微小人脸的数量增多。

2.2 Computation Redistribution

计算重分布方法(CR)是在固定计算量的情况下,通过调整不同模块之间的计算资源达到提升准确率的目的。
搜索方法:

在这里插入图片描述

假设上图(a) 为模型结构图,其中body中包含4个stage,每个stage中又包含 di 个block, wi 为block的输出通道数。 di = 24, wi =512 ,且能被8整除。

如果只考虑这两个自由度的话,那么一个stage的可能的组合有:24 x 64种。那么4个stage的组合有: (24∗64)4 种,即 81∗236 种情况。

然后通过随机采样,在上述情况中选取了320种参数组合进行模型训练,并然后计算出训练结果的准确率,然后选取AP最高时的组合。

SCRFD1:

Backbone搜索:固定总模型计算量,如2.5Gflops,然后使用上述搜索方法在stem,C2,C3,C4,C5之间分配计算资源,目的是寻找最优mAP时的资源分配比例。

结论:大部分的计算资源集中在stem+C2+C3的时候可以取得最高的mAP,如下图所示。

在这里插入图片描述

SCRFD2:

总体搜索:固定总模型计算量,如2.5Gflops,然后使用搜索方法在Backbone,neck,head之间分配计算资源,同时去除不符合SCRFD1 的分配的组合,并在剩余的组合中查找mAP最高时的资源分配比例。

结论:大部分的计算资源主要集中在Backbone上,约80%的计算资源分配在Backbone上可以获取到最优mAP。

在这里插入图片描述

三、实验

在这里插入图片描述

上图SCRFD-0.5GF 在小微模型上明显优于retinaface 的表现,尤其是在困难样本上,其mAP超出RetinaFace.25 约45%。

在大模型方面,SCRFD-10GF 具有和TinaFace相近的性能,却具有更低的参数量和计算量,参数量仅为其10%, 计算量仅为其5%。

四、总结

论文作者先是通过采样重分布的方式为微小人脸分支分配更多的训练样本,然后又采用搜索空间的方式设计网络模型,来达到提升准确率的目的,提升更多的是困难样本集下的准确率,超过了当时人脸检测的”天花板“的准确率,且具有更少的参数量和计算量,并具有更低的延迟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 模型预测控制(MPC)是一种基于动态模型预测的先进控制方法。它将计算机算法应用于工程问题中,可以实现高起伏的控制系统性能。模型预测控制理论、计算和设计是建立在动态模型预测基础上的。这种方法通过使用预测模型来预测控制系统在未来的几个时间步骤内的状态,并在每个时间步骤上实时地对控制操作进行优化。 在模型预测控制中,控制器以当前的状态作为控制决策的基础,并且考虑了未来一定时间范围内的状态和控制操作的影响。这种方法可以应用于许多领域,如化学工程、机电一体化、机器人技术等。 在运用模型预测控制时,需要先建立一个动态模型,并将其纳入到控制器中。该模型可以通过多种数学方法进行构建,如ARX模型、ARMA模型、神经网络模型、基于物理方程的模型等。针对不同的问题,不同的数学模型可能需要使用不同的算法。 为了实现精确的控制,模型预测控制需要具有高效的计算,并且需要考虑控制器的实时性能。在设计控制器时,需要考虑相关的控制性能指标,如响应时间、稳态误差、鲁棒性等。 因此,模型预测控制理论、计算和设计是一个系统的工程问题。通过该方法,可以实现对多种复杂动态系统的高精度控制。 ### 回答2: 模型预测控制(Model Predictive Control,MPC)是一种先进的控制方法,广泛应用于工业自动化、过程控制、航空航天、机器人等领域。MPC其实质是根据预测模型的输出值进行控制,旨在使系统响应过程中的目标函数最优化。此过程中,控制器会不断地计算预测模型的输出,与实时测量值进行比较,并最终通过调节控制变量来达到最优化效果。 前人的相关研究表明,MPC的理论基础在于先建立动态模型,预测模型一般采用离散时间状态空间模型来描述控制对象的动态行为,同时考虑约束条件和相关性的影响。然后,通过对目标函数进行优化求解问题,以达到最优控制效果。这个优化问题在一般情况下是一个基于约束的非线性多目标优化问题,需要通过数值计算方法对问题进行求解。 而在MPC的设计中,涉及到的计算方法主要有动态编程、广义预测控制和在线递归法。动态编程方法在构建预测模型上,直接通过更改目标函数和约束条件来解决最优化问题。广义预测控制方法则是通过将控制问题转化为标准线性规划问题来进行计算,而在线递归法则是通过将预测模型线性化为关于当前状态的一阶差分方程,然后使用递归卡尔曼滤波算法进行求解。 总之,MPC是一种基于预测模型的高级控制方法,其理论基础在于建立动态模型,并通过数值计算方法来进行优化求解。控制器通过不断计算预测模型的输出,实时测量值进行比较,从而对控制变量进行调节,以达到最优控制效果。不仅如此,MPC的设计中还需要采用动态编程、广义预测控制和在线递归法等计算方法来解决优化问题。 ### 回答3: 模型预测控制(Model Predictive Control,MPC)是一种基于预测控制理论的高级控制方法,经常被应用于工业和自动化系统中。它基于使用动态模型的预测能力来计算最优的控制动作序列,以实现对动态系统的控制。MPC能够考虑不同变量之间的耦合效应,并且能够使用限制条件,如控制变量和状态变量的限制,以及控制输入的变化率限制等。 在MPC中,系统的动态模型是必不可少的,因为MPC使用模型对未来的系统状态和输出进行预测。通常,MPC需要设计一个优化问题来求解最优控制动作序列,以最小化代价函数,代价函数一般包括系统稳定性、转移过程中的能量和控制输入的变化率等。 MPC的计算过程非常重要,因为它需要在有限时间内求解非线性优化问题。计算复杂度限制了MPC所能应用的实时性,在实际应用中,MPC的采样时间通常在几十毫秒到几秒之间。 MPC的设计需要考虑与应用场景的适应性,在实践中,MPC的应用非常广泛,包括化工、汽车、电力等许多领域。它能够控制线性和非线性系统,并且能够应对不同的外部和内部干扰。同时,MPC还可以应用于多目标优化问题中,以达到多个目标之间的平衡。因此,MPC的应用前景非常广阔。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值