【读点论文】Detect Faces Efficiently: A Survey and Evaluations,关于人脸检测的思考,综述型文章

论了流行的和具有挑战性的数据集及其评估指标。

  • 对几种成功的基于深度学习的人脸检测器进行了综合比较,通过两个指标:失败率和延迟来揭示它们的效率。本文可以指导人们根据不同的应用选择合适的人脸检测器,并开发出更高效、更准确的检测器。
INTRODUCTION
  • 人脸检测是计算机视觉中最常用、最基本和最实用的任务之一,它是从图像中检测人脸,并通过边界框返回人脸的空间位置。

  • 人脸检测的解决方案已经得到了显著的改进,从手工制作的特征,如Haar-like特征,到端到端卷积神经网络(CNN),以获得更好的特征提取。人脸检测是许多人脸相关应用的第一步,如人脸识别、人脸跟踪、人脸表情识别、人脸标志检测等。

  • 在深度学习用于人脸检测之前,级联AdaBoost分类器是人脸检测的主要方法。一些算法是专门为人脸检测而设计的,使用了一些类型的特征,如类Haar特征、SURF和多块LBP。

  • 深度学习已被证明在特征提取方面更为强大,并有助于实现令人印象深刻的目标检测精度。大量的目标检测深度模型被设计用于比人脸检测更具挑战性的通用目标检测。

  • 许多人脸检测模型都是从通用目标检测模型中借鉴或启发而来的。可以直接使用faster R-CNN、YOLO或SSD来训练深度人脸检测器,并且可以获得比传统级联分类器更好的检测结果。例如Face R-CNN和Face R-FCN,它们分别在更快的R-CNN和R-FCN的基础上进行了修改和改进。其他一些检测器,如MTCNN、HR、SSH最初是为人脸检测而设计的。

  • 通用目标检测中的一些技术也被应用到人脸检测中,如SSD的多尺度机制、FPN的特征增强,以及根据人脸检测的特殊模式,视网膜网的焦点丢失。这些技术促使人们提出了各种优秀的人脸检测器,如S3FD、金字塔盒、SRN、DSFD和RetinaFace。

  • 人脸检测有时被认为是一个已解决的问题,因为许多人脸检测数据集(如PASCAL Face、AFW和FDDB)的平均精度(AP)自2017年以来已达到或超过0.990。在最受欢迎、最具挑战性的WIDER Face dataset上,即使在困难测试集上,AP也达到了0.921。

    • 在这里插入图片描述**一个已解决的问题。如果我们能发现最近几年的AP仍然是最好的,那么我们会慢慢地发现。因此,在这样接近饱和的性能改善下,如果一个较重的深模型以一个大的计算成本来实现一个微小的改进,便不能称得上是一个较好的模型。
  • 在对WIDERFACE基准进行评估时,大量使用了多重缩放。如果我们用许多不同的比例调整输入图像的大小,如1/4、1/2、1、3/2、2、4和更多,并将所有调整大小的图像输入检测器,组合结果将具有更好的AP,换句话说,这是通过组合和抑制(NMS)多尺度输出来实现的,并且独立于底层人脸检测器的主干。

    • 在这里插入图片描述
    • 不同的型号采用不同的量程和不同的测试刻度预设。”0.25x’表示宽度和高度缩小0.25,其他值紧随其后。具体来说,'Sx’和’Ex’相应地缩小和放大图像,而’Fx’则将图像放大到固定大小。测试图像大小代表将图像较小的一侧重新缩放到给定值,另一侧遵循相同的比例。
    • 没有一个模型只用一个刻度来测试图像。最近使用更多尺度是一种趋势。存在一种风险,即使用了计算成本高的多个尺度,并声称具有出色的精度,这掩盖了探测器本身的性能增益,并且这种多尺度操作的计算成本未知。
  • 大多数基准并不评估计算成本。大多数情况下,用户很难知道是通过哪种方式实现了改进,是更好的主干技术,还是后续的计算密集型多尺度集成策略。

  • 确实期望一个完美的人脸检测器,即使在极其困难的条件下,也能对某些人脸保持稳健和准确,同时速度极快,计算成本低。
  • 最近基于深度学习的人脸检测方法,并从准确性和计算成本方面对其进行了评估。

    • 以往的人脸检测调查不同的是,本次调查侧重于基于深度学习的人脸检测器,其内容主要基于回顾传统方法。有关于深度学习的调查;其它调查专注于一般的目标检测,而不是专门用于人脸检测。在本文中,基于深度学习的人脸检测近年来的发展路径有了一个清晰的认识。
    • 对精度和效率进行了研究和分析。除了详细介绍基于深度学习的人脸检测器外,还进行了一些实验,使用帮助读者更好地理解如何实现良好的准确性和效率。
    • 以人脸检测器的效率为重点,进行了综合实验,以评估不同人脸检测器的准确性,尤其是效率。除了延迟,我们还提出了CNN模型计算成本的精确度量。在某些规则下,它是浮点运算(FLOPs)。FLOPs比延迟更中性,延迟严重依赖于硬件和深层网络结构。
MAIN CHALLENGES
  • 大多数与人脸相关的应用程序都需要清晰的正面。检测清晰的正面人脸是一项相对容易的任务。有些人可能会认为,如果人脸很小且有遮挡,那么一些人脸在下一步(如人脸识别)中是无用的;但事实并非如此。在极其困难的条件下有效地检测任何人脸可以极大地提高计算机的感知能力,但这仍然是一项具有挑战性的任务。
    挑战仍然存在。 的影响。口罩和太阳镜,人脸检测将更加困难。在未来的几年里,应该探索和研究蒙面人脸检测。

  • Efficiency-related challenges

    • 对边缘设备的巨大需求带来了与效率相关的挑战。由于对智能手机和智能闭路电视摄像头等边缘设备的需求不断增加,每天都会产生大量数据。
    • 经常自拍、给别人拍照、长时间视频会议等。现代CCTV摄像机以每秒30帧的速度不断录制1080P视频。这些都导致了对人脸数据分析的巨大需求,而且数据量相当大。
    • edge设备的计算能力、存储和电池寿命有限,无法运行基于深度学习的高级算法。在这种情况下,有效的人脸检测对于边缘设备上的人脸应用至关重要。
