We need to create a computer software that can recognize the face in a photo by comparing the face with the reference faces already available in the database.
The software will have 2 photo upload sections.
In the 1st upload section, there will be an option to upload photos of known persons. When a software user tries to upload photos of a known person there, the software will ask for available information such as name, present and permanent address, NID number, professional position, educational background, social media links, phone number, email, contact details of friends and family and other identification information of that person. When a software user uploads photos of a known person in this section, the photos will be saved in the database along with the identification information associated with the photo.
In the 2nd photo upload section, there will be an option to upload photos of unknown persons and fetch the person's identification information. When a software user uploads photos of an unknown person in this section, the photos will be matched against the photos of known persons saved in the database. If an unknown person's face matches the face of a known person, the software will show the identity information of the unknown person. If there's no match, the software will show a result "Identity not found".
Additionally, if you can enrich the database of known persons by taking publicly available images from social networks and other online sources such as Facebook, Google, Twitter and YouTube, that will be great.
For facial recognition, you may use open source software such as InsightFace (https://github.com/deepinsight/insightface) (https://insightface.ai/). InsightFace is an open source 2D and 3D deep face analysis toolbox, mainly based on PyTorch and MXNet. In order to get REST API for InsightFace, you can try CompreFace (https://exadel.com/solutions/compreface/) (https://github.com/exadel-inc/CompreFace) and InsightFace-REST (https://github.com/SthPhoenix/InsightFace-REST), that can run from a docker container. You can alternatively use Google's FaceNet (https://github.com/davidsandberg/facenet) as facial recognition software. As FaceNet's REST API, you may try CompreFace.
If you want to use any other alternative tool for facial recognition, you may suggest us too.