Reference no: EM132515579
Learning Outcomes
Students should be able to design and write correct and readable small programs practical data processing problems in Python;
Students should be able to read, understand and debug computer programs.
Students should understand some practical limitations on computer programs, including scaling (w.r.t. time and memory) and numeric precision (rounding errors) issues.
Students should be able to solve many kinds of practical problems using programming as a primary tool
Description of the Problem
Automatic Face Recognition System
Face recognition is used as an authentication process in various fields and especially in computer security related activities, such as homeland security, building access security, criminal identification, as well as user identification in small mobile devices. The goal of a face recognition system is to have a negligible misclassification rate. Face recognition also plays a significant role in the research field of biometric. Biometric technology is used for authentication and it may analyse human behaviour.
In this project, you are required to develop an automatic face recognition system. The idea is to develop intelligent software using Python to process images and recognize faces in those images. You will divide your images into training and test data (Image dataset has been provided). In practice, the test data will have different images from the training dataset. For example, if there are 10 images of a subject S1, use 5 images for training and the remaining 5 images for testing. Assuming there is a total of 40 subjects, you will have 40x5 images in the training set and 40x5 images in the test set.
Face Recognition Algorithm
In this project, we will use a simple Linear Regression Classification Algorithm1 (details below). You are not allowed to use any machine learningpackage/module to complete thisassignment. You cannot use any built-in/ready to use linear regression functions. You mustimplement the following algorithm in Python.
Implementation Details
There are two phases to develop in this face recognition system (1) the training phase and (2) the testing phase.
Training Phase. In the training phase, you will develop a class-specific model for training images as explained above. Hint: Equation 1 to 3 will be used in this phase. Training phase involves development of matrices as in Eq. 1 to 3.
For a given image dataset, you can use 50% of the images for training. Remember, 50% per subject i.e., if there are 10 images per subject, use 5 images for training. Once you have your training set, down-sample (e.g., 10 x 5) and normalize your training images as stated above.
Testing Phase. Use the remaining 50% images for testing. Down-sample the test images as you did during the training phase. Compute the original response/label (training data/model will be required) and the predicted response (label) for the test image. Compare these responses using the distance measure, as stated above, to predict the class of the test image. Based on the quality and consistency of the prediction, decide which class corresponds best to the test image.
Display your input test image and any random image from the predicted class. Once you have predicted classes for all the test images, report your overall recognition accuracy.
Hint: Eq. 4 to 6 will be used in this phase.
Required Features:
Develop a Python program for face recognition algorithm. The program should have the functionality to trigger training of your linear regression model and load a test image one by one, predict the class of the test face/image and display the results. The recognition should be fully automatic, and you may only specify the directory where the training and test images are present.
All students are required to implement these training and test features. This part will be assessed in terms of completeness in meeting the prescribed feature requirement, correct implementation of the algorithm, quality of your code, the robustness and reliability of your program, and the overall quality of your documentation which includes the adherence to Documentation and Submission Requirements.
Training and Testing using your Data
In this part of assignment, you are required to capture your and your friends' images (10 each). You can create new folders in already provided face dataset to save your images. Train and test your face recognition algorithm using these new images. You are required to upload these new images for the assessment of your algorithm.
Documentation and Submission Requirements
Your submission must be in the form of a ZIP archive file consisting of:
1) one Microsoft Word file named "Assignment1.docx" (details below) containing a critical analysis and documentation of your solution, and challenges faced during this assignment; 2) the Python file for your solution to the problem.
3) your own image dataset.
A Microsoft Word document named "Assignment1.doc" containing the documentation of your solution to the problem. It must contain the following documents and these documents must be layout in the following order:
i. The "Assignment Check List" is available from the Assignment section. All students must complete this form.
ii. If you have been granted extension, include the email from your Unit Coordinator. iii. The detailed description of the problem you aim to solve.
iv. Self-diagnosis, evaluation and declaration. You must provide a full and detailed declaration of the following: the features that are fully implemented and fully working, the features that are not fully working, and the features that are not implemented. Where possible, you should also identify the possible causes of the problems for those features that are not fully working.
v. A brief description of your solution to the problem. The length of your description should not exceed one page.
vi. Evidence that your solution meets each requirement of the assignment, including each of the requirements you have specified for the self-selected advanced features. You can paste program outputs as evidence.
Please note that although your tutor may test your program to verify the evidence presented in your documentation, it is not the responsibility of your tutor to test your program for the purpose of finding marks for you. It is up to individual student to mount a convincing case that the submitted solution meets all requirements. You will lose a significant number of marks (up to 70% of the assignment) if the evidence you presented is not convincing or not complete, even if your program actually works.
vii. The source code listing - including python file of your application.
Attachment:- Python Assignment.rar