FACE DETECTION FRAMEWORKS
  • 在深度学习用于人脸检测之前,基于AdaBoost的级联分类器是最流行的人脸检测分类器。AdaBoost中使用的功能是专门为人脸设计的,而不是一般对象。例如,Haar-like功能可以描述眼睛、嘴巴等的面部模式。

  • 通过深度学习技术可以从数据中自动学习面部特征。因此,许多基于深度学习的人脸检测器都受到了从目标检测设计的现代网络架构的启发。按照组织目标检测框架的流行方式,将基于深度学习的人脸检测器分为三大类:

    • 多阶段人脸检测框架。它受到人脸检测中级联分类器的启发,是将深度学习技术应用于人脸检测的早期探索。
    • 两阶段人脸检测框架。第一阶段生成一些建议,并在第二阶段确认这些建议。效率应该比多级的好。
    • 单阶段人脸检测框架。特征提取和建议生成在单个统一网络中执行。这些框架可以进一步分为anchor-based 的方法和anchor-free的方法。
    • 为了展示基于深度学习的人脸检测是如何发展的,下图中绘制了里程碑式人脸检测器和一些重要的目标检测器。两级和多级人脸检测器位于顶部分支,单级人脸检测器位于底部分支。
      • 在这里插入图片描述
      • 自AlexNet提出以来,在2012年后基于深度学习的人脸检测时代,受对象识别和对象检测的深度学习技术启发,发表了各种人脸检测作品。顶部分支是两级/多级人脸检测器,底部分支是一级检测器,这已成为研究人员采用的最流行的网络设计。
  • Multi-stage and Two-Stage Face Detectors

    • 在深度学习技术进入人脸检测的早期,人脸检测器被设计为具有多个阶段,也称为级联结构,在大多数早期人脸检测器中得到了广泛应用。由于更快的R-CNN带来了显著的突破,一些研究人员转而改进基于人脸数据的更快的R-CNN。

    • 在级联结构中,特征通常被提取和细化一次或多次,然后再被输入分类器和回归器,从而拒绝大多数滑动窗口,以提高效率。如FDDB的结果页面所示,提出了基于CNN的人脸检测器,名为CascadedCNN。

    • CascadeCNN由三级CNN组成。滑动窗口首先被调整为12×12像素,并被送入12个浅网格,以将候选窗口减少90%。剩下的窗口然后由12个校准网络进行处理,以细化用于人脸定位的大小。然后将保留的窗口大小调整为24×24,作为24个网络和24个校准网络组合的输入,依此类推,用于下一个CNN组合。

      • 在这里插入图片描述
    • CascadeCNN在AFW和FDDB上实现了最先进的性能,同时在2.0 GHz CPU上,对于典型的640×480 VGA图像,其速度达到了14 FPS。

    • 另一种用于人脸检测的级联CNN尝试是著名MTCNN。MTCNN由3个子网组成,分别是用于获取候选人脸窗口的P-Net、用于拒绝虚假候选人脸的R-Net和细化剩余候选人脸的R-Net,O-Net,用于以多任务方式使用面边界框和地标生成最终输出。P-Net是一个具有6个CONV层的浅层完全卷积网络,可以将任何大小的图像作为输入。MTCNN取得了巨大的成功,在宽屏面、FDDB和AFW方面拥有巨大且最先进的优势,同时在2.6GHz CPU上达到了16fps。

      • MTCNN的推理流程(pipeline)科普:什么是mtcnn人脸检测算法(Bubbliiiing 深度学习 教程)_哔哩哔哩_bilibili

        • 首先对test图片不断进行Resize,得到图片金字塔
          • 按照resize_factor(如0.70,这个具体根据数据集人脸大小分布来确定,基本确定在0.70-0.80之间会比较合适,设的比较大,容易延长推理时间,小了容易漏掉一些中小型人脸)对test图片进行resize,直到大小等于P-net要求的12*12大小。这样子会得到原图、原图resize_factor、原图resize_factor2…、原图resize_factorn(注,最后一个的图片大小会大等于12)这些不同大小的图片,堆叠起来的话像是金字塔,简单称为图片金字塔。这些图像都是要一幅幅输入到P-net中去得到候选的。
        • 图片金字塔输入Pnet,得到大量的候选(candidate):该网络结构主要获得了人脸区域的候选框和边界框的回归向量。然后基于预测边界框回归向量对候选框进行矫正。在这之后,我们采用NMS来合并重叠率高的候选框。
        • 经过Pnet筛选出来的候选图片,经过Rnet进行精调:P-Net的所有候选框都输入到R-Net中,该网络结构还是通过边界框回归和NMS来去掉大量的false-positive区域
        • 经过Rnet干掉很多候选后的图片输入到Onet,输出准确的bbox坐标和landmark坐标:这个阶段类似于第二阶段,但是在这个阶段在此阶段,目的通过更多的监督来识别面部区域。特别是,网络将输出五个面部关键点的位置。
      • FDDB是Face Detection Data Set and Benchmark的缩写,这是一款专门针对人脸识别算法的评测方法与标准。

      • FDDB一共包含了2845张图片,包含彩色以及灰度图,其中的人脸总数达到5171个。这些人脸所呈现的状态多样,包括遮挡、罕见姿态、低分辨率以及失焦的情况。目前常用的标记方法包括矩形标记法与椭圆标记法两种。

        • 椭圆标记法:可以用5个变量来表征

          • ra:椭圆长轴半径
          • rb:椭圆短轴半径
          • theta:椭圆长轴偏转角度
          • cx:椭圆圆心x坐标
          • cy:椭圆圆心y坐标
    • 在目标检测方式的两阶段网络架构中,需要一个区域建议网络(RPN)生成目标建议。RPN可以被视为一种简单的分类CNN,根据CNN功能上的预设锚生成建议,过滤非对象并细化对象建议。然而,当CNN缩小图像以提取特征时,微小人脸对应的输出特征可能小于1像素,因此不足以编码丰富的信息。CMS-RCNN,它配备了RPN和最终检测的上下文多尺度设计。

      • 来自conv3、conv4和conv5的多尺度特征通过将它们收缩成与作为RPN输入的conv5相同的形状来连接,以便为微小的人脸收集更多信息,同时也提高了低层的定位能力。
    • 无论是级联多阶段网络设计还是两阶段网络设计,其计算在很大程度上取决于图像中的人脸数,其中人脸数的增加也会增加传递到网络内部下一阶段的建议。多尺度测试度量通常会将图像放大多次,以使微小的人脸可检测到,在此基础上会显著增加计算成本。

  • One-Stage Face Detectors

    • 在实时人脸相关应用中,人脸检测必须实时进行。如果系统部署在边缘设备上,则计算能力较低。在这种情况下,单级人脸检测器更合适,无论图像中有多少人脸,处理时间都是稳定的。与多/两级检测器不同,一级人脸检测器在单个统一的卷积神经网络中执行特征提取、提议生成和人脸检测,其运行效率与人脸数量无关。密集锚被设计用来取代两级探测器中的方案。从CornerNet开始,越来越多的作品在其框架中使用无锚机制。

    • HR(hybrid-resolution)是第一个在统一卷积神经网络中执行基于锚的人脸检测,HR的主干是ResNet-101,因为高分辨率特征有利于小人脸检测。针对小目标人脸检测,作者主要从三个方面做了研究:尺度不变,图像分辨率和上下文。通过对聚集在25个尺度上的人脸进行实验,为2X、1X和0.5X输入定义了25个锚,以实现三个输入尺度的最佳性能。在WIDER Face validation hard set上,HR的性能比CMS-RCNN高出0.199,更重要的是,HR的运行时间与图像中的人脸数量无关,而CMS-RCNN的性能随着人脸数量的增加而线性增加。

    • SSH尝试在不同的特征级别上检测不同比例的人脸。SSH以VGG-16为主干,分别检测小型、中型和大型人脸的conv4_3、conv5_3和pool5增强功能上的人脸。SSH引入了一个模块(SSH模块),极大地丰富了感受域,从而更好地模拟人脸的上下文。

      • 在这里插入图片描述
    • S3FD以来,许多单级人脸检测器充分利用多尺度特征,试图实现尺度不变的人脸检测。S3FD将the headless VGG-16扩展为更多卷积层,其步幅从4像素逐渐加倍到128像素,从而覆盖更大范围的面部比例。 PyramidBox采用与S3FD相同的主干,集成FPN以融合相邻级别的功能以增强语义,并受Inception ResNet和DSSD的启发,通过更宽和更深的卷积层改进SSH模块。

    • DSFD还继承了S3FD的主干,但通过特征增强模块(FEM)增强了多尺度特征,因此可以对两个镜头进行检测——一个来自非增强多尺度特征,另一个来自增强特征。第二次拍摄的相同比例特征的RFs比第一次拍摄的更大,但也比第一次拍摄的下一级特征的RFs更小,这表明人脸比例在这些多比例检测层中分割得更精细。

    • SRN有一个双镜头网络,但在多尺度特征上的训练不同:低级别特征需要两步分类来细化,因为它们具有更高的分辨率,并且贡献了绝大多数锚定和负样本;此外,高级特征的分辨率较低,值得使用Cascade R-CNN进行两步回归,以获得更精确的边界框。

    • RetinaFace在FPN的顶部再添加一个金字塔层,并在FPN的横向连接和上下文模块中用可变形卷积网络(DCN)替换CONV层。RetinaFace以三种方式为面建模:3D网格(1k点)、5 landmark mask (5点)和边界框(2点)。级联回归在RetinaFace中使用多任务损失,以实现更好的本地化。

    • CornerNet提出直接预测边界框的左上角和右下角点,而不是依赖于之前的定位点以来,使用无定位点设计,在语义上重新建模目标检测。CSP将面边界框建模为中心点。CSP从修改后的ResNet-50中提取多尺度特征,并将它们连接起来,以利用转置卷积层检测头的丰富全局和局部信息。无锚检测头还可以是基于锚的头的增强模块。

    • 单阶段框架在人脸检测中很流行,原因有三。

      • 根据设计,单级人脸检测器的运行时间与图像中的人脸数量无关。增强了运行时效率的健壮性。
      • 通过上下文建模和多尺度特征采样,一级检测器可以实现近尺度不变性,计算效率高且简单
      • 与一般的目标检测相比,人脸检测是一项相对不太复杂的任务。这意味着,通过考虑人脸的特殊模式,可以快速调整目标检测中的创新和先进网络设计,以适应人脸检测。
