Hadoop for Large-scale Biometric DatabasesJason TrostCloud Computing TeamBooz | Allen | Hamilton
This session shows the application of Hadoop and a large-scale, low-latency distributed fuzzy matching database to BiometricsBackground - what you need to know about BiometricsThe Problem – Big Data and unordered fuzzy matchingA Solution - Hadoop Applications for BiometricsSession Agenda
Key Takeaways from this SessionSearching large-scale Biometric Databases is a hard problemHadoop is a potential solution to this problemHadoop is a great platform for solving all sorts of Big Data and distributed computing problems, even low latency searching3
4Introduction to BiometricsIrisFaceFingerprintBiometrics:The science of establishing the identity of an individual based on the physical, chemical, or behavioral attributes of the person * Modality:Physical or behavioral characteristics of an individual used to establish identity*Template:A symbolic or numeric representation of a modality optimized for storage and/or matchingPalm PrintGaitHand GeometrySignatureEarVoiceKeystroke PatternFacial ThermogramVein Pattern*   Handbook of Biometrics. A. Jain, P. Flynn A. Ross.
Assist with criminal investigations (e.g. crime scene fingerprints)Identify individuals entering and leaving the countrySurveillance5Why are Biometrics Important?Enables identifying/authenticating individuals based on “credentials” that are hard to forge
It has many useful applications where establishing identity is important
Banks and Financial Services companies are using biometrics to prevent banking and identity fraud
National governments are creating biometric databases for law enforcement & security reasons:Enrollment – Add an identity and associated biometric data to the database if they do not already existVerification – Lookup the biometric template for a single individual and determine whether it matches a captured biometric measurement  (1-to-1 match)Identification – Determine the identity of an individual given some biometric measurements (1-to-N match)6Biometric Database Operations
Enrollment: Adding New Identities and Biometrics Data to the DatabaseCollect biographic information from an individual such as name, address, SSN, etcCapture biometric data in raw form (e.g. high resolution images)Transform raw biometric data into encoded biometric template (feature vector)Store all this information in the biometrics database7
Verification: One-to-one MatchingLookup the biometric template for a particular individualVerify that the stored template and the recently captured template matchFuzzy matching is used for matching the biometric templates8
Identification: One-to-Many SearchingCapture some number of raw Biometric features, convert them into Biometric templatesPerform fuzzy matching against large number of stored biometric templates to determine the identityIf latency is not an issue, this is relatively straightforward, especially in MapReduceThis is a hard problem for low latency applications and increasing in complexity as the size of these databases growThere is a speed/accuracy tradeoffThe search space can be reduced using clustering techniques, but this only goes so far9
What is Fuzzy matching?Fuzzy matching is an operation performed on two objects that determines how similar the objects are to each otherTypically this operation produces a numeric similarity scoreNecessary when data collected from sensor is noisy, and matching needs to be very accurateAlmost all biometric matching algorithms perform some sort of fuzzy matching:Elastic Bunch Graph Matching – face recognition algorithmBOZORTH3 - minutiae based fingerprint matching algorithmIrisCode - iris matching algorithmOther Examples:Image comparisonAudio comparisonVideo comparison10
Why Fuzzy Matching?Biometric data is inherently noisy and dirtyConditions are not exactly the same when the original biometric data was captured (Enrollment) and when a new reading occurs (Identification)Different types of cameras and sensors made by different companiesPartial or smudged fingerprints (e.g. crime scene)Changes in skin tone, facial hair, makeupDifferent lighting conditionsAging and skin damageWeight gain, Weight lossInjuryDerived from http://www.flickr.com/photos/glennji/3558118429/. Licensed under Creative Commons11
Existing Large-scale Biometric DatabasesUS Visitor & Immigrant Status Indicator Technology (US-VISIT)*International travelers’ biometrics (fingerprint and face)Collected at US ports of entry, Immigration Services, and State DepartmentUsed to support the Department of Homeland Security's missionFBI Integrated Automated Fingerprint Identification System, (IAFIS)**Used to solve and prevent crime and catch criminals and terroristsIncludes fingerprints, criminal histories, mug shots, scars and tattoo photos, physical characteristics like height, weight, and hair and eye color, and aliasesAllTrust Networks Paycheck Secure SystemUses fingerprints to support secure check cashingDesigned to stop fraud and speed check cashingPlus many more12*     One Team, One Mission, Securing our Homeland. US DHS. **    http://www.fbi.gov/hq/cjisd/iafis/iafis_facts.htm***  http://www.alltrustnetworks.com/News/6Million/tabid/378/Default.aspx
This session shows the application of Hadoop and a large-scale, low-latency distributed fuzzy matching database to BiometricsBackground - what you need to know about BiometricsThe Problem – Big Data and unordered fuzzy matchingA Solution - Hadoop Applications for BiometricsSession Agenda
Combined U.S. government biometric databases are expected to grow to hold billions of identitiesThe DHS’s US-VISIT program has the world’s largest and fastest biometric database (called IDENT) with over 110 million identities and roughly 145,000 identities enrolled or verified daily*From the FBI’s Integrated Automated Fingerprint Identification System (IAFIS) alone, there are 66.5 million identities with 8,000-10,000 more subjects added each day **India is reportedly creating a biometric database to hold the fingerprints and face images for each of its 1.2 billion citizens as part of its Unique Identification Project ***European Union’s Biometric Matching System (EU-BMS) is expected to hold biometric information of 70 Million people to support visa applications, border control, and immigration ****AllTrust Networks Paycheck Secure system has enrolled over 6 Million users and has performed over 70 Million transactions*****13Growth of Biometric Databases*     US-VISIT: The world’s largest biometric application. William Graves.**     http://www.fbi.gov/hq/cjisd/iafis/iafis_facts.htm***   http://www.business-standard.com/india/news/national-population-register-to-start-biometrics-data-collectiondec/399135/****  http://www.findbiometrics.com/articles/i/5220/***** http://www.alltrustnetworks.com/News/6Million/tabid/378/Default.aspx
Biometric Databases are a Big Data ProblemLarge scale operationsSearching and storing 100 Million to 1 Billion IdentitiesMultiple biometric templates and raw files per identity for multimodal matching (Fingerprints, Faces, and Iris)Typically, new raw files and templates are stored after each Verification and Identification operation because the biometrics readings change over timeRaw Images:(500M Identities x 16KB-300KB* x 10-20) = 1-2 PBBiometric Templates:(500M Identities x 256b-3KB** x 10-20) = 2-27 TB15
Biometric Databases Must Perform Fuzzy MatchingFuzzy matching techniques must be used because the data is noisy and “dirty”
Most applications require low latency fuzzy match searches in order to be useful
The objects being searched for cannot be ordered effectively to speed up searches
Clustering techniques can be used to reduce the search space, but this only goes so far
Fuzzy match searches are expensive and typically a large number of objects need to be searched to find a match16
This session shows the application of Hadoop and a large-scale, low-latency distributed fuzzy matching database to BiometricsBackground - what you need to know about BiometricsThe Problem – Big Data and unordered fuzzy matchingA Solution - Hadoop Applications for BiometricsSession Agenda
Hadoop and Biometric DatabasesHDFS as file storage for petabytes worth of imagesRedundancyDistributionOpens the doors to storing more and more raw images and at higher resolutions18Mahout/MapReduce can be used for indexing and clustering biometric templates to improve overall search speeds
MapReduce can be used for improving feature selection by analyzing the entire database to select features that are most effective in distinguishing identities
Easy to test and deploy new algorithms against all data at scale
N-to-N matching search (special type of Identification search) to cleanse database, find people trying to circumvent the system (Identity Fraud, etc)
Map Reduce can be used for batched searching where latency doesn’t matter
What about low latency searching…?Fuzzy Table: A Solution to Large-scale, Low Latency, Fuzzy MatchingFuzzy Table is a large scale, low latency, distributed fuzzy matching databaseIt enables fast parallel searches against keys that cannot be effectively ordered and that require fuzzy matching such as biometrics identification, large scale image search, large scale audio search, etcIt provides the benefits of Hadoop against problems that require large scale low latency fuzzy matchingHorizontal scalability over commodity hardwareDistributed and parallel computationHigh reliability and redundancyEnabled by Mahout and MapReduce for binning/clustering, re-encoding, and other bulk data operationsWe have found no other solution with these characteristics19
Fuzzy Table Architecture20
Fuzzy Table: Bulk Data Processing ComponentThe centroids from K-means clustering are used to create a “Bin classifier” that is used determine the best bins to search for a given key{Key, Value} records are stored as SequenceFiles in HDFS and the files are stored in such a way to spread these records across the cluster for optimal parallel searchingMapReduce is used for all other bulk or batch data processing including:Re-encoding the raw files into Feature vectorsPerforming large-scale feature evaluation to improve clusteringBatch fuzzy match searching21Mahout’s Canopy Clustering and K-means Clustering are used to partition the data into clusters (referred to as bins) in order to reduce the search space
This makes searching faster because a only small subset of the data must be processed
This concept is based on work done in academia**Efficient Search and Retrieval in Biometric Databases by Amit Mhatre, Srinivas Palla, Sharat Chikkerur and Venu Govindaraju* Efficient fingerprint search based on database clustering. Manhua Liu, Xudong Jiang, Alex Chichung Kot
Bulk Clustering and Real-time Classification22This makes searching for keys faster because only a small subset of the entire dataset needs to be processed using fuzzy matchingThe classifier determines which Bins need to be searched in order to find the most likely matching keys
Fuzzy Table: Data Storage and BinsBins are represented as directories in HDFS containing one or more chunk files (stored as SequenceFiles): /fuzzytable/_table_fingerprints/_bin_000001/_chunk_000001Chunk files contain many {Key, Value} pairs and are a small multiple of the HDFS block size Chunk files are distributed uniformly and randomly across the Data Servers in the clusterThis ensures that the bins are striped across the cluster for optimal parallel searchingAlso, chunk files are replicated across the Data Servers using the replication mechanism in HDFSData Servers only search through chunk files that reside locally and results are returned in real-time as soon as a match is found23
Fuzzy Table: Low Latency Fuzzy Matching ComponentThe low latency component consists of three main partsClient – submit queries for Keys and get back {Key, Value} pairsMaster Server – serve metadata about which Data Servers host  which binsData Servers – Actually perform fuzzy matching searchesData Servers perform fuzzy matching against Keys in order to find {Key, Value} recordsdouble score = fuzzyMatcher.match(key, storedRec.getKey());if(score >= threshold) 	return storedRec;Fuzzy matching searches are performed in parallel across many Data Servers24
Fuzzy Table Query25
Fuzzy Table Query26

