Alexandre Attia
ENS Paris-Saclay
[email protected]
Sharone Dayan
ENS Paris-Saclay
[email protected]

原文链接:https://arxiv.org/pdf/1801.06504v2.pdf

Abstract

在CVPR 2017年发布的《寻找小脸》(Finding Tiny Faces)[1]提出了一种在图像中寻找小物体的新方法。我们的贡献在于深入理解论文的选择,并将类似的方法应用到一个现实世界的主题,即公众示威中的人数统计。

1. Introduction

本文[1]利用在单一(深层)特征层次上定义的特征:尺度不变性、图像分辨率、上下文推理,基于尺度特定检测器在图像中寻找小目标(特别是在我们的例子中是人脸)。该算法基于“中心凹”描述子,即模糊周边图像进行编码,给出足够的上下文信息,模拟人类视觉。这个课题仍然是一个开放的挑战,我们想在不同的应用中试验这种方法。因此,在介绍了该方法及其参数的影响之后,我们将集中讨论一个真实的应用,即在公开演示中计算人数。最后一部分将集中讨论这项工作可能的扩展。我们的代码(使用Python和TensorFlow)可以在github.com/alexettia/extendedtinfaces上找到

2. Method
2.1。语境推理

即使不是不可能,也很难检测出非常小的人脸,即使是人类用户。因此,我们需要确定如何最好地编码上下文。对于上下文建模,本文使用了一个固定大小(291px)的接收场。然后,它定义了从深度模型的多层中提取的“超列”特征(每个像素的所有单位的**向量)上的模板,这些特征是有效的“中心凹”描述符。这项技术可以捕获高分辨率细节和粗低分辨率的线索,跨越大型接受领域。

2.2。全球架构

现在让我们详细介绍一下探测管道。从输入图像开始,对输入进行重新缩放(多次插值),并使用特定比例(比例为2的幂,取决于输入图像的分辨率)检测器来保证比例不变性。然后,按比例输入作为单个卷积神经网络(CNN)的条目,以预测每个分辨率下的响应图。因此,我们提取出我们随后合并的perresolution检测(包围盒)。最后,在原始分辨率上应用非最大抑制(NMS),去除重叠的包围盒,得到最终的检测结果。我们在图1中可视化了提议的架构。此外,经过多次尝试,我们不幸地没有成功地训练模型,因此,在接下来的内容中,我们将重点放在推理部分,使用基于预训练ResNet101[13]的广域面上的微小面预训练模型。

2.3. Metrics

