<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Compact convolutional neural network cascade for face detection</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>I.A. Kalinovskii</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>V.G. Spitsyn</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>375</fpage>
      <lpage>387</lpage>
      <abstract>
        <p>This paper presents a new solution to the frontal face detection problem based on a compact convolutional neural networks cascade. Test results on an FDDB dataset show that it is able to compete with state-of-the-art algorithms. This proposed detector is implemented using three technologies: SSE/AVX/AVX2 instruction sets for Intel CPUs, Nvidia CUDA, and OpenCL. The detection speed of our approach exceeds considerably all the existing CPUbased and GPU-based algorithms. Thanks to its high computational efficiency, our detector can process 4K Ultra HD video stream in real time (up to 27 fps) on mobile platforms while searching objects with a dimension of 60×60 pixels or higher. At the same time, its processing speed is almost independent of the background and the number of objects in a scene. This is achieved by asynchronous computation of stages in the cascade.</p>
      </abstract>
      <kwd-group>
        <kwd>face detection</kwd>
        <kwd>cascade classifiers</kwd>
        <kwd>convolutional neural networks</kwd>
        <kwd>deep learning</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>The need to identify people in millions of photos uploaded daily to social services has led to
significant progress in the solution of the problem of detecting faces. New methods are distinguished by
invariance with respect to the pose and face expression. Moreover, they are also capable of operating
in conditions of complex illumination and strong occlusion. However, many algorithms that
demonstrate outstanding performance on a face detection benchmark have very high computational
complexity. This circumstance prevents their use for video analysis.</p>
      <p>The object of our interest is megapixel video analytics systems that require fast and accurate face
detection algorithms. Such systems run on equipment whose computing power is often greatly limited
due to the increasing demands for a compact form factor and a lower cost. Because of this, the
increase of frame rate or frame resolution is often carried out at the expense of the performance of
detection (such as large size objects search only, frames skipping, etc.). Moreover, the use of cameras
capable of shooting video with a 4K Ultra HD resolution increases the amount of generated data by several
times. In conditions when it is impossible to reduce the search area (for example, by motion analysis),
even optimized detectors based on Viola-Jones method are unable to operate effectively at such a
video stream resolution.</p>
      <p>Despite the fact that the development of modern face detection methods is progressing towards an
increased invariance with respect to the head position and the occlusion, we are considering here only
a particular problem of frontal faces detection. Our goal is to achieve a high performance of detection
at a low computational complexity of the detector, which is difficult to achieve when dealing with this
task in the framework of the most general definition of the problem. At the same time, the frontal
position of a person in relation to the camera is natural for many scenarios of using video analytics
systems. That is why these detectors are so popular in practical applications.</p>
      <p>
        In this paper, we present a frontal face detector based on a cascade of a convolutional neural
network (CNN) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] with a very small number of parameters. Due to the natural parallelism, a small
number of cascade stages and a low-level optimization, it is capable of processing a real-time 4K Ultra
HD video stream on mobile GPU when searching for faces of 60×60 pixels or higher, and, at the same
time, it is 9 times faster than the detector based on Viola-Jones algorithm in the OpenCV
implementation (http://opencv.org). Despite the compact CNN architecture, test results on a Face Detection Data
Set and Benchmark (FDDB) dataset [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] show that the performance of our CNN cascade is comparable
to that of some state-of-the-art frontal face detectors, and its speed surpasses that of any existing CPU
and GPU algorithms.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Related work</title>
      <p>
        It is not possible to build a simple and rapid detector with a high precision and response to all the
possible face image variations because of the big interclass variance, the variety of ambient light
conditions, and the complex structure of the background. The standard approach to solving this problem is
to use different models for each pose of the head [
        <xref ref-type="bibr" rid="ref19 ref32 ref35">19, 32, 35</xref>
        ]. It has been shown recently that, thanks
to their strong generalization capability, deep CNNs can study the whole variety of two-dimensional
projections of a face within the limits of a single model [
        <xref ref-type="bibr" rid="ref16 ref3">3, 16</xref>
        ]. However, the fact that the proposed
CNN architectures contain several millions of parameters makes them unsuitable for use in low-power
computing devices. Methods based on deformable part models [
        <xref ref-type="bibr" rid="ref19 ref33">19, 33</xref>
        ], template comparison based
models [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], and 3D face models [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] are also unable to work with HD video streams in real time, even
to solve the problem of frontal faces search only. Detectors that use manually designed features to
describe objects and cascades of boosting classifiers to detect them remain the best solution in terms of
processing speed [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
      </p>
      <p>
        Many different descriptors were proposed to describe facial features. The most famous ones are
rectangular Haar-like features [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] which have shown to be effective for building frontal face detectors
and to have a high extraction rate achieved by means of using the integral image. Textural MCT [
        <xref ref-type="bibr" rid="ref27 ref4">4,
27</xref>
        ] and LBP [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] features, which code pixel intensity in the local domains, have invariance with
respect to monotonic light change. LBP in combination with HOG features [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] demonstrated good
generalizing properties, and they are able to process complex non-facial images better than the Haar-like
features. B. Jun et al. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] proposed LGP and BHOG features built on the principles of LBP. LGPs are
resistant to local changes of light along the borders of the objects, and BHOGs are resistant to local
pose changes.
      </p>
      <p>
        Multidimensional SURF descriptors [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] in combination with the logistic regression make it
possible to prepare cascades containing only a few hundreds of weak classifiers. Because of this, SURF
cascades exceed the speed of Haar cascades which typically consist of thousands of weak classifiers.
A simple comparison of pixel intensities can also be used for faces detection [
        <xref ref-type="bibr" rid="ref18 ref2">2, 18</xref>
        ]. The detector
proposed in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] has a high execution speed since it does not require any additional processing, including
the construction of the image pyramid.
      </p>
      <p>
        Usually, boosting cascades are trained using grayscale images for the solution of face detection
problem. M. Mathias et al. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and B. Yang et al. [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ] used combinations of different channels
(grayscale, RGB, HSV, HOG descriptors and other) for the training of classifiers. The taking into account
of both color and geometric information allowed improving the performance of face detection on a
complex background.
      </p>
      <p>
        Recently, H. Li et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] have built a CNN cascade whose speed is the highest among the
multiview face detectors. Similarly to Viola-Jones algorithm, a simple CNN was used for coarse image
scanning, while more complex models estimated carefully each selected region. However, despite the
significant reduction of the computational complexity (in comparison with the single CNN model [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]),
this detector is still incapable of processing an HD video stream even on a powerful GPU.
      </p>
      <p>It will be shown further that, with a view to solving the frontal faces detection problem, our CNN
cascade may surpass boosting cascades not only in performance but also in speed. The CNN densely
extracts high-level features directly from raw data, without requiring any preliminary processing apart
from building the image pyramid. Besides, the CNN calculation algorithm can be easily vectorized
using SIMD instructions of CPU, and it can be adapted perfectly to the massively parallel architecture
of GPU.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Compact convolutional neural network cascade</title>
      <p>
        Similarly to [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], we use a CNN to build a cascade detector of frontal faces. This work is based on
the following key ideas:
      </p>
      <p>
        1) A small number of cascade stages. Our CNN cascade has only 3 stages. For example, the
shortest boosting cascade consists of 4 stages and uses MCT descriptors for the extraction of facial
features [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
2) The compact design of the CNN architectures. The total number of feature maps in all the
CNNs is 355 (in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] it amounts to 1,949); however, a sample with a smaller variation of face images
was used for training the model.
      </p>
      <p>3) Asynchronous execution of the stages. A particular design of the detector makes it possible to
execute the second and the third stages of the cascade in parallel with the first one on different
processing units. Due to the fact that 99.99% of sliding window positions are rejected already at the first
operation stage, in this mode the detector is capable of processing video frames in constant time,
regardless of the content of the image.</p>
      <p>4) Optimization. During the implementation of the detector, three technologies were used: SIMD
extension of CPU, CUDA, and OpenCL. The SIMD (CPU) and CUDA implementations of the CNN
were optimized for each of the network architectures used. The giving up on the traditional approach
of the CNN calculation through the organization of a stack of layers, combined with optimization at
the assembler level, made it possible to achieve the code execution performance which was close to
the peak performance of hardware.</p>
      <sec id="sec-3-1">
        <title>3.1 CNN structures</title>
        <p>
          The CNN architectures composing our cascade are shown in Figure 1. Each CNN solves the
problem of a background/face binary classification and contains 797 (CNN1), 1,819 (CNN2) and 2,923
(CNN3) parameters. Similarly to the Convolutional Face Finder [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] architecture, the lack of
fullyconnected layer gives a 50% increase in the speed of the forward propagation procedure. The
convolution stride is 1 pixel, and the pooling stride is 2 pixels. Rational approximation of a hyperbolic tangent
is used as an activation function:
f  x  1.7159  tanh  2 
        </p>
        <p> 3 x  ,

tanh  y   sgn  y  1 
</p>
        <p>1
1 y  y2 1.41645  y4 .</p>
        <p>
(1)</p>
        <p>
          The relative error of the following approximation does not exceed 1.8% on the entire number axis,
and only 11 instructions are required to calculate it. Popular ReLU functions turned out to be less
efficient in our experiments. It should be noted that CNN1 contains the smallest number of filters in
comparison with previously proposed network architectures for face detection [
          <xref ref-type="bibr" rid="ref16 ref23 ref3 ref5">3, 5, 16, 23</xref>
          ].
        </p>
        <sec id="sec-3-1-1">
          <title>CNN1 (stage 1)</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>CNN2 (stage 2)</title>
          <p>CNN3 (stage 3)
input 27×31
conv 4×4
max 2×2
conv 3×3
max 2×2
conv 5×6
conv 1×1
conv 1×1
output 1×1
input 36×40
conv 4×4
average 2×2
conv 3×3
average 2×2
conv 7×8
conv 1×1
conv 1×1
output 1×1</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 Training process</title>
        <p>
          For the CNN training, aligned face images were taken from YouTube Faces Database [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ]. This
dataset contains face tracks of 1,595 people cut out from 3,425 videos (Fig. 2). Background images
were selected from random YouTube videos in several stages during the preparation of models. Face
areas (such as eyes, nose, etc.) were also added to the negatives. The total volume of the training set
consisted of slightly more than one million grayscale images (433 thousand of positive examples and
585 thousand of negative ones).
        </p>
        <p>
          The experiments were carried out with simple models which have a small number of parameters.
We aimed to find the minimal configuration of a CNN which would be able to classify the test set with
an error below 0.5%. For the CNN training, a Levenberg-Marquardt algorithm was used [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ].
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3 Detector design</title>
        <p>
          The detector design is shown in Figure 3. The first CNN densely scans, in series, each image of
the pyramid. The responses in the output network layer correspond to the positions of the scanning
window with a size of 27×31 pixels during its uniform motion with a 4-pixel step. The coordinates of
the windows where the CNN response exceeded the predetermined threshold T1 are transmitted to the
selective unit for a further analysis of these regions of the image. Even when T1 = 0, more than 99.99%
of the total number of positions of the window at all pyramid levels are rejected at this stage. For
comparison, the first-stage of a Haar cascade of Viola-Jones [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] is able to reject only 50% of negative
samples, an MCT cascade [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] – 99%, a SURF cascade [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] – 95%, and a CNN cascade [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] – 92%.
        </p>
        <p>The pre-processing and classification of an image region are carried out in the selective unit, after