FACE REPRESENTATION
  • 在传统时代,许多手工制作的特征(如SIFT、Haar和HOG)被用于从图像中提取局部特征,这些特征通过AdaBoost等方法进行聚合,用于更高级别的人脸表示。

  • 与传统方法不同,深度卷积神经网络需要丰富的先验知识来设计手工特征,可以直接从人脸图像中学习更强大的特征。基于深度学习的人脸检测模型可以分为两部分:CNN主干和多个检测分支。从一些流行的CNN主干开始,介绍了能够处理人脸尺度不变性的特征提取方法,以及生成人脸检测方案的几种策略。

  • Popular CNN Backbones

    • 在大多数深度人脸检测器中,有一个用于特征提取的CNN主干。VGGNet系列的VGG-16、ResNet系列的ResNet-50/101/152和MobileNet。这些模型功能强大,在人脸检测方面可以达到很好的精度,但它们有点重。
      • 在这里插入图片描述
      • 现代基于深度学习的人脸检测器通常使用CNN主干。在计算“#CONV layers”、“Params”和“FLOPs”时,这些CNN的FC层被忽略。计算“触发器”的输入大小为224×224。
    • 基于深度学习的人脸检测的早期尝试是级联结构,不采用上述CNN架构。即使简单结构的CNN比AdaBoost计算量大得多,级联CNN也计算量大。随着目标检测技术的突破,一些技术被借用并应用于人脸检测。VGG-16有13个CONV层,这是许多人脸检测器(如SSH、S3FD和PyramidBox)基线主干的首选。只需将主干从VGG-16交换到ResNet50/101/152,即可轻松获得性能改进。即使在WIDER Face hard sets上,最先进的技术也实现了AP>0.900,因此最近的人脸检测器通常会为更高的AP配备更深更宽的主干,例如ResNet-152和带有FPN连接的ResNet。使用神经结构搜索(NAS)来搜索面部合适的主干和FPN连接。
    • 最简便的选择之一是上表中列出的ResNet-50,参数更少,失败次数也更少,同时实现了与深度网络非常相似的性能。为了让最先进的人脸检测器达到实时速度,另一个选择是将主干网改为MobileNet,它的性能与VGG-16类似,但在“参数”和触发器中要少一个数量级。
  • Towards Face Scale Invariance

    • 人脸检测的主要挑战之一是人脸尺度的大跨度。如下图所示的统计数据,训练集和验证集中分别有157025和39123个面边界框,它们都有45%以上的面边界框为16×16及以下,不可忽略的1%为256×256及以上。

      • 在这里插入图片描述
      • 选择这些尺度来执行聚类,以匹配选择用于检测的特征地图的步幅;例如,步幅4的特征图中只有1个像素用于编码大小等于或小于4×4的人脸。在下图展示了不同比例的视觉差异。即使是人类也很难判断16×16大小的图像是否包含人脸。在下面,我们将描述人脸检测器实现人脸尺度不变性的机制,即使人脸很小。
      • 在这里插入图片描述
    • 大多数现代人脸检测器都是基于锚的。锚定是附加到特征图中每个像素的不同比例和纵横比的预定义框,用作与ground truth faces匹配的建议。

    • 由于预定义的锚定标度是离散的,而常见自然的人脸标度是连续变化的,因此标度分布在远离锚定标度的外部面无法匹配足够的锚定。这将导致低召回率。

    • 对于训练有素的人脸检测器来说,一个简单的解决方案是对图像金字塔进行多尺度测试,该金字塔是通过逐步调整原始图像的大小来构建的。这相当于重新缩放面部,并有望将外部面部恢复到可检测的比例范围内。这种解决方案不需要重新训练检测器,但它可能会伴随着冗余计算的急剧增加,应该建立多深的金字塔来匹配经过训练的CNN的一定程度的尺度不变性,还没有确定的答案。

    • 人脸尺度不变性的另一个更好的解决方案是充分利用CNN生成的特征映射。人们可以很容易地观察到,标准CNN主干的各层尺寸逐渐减小。这些层的子采样自然形成了一个具有不同步幅和**感受野(RFs)**的金字塔。它生成多比例尺特征地图。

    • 由具有较大RFs的后续层生成的高级特征图使用强语义信息进行编码,并使其对光照、旋转和遮挡等变化具有鲁棒性。由具有小RFs的早期图层生成的低层特征图对语义不太敏感,但具有高分辨率和丰富的细节。为了充分利用这两种方法的优点,人们提出了许多方法,这些方法可以分为建模上下文、特征金字塔上的检测和预测人脸比例。

    • Modeling context

      • 额外的上下文对于检测人脸是必不可少的,尤其是对于检测小的人脸。HR表明,通过融合不同尺度的特征图进行上下文建模可以显著提高检测小人脸的准确性。
      • SSH采用了一种类似于Inception 的方法,将分别具有3 × 3、5 × 5和7 × 7滤波器的三个CONV分支的输出连接起来。PyramidBox 首先采用FPN 模块来构建上下文,并通过更深更广的SSH模块得到进一步增强。
      • 特征图的融合将来自高层特征图的丰富语义与来自低层特征图的丰富几何信息编码在一起,在此基础上,检测器可以提高其定位和分类能力,达到人脸尺度不变性。同时,特征图的融合也引入了更多的图层,如CONV和POOL来调整尺度和通道,这产生了额外的计算开销。
    • Detecting on a feature pyramid

      • 受SSD的启发,分别在不同尺度的多个特征图上检测,并组合检测结果。它被认为是一种在速度和精度之间权衡的有效方法。SSD在来自6个检测层的特征图的每个像素上放置默认框,这些检测层具有8、16、32、64和128的跨度。与SSD共享类似的CNN主干,在更广泛的层上进行检测,这些层的跨度从4像素逐渐翻倍到128像素。
      • SRN和DSFD引入了双流机制,它在主干的检测层和应用于检测层的额外层上进行检测,以增强功能。与对更多层进行子采样不同,在最后三个级别的特征图进行检测,这些特征图通过其上下文建模方法得到增强。
      • 通过在特征金字塔上进行检测,检测层被隐式地训练为对不同的尺度敏感,同时这也导致模型大小和冗余计算的增加,因为密集采样可能导致来自相邻级别层的一些重复结果。
    • Predicting face scales

      • 为了消除金字塔的冗余,在进行检测之前,有几种方法预测面部比例。scale-aware face detection首先通过比例建议网络(SPN)从输入图像生成全局人脸比例直方图,该网络使用图像级地面真实直方图矢量进行训练,而不使用人脸位置信息。根据输出直方图构建稀疏图像金字塔,从而将人脸重新缩放到后续单尺度RPN的可检测范围。
      • Recurrent Scale Approximation for Object Detection in CNN在没有不必要的尺度的特征金字塔上进行检测,该特征金字塔是通过使用尺度直方图到可以递归地下采样特征地图的连续ResNet块来构建的。
      • 不仅预测人脸尺度,而且预测人脸位置的Resnet18与scale attention和spatial attention 有关,称为S2AP。S2AP生成60通道特征图,这意味着面部尺度被映射到60个容器,每个容器都是对其负责的面部尺度具有高响应的空间热图。利用60通道特征图,可以通过屏蔽卷积减少低响应通道和低响应空间区域的不必要计算。
  • Proposal Generation

    • 自然状态下的人脸可以是图像中任何可能的位置和比例。大多数早期成功的人脸检测器的一般是首先以滑动窗口方式生成建议,使用手工描述符或CNN从窗口中提取特征,最后应用人脸分类器
    • 受RPN和SSD的启发,现代基于锚的人脸检测器通过在提取的CNN特征的每个像素上应用k个锚框来生成建议。具体而言,在faster R-CNN中使用了3个尺度和3个纵横比,在特征图的每个像素上产生k = 9个锚。此外,检测层将相同的特征图作为输入,产生对来自回归器的k个锚框的坐标进行编码的4k输出和来自分类器的面部分数的2k输出。
    • 考虑到大多数人脸框都是接近正方形的,现代人脸检测器倾向于将锚点的纵横比设置为1。HR 定义了25个尺度,以便在WIDER Face训练集上匹配聚类结果。S3FD分配4倍于当前层步幅的锚定尺度,以保持锚定尺寸小于有效感受野,并确保图像上不同尺度锚定的密度相同。
    • PyramidBox引入了金字塔锚,其生成一组9个锚,具有对应于面部的较大区域,例如头部和身体框,以具有更多的上下文来帮助检测面部。
    • 在understanding the effective receptive field in deep convolutional neural networks,中,增加了额外的移位锚以增加锚样本密度,并显著增加了锚和小面之间的平均IoU。GroupSampling只在FPN的底金字塔层分配不同尺度的锚,但它根据锚尺度对所有训练样本进行分组,从组中随机抽取样本,保证组间正负样本比相同。