为了测量前面介绍的每个关键方面的效果,我们从头开始实现了Jaccard相似性(交集在并集上,表示为Detecting and counting tiny faces来区分每个地面真实的真和假预测正边界框。此度量还允许将预测的边界框自动匹配到其相应的地面真实值。事实上,我们认为每一个预测的边界框都是假阳性的,它与地面真值框的Jaccard相似性小于0.5。然后,我们使用AP并实现了真实正包围盒与地面真实包围盒数量之比,这是我们实验中最相关的度量(见附录A)。

Detecting and counting tiny faces

最后,我们在WIDERFACE的简单验证集上实现了87%的AP,而原始论文的92%。

2.4 图像分辨率影响

微人脸算法的性能与图像的分辨率有关。事实上,我们通过缩小原始图像的尺度来进行实验(关于定性和定量结果,见附录A和B),并绘制出平均Jaccard相似性和检测到的人脸数量(地面真实性和预测)。我们的结论是,尺度越小,人脸检测相对于被检测的人脸和AP的数量就越差

Detecting and counting tiny faces

 

2.5 模糊的面孔 

我们还测试了模糊对微人脸算法性能的影响。因此,我们在包含重模糊面的宽面标注图像上进行了实验(见附录A)。我们注意到,该算法执行的是far less well in detecting blured faces than ingeral。

2.6 基准

我们的目的是将微人脸算法与其他预训练的人脸检测模型进行比较。为此,我们使用了Faster R-CNN[2](为人脸检测定制)、多任务级联卷积网络[3](MT-CNN)、Haar级联[4]和定向梯度直方图(HOG)[5]。我们在WIDERFACE数据集的两个特定子文件夹(Parade-请参阅附录Band Dresses)上进行了测试,结果如表1所示。我们可以得出这样的结论:在处理许多人脸时,小人脸的性能要优于所有其他经过测试的算法,甚至更高。

                                 Detecting and counting tiny faces

 

                                      Detecting and counting tiny faces 

3 应用:计算人数

考虑到在公开演示中清点人数可能是一项乏味的任务,我们希望采用以前的方法来实现自动化。因此,我们的目标是构建一个Python管道来检测和计算演示视频中的人数。它将包括检测人脸,在帧之间找到最相似的人脸,最后计算没有重复的人(即人脸)。

3.1. Dataset

在这个应用中,我们使用了一个音乐视频剪辑(L'abreuvoir en fˆete[6]),它是一个部分被表演者遮挡的公共观众。我们选择了两个片段(每个片段约5秒)并手动注释这些片段。我们的目标确实是预测独特的人的数量,因此,对于每一个提取,我们计算的脸的数量。为了做到这一点,我们必须跨帧匹配人,因此我们必须手动匹配来自不同帧的一些人,两个接两个。

我们视频中的帧速率是∼25fPS,因此我们可以假设一个人不会从一个帧完全移动到另一个帧。然而,同一个人在10帧后可能处于不同的空间位置,这解释了我们选择每秒3帧来计算人数。

3.2 人脸嵌入

为了只计算一次人数,我们必须识别每个人脸,然后在下一帧中进行匹配。显然,我们首先需要检测每帧中的人脸。为此,我们应用了微人脸算法来检测所有的人脸,因此,对于每一帧,我们得到了一个预测检测到的人脸列表。然后,我们必须跨帧匹配它们。我们为每个人脸创建了一个人脸嵌入,以使匹配更容易:我们包装每个图片,使人脸始终处于同一方向。人脸对齐是通过预训练的人脸标志估计算法[7]和仿射变换来实现的。为了克服每个人脸的图像不多的问题,为了进行更便宜的(在时间和内存方面)算法比较,我们使用了一个预训练的CNN进行人脸嵌入(8)(为每个人脸生成128个基本测量)。

Detecting and counting tiny faces

3.3 匹配 

现在我们已经为每个面嵌入了一个嵌入,我们可以跨帧匹配相同的面。我们将以一对多的方式,即建立一个模型,用一个简单的分类器从一帧到另一帧预测最相似的人脸。为了训练前一个,我们首先需要扩充我们的数据集。由于一个人并不会从一帧移动到紧接着的一帧,所以我们可以使用预测的边界框坐标来计算接下来两帧中的一张脸。然后,使用imgaug Python库,使用数据增强技术,例如向每个RGB通道添加高斯噪声和随机值。最后,我们得到每个人脸10个不同的图像,作为训练集的正样本。对于阴性的,我们随机选择了另外10张脸。在每帧训练多个二值分类器(每个人脸一个)之后,我们预测了在同一地理邻域(600px的正方形盒子,我们假设摄像机和它视野中的人不会移动得很快)的另一帧中最相似的人脸。所使用的分类器是线性支持向量机。

最后,我们在另一个框架中得到了最相似的面,如图3所示。然而,为了去除误报,我们必须根据支持向量机的距离确定一个阈值。使用交叉验证来计算该阈值以最大化F0.5得分(更精确的权重)和注释匹配的面部。

3.4 计数 

最后,使用前面的所有方法,我们能够在视频向前移动时,对唯一的面数进行增量计数。实际上,对于每个分析的(1/10)帧,我们计算检测到的人的数量,并在增量计数中移除已经看到的人的数量(使用面部匹配)。唯一的人数只是每帧中新的人数之和,注意在所有帧中只计算一次。结果显示在下表中:

                                         Detecting and counting tiny faces

4. Extensions

我们已经看到,微人脸在发布时(2017年4月)的性能优于最近的一些人脸检测算法。然而,在未来的工作中,我们希望将其与最新和准确的人脸检测算法进行比较,例如facebox[9](在FDDB上更好,附录A)、单级无头人脸检测器[10]或RetinaNet[11]。如上所述,我们没有成功地训练算法。因此,我们想再试一次,并训练新的预训练模型,例如ResNeXt[12],以获得更好的准确性。另外,一般的方法是检测图像中的微小物体,但我们只将焦点(作为原始文件)放在人脸上,但我们认为我们可以将这种方法应用于其他小物体,如乳腺摄影图像中的钙化。此外,我们还使用了一个简单的管道和方法来跟踪和计算跨帧的人数。为了将来的工作,我们将结合DeepSort[13]等跟踪算法。 

5. Conclusion

最后,让我们回顾一下,我们对这一新颖有趣的方法进行了深入的分析,以了解其中的关键部分,然后成功地将其应用于公众示威中的人数统计。我们能够将微型人脸与最先进的(04/2017)人脸检测算法进行比较,得出结论,它优于其他算法。

References
[1] Hu and Ramanan. Finding tiny faces. CoRR, abs/1612.04402, 2016.
[2] Ren, He, Girshick, and Sun. Faster R-CNN towards real-time object detec-
tion with region proposal networks. CoRR, abs/1506.01497, 2015.
[3] K. Zhang et al. Joint face detection and alignment using multi-task cascaded
convolutional networks. CoRR, abs/1604.02878, 2016.
[4] Viola and Jones. Rapid object detection using a boosted cascade of simple
features, 2001.
[5] Navneet Dalal and Bill Triggs. Histograms of oriented gradients for human
detection. In CVPR, 2005.
[6] FAMVK EVENTS: L’abreuvoir en fˆ ete. http://bit.ly/2BcPBaE.
[7] Kazemi and Sullivan. One millisecond face alignment with an ensemble of
regression trees. In CVPR. IEEE Computer Society, 2014.
[8] Schroff, Kalenichenko, and Philbin. Facenet: A unified embedding for face
recognition and clustering. CoRR, abs/1503.03832, 2015.
[9] Zhang, Zhu, Lei, Shi, Wang, and Li. Faceboxes: A CPU real-time face
detector with high accuracy. CoRR , abs/1708.05234, 2017.
[10] Najibi, Samangouei, Chellappa, and Davis. SSH: single stage headless
face detector. CoRR, abs/1708.03979, 2017.
[11] Lin, Goyal, Girshick, He, and Dollár. Focal loss for dense object detection.
CoRR, abs/1708.02002, 2017.
[12] Xie, Girshick, Dollár, Tu, and He. Aggregated residual transformations for
deep neural networks. CoRR, abs/1611.05431, 2016.
[13] Wojke, Bewley, and Paulus. Simple online and realtime tracking with a
deep association metric. In 2017 IEEE ICIP

Detecting and counting tiny faces

                Detecting and counting tiny faces 

             Detecting and counting tiny faces 

          Detecting and counting tiny faces

 

                    Detecting and counting tiny faces 

                     Detecting and counting tiny faces 

                   Detecting and counting tiny faces 

                      Detecting and counting tiny faces 

                      Detecting and counting tiny faces 

                       Detecting and counting tiny faces

相关文章: