This changed with the development of convolutional neural networks, the Compute Unified Device Architecture (CUDA), which allows data-intensive training of deep networks [1]}, and libraries that easily put all these elements together, such as Theano, Caffe, MxNet, Tensorflow, PyTorch, PaddlePaddle and so on.
Since then, face recognition has been dominated by neural networks, and performance has steadily improved since deep networks automatically learn the best suited features to extract from the images, as well as provide algorithms to learn the different aspects of face recognition in an integrated way.
While researchers first focused on creating deeper networks with the support of advanced network architectures, the attention has shifted toward creating more powerful loss functions that are better adapted to face recognition requirements, i.e., to increase between-class and decrease within-class variability of the deep features extracted from the networks.
One of the methods that has demonstrated a state-of-the-art performance is ArcFace [2]}, which uses an additive angular margin loss function to separate the features.
Latest inventions in face recognition include MagFace [3]}, which include metrics for image quality into training deep networks.
