Face Detection, Extraction, and Swapping on Mobile Devices OUTPUT: DOCUMENTATION: We will use the Viola-Jones face detector in OpenCV as a starting point. Once we have found two faces we will apply some post processing to make sure that we have the entire face without any holes. Once we have a binary mask of the faces’ fully connected components, we plan to use cvBlobsLib (similar to regionprops function in Matlab) to do face region labelling and extraction. Choosing the faces to swap will either be random or done through a simple UI. Initially we will translate the faces to match the new face’s centroid with the centroid of the old face. Then, using the relative locations of features detected using OpenCV (such as the eyes, nose, and mouth) we will determine the orientation of the face in the plane parallel to the camera lens. Then, the relative sizes of these features will allow us to determine the degree of rotation away from the camera. However, if the faces we ar...