The application was delivered for the US-based Software Innovation Labs - a consortium organization who serve software building clients with a broad spectrum of technical and domain expertise for even the most complex software development projects. The client who commissioned the development of the face-morphing application was one of the major US TV networks - CBS - and the latter intended the app to be used in a social-media-based promotion campaign of one of their new TV comedy series: “Me, Myself and I”. The campaign was supposed to be run on Twitter and Facebook.
While undertaking to deliver the service we were faced with a few challenges. Firstly, the app needed to be delivered within a strict deadline of one month. Secondly, it was expected to work efficiently in the context of significant traffic - i.e., it was meant for one of the biggest TV networks in the US and “morphing” is not a thing you can do in microseconds. Moreover, the client intended to ensure user experience comparable to that of AI-based FaceApp. Last but not least, there was no quality open source library / solution that could easily be used to deliver the functionality and experience typically found in FaceApp-type of apps. From the user perspective, the latter was to be enabled to upload a photo with an image of a person as well as share the generated output in their social media. The functionality was to be available on both PC and mobile devices, hence the client expected the provider to build a responsive web application.
We designed and implemented the responsive web face-morphing application which was fitted up with functionality to be accessed on both PC and mobile devices. The user is enabled to upload their photo and morph it to arrive at a few different age-versions of their image. They can also share the set of images that have been generated via their social media channels, i.e. Twitter and Facebook.
The application was built in Python and we used Docker and the open source message broker Active MQ to distribute work and scale up as needed; the scale-up can be achieved by adding more docker containers responsible for "morphing". While working on a solution, we started with a set of face templates for young and old ages as well as for each gender and later merged the images, i.e. the appropriate templates as well as the the image uploaded by the user. The approach helped achieve some fairly good results. The solution was integrated with the AWS Rekognition API - a deep learning-based image and video analysis service - to validate the uploaded photo / image, e.g. to identify the objects in the photo, establish the number of faces in the photo and the like.
The main functionality was implemented with the help of the open source project “face_morpher”, which had to be modified so that the image background remains stable, while only the face area undergoes changes. You may see the results in the photos below.