Django

We are using Django because it provides developers with a collection of tools and libraries for building scalable, secure, and maintainable web applications quickly and efficiently. We are using Django because it allows us to handle complex web development tasks like URL routing and using python making the development process faster and more manageable. Additionally, Django's batteries-included approach means that it comes with many useful built-in features and modules, allowing us to focus on our application's unique functionality rather than boilerplate code.

Python

We are using python for this face recognition application because it has robust libraries, such as OpenCV and dlib, which provide a large set of pre-built functions to facilitate image processing and computer vision tasks. Python's simplicity and readability also make it easy to write and maintain complex code, which is essential for developing and deploying a face recognition system. Additionally, Python has a vast community of developers and enthusiasts, which means that there is a wealth of resources and support available for any face recognition project.

Pandas

Pandas is a popular data analysis library in Python, used for data manipulation and analysis. It provides a wide range of tools for data cleaning, filtering, and transformation, as well as the ability to work with different data types, including tabular data and time series data.

Numpy

We use it for scientific computing, especially for numerical computations. It provides tools for working with arrays and matrices, along with mathematical functions to operate on them efficiently. NumPy is widely used in data analysis, machine learning, image processing, and other fields where numerical operations are needed.

(OpenCV)

We use it for computer vision and image processing tasks such as image manipulation, object detection, face recognition, and more. It is a popular library used in various fields, including robotics, surveillance, medical imaging, and more.

Face_recognition

Used for detecting faces. The library provides a simple and intuitive API that allows developers to quickly integrate face recognition into their Python applications. It uses deep learning algorithms to identify and locate human faces within an image or video stream.

Glob

It helps us to retrieve a list of file pathnames that match a specified pattern.
Used to search for files and directories whose names match a particular pattern.

Pickle

We use it to save and load the trained machine learning model and data structures.

Sklearn

Provides a variety of tools for machine learning tasks such as classification, regression, clustering, and dimensionality reduction. It is built on top of NumPy, SciPy, and matplotlib, and provides a unified interface for performing these tasks using a wide range of algorithms.

sklearn.decomposition PCA

Its a module in scikit-learn that provides an implementation of PCA, which can be used to transform the data to a lower-dimensional space.
The PCA is a technique used in data analysis and machine learning to reduce the dimensionality of a dataset.

Our Proyect

In our face recognition project, we use the scikit-learn (sklearn) library for implementing machine learning algorithms. Specifically, we use the singular value decomposition technique to apply Principal Component Analysis (PCA), which allows us to reduce the dimension of the image and extract the most important features for face recognition.

The project requests an input image and compares it with a database of images using a facial recognition technique. The comparison generates a similarity percentage that indicates how similar the input image is to the images stored in the database. This process involves the use of various Python libraries such as OpenCV, face_recognition, NumPy, Pandas, Matplotlib, and Scikit-learn. Additionally, we use the PCA algorithm to reduce the dimensionality of image data and make the comparison more efficient. Finally, we use the Pickle library to store processed image data and reduce program execution time.