# MC-EVM: A Movement-Compensated EVM Algorithm with Face Detection for Remote Pulse Monitoring
## 2 Related Works
### Artificial Intelligence and Face Detection  
Artificial intelligence [27] helps to identify a set of features in a dataset of images, text, or a data signal to understand how the tested data should be compared to decide whether the trained pattern exists in the testing dataset or not. It is applied for many different purposes, ranging from data multitype object detection such as in the COCO dataset [28], laparoscopic instruments detection and tracking [29], face detection [30; 31; 32], sign language recognition in different countries such as in Alabib-65 [33], detection of the absence of lung sliding in ultrasound videos [34], and the identification of corrective focus in speech audio signals [35]. In this paper, we trained a model to identify human faces in images. These images present the frames that are taken from the video depending on the video capturing speed (frames per second). Face detection differs totally from face recognition as the face detection process aims only to detect the location of a face in the input picture. However, face recognition is considered to be a biometric process as it aims to first detect a face in a picture, then identify the person in the picture. This could be used for authentication or authorization purposes as well. Many datasets are available for face detection such as the DigiFace-1M [36], Celeb-Faces Attributes Dataset (CelebA) [37], VGGFace2 [38], UMDFaces [39], Point and Shoot Face Recognition Challenge (PaSC) [40], and the Multi-Attribute Labelled Faces (MALF) dataset [41]. We used a small collection of 2000 images selected randomly from the \"VGGFace2\" dataset to train our model due to computational limitations, however, this could be improved in future research by using the full dataset which contains more than 3 million images with different lighting conditions, poses, gender, age, ethnicity, and professions. The used sample showed sufficient performance for our research purpose. In this paper, we used an EfficientDet-Lite0 that can process one frame in 37 milliseconds, therefore, it works at a frequency of 27 frames per second (measured in a smartphone Pixel 4 with 4 CPUs) [18]. EfficientDet uses a weighted bidirectional feature pyramid network (BiFPN) and is optimized for efficiency. BiFPN enables fast feature fusion over the multi-scale (pyramid) network [18]. Furthermore, we used the single-shot multi-box detector (SSD) [17] models as they allow us to use a very life computational model which could be used for devices with low computation capabilities (it requires low computational capabilities compared to some other CNN models). It has many advantages over other architectures [17] (such as Faster R-CNN and YOLO) with regard to the detection speed (19-59 frames per second compared to 7 fps for Faster R-CNN), accuracy (mean average precision of 74-76% compared to 73%for Faster R-CNN and 52% for YOLO), and performance in the detection of small objects in the image. Small objects have smaller details even in big images, this is why they are hard to detect, however, this can be improved by changing the input size of the image but could reduce the detection speed. An SSD model uses one deep neural network to perform object detection and image classification in a single shot process. It consists of a base Convolutional Neural Network (CNN), feature maps that are made of convolutional layers, and the \"prior boxes\" that present a set of predefined bounding boxes with different sizes. These bounding boxes are used to identify objects and their location in the picture [17]. SqueezeDet is a smaller and more efficient version of the original SSD model architecture. It was developed to enable real-time object detection in autonomous driving [42]. Another version of the SSD model architecture, called the deconvolutional single shot detector (DSSD) [43], involved the use of deconvolutional layers to improve the detection of small objects.