Hundreds of people (especially children go missing every day) in India. There are various NGO's and Govt Initiatives to help with it. This project tries to implement an existing/new way to help.
The objective of this project is to help Police and higher authorities to track down missing people quickly. The usual process to track a person is using investigation which requires time and experience (to ask right questions). Most of the time, investigation method works pretty well but it is time consuming and can be unsuccessful if the person (missing) has been shifted/moved to different location (city/country).
In such cases, the ideal approach is to go through CCTV footages and evidences. Again, this can be very time consuming and given the number of people that go missing everyday, it can be a challanage to keep up with it.
The first step is to register a new case. The GUI application is built using PyQT5 that allows you to collect all relevant information and store it in database Postgres.
Please ignore the SRK's image. It is just for the sake of project :)
So far we have only talked about 'how new cases will be registered', the next thing we have to do is to match these registered cases but who do we match it with? This is where ours Users come in. These users are common people like you and me who wants to make a change in the society.
The common people will use an application on their mobile to submit photos of people who they think have lost or found begging while keeping them their identity anonymous. The anonymous part is very important because they fear of local Gundas that might create trouble for them.
An android Application can also be build and used but I have very little experience in it.
The next step is to match the case images and user submitted images. To match KNN Algorithm is used.
Prerequisites
Docker (docker-compose as well)
$ git clone https://github.com/gaganmanku96/Finding-missing-person-using-AI
$ cd Finding-missing-person-using-AI
$ docker-compose up --build
$ cd app
$ pip install -r requirements.txt --no-cache-dir
$ python login_window.py
At this point you'll see a window like this
Default username: admin Default password: admin
Login window makes sure that only authenticated can view the registered cases. Each user can only view the cases submitted by him. NOTE: There is no concpet of superuser.
After logging in you'll see the main screen through which you'll be able to submit cases.
$ cd mobile_app
or (if you are inside app dir)
$ ../mobile_app
$ python ui.py
After that you'll see a window like this
You can this to submit user images or you can create your own mobile app.
Once done you'll have to Click on Refresh button on train KNN Model and then on Match to start Matching Images.
Here are the step you have to do
- Install Postgres Database and replace the username and password in config/.env.file
- The next step is to run database and make sure it is working.
$ cd database
$ pip install -r requirements.txt
$ uvicorn main:app --port 8002
- Next, the face encoding api
$ cd face_encoding
$ pip install -r requirements.txt
$ uvicorn main:app --port 8000
If you are using non-conda environment like venv then it might give error while installing dlib library.
- Running the application
$ cd app
$ pip install -r requirements.txt
$ python login.py
At this point you'll see a window like this
Default username: admin Default password: admin
Login window makes sure that only authenticated can view the registered cases. Each user can only view the cases submitted by him. NOTE: There is no concpet of superuser.
After logging in you'll see the main screen through which you'll be able to submit cases.
$ cd mobile_app
or (if you are inside app dir)
$ ../mobile_app
$ python ui.py
After that you'll see a window like this
You can this to submit user images or you can create your own mobile app.
Once done you'll have to Click on Refresh button on train KNN Model and then on Match to start Matching Images.
- Login (Authentication)
- Submit new case
- Mobile Application (to submit user photos)
- View submitted cases
- View confirmed cases
- Unit tests
Endorse me at LinkedIn if this project was helpful. LinkedIn
- Thanks to Davis King for creating dlib and for providing the trained facial feature detection and face encoding models used in this project.