Appearance-based face recognition: Laplacian face recognition

ABSTRACT​

We propose an appearance-based face recognition method called the Laplacianface approach. By using Locality Preserving Projections (LPP), the face images are mapped into a face subspace for analysis. Different from Principal Component Analysis (PCA) and Linear Discriminant Analysis (LDA) which effectively see only the Euclidean structure of face space, LPP finds an embedding that preserves local information, and obtains a face subspace that best detects the essential face manifold structure.
The Laplacianfaces are the optimal linear approximations to the eigen functions of the Laplace Beltrami operator on the face manifold. In this way, the unwanted variations resulting from changes in lighting, facial expression, and pose may be eliminated or reduced. Theoretical analysis shows that PCA, LDA, and LPP can obtained from different graph models. We compare the proposed Laplacianface approach with Eigenface and Fisher face methods on three different face data sets. Experimental results suggest that the proposed Laplacianface approach provides a better representation and achieves lower error rates in face recognition.
​

Replies

  • madhumurundi
    madhumurundi
    Re: New Java Networking Projects - 2009

    this is the abstract of the project. Read it twice if you are willing to do i will help you in this topic.. and this project entirely done in Java
  • atul.arvind
    atul.arvind
    hi i am atul ...i am intrested in your idea of face recogntion software...
    culd u help me wid providing some papers to go through to understand dis algorithm better...
    thanx in advance
  • atul.arvind
    atul.arvind
    hi.... a little update i found out sm really nice papers on 2 D laplacianfaces approach...so culd u guide me how to proceed on dis....
  • TABU
    TABU
    Hi......πŸ˜€ i found ur abstract based on image processing to be interesting.. but the thing is i hav not come across such algorithms so far.. could u please guide me in doing this project??? il be very grateful to u.. do tel me the requirements needed to do this project effectively....😁
    awaiting ur reply πŸ˜”
  • madhumurundi
    madhumurundi
    atul.arvind
    hi.... a little update i found out sm really nice papers on 2 D laplacianfaces approach...so culd u guide me how to proceed on dis....
    hi Atul Really Appreciating for your Interest 😁
    Sure i will Guide you in the better way. i will find the related research documents and i will post it here. and u can also start searching the related materials so that it will helps you to understand the concept easily
  • madhumurundi
    madhumurundi
    TABU
    Hi......πŸ˜€ i found ur abstract based on image processing to be interesting.. but the thing is i hav not come across such algorithms so far.. could u please guide me in doing this project??? il be very grateful to u.. do tel me the requirements needed to do this project effectively....😁
    awaiting ur reply πŸ˜”
    Hi Tabu, Thanks for your Interest , Don't worry about the project i will guide you people in better way just keep on watching the posts and rise the queries?
  • madhumurundi
    madhumurundi
    CHAPTER-1​
    ​
    INTRODUCTION​
    A smart environment is one that is able to identify people, interpret their actions, and react appropriately. Thus, one of the most important building blocks of smart environments is a person identification system. Face recognition devices are ideal for such systems, since they have recently become fast, cheap, unobtrusive, and, when combined with voice-recognition, are very robust against changes in the environment. Moreover, since humans primarily recognize each other by their faces and voices, they feel comfortable interacting with an environment that does the same.

    Facial recognition systems are built on computer programs that analyze images of human faces for the purpose of identifying them. The programs take a facial image, measure characteristics such as the distance between the eyes, the length of the nose, and the angle of the jaw, and create a unique file called a "template." Using templates, the software then compares that image with another image and produces a score that measures how similar the images are to each other. Typical sources of images for use in facial recognition include video camera signals and pre-existing photos such as those in driver's license databases.

    Facial recognition systems are computer-based security systems that are able to automatically detect and identify human faces. These systems depend on a recognition algorithm, such as eigenface or the hidden Markov model. The first step for a facial recognition system is to recognize a human face and extract it for the rest of the scene. Next, the system measures nodal points on the face, such as the distance between the eyes, the shape of the cheekbones and other distinguishable features.


    ​

    ​
    ​

    ​
    ​
  • madhumurundi
    madhumurundi
    Introduction Contd......

    These nodal points are then compared to the nodal points computed from a database of pictures in order to find a match. Obviously, such a system is limited based on the angle of the face captured and the lighting conditions present. New technologies are currently in development to create three-dimensional models of a person's face based on a digital photograph in order to create more nodal points for comparison. However, such technology is inherently susceptible to error given that the computer is extrapolating a three-dimensional model from a two-dimensional photograph.
    Principle Component Analysis is an eigenvector method designed to model linear variation in high-dimensional data. PCA performs dimensionality reduction by projecting the original n-dimensional data onto the k << n -dimensional linear subspace spanned by the leading eigenvectors of the data’s covariance matrix. Its goal is to find a set of mutually orthogonal basis functions that capture the directions of maximum variance in the data and for which the coefficients are pair wise decorrelated. For linearly embedded manifolds, PCA is guaranteed to discover the dimensionality of the manifold and produces a compact representation.

    Facial Recognition Applications:

    Facial recognition is deployed in large-scale citizen identification applications, surveillance applications, law enforcement applications such as booking stations, and kiosks.
  • madhumurundi
    madhumurundi
    1.1 Problem Definition
    [FONT="]Facial recognition systems are computer-based security systems that are able to automatically detect and identify human faces. These systems depend on a recognition algorithm. But the most of the algorithm considers some what global data patterns while recognition process. This will not yield accurate recognition system. So we propose a face recognition system which can able to recognition with maximum accuracy as possible[/FONT] ​
  • madhumurundi
    madhumurundi
    [FONT="]1.2 System Environment
    [/FONT]
    The front end is designed and executed with the J2SDK1.4.0 handling the core java part with User interface Swing component. Java is robust , object oriented , multi-threaded , distributed , secure and platform independent language. It has wide variety of package to implement our requirement and number of classes and methods can be utilized for programming purpose. These features make the programmer’s to implement to require concept and algorithm very easier way in Java.

    [FONT="][/FONT]​
  • madhumurundi
    madhumurundi
    1.2 Contd.......


    Core java contains the concepts like Exception handling, Multithreading; Streams can be well utilized in the project environment.
    The Exception handling can be done with predefined exception and has provision for writing custom exception for our application.

    Garbage collection is done automatically, so that it is very secure in memory management.
    The user interface can be done with the Abstract Window tool KitAnd also Swing class. This has variety of classes for components and containers. We can make instance of these classes and this instances denotes particular object that can be utilized in our program.
    Event handling can be performed with Delegate Event model. The objects are assigned to the Listener that observe for event, when the event takes place the corresponding methods to handle that event will be called by Listener which is in the form of interfaces and executed.
    This application makes use of Action Listener interface and the event click event gets handled by this. The separate method actionPerformed() method contains details about the response of event.
    Java also contains concepts like Remote method invocation; Networking can be useful in distributed environment.
  • TABU
    TABU
    Ok fine.... should i take a help of any company or institute to do my project? or can i do on my own?
  • madhumurundi
    madhumurundi
    TABU
    Ok fine.... should i take a help of any company or institute to do my project? or can i do on my own?
    Not required !!! only you have to do his just start Reading these Posts.. donut worry too much about your project.. i will put all the Source code , presentations and Report also.. just go through the posts thats is... we will finish it up this project as soon as possible 😁 😁
  • Saandeep Sreerambatla
    Saandeep Sreerambatla
    Great!!

    I need some time to go through the posts!!

    Buddy dont provide code, ( you have not provided so far ) but just to tell you.

    Keep the chapters coming its good !!
  • madhumurundi
    madhumurundi
    English-Scared
    Great!!

    I need some time to go through the posts!!

    Buddy dont provide code, ( you have not provided so far ) but just to tell you.

    Keep the chapters coming its good !!
    ya Sure 😁
  • aakash.nagar
    aakash.nagar
    What should be my first step towards the project?
    and could you also provide me some initial source codes for the project? I have to show something done in the project in college by Saturday.
  • madhumurundi
    madhumurundi
    aakash.nagar
    What should be my first step towards the project?
    and could you also provide me some initial source codes for the project? I have to show something done in the project in college by Saturday.
    First read the Abstract then Read the Introduction you will get an some Idea.. then start collecting the related presentations and Documents in google.. you will get exact Core of the topic... and i will put some more related Documents in the posts just keep reading it 😁
  • aakash.nagar
    aakash.nagar
    Thank you.
    I have gone through the abstract and introduction and understood them all.
    So how are we going to start with the coding part??
  • madhumurundi
    madhumurundi
    aakash.nagar
    Thank you.
    I have gone through the abstract and introduction and understood them all.
    So how are we going to start with the coding part??
    Good .. i hope now you got some idea πŸ˜‰

    from the Next Post on wards actual Project will Starts
  • madhumurundi
    madhumurundi
    chapter-2
    System analysis
    ​


    2.1 Existing System:

    Many face recognition techniques have been developed over the past few decades. One of the most successful and well-studied techniques to face recognition is the appearance-based method. When using appearance-based methods, we usually represent an image of size n *m pixels by a vector in an n *m-dimensional space. In practice, however, these n*m dimensional spaces are too large to allow robust and fast face recognition. A common way to attempt to resolve this problem is to use dimensionality reduction techniques.

    Two of the most popular techniques for this purpose are,
    2.1.1 Principal Component Analysis (PCA).
    2.1.2 Linear Discriminant Analysis (LDA).
  • madhumurundi
    madhumurundi
    contd...
    2.1.1 Principal Component Analysis (PCA):​

    The purpose of PCA is to reduce the large dimensionality of the data space (observed variables) to the smaller intrinsic dimensionality of feature space (independent variables), which are needed to describe the data economically. This is the case when there is a strong correlation between observed variables. The jobs which PCA can do are prediction, redundancy removal, feature extraction, data compression, etc. Because PCA is a known powerful technique which can do something in the linear domain, applications having linear models are suitable, such as signal processing, image processing, system and control theory, communications, etc.
    The main idea of using PCA for face recognition is to express the large 1-D vector of pixels constructed from 2-D face image into the compact principal components of the feature space. This is called eigenspace projection. Eigenspace is calculated by identifying the eigenvectors of the covariance matrix derived from a set of fingerprint images (vectors).
  • madhumurundi
    madhumurundi
    2.1.2 Linear Discriminant Analysis (LDA):​


    LDA is a supervised learning algorithm. LDA searches for the project axes on which the data points of different classes are far from each other while requiring data points of the same class to be close to each other. Unlike PCA which encodes information in an orthogonal linear space, LDA encodes discriminating information in a linearly separable space using bases that are not necessarily orthogonal. It is generally believed that algorithms based on LDA are superior to those based on PCA.
    But the most of the algorithm considers some what global data patterns while recognition process. This will not yield accurate recognition system.

    οƒΌ Less accurate
    οƒΌ Does not deal with manifold structure
    οƒΌ It doest not deal with biometric characteristics.
  • madhumurundi
    madhumurundi
    2.2 Proposed System:

    PCA and LDA aim to preserve the global structure. However, in many real-world applications, the local structure is more important. In this section, we describe Locality Preserving Projection (LPP), a new algorithm for learning a locality preserving subspace.

    The objective function of LPP is as follows,

    The manifold structure is modeled by a nearest-neighbor graph which preserves the local structure of the image space. A face subspace is obtained by Locality Preserving Projections (LPP).Each face image in the image space is mapped to a low-dimensional face subspace, which is characterized by a set of feature images, called Laplacianfaces. The face subspace preserves local structure and seems to have more discriminating power than the PCA approach for classification purpose. We also provide

    Theoretical analysis to show that PCA, LDA, and LPP can be obtained from different graph models. Central to this is a graph structure that is inferred on the data points. LPP finds a projection that respects this graph structure. In our the theoretical analysis, we show how PCA, LDA, and LPP arise from the same principle applied to different choices of this graph structure.




    It is worth while to highlight several aspects of the proposed approach here:

    1. While the Eigenfaces method aims to preserve the global structure of the image space, and the Fisher faces method aims to preserve the discriminating information .Our Laplacianfaces method aims to preserve the local structure of the image space which real -world application mostly needs.

    2. An efficient subspace learning algorithm for face recognition should be able to discover the nonlinear manifold structure of the face space. Our proposed Laplacianfaces method explicitly considers the manifold structure which is modeled by an adjacency graph and they reflect the intrinsic face manifold structures.

    3. LPP shares some similar properties to LLE . LPP is linear, while LLE is
    nonlinear. Moreover, LPP is defined everywhere, while LLE is defined only on the training data points and it is unclear how to evaluate the maps for new test points. In contrast, LPP may be simply applied to any new data point to locate it in.
  • madhumurundi
    madhumurundi
    The algorithmic procedure of Laplacianfaces is formally stated below: ​

    1. PCA projection.
    We project the image set into the PCA subspace by throwing away the smallest principal components. In our experiments, we kept 98 percent information in the sense of reconstruction error. For the sake of simplicity, we still use x to denote the images in the PCA subspace in the following steps. We denote by WPCA the transformation matrix of PCA.
  • madhumurundi
    madhumurundi
    2. Constructing the nearest-neighbor graph. ​

    Let G denote a graph with n nodes. The ith node corresponds to the face image xi . We put an edge between nodes i and j if xi and xi are β€œclose,” i.e., xi is among k nearest neighbors of xi, or xi is among k nearest neighbors of xj. The constructed nearest neighbor graph is an approximation of the local manifold structure. Note that here we do not use the neighborhood to construct the graph. This is simply because it is often difficult to choose the optimal " in the real-world applications, while k nearest-neighbor graph can be constructed more stably. The disadvantage is that the k nearest-neighbor search will increase the computational complexity of our algorithm. When the computational complexity is a major concern, one can switch to the "-neighborhood.
  • madhumurundi
    madhumurundi
    3. Choosing the weights. If node i and j are connected, put ​


    sij = e - Γ’•‘xi Γ’€“ x j Γ’•‘ (#-Link-Snipped-#)
    where t is a suitable constant. Otherwise, put Sij = 0.The weight matrix S of graph G models the face manifold structure by preserving local structure. The justification for this choice of weights can be traced.
    XLTT w = λXDXT W, (NOTE THIS IS AN FORMULA)(#-Link-Snipped-#)


    where D is a diagonal matrix whose entries are column (or row, since S is symmetric) sums of S, Dii = Γ’ˆ‘j Sji. L =D - S is the Laplacian matrix. The
    ith row of matrix X is xi.

    These eigenvalues are equal to or greater than zero because the matrices XLXT and XDXT are both symmetric and positive semi definite. Thus, the embedding is as follows:

    (#-Link-Snipped-#)


    where y is a k-dimensional vector. W is the transformation matrix. This linear mapping best preserves the manifoldΓ’€™s estimated intrinsic geometry in a linear sense. The column vectors of W are the so-called Laplacianfaces.
    This principle is implemented with unsupervised learning concept with training and test data.

    The system must require to implement Principle Component Analysis to reduce image in the dimension less than n and co-variance of the data.
    The system must be used in Unsupervised learning algorithm . So it must be trained properly with relevant data sets. Based on this training , input data is tested by the application and result is displayed to the user.
  • madhumurundi
    madhumurundi
    2.3 System Requirement

    Hardware specifications:
    Processor : Intel Processor IV
    RAM : 128 MB
    Hard disk : 20 GB
    CD drive : 40 x Samsung
    Floppy drive : 1.44 MB
    Monitor : 15’ Samtron color
    Keyboard : 108 mercury keyboard
    Mouse : Logitech mouse


    Software Specification:
    Operating System – Windows XP/2000
    Language used – J2sdk1.4.0
  • madhumurundi
    madhumurundi
    2.4 System Analysis Methods​

    System analysis can be defined, as a method that is determined to use the resources, machine in the best manner and perform tasks to meet the information needs of an organization. It is also a management technique that helps us in designing a new systems or improving an existing system. The four basic elements in the system analysis are
    β€’ Output
    β€’ Input
    β€’ Files
    β€’ Process
    The above-mentioned are mentioned are the four basis of the System Analysis
  • madhumurundi
    madhumurundi
    2.5 Feasibility Study​
    Feasibility is the study of whether or not the project is worth doing. The process that follows this determination is called a Feasibility Study. This study is taken in right time constraints and normally culminates in a written and oral feasibility report. This feasibility study is categorized into seven different types. They are
    β€’ Technical Analysis
    β€’ Economical Analysis
    β€’ Performance Analysis
    β€’ Control and Security Analysis
    β€’ Efficiency Analysis
    β€’ Service Analysis
  • madhumurundi
    madhumurundi
    2.5.1 Technical Analysis

    This analysis is concerned with specifying the software that will successfully satisfy the user requirements. The technical needs of a system are to have the facility to produce the outputs in a given time and the response time under certain conditions..
  • madhumurundi
    madhumurundi
    2.5.2 Economic Analysis​


    Economic Analysis is the most frequently used technique for evaluating the effectiveness of prepared system. This is called Cost/Benefit analysis. It is used to determine the benefits and savings that are expected from a proposed system and compare them with costs. If the benefits overweigh the cost, then the decision is taken to the design phase and implements the system
  • madhumurundi
    madhumurundi
    2.5.3 Performance Analysis ​

    The analysis on the performance of a system is also a very important analysis. This analysis analyses about the performance of the system both before and after the proposed system. If the analysis proves to be satisfying from the company’s side then this analysis result is moved to the next analysis phase. Performance analysis is nothing but invoking at program execution to pinpoint where bottle necks or other performance problems such as memory leaks might occur. If the problem is spotted out then it can be rectified.
  • madhumurundi
    madhumurundi
    2.5.4 Efficiency Analysis​

    This analysis mainly deals with the efficiency of the system based on this project. The resources required by the program to perform a particular function are analyzed in this phase. It is also checks how efficient the project is on the system, in spite of any changes in the system. The efficiency of the system should be analyzed in such a way that the user should not feel any difference in the way of working. Besides, it should be taken into consideration that the project on the system should last for a longer time.
  • madhumurundi
    madhumurundi
    Next post onwards 3rd Chapter will starts :smile: :smile:
  • aakash.nagar
    aakash.nagar
    Thank you. Will be waiting eagerly for your next post...
  • aakash.nagar
    aakash.nagar
    Hey madhumurundi!!
    I am waiting for your reply man...
  • madhumurundi
    madhumurundi
    CHAPTER-3
    ]SYSTEM DESIGN​

    Design is concerned with identifying software components specifying relationships among components. Specifying software structure and providing blue print for the document phase.

    Modularity is one of the desirable properties of large systems. It implies that the system is divided into several parts. In such a manner, the interaction between parts is minimal clearly specified.

    Design will explain software components in detail. This will help the implementation of the system. Moreover, this will guide the further changes in the system to satisfy the future requirements.
  • madhumurundi
    madhumurundi
    3.1 Project modules:

    3.1.1 Read/Write Module:

    Here, the basic operations for loading and saving input and resultant images respectively from the algorithms. The image files are read, processed and new images are written into the output images.

    3.1.2 Resizing Module:

    Here, the faces are converted into equal size using linearity algorithm, for the calculation and comparison. In this module large images or smaller images are converted into standard sizing.

    3.1.3 Image Manipulation:

    Here, the face recognition algorithm using Locality Preserving Projections (LPP) is developed for various enrolled into the database.

    3.1.4 Testing Module:

    Here, the Input images are resized then compared with the Intermediate image and find the tested image then again compared with the laplacian faces to find the aureate faces.
  • madhumurundi
    madhumurundi
    FIGURE :1

    [​IMG]


    #-Link-Snipped-#

    Designing Flow Diagram​
  • madhumurundi
    madhumurundi
    3.2 System Development
    This system is developed to implement Principle component analysis. Image manipulation: This module designed to view all the faces that are considered in our training case. Principle Component Analysis is an eigenvector method designed to model linear variation in high-dimensional data. PCA performs dimensionality reduction by projecting the original n-dimensional data onto the k << n -dimensional linear subspace spanned by the leading eigenvectors of the data’s covariance matrix. Its goal is to find a set of mutually orthogonal basis functions that capture the directions of maximum variance in the data and for which the coefficients are pair wise decorrelated. For linearly embedded manifolds, PCA is guaranteed to discover the dimensionality of the manifold and produces a compact representation.

    1)Training module:
    Unsupervised learning - this is learning from observation and discovery. The data mining system is supplied with objects but no classes are defined so it has to observe the examples and recognize patterns (i.e. class description) by itself. This process requires training data set .This system provides training set as 17 faces and each contains three different poses of faces. It undergoes iterative process stores require detail in face Template two dimension array.

    2) Test module:
    After training process is over , it process the input image face for eigenface process then can able to say whether it recognizes or not.
  • madhumurundi
    madhumurundi
    from next post onwards 4th chapter will starts😁
  • The_SeekEr
    The_SeekEr
    ya man this is so cool ... i have been reading this morning and i found it Great!! .am waiting the next post eagerly too.
    you explain it very clearly thanks
    😁
    i am not familiar with java but am gonna follow your post hope you will guide us .
  • madhumurundi
    madhumurundi
    The_SeekEr
    ya man this is so cool ... i have been reading this morning and i found it Great!! .am waiting the next post eagerly too.
    you explain it very clearly thanks
    😁
    i am not familiar with java but am gonna follow your post hope you will guide us .
    Thanks for your complements .. don't worry about code and all ... i will explain every thing 😁
  • aakash.nagar
    aakash.nagar
    great man!!
    i read it twice and you clearly explained everything. i am trying to get command on java too. πŸ˜€
  • madhumurundi
    madhumurundi
    aakash.nagar
    great man!!
    i read it twice and you clearly explained everything. i am trying to get command on java too. πŸ˜€
    Good..
    First learn the All the basics of Core Java πŸ˜€πŸ˜€
  • madhumurundi
    madhumurundi
    CHAPTER-4

    IMPLEMENTATION​

    Implementation includes all those activities that take place to convert from the old system to the new. The new system may be totally new, replacing an existing system or it may be major modification to the system currently put into use.
    This system β€œFace Recognition” is a new system. Implementation as a whole involves all those tasks that we do for successfully replacing the existing or introduce new software to satisfy the requirement.

    The entire work can be described as retrieval of faces from database, processed for eigen faces training method and test case are executed and finally result is displayed to the user.

    The test case has performed in all aspect and the system has given correct result in all the cases
  • madhumurundi
    madhumurundi
    4.1. Implementation Details:

    4.1.1 Form design

    Form is a tool with a message; it is the physical carrier of data or information. It also can constitute authority for actions. In the form design files are used to do each module. The following are list of forms used in this project:


    1) Main Form
    Contains option for viewing face from data base. The system retrieves the images stored in the folder called train and test folder, which is available in bin folder of your application.

    2) View database Form:
    This form retrieves face available in the train folder. It is just for viewing purpose for the user.

    3) Recognition Form :
    This form provides option for loading input image from test folder. Then user has to click Train button which leads the application for training to gain knowledge as it is of the form unsupervised learning algorithm.

    Unsupervised learning - This is learning from observation and discovery. The data mining system is supplied with objects but no classes are defined so it has to observe the examples and recognize patterns (i.e. class description) by itself. This system results in a set of class descriptions, one for each class discovered in the environment. Again this is similar to cluster analysis as in statistics.
    Then user can click the test button Test button to see the matching for the faces. The matched face will be displayed in the place provided for matched face option. In case of any difference the information will be displayed in place provided in the form.
  • madhumurundi
    madhumurundi
    4.1.2 Input design
    Accurate input data is the most common case of errors in data processing. Errors entered by data entry operators can control by input design. Input design is the process of converting user-originated inputs to a computer-based format. Input data are collected and organized into group of similar data.
  • madhumurundi
    madhumurundi
    4.1.3 Menu Design
    The menu in this application is organized into mdiform that organizes
    viewing of image files from folder. Also it has option for loading image as input , try to perform training method and test whether it recognizes the face or not.
  • madhumurundi
    madhumurundi
    4.1.4 Data base design:

    A database is a collection of related data. The database has following properties:

    i) Database reflects the changes of the information.

    ii)A database is logically coherent collection of data with some inherent meaning.
    This application takes the images form the default folder set for this application train and test folders. The file extension is .jpeg option
  • madhumurundi
    madhumurundi
    4.1.5 Code Design
    o Face Enrollment
     -a new face can be added by the user into facespace database



    o Face Verification
     -verifies a persons face in the database with reference to his/her identity.

    o Face Recognition
     -compares a persons face with all the images in database and choose the closest match. Here Principle Component Analysis is performed with training data set . The result is performed from test data set.

    o Face Retrieval
     -displays all the faces and its templates in the database

    o Statistics
     -stores a list of recognition accuracy for analyzing the FRR (False
    Rejection Rate) and FAR (False Acceptance Rate)
  • madhumurundi
    madhumurundi
    From the Next Posts Onwards Next Chapter CODING will starts 😁
  • aakash.nagar
    aakash.nagar
    Thank you.
    Hey !! can i get your contact number?
    Please mail me at #-Link-Snipped-#

    Thanks in advance. 😁
  • aakash.nagar
    aakash.nagar
    I am waiting for your next posts eagerly.. :sshhh:
  • madhumurundi
    madhumurundi
    aakash.nagar
    I am waiting for your next posts eagerly.. :sshhh:
    ya.. sure i will start it soon😁😁
  • maxmaxdillon
    maxmaxdillon
    Madhu u r really genius
    Waiting For CODE
  • vishnu priya
    vishnu priya
    Good collection madhu!
  • R.Hemalatha
    R.Hemalatha
    can u provide codings in .net or else in php?
  • patsham
    patsham
    excellent knowledge madhu...u must be a master in java...waiting for your next posts...!!!
  • bharrat
    bharrat
    I am interested in this topic. I had gone through the explanation part that you provided. please help me in coding part also. Thanks in advance.
  • intelinside
    intelinside
    madhumurundi
    4.1.5 Code Design
    o Face Enrollment
     -a new face can be added by the user into facespace database



    o Face Verification
     -verifies a persons face in the database with reference to his/her identity.

    o Face Recognition
     -compares a persons face with all the images in database and choose the closest match. Here Principle Component Analysis is performed with training data set . The result is performed from test data set.

    o Face Retrieval
     -displays all the faces and its templates in the database

    o Statistics
     -stores a list of recognition accuracy for analyzing the FRR (False
    Rejection Rate) and FAR (False Acceptance Rate)
    hey buddy ...
    i have read all way from the start ......very good job man ...

    can u provide us the coding part ...
  • Kaustubh Katdare
    Kaustubh Katdare
    intelinside
    hey buddy ...
    i have read all way from the start ......very good job man ...

    can u provide us the coding part ...
    Maybe one should try something on his/her own? πŸ˜€
  • intelinside
    intelinside
    i am working on this face recognition part ....i have tried the coding too...but i really need some help ....i have googled ...n tried a lot ....okk provide atleast some help ... i have joined this forum now...why nobody haven't posted after 16th . isn't anybody interested in this project
  • intelinside
    intelinside
    hey buddy... i can work it to last..i have read a no. of books . atleast provide me the prototype of the code so that i can have a start .
    I don't know why the discussion is ended abruptly ..hey CE guys where are you .
  • intelinside
    intelinside
    can i put my theoritical work here ..... but i don't think so it would be of much help if there is no discussion . i wanna have a good discussion . this is a good topic . i have studied the various equations there in PCA and LDA ... understood but have a doubt in some of them ......
  • intelinside
    intelinside
    hi all,
    I am starting again from the coding part . but hey guys i want a real discussion . everyone plzz send their doubts . and send some more links so that other CEans can study.

    //LaplacianFaceRecog.java
    import java.lang.*;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    class LaplacianFaceRecog extends JFrame implements ActionListener
    {
    JFrame frmMain=new JFrame("Face Recognition Using LaplacianFaces");
    JLabel lblTestPath=new JLabel("Input Test Image:");
    JTextField txtTestPath=new JTextField("images\\test\\face16d.pgm");
    JButton btRecognize=new JButton("Recognize");
    JLabel lblResult=new JLabel("Result:");
    JTextArea txtResult=new JTextArea("");
    JScrollPane spResult=new JScrollPane(txtResult);
    JFrame frmImage1=new JFrame("Input Image");
    JFrame frmImage2=new JFrame("Matched Image");
    //system declarations
    int MaxFaceIndex=17;
    double DifferenceThreshold=15000.0;
    int NumFaces;
    int MaxFaces=100;
    int FaceTemplate[][];
    int Faces[][][];
    int LaplacianFaces[][][];
    String FaceFileNames[];
    String tResult="";

    //constructor
    public LaplacianFaceRecog()
    {
    frmMain.setDefaultLookAndFeelDecorated(true);
    frmMain.setResizable(false);
    frmMain.setBounds(100,100,315,250);
    frmMain.getContentPane().setLayout(null);

    lblTestPath.setBounds(17,15,100,20);
    frmMain.getContentPane().add(lblTestPath);
    txtTestPath.setBounds(15,35,170,20);
    frmMain.getContentPane().add(txtTestPath);

    lblResult.setBounds(17,65,100,20);
    frmMain.getContentPane().add(lblResult);
    spResult.setBounds(15,85,280,120);
    frmMain.getContentPane().add(spResult);
    txtResult.setEditable(false);

    btRecognize.setBounds(193,35,100,20);
    btRecognize.addActionListener(this);
    frmMain.getContentPane().add(btRecognize);

    frmImage1.setDefaultLookAndFeelDecorated(true);
    frmImage1.setResizable(false);
    frmImage1.setBounds(450,100,200,150);

    frmImage2.setDefaultLookAndFeelDecorated(true);
    frmImage2.setResizable(false);
    frmImage2.setBounds(670,100,200,150);

    frmImage1.setVisible(true);
    frmImage2.setVisible(true);
    frmMain.setVisible(true);
    }

    //events
    public void actionPerformed(ActionEvent evt)
    {
    if(evt.getSource()==btRecognize)
    {
    if(new File(txtTestPath.getText()).exists()==false)
    {
    JOptionPane.showMessageDialog(null,"Test Image, not found.");
    return;
    }

    drawImage(frmImage1.getGraphics(),txtTestPath.getText());

    tResult="";
    txtResult.setText(tResult);
    train();
    test();
    }
    }

    //internal methods
    void drawImage(Graphics g,String tPath)
    {
    PGM tpgm=new PGM();
    tpgm.setFilePath(tPath);
    tpgm.readImage();

    g.clearRect(0,0,200,150);
    for(int r=0;r {
    for(int c=0;c {
    int intensity=tpgm.getPixel(r,c);
    Color color=new Color(intensity,intensity,intensity);
    g.setColor(color);
    g.fillRect(c,r+30,1,1);
    }
    }
    }


    //methods
    public void addResultText(String tStr)
    {
    tResult=tResult+tStr;
    txtResult.setText(tResult);
    }

    public void train()
    {
    int xBase,yBase,xSub,ySub;
    int xLow,xHigh,yLow,yHigh;
    int GrayLevel;
    int CellSum,CellAvg;
    int i,j;
    int xDiv,yDiv;
    int BlockWidth,BlockHeight;
    int StartX,StartY;
    int SizeX,SizeY;

    //set system parameters
    SizeX=80;
    SizeY=80;
    xDiv=20;
    yDiv=20;
    BlockWidth=SizeX/xDiv;
    BlockHeight=SizeY/yDiv;

    FaceTemplate=new int[xDiv][yDiv];
    Faces=new int[xDiv][yDiv][MaxFaces];
    LaplacianFaces=new int[xDiv][yDiv][MaxFaces];
    FaceFileNames=new String[MaxFaces];
    NumFaces=0;

    addResultText("Training...");
    PGM pgm1=new PGM();
    for(i=0;i<=MaxFaceIndex;i++)
    {
    for(j=97;j<=98;j++)//'a' to 'b'
    {
    NumFaces=NumFaces+1;

    FaceFileNames[NumFaces]="images\\train\\face"+i+(char)j+".pgm";
    PGM_ImageFilter imgFilter=new PGM_ImageFilter();
    imgFilter.set_inFilePath(FaceFileNames[NumFaces]);
    imgFilter.set_outFilePath("temp.pgm");
    imgFilter.resize(SizeX,SizeY);
    pgm1.setFilePath("temp.pgm");
    pgm1.readImage();

    for(xBase=0;xBase<=xDiv-1;xBase++)
    {
    for(yBase=0;yBase<=yDiv-1;yBase++)
    {
    StartX=xBase*BlockWidth;
    StartY=yBase*BlockHeight;
    xLow=StartX;
    xHigh=StartX+BlockWidth-1;
    yLow=StartY;
    yHigh=StartY+BlockHeight-1;

    CellSum=0;
    for(xSub=xLow;xSub<=xHigh;xSub++)
    {
    for(ySub=yLow;ySub<=yHigh;ySub++)
    {
    GrayLevel=pgm1.getPixel(xSub,ySub);
    CellSum=CellSum+GrayLevel;
    }
    }
    CellAvg=CellSum/(BlockWidth*BlockHeight);
    Faces[xBase][yBase][NumFaces]=CellAvg;
    }
    }
    }
    }

    for(xBase=0;xBase<=xDiv-1;xBase++)
    {
    for(yBase=0;yBase<=yDiv-1;yBase++)
    {
    CellSum=0;
    for(i=1;i<=NumFaces;i++)
    {
    CellSum=CellSum+Faces[xBase][yBase];
    }
    CellAvg=CellSum/NumFaces;
    FaceTemplate[xBase][yBase]=CellAvg;
    }
    }
    for(xBase=0;xBase<=xDiv-1;xBase++)
    {
    for(yBase=0;yBase<=yDiv-1;yBase++)
    {
    for(i=1;i<=NumFaces;i++)
    {
    LaplacianFaces[xBase][yBase]=Faces[xBase][yBase]-FaceTemplate[xBase][yBase];
    }
    }
    }
    PGM pgm2=new PGM();
    pgm2.setFilePath("template.pgm");
    pgm2.setType("P5");
    pgm2.setComment("");
    pgm2.setDimension(SizeX,SizeY);
    pgm2.setMaxGray(255);

    for(xBase=0;xBase<=xDiv-1;xBase++)
    {
    for(yBase=0;yBase<=yDiv-1;yBase++)
    {
    StartX=xBase*BlockWidth;
    StartY=yBase*BlockHeight;
    xLow=StartX;
    xHigh=StartX+BlockWidth-1;
    yLow=StartY;
    yHigh=StartY+BlockHeight-1;

    for(xSub=xLow;xSub<=xHigh;xSub++)
    {
    for(ySub=yLow;ySub<=yHigh;ySub++)
    {
    GrayLevel=FaceTemplate[xBase][yBase];
    pgm2.setPixel(xSub,ySub,GrayLevel);
    }
    }
    }
    }

    pgm2.writeImage();
    addResultText("done.");
    }

    public void test()
    {
    int xBase,yBase,xSub,ySub;
    int xLow,xHigh,yLow,yHigh;
    int GrayLevel;
    int CellSum,CellAvg;
    int i,j;
    int xDiv,yDiv;
    int BlockWidth,BlockHeight;
    int StartX,StartY;
    int SizeX,SizeY;

    //set system parameters
    SizeX=80;
    SizeY=80;
    xDiv=20;
    yDiv=20;
    BlockWidth=SizeX/xDiv;
    BlockHeight=SizeY/yDiv;

    int TestFace[][]=new int[xDiv][yDiv];
    int TestLaplacianFace[][]=new int[xDiv][yDiv];
    int LaplacianDiff;
    int MinLaplacianIndex;
    double TotalLaplacianDiff,MinLaplacianDiff;

    addResultText("\nTesting...");
    PGM pgm1=new PGM();
    pgm1.setFilePath(txtTestPath.getText());
    pgm1.readImage();

    for(xBase=0;xBase<=xDiv-1;xBase++)
    {
    for(yBase=0;yBase<=yDiv-1;yBase++)
    {
    StartX=xBase*BlockWidth;
    StartY=yBase*BlockHeight;
    xLow=StartX;
    xHigh=StartX+BlockWidth-1;
    yLow=StartY;
    yHigh=StartY+BlockHeight-1;

    CellSum=0;
    for(xSub=xLow;xSub<=xHigh;xSub++)
    {
    for(ySub=yLow;ySub<=yHigh;ySub++)
    {
    GrayLevel=pgm1.getPixel(xSub,ySub);
    CellSum=CellSum+GrayLevel;
    }
    }
    CellAvg=CellSum/(BlockWidth*BlockHeight);
    TestFace[xBase][yBase]=CellAvg;
    }
    }

    PGM pgm2=new PGM();
    pgm2.setFilePath("diff.pgm");
    pgm2.setType("P5");
    pgm2.setComment("");
    pgm2.setDimension(SizeX,SizeY);
    pgm2.setMaxGray(255);

    for(xBase=0;xBase<=xDiv-1;xBase++)
    {
    for(yBase=0;yBase<=yDiv-1;yBase++)
    {
    StartX=xBase*BlockWidth;
    StartY=yBase*BlockHeight;
    xLow=StartX;
    xHigh=StartX+BlockWidth-1;
    yLow=StartY;
    yHigh=StartY+BlockHeight-1;

    for(xSub=xLow;xSub<=xHigh;xSub++)
    {
    for(ySub=yLow;ySub<=yHigh;ySub++)
    {
    GrayLevel=TestFace[xBase][yBase];
    pgm2.setPixel(xSub,ySub,GrayLevel);
    }
    }
    }
    }

    for(xBase=0;xBase<=xDiv-1;xBase++)
    {
    for(yBase=0;yBase<=yDiv-1;yBase++)
    {
    TestLaplacianFace[xBase][yBase]=TestFace[xBase][yBase]-FaceTemplate[xBase][yBase];
    }
    }

    MinLaplacianDiff=2147483647; //2^32
    MinLaplacianIndex=-1;
    for(i=1;i<=NumFaces;i++)
    {
    TotalLaplacianDiff=0;
    for(xBase=0;xBase<=xDiv-1;xBase++)
    {
    for(yBase=0;yBase<=yDiv-1;yBase++)
    {
    TotalLaplacianDiff=TotalLaplacianDiff+java.lang.Math.abs(TestLaplacianFace[xBase][yBase]-LaplacianFaces[xBase][yBase]);
    }
    }
    if(MinLaplacianDiff>TotalLaplacianDiff)
    {
    MinLaplacianDiff=TotalLaplacianDiff;
    MinLaplacianIndex=i;
    }
    }

    pgm2.writeImage();

    if(MinLaplacianDiff>DifferenceThreshold)
    {
    frmImage2.getGraphics().clearRect(0,0,200,150);
    addResultText("done.");
    addResultText("\n\nNot Matched.");
    JOptionPane.showMessageDialog(null,"Not Matched.");
    }
    else
    {
    PGM pgmMatched=new PGM();
    pgmMatched.setFilePath(FaceFileNames[MinLaplacianIndex]);
    pgmMatched.readImage();
    pgmMatched.setFilePath("matched.pgm");
    pgmMatched.writeImage();
    drawImage(frmImage2.getGraphics(),"matched.pgm");
    addResultText("done.");
    addResultText("\n\nMatched: "+FaceFileNames[MinLaplacianIndex]);
    }
    }

    public static void main(String args[])
    {
    new LaplacianFaceRecog();
    }
    }
  • The_SeekEr
    The_SeekEr
    that's cool . i was doing using matlab i kinda stuck on eye localization
    so anyone from CE guys...
    Normalized rgb based skin detection .........
  • phoolkool
    phoolkool
    madhumurundi
    1.1 Problem Definition
    [FONT="]Facial recognition systems are computer-based security systems that are able to automatically detect and identify human faces. These systems depend on a recognition algorithm. But the most of the algorithm considers some what global data patterns while recognition process. This will not yield accurate recognition system. So we propose a face recognition system which can able to recognition with maximum accuracy as possible[/FONT] ​
    hi! iam a student of BE 3rd year and wanna do a project on image processing -face detection.i am completely new to this field ,i read your project introduction and was wondering why can't we use a face bone structure(as we get in x-ray reports).the cartilageneos(hope i spelled right) will be dark then by comparing the ratio of the distance of the darker part(eye.nose tip,nose end) from a particular random point and taking their ratio can describe a unique face,as these ratios mainly define the features of face. but is it feasible to do an x-ray imaging on computer.does matlab have any such feature?and most importantly do u think this idea may give some good results?
  • vimalgh
    vimalgh
    can anyone tell the coding and how to implement the coding........?????
  • tashirosgt
    tashirosgt
    I found a PDF that explains "locality preserving projections": #-Link-Snipped-#

    One of my thoughts about face recognition and the general problem of image recognition is that the raw data (an n x m matrix of pixels) is wrong place to apply techniques that depend on an orderly geometry of any kind. Consider a 1000 x 1000 pixel image which contains a picture of , say, your grandmother. If it is a clear pictures, you could select any single pixel in the image, change it's value and you would still have a recognizable picture of her. In the one million dimensional space of pixels, for any arbitrary coordinate x_j, we have a picture of grandmother at each value on the x_j axis. I think that any method that is applied to define a volume in this space that encloses only pictures of grandma will have difficulty dealing with this irregular dispersion of her pictures. So I'm interested in understanding the data space on which you propose to apply "locality preserving projections".
  • sumith123
    sumith123
    Laplacian face recognition is simple to understand #-Link-Snipped-# and read #-Link-Snipped-# its also a best article to know much about Laplacian face recognition
  • shraddha athwani
    shraddha athwani
    Re: New Java Networking Projects - 2009

    madhumurundi
    this is the abstract of the project. Read it twice if you are willing to do i will help you in this topic.. and this project entirely done in Java
    hii
    i read ur post n i want to do this in matlab.
    my project topic is strong room protection using image......... and i think i would be easy to do this in matlab... can u help me for this..........
  • shraddha athwani
    shraddha athwani
    if not possible in matlb..... can u help me to do image recognition in java........ plz
  • Kapil27
    Kapil27
    plz tell me abt the execution of this program..
  • udaya babu
    udaya babu
    hi can u paste the screenshots of output and how to proceed from the coding
  • udaya babu
    udaya babu
    Is this a IEEE based project
  • GULNAZ KMT
    GULNAZ KMT
    Hi CE.. Am also a CSE student doin my final yr projct..,, interested in knowing image comparison codes using Java..I surfed the net bt unfortunately cannot find any appropriate codes for that. Can U pleas help me sort out the prob n provide suggestions>>...
    If interested I'd clearly define my Projct idea..
  • Manish Goyal
    Manish Goyal
    Hi
    Please read this whole thread

    You will get an idea
  • ora
    ora
    doubt in Laplacian program..please help

    can u please tell where the PGM class is?

    PGM pgm1=new PGM();

You are reading an archived discussion.

Related Posts

I believe all of us are used to thinking operating systems in a 'window' based environment. Each operating system viz. Windows, OSX, uBuntu and others are typically window-based; meaning, they...
Name: Munna Sarfraz Ahmad Engineering Trade: IT Location: India Occupation: Software Engineer Hobbies & Interests: Discovering new Techniques in the world of IT 😁 Aim in life: To be the...
An ingenious example of speech and politics occurred recently in the United Nations Assembly that made the world community smile.πŸ˜‰ A representative from India began: 'Before beginning my talk I...
Our teacher will take a test after 2 days and I have a problem in C language. Please help me regarding this program. I want to print this output *...
i want to get a topic regarding my major project, i am concentrating my project on cnc programming and its related areas