<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="None">
  <name>Optimization of Image Recognition: Fingerprint Matching</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2004/12/06 14:49:01 US/Central</md:created>
  <md:revised>2004/12/19 16:43:35.202 US/Central</md:revised>
  <md:authorlist>
      <md:author id="cronoman">
      <md:firstname>Scott</md:firstname>
      
      <md:surname>Harrison</md:surname>
      <md:email>cronoman@rice.edu</md:email>
    </md:author>
      <md:author id="bcarroll">
      <md:firstname>Brent</md:firstname>
      <md:othername>Patrick</md:othername>
      <md:surname>Carroll</md:surname>
      <md:email>bcarroll@rice.edu</md:email>
    </md:author>
      <md:author id="prodig">
      <md:firstname>Jeremy</md:firstname>
      <md:othername>Christopher</md:othername>
      <md:surname>Beasley</md:surname>
      <md:email>prodig@rice.edu</md:email>
    </md:author>
      <md:author id="richb">
      <md:firstname>Richard</md:firstname>
      <md:othername>G.</md:othername>
      <md:surname>Baraniuk</md:surname>
      <md:email>richb@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="cronoman">
      <md:firstname>Scott</md:firstname>
      
      <md:surname>Harrison</md:surname>
      <md:email>cronoman@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="bcarroll">
      <md:firstname>Brent</md:firstname>
      <md:othername>Patrick</md:othername>
      <md:surname>Carroll</md:surname>
      <md:email>bcarroll@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="prodig">
      <md:firstname>Jeremy</md:firstname>
      <md:othername>Christopher</md:othername>
      <md:surname>Beasley</md:surname>
      <md:email>prodig@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="richb">
      <md:firstname>Richard</md:firstname>
      <md:othername>G.</md:othername>
      <md:surname>Baraniuk</md:surname>
      <md:email>richb@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>fft</md:keyword>
    <md:keyword>fingerprint</md:keyword>
    <md:keyword>Image processing</md:keyword>
    <md:keyword>matched filter</md:keyword>
  </md:keywordlist>

  <md:abstract>This is an Elec 301 end-of-year project.  It involves the optimization of fingerprint recognition through different procedures such as convolution and matched filtering.  Also included are the classifcation of different fingerprints according to their composition of lines, arches, and/or swirls.  This classification is used in conjunction with the aforementioned procedures and other techniques such as deblurring.</md:abstract>
</metadata>

<content>
<figure id="thumb">
	    <name>Thumbprint Spectrum</name>
	    <media type="image/jpg" src="thumb.jpg"/>
	    <caption> This is the mesh plot of a scanned 
                thumbprint.</caption>
	  </figure> 

<section id="Optimization">
<name> Optimization Through Signal Processing </name>
<para id="first">
Historically, there has always been a need for effective authentication solutions.  Biometrics has been proven to be an effective answer to this problem because of the
uniqueness that biometric keys possess.  Therefore, the challenge now is to develop effective biometric solutions optimized to certain constraints depending on the needs and resources of the end user.  Some will prefer solutions with real-time results while others will prefer solutions that are nearly error-free. 
	Our research focuses on using the fundamentals of digital signal processing to bring about the optimized solutions. 
</para>
</section>

<section id="Main">
<name> Two Equivalent Processes, Two Different Domains </name>
    <para id="Title">
     Fingerprint matching is process that involves scanning an image, then testing that image against a database of known fingerprints to find out if a match has occurred.  This process of finding a "correlation" between two pictures can be executed in one of two ways using signal processing: In the Time/Spatial Domain or in the Frequency Domain.  In addition to written analysis, be sure to check out the Matlab .m files on the <term>sidebar</term>.
</para> 

<para id="Time">
<name> Time/Spatial Domain</name>
    The Time/spatial domain process of matching involves using <link src="http://cnx.rice.edu/content/m10973/latest/"> 2D Convolution </link> 
 to find a correlation between two image matrices.  In order to find a correlation, first we can use the Matlab command "conv2" as our workhorse.  Once the two images are convolved, the maximum value in the matrix is obtain using the command "max." 

<list id="Properties">
	    <name>Properties of the Spatial Convolution Method</name>
	    <item>Advantages: Known Method that works, fairly robust</item> 
	    <item>Disadvantages: Calculations take up many clock cycles i.e. fairly expensive, timewise</item> 
	    	  </list>
</para>

<para id="Freq">
<name> Frequency Domain </name>

Just like in the spatial domain, in the frequency domain we use a <link src="http://cnx.rice.edu/content/m10151/latest/"> Matched Filter </link> to determine the correlation between two images.  The frequency domain counterpart to 2D convolution is multiplication using Fourier manipulation.  That is, instead of spending a great deal of clock cycles convolving two large images (256x256), we simply can perform the <link src="http://cnx.rice.edu/content/m10964/latest/"> FFT </link> on the two image matrices and then multiply the result.  In order to get good results, it is also necessary to use the "normalized" matrices with Matlab's "norm" command.  More specifically, we used the Frobenius Norm, also called the Euclidean Norm.
Here is the process in full:
 
	  <list id="Frequency" type="enumerated">
	    <name>Frequency Domain Matching</name>
	    <item>Take Frobenius Norm of both images</item> 
	    <item>Perform the FFT on both images</item> 
	    <item>Multiply the resultant matrices together</item>
            <item>Similarly to spatial domain, find the maximum value, or correlation</item>
	  </list> 
	     
</para>

<para id="Difference">
Since the multiplication in the Fourier domain is the same as convolution in the time/spatial domain, we choose Fourier analysis for sake of pure speed and wait time.  In Matlab, the "FFT" command is just more optimized for faster calculations, and the difference is noticable.   


<list id="Properties2">
	    <name>Properties of the Fourier Method</name>
	    <item>Advantages: Same as spatial domain method only much faster </item> 
	    <item>Disadvantages: Doesn't take into account angular orientation of the fingerprint.  Only 2D. </item> 
	    	  </list>

</para>

    
</section> 

<para id="link">
Now that we have looked at the two different domains and tested their equivalence, we move on to further optimization of this classification process.
Go to the module, "Classification of Images".
</para> 
  </content>


</document>