Biometric Databases and Hadoop__HadoopSummit2010

  • 1.
    Hadoop for Large-scaleBiometric DatabasesJason TrostCloud Computing TeamBooz | Allen | Hamilton
  • 2.
    This session showsthe application of Hadoop and a large-scale, low-latency distributed fuzzy matching database to BiometricsBackground - what you need to know about BiometricsThe Problem – Big Data and unordered fuzzy matchingA Solution - Hadoop Applications for BiometricsSession Agenda
  • 3.
    Key Takeaways fromthis SessionSearching large-scale Biometric Databases is a hard problemHadoop is a potential solution to this problemHadoop is a great platform for solving all sorts of Big Data and distributed computing problems, even low latency searching3
  • 4.
    4Introduction to BiometricsIrisFaceFingerprintBiometrics:Thescience of establishing the identity of an individual based on the physical, chemical, or behavioral attributes of the person * Modality:Physical or behavioral characteristics of an individual used to establish identity*Template:A symbolic or numeric representation of a modality optimized for storage and/or matchingPalm PrintGaitHand GeometrySignatureEarVoiceKeystroke PatternFacial ThermogramVein Pattern* Handbook of Biometrics. A. Jain, P. Flynn A. Ross.
  • 5.
    Assist with criminalinvestigations (e.g. crime scene fingerprints)Identify individuals entering and leaving the countrySurveillance5Why are Biometrics Important?Enables identifying/authenticating individuals based on “credentials” that are hard to forge
  • 6.
    It has manyuseful applications where establishing identity is important
  • 7.
    Banks and FinancialServices companies are using biometrics to prevent banking and identity fraud
  • 8.
    National governments arecreating biometric databases for law enforcement & security reasons:Enrollment – Add an identity and associated biometric data to the database if they do not already existVerification – Lookup the biometric template for a single individual and determine whether it matches a captured biometric measurement (1-to-1 match)Identification – Determine the identity of an individual given some biometric measurements (1-to-N match)6Biometric Database Operations
  • 9.
    Enrollment: Adding NewIdentities and Biometrics Data to the DatabaseCollect biographic information from an individual such as name, address, SSN, etcCapture biometric data in raw form (e.g. high resolution images)Transform raw biometric data into encoded biometric template (feature vector)Store all this information in the biometrics database7
  • 10.
    Verification: One-to-one MatchingLookupthe biometric template for a particular individualVerify that the stored template and the recently captured template matchFuzzy matching is used for matching the biometric templates8
  • 11.
    Identification: One-to-Many SearchingCapturesome number of raw Biometric features, convert them into Biometric templatesPerform fuzzy matching against large number of stored biometric templates to determine the identityIf latency is not an issue, this is relatively straightforward, especially in MapReduceThis is a hard problem for low latency applications and increasing in complexity as the size of these databases growThere is a speed/accuracy tradeoffThe search space can be reduced using clustering techniques, but this only goes so far9
  • 12.
    What is Fuzzymatching?Fuzzy matching is an operation performed on two objects that determines how similar the objects are to each otherTypically this operation produces a numeric similarity scoreNecessary when data collected from sensor is noisy, and matching needs to be very accurateAlmost all biometric matching algorithms perform some sort of fuzzy matching:Elastic Bunch Graph Matching – face recognition algorithmBOZORTH3 - minutiae based fingerprint matching algorithmIrisCode - iris matching algorithmOther Examples:Image comparisonAudio comparisonVideo comparison10
  • 13.
    Why Fuzzy Matching?Biometricdata is inherently noisy and dirtyConditions are not exactly the same when the original biometric data was captured (Enrollment) and when a new reading occurs (Identification)Different types of cameras and sensors made by different companiesPartial or smudged fingerprints (e.g. crime scene)Changes in skin tone, facial hair, makeupDifferent lighting conditionsAging and skin damageWeight gain, Weight lossInjuryDerived from http://www.flickr.com/photos/glennji/3558118429/. Licensed under Creative Commons11
  • 14.
    Existing Large-scale BiometricDatabasesUS Visitor & Immigrant Status Indicator Technology (US-VISIT)*International travelers’ biometrics (fingerprint and face)Collected at US ports of entry, Immigration Services, and State DepartmentUsed to support the Department of Homeland Security's missionFBI Integrated Automated Fingerprint Identification System, (IAFIS)**Used to solve and prevent crime and catch criminals and terroristsIncludes fingerprints, criminal histories, mug shots, scars and tattoo photos, physical characteristics like height, weight, and hair and eye color, and aliasesAllTrust Networks Paycheck Secure SystemUses fingerprints to support secure check cashingDesigned to stop fraud and speed check cashingPlus many more12* One Team, One Mission, Securing our Homeland. US DHS. ** http://www.fbi.gov/hq/cjisd/iafis/iafis_facts.htm*** http://www.alltrustnetworks.com/News/6Million/tabid/378/Default.aspx
  • 15.
    This session showsthe application of Hadoop and a large-scale, low-latency distributed fuzzy matching database to BiometricsBackground - what you need to know about BiometricsThe Problem – Big Data and unordered fuzzy matchingA Solution - Hadoop Applications for BiometricsSession Agenda
  • 16.
    Combined U.S. governmentbiometric databases are expected to grow to hold billions of identitiesThe DHS’s US-VISIT program has the world’s largest and fastest biometric database (called IDENT) with over 110 million identities and roughly 145,000 identities enrolled or verified daily*From the FBI’s Integrated Automated Fingerprint Identification System (IAFIS) alone, there are 66.5 million identities with 8,000-10,000 more subjects added each day **India is reportedly creating a biometric database to hold the fingerprints and face images for each of its 1.2 billion citizens as part of its Unique Identification Project ***European Union’s Biometric Matching System (EU-BMS) is expected to hold biometric information of 70 Million people to support visa applications, border control, and immigration ****AllTrust Networks Paycheck Secure system has enrolled over 6 Million users and has performed over 70 Million transactions*****13Growth of Biometric Databases* US-VISIT: The world’s largest biometric application. William Graves.** http://www.fbi.gov/hq/cjisd/iafis/iafis_facts.htm*** http://www.business-standard.com/india/news/national-population-register-to-start-biometrics-data-collectiondec/399135/**** http://www.findbiometrics.com/articles/i/5220/***** http://www.alltrustnetworks.com/News/6Million/tabid/378/Default.aspx
  • 17.
    Biometric Databases area Big Data ProblemLarge scale operationsSearching and storing 100 Million to 1 Billion IdentitiesMultiple biometric templates and raw files per identity for multimodal matching (Fingerprints, Faces, and Iris)Typically, new raw files and templates are stored after each Verification and Identification operation because the biometrics readings change over timeRaw Images:(500M Identities x 16KB-300KB* x 10-20) = 1-2 PBBiometric Templates:(500M Identities x 256b-3KB** x 10-20) = 2-27 TB15
  • 18.
    Biometric Databases MustPerform Fuzzy MatchingFuzzy matching techniques must be used because the data is noisy and “dirty”
  • 19.
    Most applications requirelow latency fuzzy match searches in order to be useful
  • 20.
    The objects beingsearched for cannot be ordered effectively to speed up searches
  • 21.
    Clustering techniques canbe used to reduce the search space, but this only goes so far
  • 22.
    Fuzzy match searchesare expensive and typically a large number of objects need to be searched to find a match16
  • 23.
    This session showsthe application of Hadoop and a large-scale, low-latency distributed fuzzy matching database to BiometricsBackground - what you need to know about BiometricsThe Problem – Big Data and unordered fuzzy matchingA Solution - Hadoop Applications for BiometricsSession Agenda
  • 24.
    Hadoop and BiometricDatabasesHDFS as file storage for petabytes worth of imagesRedundancyDistributionOpens the doors to storing more and more raw images and at higher resolutions18Mahout/MapReduce can be used for indexing and clustering biometric templates to improve overall search speeds
  • 25.
    MapReduce can beused for improving feature selection by analyzing the entire database to select features that are most effective in distinguishing identities
  • 26.
    Easy to testand deploy new algorithms against all data at scale
  • 27.
    N-to-N matching search(special type of Identification search) to cleanse database, find people trying to circumvent the system (Identity Fraud, etc)
  • 28.
    Map Reduce canbe used for batched searching where latency doesn’t matter
  • 29.
    What about lowlatency searching…?Fuzzy Table: A Solution to Large-scale, Low Latency, Fuzzy MatchingFuzzy Table is a large scale, low latency, distributed fuzzy matching databaseIt enables fast parallel searches against keys that cannot be effectively ordered and that require fuzzy matching such as biometrics identification, large scale image search, large scale audio search, etcIt provides the benefits of Hadoop against problems that require large scale low latency fuzzy matchingHorizontal scalability over commodity hardwareDistributed and parallel computationHigh reliability and redundancyEnabled by Mahout and MapReduce for binning/clustering, re-encoding, and other bulk data operationsWe have found no other solution with these characteristics19
  • 30.
  • 31.
    Fuzzy Table: BulkData Processing ComponentThe centroids from K-means clustering are used to create a “Bin classifier” that is used determine the best bins to search for a given key{Key, Value} records are stored as SequenceFiles in HDFS and the files are stored in such a way to spread these records across the cluster for optimal parallel searchingMapReduce is used for all other bulk or batch data processing including:Re-encoding the raw files into Feature vectorsPerforming large-scale feature evaluation to improve clusteringBatch fuzzy match searching21Mahout’s Canopy Clustering and K-means Clustering are used to partition the data into clusters (referred to as bins) in order to reduce the search space
  • 32.
    This makes searchingfaster because a only small subset of the data must be processed
  • 33.
    This concept isbased on work done in academia**Efficient Search and Retrieval in Biometric Databases by Amit Mhatre, Srinivas Palla, Sharat Chikkerur and Venu Govindaraju* Efficient fingerprint search based on database clustering. Manhua Liu, Xudong Jiang, Alex Chichung Kot
  • 34.
    Bulk Clustering andReal-time Classification22This makes searching for keys faster because only a small subset of the entire dataset needs to be processed using fuzzy matchingThe classifier determines which Bins need to be searched in order to find the most likely matching keys
  • 35.
    Fuzzy Table: DataStorage and BinsBins are represented as directories in HDFS containing one or more chunk files (stored as SequenceFiles): /fuzzytable/_table_fingerprints/_bin_000001/_chunk_000001Chunk files contain many {Key, Value} pairs and are a small multiple of the HDFS block size Chunk files are distributed uniformly and randomly across the Data Servers in the clusterThis ensures that the bins are striped across the cluster for optimal parallel searchingAlso, chunk files are replicated across the Data Servers using the replication mechanism in HDFSData Servers only search through chunk files that reside locally and results are returned in real-time as soon as a match is found23
  • 36.
    Fuzzy Table: LowLatency Fuzzy Matching ComponentThe low latency component consists of three main partsClient – submit queries for Keys and get back {Key, Value} pairsMaster Server – serve metadata about which Data Servers host which binsData Servers – Actually perform fuzzy matching searchesData Servers perform fuzzy matching against Keys in order to find {Key, Value} recordsdouble score = fuzzyMatcher.match(key, storedRec.getKey());if(score >= threshold) return storedRec;Fuzzy matching searches are performed in parallel across many Data Servers24
  • 37.
  • 38.