DATASETS AND EVALUATION
  • 在这里插入图片描述

    • 本文列举的人脸检测数据集的比较,按照出版或开始年份的顺序列出。‘Blur’,’ App ‘,’Ill‘,’Occ‘,’Pose‘分别表示模糊、外观、照明、遮挡和姿态
    • FDDB
    • 人脸检测数据集和基准的缩写,自2010年发布以来,它一直是人脸检测器评估中最受欢迎的数据集之一。FDDB的图片是从雅虎上收集的。其中2845条是在过滤掉重复数据后选出的。这些因素排除了人脸,

      • (a)高度或宽度小于20像素,
      • (b)两只眼睛不可见,
      • ©鼻子和从相机到头部的光线之间的角度小于90度,
      • (d)人类对人脸的位置、大小或方向的错误估计。
    • 这导致剩下5171张脸**,通过绘制从前额到下巴垂直覆盖的椭圆形脸区域和从左脸颊到右脸颊水平覆盖的椭圆形脸区域来进行注释**。在表情、姿势、比例和遮挡的鲁棒性方面,FDDB帮助推进了无训练人脸检测。

    • 然而,它的图像可能严重偏向名人的脸,因为它们是从新闻中收集的。还值得注意的是,尽管FDDB采用的椭圆形人脸标签更接近人类认知,但它并没有被后来的数据集和基于深度学习的人脸检测器采用,这些数据集和检测器更倾向于使用边界框样式,通过计算并集上的交集(IoU)来定义正/负样本。

    • AFW
    • 通过从Flickr上随机采样至少有一张大脸的图像,建立了一个带注释的野外人脸(AFW)数据集。从205张图像中标注了468张人脸,每张图像都标有一个边界框和6个界标。
    • PASCAL Face
    • 是通过从PASCAL VOC 测试集中选择851张图像构建的,其中标注了1335张面孔。由于这两个数据集是为了帮助评估AFW和PASCAL VOC 提出的人脸检测器而构建的,因此它们只包含数百张图像,导致人脸外观和背景的变化有限。
    • MALF
    • 创建了多属性标记的人脸(MALF)数据集,用于对自然状态下人脸检测进行细粒度评估。MALF数据集包含来自Flickr和百度搜索的5250张图片,标记了11931张人脸,这显然是一个比FDDB、AFW和帕斯卡人脸更大的数据集。
    • MALF的人脸是通过绘制轴对齐的正方形边界框来标注的,试图包含一个鼻子在边界框中心的完整人脸。这可能为训练面部检测器引入噪声,因为包含90度侧面的正方形边界框可能有超过一半的内容是杂乱的背景。除了标记人脸,一些属性也被标注,如性别,姿势和遮挡。
    • WIDER Face
    • 是最流行和最广泛使用的人脸检测基准。WIDER Face中的图像是从流行的搜索引擎收集的,用于遵循LSCOM的预定义事件类别,并进行手动检查,以过滤掉相似的图像和没有人脸的图像,从而产生61个事件类别的总共32203个图像,这些图像被分为3个子集,用于训练、验证测试集。

    • 为了在比例、遮挡和姿态方面保持较大的变化,注释遵循两个主要策略来执行:

      • (a)边界框应该紧密地包含前额、下巴和脸颊,并且为每个可识别的面部绘制边界框。
      • (b)应该为遮挡的面部绘制估计的边界框,总共产生393703个注释的面部。
    • 每幅图像的面部数量达到12.2,50%的面部高度在1050像素之间。在上表中,WIDER Face远远超过了其他数据集。这意味着WIDER Face通过提供大量具有最密集小脸的图像进行训练、验证和测试,对小脸检测给予了前所未有的关注。此外,WIDER Face的作者根据EdgeBox的检测率为验证和测试集定义了“容易”、“中等”和“困难”级别。

    • 它为面部检测器提供了更加详细和精细的评估。因此,WIDER Face极大地推进了基于CNN的人脸检测器的研究,特别是多尺度CNN设计和上下文的利用。

    • MAFA
    • 侧重于蒙面人脸检测,包含30811幅图像,标记了39485张蒙面人脸。除了眼睛和面具的位置之外,还为每张脸标注了脸部的方向、遮挡程度和面具类型。
    • IJB系列
    • 为多项任务收集的,包括人脸检测、验证、识别和身份聚类。IJB-C是IJB-A和IJB-B与一些新的面部数据的结合。
    • 4K-Face
    • 为评估大型人脸检测而构建的,包含5102张4K分辨率的图像,包含35217张大型人脸(> 512像素)。
    • UFDD
    • 提供了一个测试集,在不同的天气条件和退化(如镜头障碍)的变化中有6425幅图像和10,897张人脸。
    • DARK Face
    • 专注于弱光条件下的人脸检测,提供6000张弱光图像用于训练dark face detector。由于这些图像是在真实世界的夜间场景(如街道)中捕获的,所以暗面中的每个图像平均包含7.3张脸,这是相对密集的。
  • Accuracy Evaluation Criterion

    • 上述数据集主要采用了两种准确性评估标准,其中一种是通过绘制真阳性率(TPR)与假阳性的关系而获得的受试者工作特征(ROC)曲线,如FDDB 、MALF 、UCCS 和IJB 所采用的标准;

    • 另一种是PASCAL VOC 最流行的评估标准,即在计算平均精度(AP)的同时绘制precision-again-recall的关系,如AFW 、PASCAL Face、WIDER Face、MAFA、4K-Face所采用的标准由于这两种评估标准是在混淆矩阵的相同计算下揭示检测器性能的两种不同方法。

    • 为了得到precision-again-recall 曲线,首先应该计算混淆矩阵,该矩阵用于从检测和基础事实中定义真阳性(TP)、假阳性(FP)、假阴性(FN)和真阴性(TN)。真阳性是与地面真实相匹配的检测结果;否则就是误报。

    • 不匹配的ground truths被定义为假阴性。真正的反例在这里不适用,因为背景可能是图像的一大部分。为了定义两个区域是否匹配,应用了常用的并集交集(IoU),也称为Jaccard重叠:

      • I O U = a r e a ( P ) ∩ a r e a ( G T ) a r e a ( P ) ∪ a r e a ( G T ) IOU=\frac{area(P)\cap{area(GT)}}{area(P)\cup{area(GT)}} IOU=area(P)area(GT)area(P)area(GT)

      • 其中P是预测区域,GT是ground truth区域。在广泛使用的设置中,IoU阈值被设置为0.5,这意味着如果预测区域和基础真实区域的IoU大于或等于0.5,则预测区域被标记为匹配,因此为真阳性,否则为假阳性。

    • 在确定每个检测的真阳性或假阳性后,下一步是从按分数降序排序的检测结果列表中计算精确度和召回率,以绘制精确度-召回率曲线。可以定义一个粒度置信区间来提高采样精度和召回率,但是为了简单说明,将该区间定义为检测结果。在第n次采样中,从前n个检测结果中计算精度和召回率:

      • P r e c i s i o n n = T P n T P n + F P n R e c a l l n = T P n T P n + F N n Precision_n=\frac{TP_n}{TP_n+FP_n}\\ Recall_n=\frac{TP_n}{TP_n+FN_n} Precisionn=TPn+FPnTPnRecalln=TPn+FNnTPn

      • 其中,TPn、FPn和FNn分别是来自前n个结果的真阳性、假阳性和假阴性。假设有1000个检测结果;然后就有1000对(recalli,precisioni)足以绘制曲线。

    • 可以计算precision-against-recall曲线下的面积AP,来表示人脸检测器的整体性能。在WIDER Face评测中0.5的单IoU阈值设置下,WIDER的最难测试子集top AP达到了0.924。在2019年的WIDER Face挑战中,使用与WIDER Face相同的数据,但在0.50:0.05:0.95的10个IoU阈值中评估人脸检测器,最高平均AP达到0.5756。

  • Results on Accuracy

    • 自2004年以来的FDDB结果。现在的ROC曲线比过去好多了。这意味着检测精度比过去高得多。真阳性率达到1.0。如果人们观察FDDB的样本,会发现在ground truth数据中有一些微小而模糊的面孔。有时很难决定它们是否应该是脸,即使是人类。目前的检测器在FDDB上达到了完美的精度,几乎可以检测到所有的人脸。
      • 在这里插入图片描述
      • FDDB数据集上的结果,来自FDDB的结果页面
    • WIDER face比FDDB更新、更大、更有挑战性。大多数最新的人脸检测器都用它测试过。从下图可以发现,即使在级别为难的数据集上,精度也非常高。mAP上的改进现在不那么明显了。该mAP几乎饱和类似于FDDB。
      • 在这里插入图片描述
      • WIDER Face 验证和测试集的结果。这些数字来自宽脸主页
    • 目前的基准,无论FDDB,更广泛或其他,只评估检测的准确性,不评估效率。如果两个检测器实现相似的mAP,但是其中一个的计算成本是另一个的一半,那么肯定会认为计算成本减半的检测器比另一个好。由于准确性指标几乎饱和,是时候将效率纳入评估了