which the final decision about their belonging to a faces class is made. At the step of pre-processing,
the analyzed region is read from the original grayscale image together with a certain neighborhood and
is scaled to 51×55 pixels. Then, the equalization of its histogram and mirror reflection with respect to
the vertical axis are carried out. Illumination alignment enhances the response of the CNN on shaded
faces and effectively suppresses false detections. The use of mirror reflection also reduces the
response to complex non-facial images.</p>
        <p>During the second step, the second and third stages of the cascade perform region classification.
The output of each CNN is a response map of a 5×5 size. Additional classification in the region
neighborhood is necessary to prevent the loss of response due to an incorrect positioning of the face in the
scanning window. The decision about the type of the region is made on the basis of the number of
responses Knn of each classifier that exceeds the predetermined threshold T2:
   KnCnNN 2  Tnn  KnCnNN 3  0   KnCnNN 2  0  KnCnNN 3  Tnn  ,</p>
        <p>   1, face
decision rule  
  0, no face
.</p>
        <p>(2)</p>
        <p>The discrete parameter Tnn makes it possible to control the number of detector false alarms more
robustly as compared to thresholds T1 and T2. If the response of the CNN2 does not agree with the
decision rule, further analysis of the region stops.</p>
        <p>The last stage of the pipeline detector is the Non-Maximum Suppression (NMS) algorithm which
aggregates the detected regions to form the resulting areas of faces localization.</p>
        <p>grayscale image
image pyramid</p>
        <p>CNN1
selective unit</p>
        <p>NMS
selective unit</p>
        <p>resize region
equalize
CNN2</p>
        <p>mirror
reflection</p>
        <p>CNN3
decision rule</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4 Implementation</title>
        <p>The detector has been implemented using three technologies: SIMD extension of x86 processor
family (for each of three instructions sets – SSE, AVX, AVX2 – supported by microarchitectures of
Intel Sandy/Ivy Bridge and Haswell/Broadwell processors), Nvidia CUDA, and OpenCL. The
calculations are carried out using single precision, and the precision-recall characteristic is identical for all
implementations.</p>
        <p>Thus, the implementations of all stages of the pipeline detector (except for NMS) are presented in
several versions of a manually vectorized code. We used vector intrinsic functions (which are directly
translated into the appropriate assembly instructions by the compiler), took into account the limited
number of logical registers, and minimized the number of queries to the memory. At the same time,
the SSE code can be ported to the ARM platform since all the SSE instructions used have analogs in
the NEON set of instructions. The Scalar C++ code and OpenCL allow running the detector on most
devices though at a lower execution speed.</p>
        <p>
          Figure 4 shows the comparison of our convolution implementation to its implementation in the
