Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A Web App to help find missing people using Face Recognition. Developed for the Microsoft Intern Engage 2022 Programme.

NotificationsYou must be signed in to change notification settings

tinycoder2/FaceFind

Repository files navigation


Logo

FACE FIND

Submission for Microsoft Engage 2022

A Django Web Application to help find missing people using Face Recognition.

Now deployed on Heroku! Clickhere to check it out!

GitHub code size in bytesGitHub last commitLanguagesGeneric badge


Table of Contents
  1. About The Project
  2. Getting Started
  3. Business Logic
  4. Tech Architecture
  5. Features and Interfaces
  6. Discussions
  7. Lessons Learnt
  8. Future Work

About The Project

The thought of a family member, a friend or someone else you care about going missing can be terrifying. This project aims to help find your loved ones using Face Recognition Technology. If someone you know is missing, then,

  • Register the missing person with us.
  • Once the background check is done and the missing person is verified, we generate a unique Face ID for the missing person using Azure's Face API.
  • When volunteers report a suspected missing person, we verify and generate a Face ID the same way. We then use Azure's Find Similar API to identify a potential match with our database of missing person Face IDs.
  • If a match is found we will contact you.

(back to top)

Built With

To achieve the goal of finding missing people, I made use of the following tools and languages,

bootstrapcss3javascripthtml5expressexpressexpressexpressgitheroku

(back to top)

Getting Started

Prerequisites

Firstly you have to make sure you have python installed. If you don't have python, you can get ithere.

  • Use this command to check if python is installed,
python --version

Getting API credentials

To access Azure Cognitive Services REST API for Face Analysis, you will need,

  • An Azure account (you can create your account for freehere)
  • A Computer Vision Resource in your Azure account

To create a Computer Vision Resource, you can navigate through the portal, create a new resource and go under the class of “AI+Machine Learning”. Then select the Face Cognitive Service and set the required information.

Under the Resource Management tab you will find “Keys and Endpoint”. From this section, copy one of the two Keys and the Endpoint and paste it somewhere safe. We will be using these in theconfig.json file.

For detailed instructions clickhere.

Setup

To get a local copy of the project and run it, follow these steps.

  1. Create a folder in which you want set up the project. Go into that folder and check if python is installed.
mkdir myFoldercd myFolderpython --version
  1. Clone the repository:
git clone https://github.com/tinycoder2/FaceFind.git
  1. Create a virtual environment to install dependencies in and activate it:
python -m venv myEnvcd myEnv.\Scripts\activatecd ..
  1. Then install the dependencies:
cd FaceFindpip install -r requirements.txt
  1. Enter your API KEY, ENDPOINT that we got fromGetting API credentials, EMAIL ID and EMAIL PASSWORD inconfig.json
{"KEY":"Your Azure API KEY","ENDPOINT":"Your Azure Endpoint","EMAIL-ID":"Your Email ID from which the app will contact is missing person is found","EMAIL-PASSWORD":"Password for said Email ID"}

To allow the app access your email account, go togoogle account setting , security tab and ensure that you haveLess secure app access turnedon.

  1. Go tomsengage\settings.py and change line number 18 as,
# Change to False if cloning and running on local hostIS_DEPLOYED_ON_HEROKU=False
  1. Apply migrations:
python manage.py migrate
  1. Create admin account :
python manage.py createsuperuser

Follow the promt and enter the username, preferably"admin", desired email and password. Make note of the username and password as you will have to use these credentials to login.

  1. Run server:
python manage.py runserver

The app is now running athttp://127.0.0.1:8000/

(back to top)

Business Logic

businessArchitecture

(back to top)

Tech Architecture

techArchitecture

(back to top)

Features and Interfaces

Home Screen

  • Landing page displaying hero section, about section, technology used and FAQ section.
home_screen.mp4

Registering a Missing Person

register_missing_person.mp4

Reporting a Suspected Missing Person

report_suspected_missing_person.mp4

Admin Login and Views

  • Logging in as the admin and displaying site from admin POV.
admin_login_logout.mp4

Missing People Views

  • Viewing all missing people, ones that need to be approved, approving a missing person (background check), viewing missing people with status as Leads, status as Found, Deleting a missing person, Editing the details of a missing person.
missing_people_views.mp4

Reported Person Views

  • Viewing all reported people, ones that need to be approved, approving a reported person (checking validity of report), viewing details of potential match, confirming the match, status of missing person changing from Leads to Found.
reported_people_views_confirmation.mp4

Details of Match Found

detailsOfMatchFound

Email Received

emailReceived

(back to top)

Discussions

  • Face Detection

    • To detect the face in the image the person uploads, we use theDetect With Stream API.

    • Inpeople\views.py we have a functiongenerate_face_id that uses the Detect With Stream API to get the faceID, which is an identifier of the face feature and will be used inFace - Find Similar.

    # function to generate face_id using Azure Face APIdefgenerate_face_id(image_path):face_client=FaceClient(config['ENDPOINT'],CognitiveServicesCredentials(config['KEY']))response_detected_face=face_client.face.detect_with_stream(image=open(image_path,'rb'),detection_model='detection_03',recognition_model='recognition_04',)returnresponse_detected_face
  • Face Recognition

    • Given query face's faceID, to search the similar-looking faces from afaceID array, which is an array of faceIDs generated fromDetect With Stream API, we use theFace - Find Similar API.

    • Inpeople\views.py we have a functionfind_match that uses this API to find a match for the reported person from the list of missing people faceIDs.

    # function to find a match for the reported person from the list of missing people using Azure Face APIdeffind_match(reported_face_id,missing_face_ids):face_client=FaceClient(config['ENDPOINT'],CognitiveServicesCredentials(config['KEY']))matched_faces=face_client.face.find_similar(face_id=reported_face_id,face_ids=missing_face_id)returnmatched_faces
  • Given the timeframe for this project and the fact that I was using a free account with limited number of API calls, I have built myMVP with these two APIs.

  • In the future I plan to make use of afaceListId instead of thefaceID array for theFace - Find Similar API.

  • The major difference between these two is thatfaceID array contains the faces created byFace - Detect With Url orFace - Detect With Stream, which will expire at the time specified by faceIdTimeToLive after creation, which is about 86400 seconds (24 hours) by default. AfaceListId is created byFaceList - Create containing persistedFaceIds that will not expire.

  • Furthermore, one could also usePersonGroup /LargePersonGroup andFace - Identify when the face number is large, theLargeFaceList can support up to 1,000,000 faces.

(back to top)

Lessons Learnt

lessonsLearnt

(back to top)

Future Work

  • Future plans include,

  • SMS verification for registering a missing person

  • Geo location from IP address while reporting suspected missing person.

  • Using Azure'sPersonGroup /LargePersonGroup andFace - Identify for face detection and identification.

  • Sanitizing traffic to prevent API throttling.

(back to top)

About

A Web App to help find missing people using Face Recognition. Developed for the Microsoft Intern Engage 2022 Programme.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp