/Eagle_Criminal_Investigation_System

The goal of this project is to identify history sheeters and provide a solution with higher accuracy, better response rate and an initial step for video surveillance. Solution is proposed based on nature of criminal psychic of repeating crime or involvement in it. This system is used to track history sheeters and recognize them before and after any mischief or any unlawful activity.

Primary LanguagePythonMIT LicenseMIT

Microsoft Engage'22 Project Logo

Video Demo

Table of Contents
  1. Intoduction
  2. Agile Methodology
  3. Getting Started
  4. Navigating through the Application

About The Project

The goal of this project is to identify history sheeters and provide a solution with higher accuracy, better response rate and an initial step for video surveillance. Solution is proposed based on nature of criminal psychic of repeating crime or involvement in it. This system is used to track history sheeters and recognize them before and after any mischief or any unlawful activity.

In the system I am storing the picture of criminal in the data set alongside its other detail to give ease in information recovery and ensuring fast deployment of results in real world. The project is built on python with the use of OpenCV along with the algorithms like Haar cascade classifier, LBPH and face_recognition etc. to store the detail of person we have used SQLite.
The human ability to remember and recognize faces is noteworthy. The system aims to provide a real-time copy of a human identifier along with personal details for efficient tracking of history sheeters. The criminal face recognition system creates a database of criminals and recognizes the person when their image matches an existing image in distributed environment . This project will be a milestone in video-based facial recognition and surveillance.

Home Page


Project METHODOLOGY

Face detection

I have used OpenCV, which represents the Haar cascade classifier used for face detection. The Haar Cascade Classifier uses the AdaBoost algorithm to detect multiple facial features. First, it reads the detected image, converts it to a gray image, and then loads the Haar Cascade Classifier to determine if it contains a human face. If so, it examines facial features and draws a rectangular frame on the detected face. Otherwise, the test for the next image will continue.


Haar cascade algorithm flowchart


Face extraction & Identification

The LBP operator is used to describe the contrast information for a pixel and its adjacent pixels. The original LBP operator is defined in the 3 * 3 window. The center pixel value is used as the window's threshold and compared to the gray value of the adjacent 8 pixels. If you are in the neighborhood


Basic LBP Operator


SQLite

SQLite is a software library that provides a relational database management system. SQLite lights mean lightweight in terms of setup, database management, and required resources. SQLite has great features such as standalone, serverless, zero configuration and transaction.

Built With

Eagle_Criminal_Investigation_System:

Tech Stack Used:

  • OpenCV
  • face_recognition
  • Tkinter GUI
  • Image module
  • Numpy
  • SQlite
  • git

Agile Methodology

What is Agile

Agile software development refers to software development methodologies centered around the idea of iterative development. Agile promotes teamwork, flexible procedures, and sle-organizing teams.

How I Incorporated Agile Methodology During The Development Cycle

  • Sprint 1 (May 5): Planning, Research and Design - Researching about various open source libraries and algorithms for face detection and recognition. After finalizing OpenCv and LBP, I searched for tutorials, designed a basic UI.

  • Sprint 2 (May 13): Software development and debugging - Started the development process by taking help from YouTube tutorials. Built a machine learning model for the first time. Encountered occasional bugs which I debugged timely. Made required changes in the UI and color scheme to make it more eye pleasing

  • Sprint 3 (May 19): Debugging and adding additional features - My research phase helped me in decide how to implement the surprise feature. Decided to build a Live Surveillance feature and integerate it in my application. Made changes styles and added log in authentication.

  • Sprint 4 (May 25): Started debugging last moment bugs, collecting material for demo and finalising the project.

Getting Started

To install and run the project on your local system, following are the requirements:

  • Clone the GitHub repository
$ git clone https://github.com/nandini7637/Eagle_Criminal_Investigation_System.git
  • Change directory to eagle_criminal_investigation_system
$ cd Eagle_Criminal_Investigation_System/eagle_criminal_investigation_system
  • Make sure to install the required dependencies from requirements.txt file
 pip install -r requirements.txt 

Installation

  • Run the login.py file
  • username=nandini_ag
  • password = 123456

and voila you are ready to do some investigation!

  • NOTE: In case you face issue in installing dlib python package, follow the given steps:
  • pip install cmake

  • Install Visual Studio build tools from here.

  • In Visual Studio go to the Individual Components tab, Visual C++ Tools for Cmake, and check the checkbox under the "Compilers, build tools and runtimes" section. pip install dlib

    -or

-Refer this video Link

DETAILED PROCESS

Import the required modules

Load the face detection Cascade

Create the Face Recognizer Object

Prepare the training set and Perform the training

Testing

Process flow diagram

Navigating Through The Application

Login Page

Home Page

Register Criminal

Database Search

Live Surveillance

Future Scope of Improvements

-Light normalization may allow the threshold value to increase.
-Improvement of face recognition using specific character in the face and also analyse the face in 3D by using more than one camera. Using these two method the probability of error will decrease and system will be more accurate.