EVALUATION OF COMPUTATIONAL COST
  • 深度学习技术给人脸检测带来了巨大的改进,可以在无约束的环境中更鲁棒地检测人脸。最近的大多数作品都是在更宽的人脸上训练和测试他们的模型。可以发现2016年到2017年有一个较大的AP飞跃。然而,自2017年以来,该线一直表现平平。深入研究最近作品的官方发布代码,可以很容易地发现,较新的模型倾向于使用更大的尺度和更宽的尺度范围,如下表所示。这些测试规模通常不会在论文中提及,但会导致计算成本的不可忽略的巨大增加,仅仅是为了稍微提高AP。甚至会问:AP是通过更好的算法还是使用更大范围的测试尺度来提高的

    • 在这里插入图片描述
  • Rules of FLOPs Calculation(此论文作者提出)

    • 重新评估什么样的模型?首先,模型必须是开源的,至少要发布测试代码和训练好的模型。不重新实现这些方法,因为希望确保准确性与原作者声称的100%相同。此外,有必要选择一阶段模型,因为它们的失败与图像中的人脸数量无关,并且它们是近年来研究最多的框架。第三,主要从WIDER Face 结果页面中选择模型,进行公平比较。
    • 如何计算不同型号的FLOPs?首先验证官方发布的训练模型是否能像作者在论文中陈述的那样表现良好。应该注意的是,并不从模型的管道中计算预处理和后处理阶段。也就是说,只计算卷积、激活、归一化、池化等神经网络层的FLOPs
    • 给定大小为N × Cin × Hin × Win的4D输入张量作为输入,神经网络层产生大小为N × Cout × Hout × Wout的4D输出张量,其中N是批量大小,因为它通常在测试期间被设置为1,C、H和W分别是张量的通道、高度和宽度。此外,引入K来表示利用内核的层的内核大小,例如卷积层和池层。具体来说,对待浮点运算,如加、减、乘、除和取幂是一样的,为了简单起见应该是1 FLOPs。基于这些假设,可以推导出计算不同层FLOPs的公式,如下表所示。
      • 在这里插入图片描述
    • 基于PyTorch实现了关于上面讨论的所有规则和等式的FLOPs计算器,它通过消除与张量值相关的任何计算,同时仅计算张量和FLOPs的大小,来加速FLOPs的计算。这个计算器还允许使用作者定义模型的代码,只需稍加修改,这就减少了统计工作量。在https://github. com/fengyuentau/PyTorch-FLOPs.上发布了源代码。
  • FLOPs vs. AP in Multi-Scale Test

    • 多尺度测试度量是用从原始和不同尺度(纵横比固定)的图像中导出的集合来测试模型。然后,不同尺度的检测结果被合并并应用非极大值抑制(NMS),以抑制重叠的包围盒并减少假阳性。基于训练数据和方案,确定模型的舒适区,该舒适区是可以检测到的面部尺度的范围。
    • 多尺度测试度量可以通过将区域外的面重新缩放回舒适区域来提高模型的AP。然而,由于无法确定测试集中的哪些人脸超出了区域,因此必须对测试集中的每个图像应用重新缩放。这导致每幅图像的FLOPs成倍增加。
    • 如下图所示,在WIDER Face的验证和测试集上不同模型的多尺度测试AP和FLOPs。可以从这两个数字中发现一个明显的趋势。按照方法HR、SSH 、S3FD、PyramidBox、SRN 和CSP的顺序,FLOPs在增加,AP在提高。有两种方法不跟风。第一个是DSFD ,其失败次数是SRN和CSP的3倍以上,但AP与SRN和CSP相似。这意味着DSFD有不合理的高计算成本。然后,第二个检测器是RetinaFace,其获得了最佳AP,但是计算成本比大多数其他方法低得多。
      • 在这里插入图片描述
      • FLOPs与WIDER Face 验证集的多尺度AP。从WIDER Face 结果页面列出了7个模型,分别是HR,SSH,S3FD,PyramidBox,SRN,DSFD,CSP。
      • 在这里插入图片描述
      • FLOPs与WIDER Face测试集的多尺度测试AP。从WIDER Face结果页面列出了7个模型。
  • FLOPs vs. AP in Single-Scale Test

    • FLOPs可以通过两种方式急剧增加:通过向网络引入更复杂的模块从根本上增加,以及通过多尺度测试。

      • 在这里插入图片描述
      • 开源的,一阶人脸检测器使用的测试量表。除了当前比例的图像外,双复选标记还表示图像垂直翻转。SSH将图像缩小和放大到几个预设的固定大小。从S3FD开始,使用两个自适应测试尺度来节省GPU内存,其中一个是“S”用于自适应收缩,另一个是“E”用于递归自适应放大。比例“F”表示将图像放大到预设的最大尺寸。
    • 这些模型都经过了不同规模的测试。然而,为什么模型在这些不同的尺度上被测试却很少被讨论。一个scale能给AP带来多少贡献?有没有什么scale是不需要的?

    • Single-scale test on a single model

      • WIDER Face中的简单子集包含大量常规大小的脸和一些大脸,因此缩小图像有助于改善AP。还可以观察到,APhard从1,1.25和1,1.5的标度中获益最多,但对于1,1.75的标度则不然。与FLOPs一起,还可以观察到在scale为1,1.25时达到峰值,然后在更大的scale时急剧下降。原因是设置了图像最大尺寸的阈值,以避免超过GPU内存。这意味着在实验中,并非所有1.75倍大小的图像都被发送到检测器。
        • 在这里插入图片描述
        • 不同尺度如何影响PyramidBox的AP。我们以Scale = 1为基线,然后尝试逐个添加不同的尺度,测试AP是如何受到不同尺度的影响的。
      • 随着缺失尺度变大,APeasy的下降幅度减小。但是,这种模式不适用于APmedium和APhard。原因是,如果放大的图像的大小超出了预设的限制,则会被跳过,以避免超出GPU内存。比例越大,重新缩放和测试的图像就越少。在标度1.75上,触发器的下降大大减少。这是因为金字塔盒预训练模型主要在标度1上训练。
        • 在这里插入图片描述
        • 如果去掉一个刻度,AP和FLOPs会减少多少?使用了检测器PyramidBox。
      • 上面两个表格表示APeasy对标度0.25最敏感,APmedium对标度0.25和1最敏感,APhard对标度1最敏感。注意,这与训练规模高度相关。如果模型被不同地训练,结论可能会相应地改变
    • Single-scale test on multiple models

      • PyramidBox带来了巨大的整体飞跃,它主要引入了FPN 模块来融合两个相邻尺度的特征,以及SSH中的上下文增强模块。PyramidBox的计算成本是SSH的2倍,但不到DSFD的1/2。然而,PyramidBox和DSFD实现的AP是可比较的。
        • 在这里插入图片描述
        • 尺度为1在不同模型的AP和FLOPs。
      • 如果一些基准测试可以评估FLOPs或其他类似的效率测量,不同的人脸检测器可以更公平地进行比较。也将推动人脸检测研究走向更好的阶段(期望)。
  • FLOPs vs Latency

    • 为了比较这两个测量值,将现有模型转换为开放神经网络交换(ONNX)格式,并在此比较中使用ONNXRUNTIME运行它们,以便进行公平比较。注意,由于不同DL框架对ONNX转换的支持不同,设法将RetinaFace 、SRN 、DSFD和CSP转换为ONNX格式。结果如下表所示。这些模型使用采用CUDA 10.2的NVIDIA QUADRO RTX 6000和2.60 GHz的英特尔至强金牌6132 CPU进行评估。强大的GPU包含4609个CUDA并行处理内核和24GB内存。
      • 在这里插入图片描述
      • 最先进的开源模型使用一张720P的图像进行了测试,该图像仅包含比例为1.0的多张人脸。通过对每个模型运行100次测试来计算FLOPs(VG TFLOPs)和Latency(VG Latency)的平均值。请注意,“后处理”表示后处理阶段,如从锚点解码、NMS等。对于这个阶段,采用每个模型的原始处理代码。
    • 从RetinaFace到DSFD,FLOPs和转发延迟都在增加。尽管RetinaFace的平均FLOPs仅为SRN的五分之一,但RetinaFace的前向延迟几乎是SRN的一半,这意味着由于实施、硬件设置、内存效率等方面的差异,FLOPs与延迟并不是线性相关的。DSFD和CSP的后处理延迟急剧增加的原因是他们没有像其他人一样使用GPU加速的NMS
SPEED-FOCUSING FACE DETECTORS
  • 前面章节中介绍的面部检测器,主要目标是达到更好的AP。它们的计算成本很高,通常为万亿次浮点运算。把那些笨重的模型部署到一个人脸相关的系统上是不现实的。还有一些其他开源人脸检测器,其目标是在实际应用中实时运行人脸检测。它们的计算成本在GFLOPs或10 GFLOPs的数量级,比以前的成本低得多。这里我们把它们归类为速度聚焦人脸检测器。从github.com收集了最受欢迎的产品,并从网络架构、AP、FLOPs和效率方面对它们进行了评估。

  • FaceBoxes

    • 首批实现实时人脸检测的一阶段深度学习模型之一。FaceBoxes快速地下采样特征映射到具有大核的两个卷积层的跨距32。初始块被引入到步幅为32的增强特征图中。遵循SSD的多尺度机制,FaceBoxes在层inception3、conv3_2和conv4_2上检测不同尺度的人脸,在FDDB上获得0.960的AP,在2.60 GHz的英特尔E5-2660v3 CPU上获得20 FPS的AP。
  • YuFaceDetectNet

    • 采用了一个轻量级的MobileNet作为主干。与FaceBoxes相比,YuFaceDetectNet在每个步幅上有更多的卷积层以具有更细粒度的特征,并在步幅16的额外层上进行检测,这提高了对小脸的召回
    • 该模型在WIDER Face 验证集上的评价结果为0.856(容易),0.842(中等),0.727(难)。著名的主要存储库libfaceedetection采用YuFaceDetectNet作为检测模型,并提供不依赖于DL框架的纯C++实现,在1.3 GHz的英特尔i7-1065G7 CPU上,从640 × 480图像的77.34 FPS到128 × 96图像的2,027.74 FPS。
  • LFFD

    • 引入了用于特征提取的residual blocks ,并提出感受野作为自然锚。其更快的版本LFFD-v2在WIDER Face验证集上获得了0.875(容易)、0.863(中等)和0.754(困难),同时使用CUDA 10.0和英伟达RTX 2080Ti GPU以472 FPS的速度运行。
  • ULFG

    • 在每一步中增加了更多的卷积层,利用了深度方向卷积的优势,这在FLOPs和转发延迟方面对边缘器件是友好的。传闻,超薄版ULFG在WIDER Face验证集上的AP为0.770(容易),0.671(中等)和0.395(困难),在1.5 GHz的ARM A72上可以以105 FPS的速度运行,输入分辨率为320 × 240。
  • 这些轻量级模型是使用各种框架开发的,并在不同的硬件上进行测试。为了公平比较,将这些模型从其原始框架导出到ONNX,并在3.50GHz的英特尔i7-5930K CPU上使用ONNXRUNTIME进行测试。结果如下表所示。

    • 在这里插入图片描述
    • Github上流行且活跃的开源人脸检测器。请注意,“VG GFLOPs”是在单标度测试中的宽面验证集上计算的,其中只有scale=1.0。延迟是在CPU上测量的。
  • 可以观察到,更多的CONV层并不会导致更多的参数(FacesBoxes和ULFG系列)和更多的FLOPs(yufacetectnet和ULFG系列)。这主要是因为ULFG中深度方向卷积的广泛使用。此外,由于深度方向卷积,更多的触发器不会导致更多的前向延迟。不同人脸检测器的后处理延迟似乎与前向延迟不一致,验证了这是由发送到NMS的不同数量的边界框和NMS的不同实现(Pythonbased or Cython-based)引起的。

  • ONNX:Open Neural Network Exchange(ONNX,开放神经网络交换)格式,是一个用于表示深度学习模型的标准,可使模型在不同框架之间进行转移。

    • Caffe2,PyTorch,Microsoft Cognitive Toolkit,Apache MXNet等主流框架都对ONNX有着不同程度的支持。这就便于了算法及模型在不同的框架之间的迁移
    • ONNX文件不仅仅存储了神经网络模型的权重,同时也存储了模型的结构信息以及网络中每一层的输入输出和一些其它的辅助信息。
    • ONNX作为一个文件格式,自然需要一定的规则去读取想要的信息或者是写入需要保存信息。ONNX使用的是Protobuf这个序列化数据结构去存储神经网络的权重信息。Caffe或者Caffe2的模型存储数据结构协议也是Protobuf。
      • Protobuf是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API(摘自官方介绍)。
      • Protobuf协议是一个以*.proto后缀文件为基础的,这个文件描述了用户自定义的数据结构.ONNX是基于Protobuf来做数据存储和传输.
