MAASAI MARA UNIVERSITY SCHOOL OF SCIENCE AND INFORMATION SCIENCES DEPARTMENT OF COMPUTING AND INFORMATION SCIENCES FOURTH YEAR PROJECT PROPOSAL STUDENT FACIAL RECOGNITION USING DEEP LEARNING BY OTIENO CALVINE BS02/028/2015 SUPERVISOR: MR. ABRAHAM MATHEKA Submitted in partial fulfillment of the requirements for award of BSc. Computer Science 1 DECLARATION Student I hereby declare that the work in this report is entirely my own work, and has to the best of my knowledge, not been submitted to any other institution of higher learning. The report has not been presented for any degree and therefore no part of this report shall therefore be duplicated without my prior consent. Student: OTIENO CALVINE Reg. Number: BS02/028/2015 Signature: …………………… Date: …………………………. This project has been submitted as a partial fulfillment of requirements for the Bachelor of Science in Computer Science of Maasai Mara University with my approval as the University Supervisor. Supervisor: MR. ABRAHAM MATHEKA Signature: …………………………. Date: ………………………………… 2 ABSTRACT The face is one of the easiest ways to distinguish the individual identity of each other. Face recognition is a personal identification system that uses personal characteristics of a person to identity the person. Facial recognition is a technology capable of identify a person from a stored digital image or video frame from a video source. This plays a vital role in everyday interaction, communication, and other routine activities that enable us to lead a normal and social life. With the advancement of technology and growing use of computers in our day to day life, it’s essential to develop systems that can precisely detect and recognize human faces. I aim to propose an approach that can achieve the desired goal of face detection and identification or in other words recognition effectively. Since working with image intensities is computationally challenging, I will adopt the approach formulated by Viola and Jones that’s based on Haar-like features. The cascading of a number of distinctive features using Adaboost results in a strong classifier that can efficiently extract features. This ultimately leads to precise spotting of faces. My region of interest is then subjected to the popular Local Binary Pattern (LBP) for further processing. The original LBP operator labels the pixels of an image by thresholding the 3 by 3 neighborhood of each pixel with the center pixel value and considering the results as aa binary number. Histograms are then extracted from each sub-region and are concatenated into a single, spatially enhanced feature histogram. This feature histogram is the key factor that along with the SVM classifier recognizes the target image. 3 ACKNOWLEDGEMENT I would like to thank God for His uttermost favor and the strength. He has been so kind to me throughout this project. I am thankful to my supervisor Mr. Matheka Abraham for his time, guidance encouragement and support throughout the development and enhancement of this project. Last but not least I’d like to thank my fellow colleagues who have been instrumental in ensuring the project was a success through their encouragement and participation in carrying out peer reviews and making sure the system is error free. 4 TABLE OF CONTENTS 1 2 INTRODUCTION............................................................................................................................... 6 1.1 Background ................................................................................................................................. 6 1.2 PROBLEM STATEMENT ........................................................................................................ 6 1.3 SCOPE OF THE STUDY ........................................................................................................... 7 1.4 AIMS ............................................................................................................................................ 7 1.5 PROJECT OBJECTIVES.......................................................................................................... 8 1.6 JUSTIFICATION ......................................................................................................................... 8 LITERATURE REVIEW................................................................................................................... 9 Introduction ................................................................................................................................. 9 2.1 2.1.1 geometry feature-based approach ..................................................................................... 9 2.1.2 holistic approach ............................................................................................................... 10 2.1.3 hybrid-approach................................................................................................................ 10 Face Recognition Techniques ................................................................................................... 10 2.2 2.2.1 eigenfaces ........................................................................................................................... 10 2.2.2 fisherface ............................................................................................................................ 11 2.2.3 neural network .................................................................................................................. 11 2.2.4 genetic algorithm ............................................................................................................... 11 Work Done Before .................................................................................................................... 12 2.3 3 DEVELOPMENT METHODOLOGY ........................................................................................... 14 Introduction ............................................................................................................................... 14 3.1 4 3.1.1 code and fix ........................................................................................................................ 14 3.1.2 spiral development ............................................................................................................ 14 3.1.3 waterfall method ............................................................................................................... 15 3.1.4 rapid prototype.................................................................................................................. 17 3.2 Testing and Evolution ............................................................................................................... 18 3.3 SCHEDULE AND RESOURCE REQUIRED ....................................................................... 19 3.3.1 project gant chart .............................................................................................................. 19 3.3.2 resources required............................................................................................................. 19 3.3.3 BUDGET ............................................................................................................................ 20 REFERENCES .................................................................................................................................. 21 5 1 INTRODUCTION 1.1 BACKGROUND Human beings are the most intelligent species on the planet having extraordinary capabilities one of which is identifying individual and differentiating them from one another. This plays a vital role in everyday interaction, communication, and other routine activities that enable us to lead a normal and social life. With the advancement of technology and growing use of computers in our day to day life, it’s essential to develop systems that can precisely detect and recognize human faces. I aim to propose an approach that can achieve the desired goal of face detection and identification or in other words recognition effectively. Since working with image intensities is computationally challenging, I will adopt the approach formulated by Viola and Jones that’s based on Haar-like features. The cascading of a number of distinctive features using Adaboost results in a strong classifier that can efficiently extract features. This ultimately leads to precise spotting of faces. My region of interest is then subjected to the popular Local Binary Pattern (LBP) for further processing. The original LBP operator labels the pixels of an image by thresholding the 3 by 3 neighborhood of each pixel with the center pixel value and considering the results as a binary number. Histograms are then extracted from each sub-region and are concatenated into a single, spatially enhanced feature histogram. This feature histogram is the key factor that along with the SVM classifier recognizes the target image. Hence the above stated approach clearly serves as a great purpose of identifying and analyzing facial images for various applications. 1.2 PROBLEM STATEMENT Everyday actions are increasingly being handled electronically, instead of pencil and paper or face to face. This growth of in electronic transactions results in great demand for fast and accurate user identification authentication. Access codes for buildings, schools and exam rooms, banks accounts and computer systems often use PINs and identification cards for identification and security clearances. Using this IDs and PINs gains access, but the user of the PIN is not verified. When credit and Identification cards are lost, unauthorized user can often come up with the correct personal codes. 6 Identification cards can also be forged and unauthorized individuals have taken advantage of this to gain access to some places and cause trouble. We have seen cases where students sit for exams for their fellow colleagues and sign for them for class attendance. Some unauthorized individuals have also gained access to institution especially public universities and secondary schools due to the problem of identification. Facial recognition can solve this problem since a face is undeniably connected to its owner except in the case of identical twins. 1.3 SCOPE OF THE STUDY Face recognition has its applicability in various fields. On the basis of results obtained in my analysis, the future scope can be stated as: 1. Room for improving accuracy: The accuracy for multiclass classifier can be improved. Various other techniques can be implemented and compared to obtain better accuracy results for large database. 2. On getting a better accuracy we can use it in different fields not only for identifying students but also in other fields for the purpose of security. 3. Develop a system in which we can maintain and record the attendance of students in a lecture. 4. The attendances recorded only after the lecturer instructs the software to do so. 5. The faculty instructs the system twice; at the beginning and at the end. 6. System should be smart enough to make sure that the student remains in the lecture for the entire session. 7. The system should work as a surveillance system as well. 8. The entire report of the attendance of each lecture should be reverted back to the central attendance database. 1.4 AIMS To make a system that will use computer vision techniques to automatically detect and identify faces from the digital images which are extracted from the input video. The identification and recognition is based on prominent facial features such as region of the eyes, face shape etc. This will improve the security in most schools and universities and for the purpose of exam and class attendance to trim exam cheating and irregularities. 7 1.5 PROJECT OBJECTIVES The specific objectives of the project include: I. To build a fast and efficient face recognition system that detects faces very quickly in cluttered backgrounds. Using a learning-based approach, namely Haar-cascade classifier, we want to minimize the effects of unwanted objects in the real time environment. II. Once the face detection part is done, my next motive is to train my system with sufficient images. For each image, a feature vector is to be computed using Local Binary Patterns (LBP) where histograms are extracted concatenated for all sub regions in an image. III. With these feature vectors I wish to label the target images using SVM classification. IV. I aim to compare various recognition techniques and present a tradeoff between accuracy and speed for each of them. 1.6 JUSTIFICATION 8 2 LITERATURE REVIEW 2.1 Introduction The proposed system will apply three algorithms for efficient face recognition. The first algorithm will be the viola-jones algorithm which will be used for face detection and training. The second will be the principal component analyses (PCA) which will be used for features extraction lastly radial basis function (RBF) willl be used the will be suitable for classification. It has a simple structure and fast learning ability. This chapter provides a detailed survey of face recognition research. There are two underlying motivations to present this survey: the first is to provide an up-to-date review of the existing literature, and the second is to offer some insights into the studies of machine recognition of faces. To provide a comprehensive survey, existing recognition techniques of face recognition are categorized and detailed descriptions of representative methods within each category are presented. Face Recognition or facial recognition is non-intrusive method of identifying faces by the feature extraction and classification of faces on the other hand face detection refers to computer technology that enable to identify presences of people’s faces with digital images. In order for face detection to work, applications use machine learning and using algorithms. Face detection is broader than face recognition. Face detection only identify a human face present in an image or video. One of the application of face detection is facial recognition. Face recognition describes a biometric technology that gives away beyond recognizing a human face is present. It actually attempts to recognize whose face it is. Face recognition is an evolving area, changing and improving constantly. There are very many approaches and techniques that have been put in place for this great technology. However, different face recognition can be categorized into three main groups such as holistic approach, feature-based approach and hybrid approach. 2.1.1 GEOMETRY FEATURE-BASED APPROACH The geometry feature-based approach method analyzes local features such as nose, eyes, and their geometric relationships. This technique is sometimes just referred to as only feature-based 9 approach. Examples of this approach are Elastic Bunch Graph Matching Algorithm. This method is nowadays not used. 2.1.2 HOLISTIC APPROACH Many researchers use this approach. In this approach whole face region is taken into account as input data to the system. Various methods come under this approach are eigenfaces, fisher faces, support vector machine, hidden markov model (HMM). These approaches are all based on principal component analysis (PCA). 2.1.3 HYBRID-APPROACH Under this approach the combination of local feature and whole feature is used. Modular eigenface, hybrid local methods are for hybrid approach. Human facial feature plays important in face recognition. Research and studies have determined that eyes, mouth and nose are amongst the most significant feature for recognition. 2.2 FACE RECOGNITION TECHNIQUES 2.2.1 EIGENFACES It appears as a fast, simple and practical method. It was first used in face recognition.(L. Sirovich, M. Kirby , 1986). This method is based on Principal Component Analysis and the goal was to present the image in a lower dimension without using much information and then reconstructing it. It became the foundation of many face recognition algorithm approaches later. In 1992 Mathew Turk and Alex Pentland of the MIT presented a work which use this technique for face recognition. They use PCA as a projection feature vector to solve the problem of face recognition using Euclidean distance as a similarity function. Alex Pentland, Baback Moghaddam extended the work of this technique to eigenfeature corresponding to eigencomponent. They used modular approach which they were able to demonstrate robustness to localized variations in object appurtenance. K. Chang, K.W Bowyer and S. Sarkar experiments with ear and face recognition using the standard principal component analysis approach showed that performance is essentially identical using ear images or face images and combing the two for multimodal recognition results is 90%, 71.6%, 70.5% respectively. 10 2.2.2 FISHERFACE Fisher’s Linear Discriminant is a classical technique in pattern recognition first developed by Robert Fisher in 1936 for taxonomic classification. Fisher’s Linear Discriminant (FLD) is an example of class specific method in the sense that it tries to shape the scatter in order to make it more reliable for classification. Belhumeur propose fisherfaces method by using PCA and Fisher’s Linear Discriminant Analysis. This approach removes the problem of eigenface method in Pentland by taking advantage of within class information, minimizing variation in same image due to lighting condition. 2.2.3 NEURAL NETWORK The attractiveness of using neural networks could be due to its linearity in the network. Artificial neural networks are emerging tool in face recognition. One of the first artificial neural networks (ANN) techniques used for face recognition is single layer adaptive network called WISARD which contains separate network for each stored individual. Lawrence et. al. used self-organizing map neural network and convolutional networks. Self-organizing maps (SOM) are used to project the data in a lower dimensional space and a convolutional neural network (CNN) for partial translation and deformation invariance. 2.2.4 GENETIC ALGORITHM Was developed by John Holland – University of Michigan (1970s) to provide efficient techniques for optimization and machine learning applications. Genetic programming is an evolutionary algorithm methodology inspired by biological evolution. In Genetic Programming different phases of evolution, namely select base on individual fitness, reproduction using crossover and mutation using better solutions. It’s a heuristic method that use the idea of survival of the fittest. This algorithm has been widely employed in the pattern recognition, feature selection. The proposed system will mostly be focused on the face recognition technology. Thus, it is good to have a survey of the facial recognition technology. 11 2.3 WORK DONE BEFORE Several approaches have been applied to face recognition: support vector machines, Neural Networks, Kirby and Sirovich initiated the Eigen-faces approach in 1998 since then many researchers have built and expanded on the basic ideas. In addition to the aforementioned approaches, algorithms also form part of the components of face recognition systems. The popular ones include: Principle component Analysis (PCA) that treats face recognition as a twodimensional recognition problem. Linear Discriminant Analysis (LDA), which distinguishes between the differences within an individual and those among individuals; Independent Component Analysis (ICA), which strives to exploit "higher-order" relationships among pixels compared to PCA; Elastic Bunch Graph Matching (EBGM), which relies on the concept that real face images have many nonlinear characteristics that are not addressed by PCA and LDA-such as variations in illumination, pose, and expression. In October, 2001, Fresno Yosemite International (FYI) airport in California deployed Vii-sage's face recognition technology for airport security purposes. The system is designed to alert FYl's airport public safety officers whenever an individual matching the appearance of a known terrorist suspect enters the airport's security checkpoint. Anyone recognized by the system would have further investigative processes by public safety officers when the authorized individual leaves the computer terminal for a short time, users are continuously authenticated, checking that the individual in front of the computer screen or at a user is the same authorized person who logged in.(Divyarajsinh, Brijesh et al) Sudha, N., and D. Bharat Chandrahas et al. presented a parallel architecture for face recognition which is suitable for implementing in multicore environment. The proposed system includes the modules for video frame acquisition, PCA, binarization, skin detection on the image frame. Consecutive frame lines are processed in pipeline on multicores. The proposed system attains a frame rate at 8 frames per second for 480x272 image size and the experimental result is area effective Vong, Chi Man et al. proposed sparse Bayesian extreme learning machine (SBELM) for realtime face detection. The proposed method is capable to reduce the size of model without compromise on the fast execution time and precision. Numerous standards for the face datasets 12 are developed for the estimation of SBELM among other traditional approaches. The analysis of results indicates that SBELM attains best ever execution time with high precision over the standard face datasets. Karmakar, Dhiman et al. In this paper, facial feature extraction scheme has been proposed. By utilizing the segmentation method, control points are extracted and color images are cropped automatically. In this segmentation method, initially images are cropped automatically and then these cropped images are being applied for detecting the main connected components. The feature points are found by utilizing the geometrical measurement of location and the size of component with no previous information if probabilistic distance between the feature points or using any feature point extraction formula. By containing main feature points, T shaped face image is generated. Finally rate of recognition of unprocessed face images using PCA is reported. 13 3 DEVELOPMENT METHODOLOGY 3.1 Introduction Systems are created to solve problems that we encounter on daily basis at work or other areas. Systems development methodology is an organized way of solving a problem. In software development, there are several methodologies that are used in solving problems. These methodologies are also referred to as software engineering models. The models are 3.1.1 CODE AND FIX Code and fix" development is model that is neither well formulated nor well controlled, it lacks formal planning, a specification and design phases. Without much of a design in the way, programmers immediately begin producing code. At some point, testing begins (often late in the development cycle), and the unavoidable bugs must then be fixed before the product can be shipped. 3.1.2 SPIRAL DEVELOPMENT The key characteristic of a Spiral model is risk management at regular stages in the development cycle. The Spiral is visualized as a process passing through some number of iterations, with the four quadrant diagram representative of the following activities: 1. Formulate plans to: identify software targets, implement the program, clarify the project development restrictions 2. Risk analysis: an analytical assessment of selected programs, to consider how to identify and eliminate risk 3. Implementation of the project: the implementation of software development and verification However, the spiral model has some restrictive conditions, as follows: 1. The spiral model emphasizes risk analysis, and thus requires customers to accept this analysis and act on it. This requires both trust in the developer as well as the willingness 14 to spend more to fix the issues, which is the reason why this model is often used for large-scale internal software development. 2. If the implementation of risk analysis will greatly affect the profits of the project, the spiral model should not be used. 3. Software developers have to actively look for possible risks, and analyze it accurately for the spiral model to work. The first stage is to formulate a plan to achieve the objectives with these constraints, and then strive to find and remove all potential risks through careful analysis and, if necessary, by constructing a prototype. If some risks cannot be ruled out, the customer has to decide whether to terminate the project or to ignore the risks and continue anyway. Finally, the results are evaluated and the design of the next phase begins. 3.1.3 WATERFALL METHOD It consists of stages that are processed which are processed in a linear fashion. It is better manageable and more rigid. The waterfall method was the first software development life cycle to be used. The outcome of one phase acts as the input for the next phase sequentially 15 Following is a diagrammatic representation of different phases of waterfall model. The following are the sequential phases in Waterfall model are: Requirement Gathering and analysis: All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document System Design: The requirement specifications from first phase are studied in this phase and system design is prepared. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. Implementation: With inputs from system design, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality which is referred to as Unit Testing. Integration and Testing: All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures. Deployment of system: Once the functional and nonfunctional testing is done, the product is deployed in the customer environment or released into the market. 16 Maintenance: There are some issues which come up in the client environment. To fix those issues patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment. All these phases are cascaded to each other in which progress is seen as flowing steadily downwards (like a waterfall) through the phases. The next phase is started only after the defined set of goals are achieved for previous phase and it is signed off, so the name "Waterfall Model". In this model phases do not overlap. Advantages of waterfall model: Simple and easy to understand and use. Easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process. Phases are processed and completed one at a time. Works well for smaller projects where requirements are very well understood. 3.1.4 RAPID PROTOTYPE Prototyping is a technique for providing a reduced functionality or a limited performance version of a software system early in its stage. The "planning" of software developed using Rapid prototyping is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements. It has four phases 1. Requirements Planning phase – combines elements of the system planning and systems analysis phases of the Systems Development Life Cycle (SDLC). Users, managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements. It ends when the team agrees on the key issues and obtains management authorization to continue. 2. User design phase – during this phase, users interact with systems analysts and develop models and prototypes that represent all system processes, inputs, and outputs. The RAD 17 groups or subgroups typically use a combination of Joint Application Development (JAD) techniques and CASE tools to translate user needs into working models. User Design is a continuous interactive process that allows users to understand, modify, and eventually approve a working model of the system that meets their needs. 3. Construction phase – focuses on program and application development task similar to the SDLC. In RAD, however, users continue to participate and can still suggest changes or improvements as actual screens or reports are developed. Its tasks are programming and application development, coding, unit-integration and system testing. 4. Cutover phase – resembles the final tasks in the SDLC implementation phase, including data conversion, testing, changeover to the new system, and user training. Compared with traditional methods, the entire process is compressed. As a result, the new system is built, delivered, and placed in operation much sooner. The methodology I will adopt in this project development is prototyping. The idea behind prototyping is the creation of an early sample of a product with intention of clarifying the requirements and project specifications. The prototype is then constantly refined with every iteration. It is necessary to focus on those aspects visible to the users, so that evaluation of the proposed design can be made in accordance to the user requirements. This method is the most effective way to address the uncertainty about the user requirements and also to discover new system functionalities as well. The development methodology was arrived at because: 1. Requirements become clearer resulting into an accurate product. 2. Flexibility in design and development that is supported by the model 3. New requirements can be easily accommodated as there is scope refinement. 3.2 TESTING AND EVOLUTION Testing will be an inherent part of every stage in development. I will evaluate the system using function points Function points were developed by Albrecht. Function Point Analysis (FPA), is the method of sizing software in terms of its function and expressed in Function Points. It is interesting to note that FPA came about, not because a new measure of system size was 18 requested, but because productivity was becoming increasingly important; it was out of the need to measure productivity that FPA was conceived. FPA aims to provide a consistent measure of system size that: I. is independent of the development technology II. is simple to apply III. can be estimated (reasonably well) from the requirements specification IV. is meaningful to the end user. 3.3 SCHEDULE AND RESOURCE REQUIRED 3.3.1 PROJECT GANT CHART FROM TO TASK SEP 1-15 SYSTEM PLANNING AND SELECTION 1/9/18 15/9/18 PROPOSAL WRITTING 16/9/18 30/9/18 SYSTEMS ANALYSIS AND DESIGN 1/10/14 15/10/18 SYSTEMS IMPLEMENTATION 16/10/18 15/1/19 DOCUMENTATION 16/10/19 31/1/19 DELIVERY 2/2/14 18/2/19 OCT 16-28 NOV 1-15 16-31 3.3.2 RESOURCES REQUIRED 1.Minimum requirements Software 19 1-15 DEC 16-30 1-15 JAN 16-30 1-15 FEB 16-30 1-15 16-31 i) Windows 7 and above ii) Windows 2000(sp4) iii) Windows xp(sp2) iv) Windows vista (sp1) Application software i) Javascript ii) OpenCV iii) Electron.js iv) Python v) Node.js vi) MYSQL database vii) Microsoft Word and Excel viii) Visual code and PyCharm Hardware Required 500MHZ processor Pentium 111 1GB RAM 4 GB free hard disk space A PC /laptop, GSM modem On the client side A PC/ laptop running windows 2000, XP, Vista or Windows 7 and above Supported platform Personal computer running windows 2000, XP, Vista or Windows 7 and above 3.3.3 BUDGET NAME ESTIMATED COST 20 Dell XPS 13 laptop Intel Core i7, 226 GB SSD, 8GB RAM Ksh. 140,000 TOTAL Ksh.140,000 4 REFERENCES 1. Bentley, L & Whitten, J (2007). System Analysis & Design for the Global Enterprise. 7th ed. (p. 417). 21 2. R. Jafri, H. R. Arabnia, “A Survey of Face Recognition Techniques”, Journal of Information Processing Systems, Vol.5, No.2, June 2009. 3. Y. Freund and R. E. Schapire, A decision-theoretic generalization of online learning and an application to boosting. J. Comp. & Sys. Sci., 55(1):119-139, 1997. 4. R. Chellappa, C. L. Wilson, and S. Sirohey, “Human and machine recognition of faces: A survey”, Proc, IEEE, vol. 83, 705-741, May, 1995. 5. B. Moghaddam, Principal manifolds and bayesian subspaces for visual recognition, Proc. of IEEE conf. Compter Vison, 1131-1136, 1999. 22