Swap Face Switcheroo is an easy to use face swapping application designed to allow you to quickly import images, detect faces in the pictures, and let you swap faces from one or more images.
With a little practice anybody can quickly snap pictures and mix and match faces.
Switcheroo detects faces which are generally vertical directly facing the camera. Images can be drawn from the device camera, the photo gallery on the device, or Facebook photo gallery, with log in.
Once any image is opened up the application detects faces. A button in the upper left opens up the face library, showing the faces which were detected. Swapping can be done randomly, by tapping the Random face button, or manually by dragging from one face to another.
The face library maintains all of the most recent detected faces so that the face from one image can be mapped into another image. This way a user can find images online, save them into their phone's gallery, and map faces from one image to another.
Other face swapping apps focus on live action automatic swapping of faces, with few controls. Switcheroo gives the user control over the swapping process, including tweaking the scale, rotation, position, and brightness of each face.
In addition there are several face effects which morph the facial features. You can easily rotate faces upside down, or enlarge eyes or noses.
The detection process can detect faces from limited angles, but swapping between faces which are at very different angles may not look good. This is a limitation of the process, but there are ways to scale and position faces which can improve the intended swap.
It's easy to post images to Facebook, once the application has been linked.
The application can manage over 15 faces in an image, but the smaller the faces, the lower the resulting face swap quality. If faces are not within the same distance from the camera there will be noticeable difference when faces are swapped.
Sometimes the face detection will pick of areas of an image which are not faces. If one of these is randomly positioned over a real face it's easy to tap and drag the incorrect face to where it belongs.
Sometimes the detection will fail to detect a face in situations where hair, glasses, lighting, or other issues confuses the system. Future versions may allow users to create their own faces, though swapping another face this way may never look quite right.
-- Developer notes:
Open CV only goes so far in providing the ability to find a general face area. It does not provide the level of detail expected from Snap Chat and other face detections system which more accurately model the face. This limited detail is also full of a great deal of noise, which required developing a system for smoothing out incoming face locations which keeps up with the live video feed. Developed additional tools for processing textures to allow for color adjustments and tweaking positioning.
Worked out a system for reading in images from a user's Facebook gallery. Future features include the ability to farm a user's entire Facebook library to find faces and allow the user to mix and match faces from any Facebook image.