CONCLUSIONS AND DISCUSSIONS
  • 人脸检测是计算机视觉中最重要和最流行的课题之一,但仍然具有挑战性。深度学习为人脸检测器带来了显著的突破。即使在无约束的真实世界环境中,人脸检测也更加鲁棒和准确。

  • 本文介绍了最近基于深度学习的人脸检测器和基准。通过对不同深度人脸检测器的精度和效率的评估,如果不考虑计算成本,可以达到很高的精度。然而,由于人脸检测比一般的对象检测简单,因此应该有一种简单而美观的解决方案。

  • Superfast Face Detection

    • 理想情况下,超高速人脸检测器应该能够在低成本的边缘设备上实时运行,即使输入图像是1080P。从经验上讲,希望在输入1080P图像的情况下,它的浮点运算次数少于100M。对于真实世界的应用程序,效率是关键问题之一
    • 高效的人脸检测器有助于节省能源和硬件成本,并提高边缘设备(如闭路电视摄像机和手机)的响应能力。
  • Detecting Faces in the Long-tailed Distribution

    • 人脸样本可以看作是一个long-tailed 分布。大多数人脸检测器是针对分布的主要部分进行训练的。在更大的人脸数据集中,已经有了足够多的光照、姿态、比例、遮挡、模糊、扭曲变化的人脸样本。
    • 那些又老又损的脸呢?随着人们变老,脸上有许多皱纹;遭受疾病或事故的人可能会有受损的面部,如面部烧伤疤痕。人脸检测不仅是一个技术问题,也是一个人道主义问题,这意味着这项技术应该为所有人服务,而不仅仅是人口中的主导部分。
    • 理想情况下,人脸检测器应该能够检测所有类型的人脸。然而,在大多数人脸数据集和基准中,大多数人脸来自年轻人。
  • 人脸检测的最终目标是以非常高的准确率和高效率检测出人脸。因此,该算法可以部署到多种边缘设备和集中式服务器上,以提高计算机的感知能力;目前,仍然存在相当大的差距。面部检测器可以实现良好的准确性,但是仍然需要相当大的计算量。下一步应该是提高效率
    脸样本可以看作是一个long-tailed 分布。大多数人脸检测器是针对分布的主要部分进行训练的。在更大的人脸数据集中,已经有了足够多的光照、姿态、比例、遮挡、模糊、扭曲变化的人脸样本。

    • 那些又老又损的脸呢?随着人们变老,脸上有许多皱纹;遭受疾病或事故的人可能会有受损的面部,如面部烧伤疤痕。人脸检测不仅是一个技术问题,也是一个人道主义问题,这意味着这项技术应该为所有人服务,而不仅仅是人口中的主导部分。
    • 理想情况下,人脸检测器应该能够检测所有类型的人脸。然而,在大多数人脸数据集和基准中,大多数人脸来自年轻人。
  • 人脸检测的最终目标是以非常高的准确率和高效率检测出人脸。因此,该算法可以部署到多种边缘设备和集中式服务器上,以提高计算机的感知能力;目前,仍然存在相当大的差距。面部检测器可以实现良好的准确性,但是仍然需要相当大的计算量。下一步应该是提高效率

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羞儿

写作是兴趣,打赏看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值