Intel IPP, Nvidia NPP and cuDNN, and ArrayFire libraries. Time measurements were made for the first
CNN1 convolution layer calculation (Fig. 1) on an image with a 4K Ultra HD resolution and were
averaged over 103 launches. When implementing the convolution for GPU, we used the method
proposed by F.N. Iandola et al. [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. Due to the fine code optimization for each CNN architecture, the
speed of layers calculation is higher than when using more universal functions from the respective
libraries.
        </p>
        <p>ms
120
90
60
30
0
78
67
74
47
68</p>
        <p>60
15</p>
        <p>114
9
11
3.4.1 Asynchronous mode</p>
        <p>Typically, face images occupy only a small area of the image. The main advantage of cascade
detectors is the ability to rapidly reject the majority of background regions as early as during the first
stages. However, complex non-facial images may be rejected only during the later stages. If there is a
large number of stages, the speed of detector becomes strongly dependent on the structure of the
background and the number of the objects in the scene. At the same time, the non-uniform distribution of
the processing load over the image area negatively affects the runtime efficiency of GPU
implementations.</p>
        <p>In order to solve this problem, we proposed the asynchronous mode of cascade execution. In this
mode, the first stage which is run on GPU scans each level of the image pyramid sequentially.
Coordinates of detected regions are transmitted to CPU which operates as a selective unit. CNN1 proceeds to
the scanning of the next level of the pyramid regardless of whether the analysis of the detected regions
on CPU has been finished or not.</p>
        <p>Due to the low-level optimization, the selective unit carries out a single region analysis in 0.1 ms
on a single core processor (CPU PC2, for AVX code). Since only 0.01% (on average) of all window
positions passes through CNN1, by the time the scanning of the last level of the image pyramid is
complete, the majority of the detected regions will have already been processed on CPU. A similar
situation is possible under the condition of asynchronous execution of the cascade on different CPU
cores. Thus, the CNN cascade is able to provide a constant frame processing time dependent only on
frame resolution and the productivity of the first stage execution.
3.4.2 Hybrid mode</p>
        <p>
          The effectiveness of GPU in image processing is significantly higher than that of CPU. However,
if small images (less than 0.01 megapixels) are considered, the calculation time is limited by delays in
the running of kernels. In order to improve the search speed of large size faces, we made it possible to
run the first stage of the cascade on CPU and GPU simultaneously. In the hybrid mode, CPU begins
scanning the image pyramid from the upper level, while GPU processes a high-resolution image on the
lower level. Also, it is possible to use the asynchronous mode. A similar technique was used in [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
3.4.3 Patchwork mode
        </p>
        <p>
          In order to reduce the kernel launch delays to a minimum, it is possible to use a patchwork
technique [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. We applied the Floor-ceiling no rotation (FCNR) algorithm [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] for the purposes of dense
image pyramid packing into a semi-infinite strip of a predetermined width. Thus, the scanning of all
image scales at the same time is carried out in a single run of CNN1. However, it is not possible to use
the asynchronous mode. In this case, the second stage of the cascade is also performed on GPU by
means of scanning all the detected regions in a single pass. Usually the asynchronous mode is more
effective than the patchwork mode, but the latter improves the low-resolution image processing
performance.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Experiments</title>
      <p>
        In this section, the results of the proposed detector testing on two public face detection
benchmarks – FDDB [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and AFW [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ] – are shown. Since the detector was designed for a frontal face
search only, it is obvious that it cannot surpass the multi-view face detectors with these complex
datasets. However, it is comparable to the state-of-the-art frontal face detectors on the FDDB
benchmark.
      </p>
      <p>In addition, we tested several face detectors whose source code or demo versions are in open
access. In order to compare the performance and speed of algorithms for video processing tasks, tests
were carried out on the annotated video.</p>
      <p>This section also provides execution speed of all detector implementations for different video
stream resolutions and asynchronous mode demonstration. The test results show that the CNN cascade
provides a very high data processing speed on both GPU and CPU, outperforming all previously
proposed algorithms.</p>
      <p>Specification of the equipment used:
 PC1 (laptop): Intel Core i7-3610QM CPU (2.3 GHz, Turbo Boost disabled), Intel HD
Graphics 4000 GPU1 (GT2, 16 core, 1,100 MHz) and Nvidia GeForce GT 640M GPU2 (GK107, 384
core, 709 MHz);</p>
      <p> PC2 (desktop): Intel Core i5-3470 CPU (3.2 GHz, 3.6 GHz with Turbo Boost) and Nvidia
GeForce GTX 960 GPU (GM206, 1,024 core, 1,228 MHz).</p>
      <sec id="sec-4-1">
        <title>4.1 Face Detection Data Set and Benchmark</title>
        <p>
          The FDDB [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] benchmark consists of 2,845 pictures (no more than 0.25 megapixels), and it has
elliptical shape annotations for 5,171 faces. The authors provide a standardized algorithm for the
automatic ROC curves construction based on the detector operation results. The algorithm calculates
two types of evaluations: the discrete score and continuous score. ROC curve for the discrete scores
reflects the dependence of the detected faces fraction on the number of false alarms by varying the
threshold of the decision rule. The detection is considered to be positive if the Intersection-over-Union
(IoU) ratio of detection and annotation areas exceeds 0.5. Only one detection can be matched with an
annotation. Continuous score reflects the quality of face localization, i.e. the average IoU ratio.
        </p>
        <p>The result of the offered detector evaluation is shown in Figure 5. The following search settings
were used: the minimum object size (minSize) was 15×15 pixels, the scale factor for the image
pyramid construction (scaleFactor) was 1.05, T1 = 0, T2 = 0, and Tnn = 1. Since the detector localizes
rectangular areas, in some cases this leads to errors when they are matched with elliptical shape
annotations. For a correct evaluation, we manually modified 105 received bounding boxes (Fig. 6) so
that their IoU ratio would exceed a predetermined threshold.</p>
        <p>
          Based on the adjusted evaluation, the performance of our detector exceeds the performance of
SURF [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], PEP-Adapt [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], and Pico [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] frontal detectors, approaching the multi-view SURF [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]
detector performance. Table 1 shows the average number of the sliding window positions selected by
each CNN cascade stage on the images from the FDDB collection. Even when T1 = 0, more than
99.99% of window positions were rejected already at the first stage. This is substantially better than
the result obtained in [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>Discrete score</p>
        <p>Continuous score
Ours
Ours (corrected)
Faceness-Net
CascadeCNN
HeadHunter
SURF−multiview
SURF−frontal
PEP−Adapt
Pico
Jain et al.</p>
        <p>Viola Jones
1200
1</p>
        <p>rejected
windows, %
99.995
57.019
24.036</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2 Annotated Faces in the Wild</title>
        <p>
          The Annotated Faces in the Wild (AFW) [
          <xref ref-type="bibr" rid="ref37">37</xref>
          ] benchmark consists of 205 large-scale (0.5-5
megapixels) images and contains rectangular annotations for 468 faces.
        </p>
        <p>
          This benchmark was developed relatively recently and is mainly used for multi-view detectors
evaluation. Because of this, we additionally tested 7 frontal face detectors, including: two Haar
cascades (OpenCV-default, OpenCV-alt) and an LBP cascade (OpenCV-lbp) from the OpenCV library; a
Haar cascade [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] (OpenCV-Pham) and an LBP cascade [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] (OpenCV-Köstinger) trained by the
OpenCV object detection framework; an SURF cascade [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] (SURF-frontal, not the same model as for
the FDDB); and a cascade of decision trees using the pixels intensity comparison [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] (Pico).
        </p>
        <p>For each detector, precision and recall scores were calculated for different values of
minNeighbors = {1, 2, 3} (a parameter specifying how many neighbors each candidate rectangle should have to
retain it), and the mean value of F1 measure. MinNeighbors parameter is used in the OpenCV and
SURF detectors and is equivalent to Tnn (2) for our detector. In Pico implementation, the level of false
alarms is regulated by the threshold of the decision rule which in this test was assumed to be equal to
minNeighbors + 2.</p>
        <p>Comparison of the detectors was carried out with the following search settings: minSize = 80×80
pixels and scaleFactor = 1.1. The SURF and OpenCV-Köstinger detectors localize a smaller face area
in comparison with other detectors, which is why their minSize value was reduced by 25%. The
configuration of the detectors was as follows:
 OpenCV: version 3.0.0, useOptimized = 1;
 SURF: modelType = 0, fast = 1, step = 1;
 Pico: strideFactor = 0.1.</p>
        <p>A standard IoU ratio with a threshold of 0.5 was used to evaluate the detections. Moreover, 44
bounding boxes were additionally generated for each annotation by scaling it with a factor from 0.9 to
1.2 (Fig. 7). Such a multiple check of detections made it possible to take into account differences in
the size of areas localized by detectors and to eliminate errors appearing during matching.</p>
        <p>
          The test results are presented in Figure 8. The proposed detector (F1 = 0.75) holds the second
position in terms of F1 measure value. It is second to the OpenCV-Köstinger detector (F1 = 0.78) due to
producing more false alarms. However, on this benchmark, modern multi-view detectors show
significantly better results, but they cannot work in real-time mode. For example, the Faceness-Net [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ]
detector requires 50 ms for image analysis with VGA resolution on Nvidia Titan Black GPU, which is
about 200 times longer than the working time of our CNN cascade.
n0.6
o
i
isc0.5
e
rP0.4
0.3
0.2
0.1
00
        </p>
        <p>Ours (0.75)
Pico (0.67)
SURF−frontal (0.64)
OpenCV−Pham (0.71)
OpenCV−Koestinger (0.78)
OpenCV−default (0.46)
OpenCV−alt (0.72)
OpenCV−lbp (0.53)
Faceness−Net
0.2 0.4</p>
        <p>Recall
0.6
0.8
1</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3 Video data</title>
        <p>During the last test, the performance of detectors was evaluated on a high-resolution video
sequence. We annotated the first 12,000 frames of the 12th episode from the 5th season of «How I Met
Your Mother» TV series in HD resolution. This video segment comprises 10 different scenes, and the
number of faces in a frame varies from 1 to 88 (39,976 faces in total).</p>
        <p>For testing, we used the same detector parameters as for the AFW benchmark, except the minSize
parameter which was equal to 40×40 pixels. Also, in this test the parameter T2 for our detector was
equal to 1.7. All detectors were running on CPU PC1 in a single-threaded mode.</p>
        <p>The proposed detector also ranks second in terms of F1 measure value (F1 = 0.61, 10.6 fps),
yielding to OpenCV-Köstinger (F1 = 0.65, 1.7 fps), but it is superior to all the detectors in terms of speed
(Fig. 10). Thus, the CNN cascade provides the best performance/speed ratio in comparison with
boosting cascades.</p>
        <p>A greater level of recall, with a significantly reduced precision, can be achieved by using a
weaker decision rule in the selective unit:
  KnCnNN 2  Tnn  KnCnNN3  Tnn
(3)</p>
        <p>A higher level of precision can be achieved by performing an additional validation of detections
with a Haar cascade OpenCV-alt. A Haar cascade was used only after the NMS algorithm, and the
detections were pre-scaled to the size of 80×80 pixels. This made it possible to keep the high speed of
video processing.</p>
        <p>The results of the evaluations of detectors with the use of the AFW and video data allow drawing
the following conclusions. Frontal detectors whose processing speed (on CPU) is comparable to that
of a compact CNN cascade achieve a significantly lower recall and precision of detection. Detectors
whose recall is comparable to that of a CNN cascade have a processing speed which is several times
lower. Thus, we have shown that CNNs (even classic ones) allow building a frontal faces detector with
better characteristics than it can be achieved using the modern modifications of Viola-Jones algorithm.
ion0.6
s
i
c
re0.5
P
0.4
0.3
0.20</p>
        <p>Ours (0.61), 10.6 fps
Ours−weak (0.59), 9.3 fps
Ours−weak+OpenCV−alt (0.63), 9.1 fps
Pico (0.59), 9.2 fps
SURF−frontal (0.6), 8 fps
OpenCV−Pham (0.59), 4 fps
OpenCV−Koestinger (0.65), 1.7 fps
OpenCV−default (0.43), 1.2 fps
OpenCV−alt (0.61), 1.1 fps
OpenCV−lbp (0.47), 4.1 fps
0.1 0.2 0.3 0.4</p>
        <p>Recall
0.6</p>
      </sec>
      <sec id="sec-4-4">
        <title>4.4 Runtime efficiency</title>
        <p>The runtime efficiency was the key priority at all stages of the proposed detector development.
Our CNN cascade turned out to be from 2.6 to 10 times faster than Haar and LBP cascades from the
speed-optimized OpenCV 3.0 library when processing HD video on CPU PC1 (Fig. 10). Meanwhile,
the computing complexity of our CNN cascade is comparable to that of Haar-like cascades. In case
with the search parameters from Section 4.3 C++ code (without auto-vectorization), it reaches 1.2 fps,
whereas the Haar-like classifier from the OpenCV-alt reaches only 1.1 fps.</p>
        <p>
          Among other open source projects (for example, http://libccv.org and http://dlib.net), we do not
know a CPU-based algorithm faster than Pico [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] (integer, it does not require the construction of an
image pyramid) and a SURF cascade [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] (5 stages, SIMD optimization is used). However, despite the
higher computational complexity, the speed of the CNN cascade execution exceeds the speed of these
detectors due to the code vectorization and the efficient use of the processor’s cache memory.
        </p>
        <p>Figure 11 shows the dependence of the speed of various detectors on the content of the scene for
the first 4,000 frames of the annotated video. When using the asynchronous mode, the CNN cascade
provides nearly constant processing time on both CPU and GPU even when there is a significant
increase in the number of faces in the scene (88 faces in frames from 1,771 to 1,834). This property is
important for video analytics systems as it makes it possible to predict more precisely the speed of the
system in different use cases.</p>
        <p>Processing speed</p>
        <p>OpenCV−lbp (CPU)
Pico (CPU)
SURF−frontal (CPU)
Ours (CPU)
Ours (CPU, async mode )
Ours (GPU2)
Ours (GPU2, async mode )</p>
        <p>Ours (GPU2+CPU)
2000
frames
500
1000
1500
2500
3000
3500
4000</p>
        <p>
          For algorithms that have been tested on the FDDB benchmark, the authors reported the following
data on the detection speed of frontal faces for images with VGA resolution: NPD1 [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] – 178 fps
(40×40, 1.2, i5-2400 CPU, 4 threads); ACF [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ] – 95 fps (i7 CPU, 4 threads); SURF [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] – 91 fps
(40×40, 1.2, i5-2400 CPU, 4 threads); Joint Cascade [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] – 35 fps (80×80, 2.93 GHz CPU, 1 thread);
Pico [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] – 417 fps (100×100, i7-2600 CPU, 1 thread); Fast DMP [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ] – 42 fps (Intel X5650 CPU, 6
threads). The speed of other detectors does not exceed 10 fps. Only methods based on the CNN [
          <xref ref-type="bibr" rid="ref16 ref3 ref34">3, 16,
34</xref>
          ] and HeadHunter [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] support GPU. For typical search settings (minSize = 40×40 pixels,
scaleFactor = 1.2), a CNN cascade guarantees 85 fps for a single-threaded and 148 fps for a multi-threaded
execution on CPU PC2, 171 fps on GPU2 PC1, and 313 fps on GPU PC2 (used hybrid mode).
        </p>
        <p>
          The CNN cascade proposed by H. Li et al. [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] processes a VGA image in 110 ms on CPU
(80×80, 1.414, Intel Xeon E5-2620, 1 thread) and in 10 ms on GPU (Nvidia GeForce GTX TITAN
Black, 2,880 CUDA core). With similar search settings, our CNN cascade finishes its operation in
2.5 ms on a single core CPU PC1 and 2 ms on GPU2 PC1.
1 just 39 fps when processing our annotated video (scaled to the VGA resolution) for multi-threaded execution
on CPU PC1.
        </p>
        <p>
          Many investigations are focused on the optimization of Viola-Jones algorithm for GPU with the
purpose of increasing the processing speed of a Full HD video stream: D. Oro et al. [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] – 35 fps for
Haar cascade (24×24, 1.1, Nvidia GTX470 GPU); S.C. Tek and M. Gokmen [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] – 35 fps for MCT
cascade (24×24, 1.15, Nvidia GTX580 GPU); C. Oh et al. [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] – 29 fps for LBP cascade (30×30, 1.2,
Nvidia Tegra K1 GPU + Cortex-A15 CPU). Using the same search parameters, the CNN cascade
speed reaches up to 75, 98, and 108 fps respectively when it runs in the hybrid mode on PC2. Thus,
the proposed detector provides a higher runtime efficiency on GPU in comparison with Viola-Jones
cascade detectors.
        </p>
        <p>Figure 12 shows the diagram of an average video frame rate in 4 standard resolutions which can
be reached with different detector implementations optimized for CPU and GPU. Testing was
conducted on first 4,000 frames of the annotated video that was scaled to the size of the appropriate
resolution. The results indicate that the CNN cascade copes even with the extreme task of real-time
processing of the video stream with a 4K Ultra HD resolution. For example, the speed of an LBP cascade
face detector from the OpenCV library reaches 3 fps only on GPU2 PC1 with the same search settings.
400
350
300
250
PS200
F
150
100
50
0
9
5
3
5
2
HD</p>
        <p>7
92 20
1
6
3
1 1
1
1</p>
        <p>8
31 14
1</p>
        <p>0
5 9
7
17 26 3</p>
        <p>1
Full HD</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion References</title>
      <p>In this paper, we proposed a cascade of compact CNNs for a rapid detection of frontal faces in an
HD video stream. The first stage of the cascade is capable of rejecting 99.99% of windows containing
background. In combination with the asynchronous execution mode, this factor substantially reduces
the dependence of the detector speed on image content.</p>
      <p>The CNN cascade performance is comparable with that of the best frontal face detectors on the
FDDB benchmark, but it surpasses them in speed on both CPU and GPU. Thus, the proposed
algorithm establishes a new level of performance/speed ratio for the frontal face detection problem and
makes it possible to reach acceptable processing speed even on low-power computing devices.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Barbu</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lay</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gramajo</surname>
            <given-names>G</given-names>
          </string-name>
          .
          <article-title>Face Detection with a 3D Model</article-title>
          . arXiv preprint.
          <year>2014</year>
          . URL: http://arxiv.org/pdf/1404.3596.
          <source>pdf (accessed: 14.02</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Chen</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ren</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wei</surname>
            <given-names>Y.</given-names>
          </string-name>
          , et al.
          <article-title>Joint cascade face detection</article-title>
          and alignment // In European Conference on
          <source>Computer Vision</source>
          .
          <year>2014</year>
          . P.
          <volume>109</volume>
          -
          <fpage>122</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Farfade</surname>
            <given-names>S.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Saberian</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li L</surname>
          </string-name>
          .
          <article-title>-J. Multi-view face detection using deep convolutional neural networks</article-title>
          .
          <source>arXiv preprint</source>
          .
          <year>2015</year>
          . URL: http://arxiv.org/pdf/1502.02766.
          <source>pdf (accessed: 14.02</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Froba</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ernst</surname>
            <given-names>A</given-names>
          </string-name>
          .
          <article-title>Face detection with the modified census transform //</article-title>
          <source>In IEEE International Conference on Automatic Face and Gesture Recognition</source>
          .
          <year>2004</year>
          . P.
          <volume>91</volume>
          -
          <fpage>96</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Garcia</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delakis</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>Convolutional face finder: A neural architecture for fast and robust face detection //</article-title>
          <source>In IEEE Transactions on Pattern Analysis and Machine Intelligence</source>
          .
          <year>2004</year>
          . P.
          <volume>1408</volume>
          -
          <fpage>1423</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Iandola</surname>
            <given-names>F.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moskewicz</surname>
            <given-names>M.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karayev</surname>
            <given-names>S.</given-names>
          </string-name>
          , et al.
          <article-title>Densenet: Implementing efficient convnet descriptor pyramids</article-title>
          .
          <source>arXiv preprint</source>
          .
          <year>2014</year>
          . URL: http://arxiv.org/pdf/1404.
          <year>1869</year>
          .
          <source>pdf (accessed: 14.02</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Iandola</surname>
            <given-names>F.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheffield</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Anderson M.J.</surname>
          </string-name>
          , et al.
          <article-title>Communication-minimizing 2D convolution in GPU registers /</article-title>
          / In IEEE International Conference on Image Processing.
          <year>2013</year>
          . P.
          <volume>2116</volume>
          -
          <fpage>2120</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Jain</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Learned-Miller E. Fddb</surname>
          </string-name>
          :
          <article-title>A benchmark for face detection in unconstrained settings</article-title>
          .
          <source>Technical Report UMCS-2010-009</source>
          . University of Massachusetts.
          <year>2010</year>
          . URL: http://viswww.cs.umass.edu/fddb/fddb.
          <source>pdf (accessed: 14.02</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Jain</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Learned-Miller</surname>
            <given-names>E</given-names>
          </string-name>
          .
          <article-title>Online domain adaptation of a pre-trained cascade of classifiers //</article-title>
          <source>In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition</source>
          .
          <year>2011</year>
          . P.
          <volume>577</volume>
          -
          <fpage>584</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Jun</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Choi</surname>
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            <given-names>D.</given-names>
          </string-name>
          <article-title>Local transform features and hybridization for accurate face and human detection //</article-title>
          <source>In Pattern Analysis and Machine Intelligence</source>
          .
          <year>2013</year>
          . P.
          <volume>1423</volume>
          -
          <fpage>1436</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Köstinger</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>Efficient metric learning for real-world face recognition /</article-title>
          / Graz University of Technology,
          <source>PhD thesis</source>
          .
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. LeCun Y.,
          <string-name>
            <surname>Bengio</surname>
            <given-names>Y.</given-names>
          </string-name>
          <article-title>Convolutional networks for images, speech, and time series // The handbook of brain theory and neural networks</article-title>
          .
          <year>1995</year>
          . P.
          <volume>255</volume>
          -
          <fpage>258</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Liao</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jain</surname>
            <given-names>A.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            <given-names>S.Z.</given-names>
          </string-name>
          <article-title>A fast and accurate unconstrained face detector //</article-title>
          <source>In IEEE Transactions on Pattern Analysis and Machine Intelligence</source>
          .
          <year>2015</year>
          . P.
          <volume>211</volume>
          -
          <fpage>223</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Li</surname>
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hua</surname>
            <given-names>G.</given-names>
          </string-name>
          , Lin
          <string-name>
            <surname>Z.</surname>
          </string-name>
          , et al.
          <article-title>Probabilistic elastic part model for unsupervised face detector adaptation //</article-title>
          <source>In Proceedings IEEE International Conference on Computer Vision Workshops</source>
          .
          <year>2013</year>
          . P.
          <volume>793</volume>
          -
          <fpage>800</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Li</surname>
            <given-names>H.</given-names>
          </string-name>
          , Lin
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Brandt</surname>
          </string-name>
          <string-name>
            <surname>J.</surname>
          </string-name>
          , et al.
          <article-title>Efficient boosted exemplar-based face detection //</article-title>
          <source>In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition</source>
          .
          <year>2014</year>
          . P.
          <year>1843</year>
          -
          <fpage>1850</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Li</surname>
            <given-names>H.</given-names>
          </string-name>
          , Lin
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Shen</surname>
          </string-name>
          <string-name>
            <surname>X.</surname>
          </string-name>
          , et al.
          <article-title>A convolutional neural network cascade for face detection //</article-title>
          <source>In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition</source>
          .
          <year>2015</year>
          . P.
          <volume>5325</volume>
          -
          <fpage>5334</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Li</surname>
            <given-names>J.</given-names>
          </string-name>
          , Zhang Y.
          <article-title>Learning SURF cascade for fast and accurate object detection // In Computer Vision</article-title>
          and Pattern Recognition.
          <year>2013</year>
          . P.
          <volume>3468</volume>
          -
          <fpage>3475</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Markuš</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Frljak</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pandžić</surname>
            <given-names>I.S.</given-names>
          </string-name>
          , et al.
          <article-title>Object detection with pixel intensity comparisons organized in decision trees</article-title>
          .
          <source>arXiv preprint</source>
          .
          <year>2013</year>
          . URL: http://arxiv.org/pdf/1305.4537.
          <source>pdf (accessed: 14.02</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Mathias</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benenson</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pedersoli</surname>
            <given-names>M.</given-names>
          </string-name>
          , et al.
          <article-title>Face detection without bells</article-title>
          and whistles // In Proceedings of ECCV.
          <year>2014</year>
          . P.
          <volume>720</volume>
          -
          <fpage>735</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Ntene</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Vuuren</surname>
            <given-names>J.H.</given-names>
          </string-name>
          <article-title>A survey and comparison of guillotine heuristics for the 2D oriented offline strip packing problem // Discrete Optimization</article-title>
          .
          <year>2009</year>
          . P.
          <volume>174</volume>
          -
          <fpage>188</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Oh</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yi</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yi</surname>
            <given-names>Y</given-names>
          </string-name>
          .
          <article-title>Real-time face detection in Full HD images exploiting both embedded CPU</article-title>
          and GPU // In IEEE International Conference on Multimedia and Expo.
          <year>2015</year>
          . P. 1-
          <fpage>6</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Oro</surname>
            <given-names>D.</given-names>
          </string-name>
          , Fernández
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Saeta</surname>
          </string-name>
          <string-name>
            <surname>J.R.</surname>
          </string-name>
          , et al.
          <article-title>Real-time GPU-based Face Detection in</article-title>
          HD Video Sequences // In IEEE International Conference on Computer Vision Workshops.
          <year>2011</year>
          . P.
          <volume>530</volume>
          -
          <fpage>537</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Osadchy</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>LeCun Y.</given-names>
            ,
            <surname>Miller</surname>
          </string-name>
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Synergistic face detection and pose estimation with energybased models //</article-title>
          <source>Journal of Machine Learning Research</source>
          .
          <year>2007</year>
          . P.
          <volume>196</volume>
          -
          <fpage>206</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Paisitkriangkrai</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shen</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>Face detection with effective feature extraction</article-title>
          .
          <source>arXiv preprint</source>
          .
          <year>2010</year>
          . URL: http://arxiv.org/pdf/1009.5758.
          <source>pdf (accessed: 14.02</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Pham M.T.</surname>
          </string-name>
          ,
          <string-name>
            <surname>Cham</surname>
            <given-names>T.J.</given-names>
          </string-name>
          <article-title>Fast training and selection and Haar features using statistics in boostingbased face detection //</article-title>
          <source>In IEEE International Conference on Computer Vision</source>
          .
          <year>2007</year>
          . P. 1-
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Saberian</surname>
            <given-names>M.J.</given-names>
          </string-name>
          ,
          <source>Vasconcelos N. Boosting classifier cascades // In Proceedings of the 24th Annual Conference on Neural Information Processing Systems</source>
          .
          <year>2010</year>
          . P. 7-
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Subburaman</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marcel</surname>
            <given-names>S.</given-names>
          </string-name>
          <article-title>Fast bounding box estimation based face detection /</article-title>
          / In European Conference on Computer Vision. Workshop on Face Detection.
          <year>2010</year>
          . P. 1-
          <fpage>14</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Tek</surname>
            <given-names>S.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gokmen</surname>
            <given-names>M.</given-names>
          </string-name>
          <article-title>GPU accelerated real-time object detection on high resolution videos using modified census transform /</article-title>
          / In VISAPP.
          <year>2012</year>
          . P.
          <volume>685</volume>
          -
          <fpage>688</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Trefny</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matas</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>Extended set of local binary patterns for rapid object detection /</article-title>
          / In Computer Vision Winter Workshop.
          <year>2010</year>
          . P. 1-
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Viola</surname>
            <given-names>P.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jones M.J. Robust</surname>
          </string-name>
          real-time face detection // In International Journal of Computer Vision,
          <year>2004</year>
          . P.
          <volume>137</volume>
          -
          <fpage>154</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Wolf</surname>
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hassner</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maoz</surname>
            <given-names>I</given-names>
          </string-name>
          .
          <article-title>Face recognition in unconstrained videos with matched background similarity // In Computer Vision</article-title>
          and Pattern Recognition.
          <year>2011</year>
          . P.
          <volume>529</volume>
          -
          <fpage>534</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Wu</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ai</surname>
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huang</surname>
            <given-names>C.</given-names>
          </string-name>
          , et al.
          <article-title>Fast rotation invariant multi-view face detection based on real adaboost //</article-title>
          <source>In IEEE International Conference on Automatic Face and Gesture Recognition</source>
          .
          <year>2004</year>
          . P.
          <volume>79</volume>
          -
          <fpage>84</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Yan</surname>
            <given-names>J.</given-names>
          </string-name>
          , Lei
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Wen</surname>
          </string-name>
          <string-name>
            <surname>L.</surname>
          </string-name>
          , et al.
          <article-title>The fastest deformable part model for object detection //</article-title>
          <source>In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition</source>
          .
          <year>2014</year>
          . P.
          <volume>2497</volume>
          -
          <fpage>2504</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Yang</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luo</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Loy</surname>
            <given-names>C.C.</given-names>
          </string-name>
          , et al.
          <article-title>From facial parts responses to face detection: A Deep Learning Approach</article-title>
          . arXiv preprint.
          <year>2015</year>
          . URL: http://arxiv.org/pdf/1509.06451.
          <source>pdf (accessed: 14.02</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Yang</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yan</surname>
            <given-names>J.</given-names>
          </string-name>
          , Lei
          <string-name>
            <surname>Z.</surname>
          </string-name>
          , et al.
          <article-title>Aggregate channel features for multi-view face detection</article-title>
          .
          <source>arXiv preprint</source>
          .
          <year>2014</year>
          . URL: http://arxiv.org/pdf/1407.4023.
          <source>pdf (accessed: 14.02</source>
          .
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>Zayani</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bouallegue</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Raviras</surname>
            <given-names>D</given-names>
          </string-name>
          .
          <article-title>Levenberg-Marquardt learning neural network for adaptive pre-distortion for time varying HPA with memory in OFDM systems /</article-title>
          / In European Signal Processing Conference.
          <year>2008</year>
          . P. 1-
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <surname>Zhu</surname>
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramanan</surname>
            <given-names>D</given-names>
          </string-name>
          .
          <article-title>Face detection, pose estimation, and landmark localization in the wild //</article-title>
          <source>In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition</source>
          .
          <year>2012</year>
          . P. 1-
          <fpage>8</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>