# US 12,223,708 B2 · Hardware acceleration of fingerprint data processing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,708 B2
- Document ID: US12223708B2
- Status: Granted
- Kind: B2
- Application number: 18/644,660
- Filed: 2024-04-24
- Published: 2024-12-19
- Granted: 2025-02-11
- Earliest claimed: 2023-06-13
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Firas Sammoura; James Brooks Miller
- Web page: https://patentgrep.com/patent/US12223708B2

## CPC

- G06V 10/955: {using specific electronic processors}
- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- G06V 10/443: {by matching or filtering}
- G06V 40/1318: {using electro-optical elements or layers, e.g. electroluminescent sensing}
- G06V 40/1353: {Extracting features related to minutiae or pores}
- G06V 40/1371: {Matching features related to minutiae or pores}
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method includes identifying, within an image that represents a fingerprint, a plurality of keypoints. The method also includes determining a plurality of pixel vectors by transforming, for each respective keypoint, a corresponding two-dimensional (2D) array of pixel values associated with the respective keypoint into a corresponding pixel vector, and obtaining a plurality of filter vectors that represent, for each respective filter of a plurality of filters, a transformation of a corresponding 2D array of filter values of the respective filter into a corresponding filter vector. The method additionally includes convolving the plurality of keypoints with the plurality of filters by multiplying, using a tensor processing hardware, a pixel matrix formed by the plurality of pixel vectors and a filter matrix formed by the plurality of filter vectors, and determining, based on the convolving, a representation of the fingerprint.

## Claims

### Claim 1

A computer-implemented method comprising:
determining a representation of a fingerprint depicted in an image;
determining a plurality of match scores comprising, for each respective enrolled fingerprint of a plurality of enrolled fingerprints, a corresponding match score between the fingerprint and the respective enrolled fingerprint, wherein the plurality of match scores are determined based on comparing the representation of the fingerprint to a corresponding representation of the respective enrolled fingerprint, and wherein the determining the plurality of match scores comprises:
determining, based on a number of the plurality of enrolled fingerprints, a clock frequency at which to operate a processor while determining the plurality of match scores such that determination of the plurality of match scores takes no more than a predefined maximum amount of time; and
operating the processor at the clock frequency while using the processor to determine the plurality of match scores; and
determining, based on the corresponding match score for each respective enrolled fingerprint, whether the fingerprint matches at least one of the plurality of enrolled fingerprints.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein determining the clock frequency comprises:
determining the clock frequency further based on a number of clock cycles consumed per enrolled fingerprint.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein determining the clock frequency comprises:
determining the clock frequency further based on a scheduled workload of the processor and one or more clock frequencies at which the processor is configured to operate.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the clock frequency is determined such that determination of the plurality of match scores takes an amount of time that is no more than the predefined maximum amount of time and no less than a predefined minimum amount of time.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein determining the plurality of match scores comprises:
partitioning the plurality of enrolled fingerprints into a plurality of fingerprint subsets;
assigning each respective fingerprint subset of the plurality of fingerprint subsets to a corresponding processor core of a plurality of processor cores of the processor such that determination of the plurality of match scores takes no more than the predefined maximum amount of time; and
determining, for each respective fingerprint subset of the plurality of fingerprint subsets, a corresponding score subset of the plurality of match scores using the corresponding processor core.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, wherein the plurality of processor cores are configured to operate at different clock frequencies, and wherein determining the clock frequency comprises:
determining, for each respective processor core, a corresponding clock frequency at which to operate the respective processor core based on a number of enrolled fingerprints in the respective fingerprint subset assigned to the respective processor core.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the processor comprises a general-purpose processor configured to compare the representation of the fingerprint to the corresponding representation of the respective enrolled fingerprint by executing software instructions.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the processor comprises fingerprint matching hardware configured to compare the representation of the fingerprint to the corresponding representation of the respective enrolled fingerprint using hardware components.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the processor is spatially co-located with a fingerprint sensor configured to generate the image.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein determining the representation of the fingerprint comprises convolving at least part of the image with a plurality of polar shapelet filters.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1, wherein determining the representation of the fingerprint comprises:
identifying a plurality of keypoints within the image;
determining a plurality of pixel vectors by transforming, for each respective keypoint of the plurality of keypoints, a corresponding two-dimensional (2D) array of pixel values associated with the respective keypoint into a corresponding pixel vector;
obtaining a plurality of filter vectors that represent, for each respective filter of a plurality of filters, a transformation of a corresponding 2D array of filter values of the respective filter into a corresponding filter vector;
convolving the plurality of keypoints with the plurality of filters by multiplying a pixel matrix formed by the plurality of pixel vectors and a filter matrix formed by the plurality of filter vectors; and
determining, based on convolving the plurality of keypoints with the plurality of filters, the representation of the fingerprint.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11, wherein convolving the plurality of keypoints with the plurality of filters comprises multiplying the pixel matrix and the filter matrix using a tensor processing hardware configured to perform matrix multiplication using hardware components.

### Claim 13 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining, based on the corresponding match score for at least one enrolled fingerprint of the plurality of enrolled fingerprints, whether to unlock one or more parts of a computing device.

### Claim 14 (depends on 1)

The computer-implemented method of claim 1, wherein determining the plurality of match scores comprises comparing the representation of the fingerprint to the corresponding representation of the respective enrolled fingerprint using a sample consensus algorithm.

### Claim 15 (depends on 1)

The computer-implemented method of claim 1, wherein the corresponding match score represents a similarity between the fingerprint and the respective enrolled fingerprint.

### Claim 16

A system comprising:
one or more processors configured to perform operations comprising:
determining a representation of a fingerprint depicted in an image;
determining a plurality of match scores comprising, for each respective enrolled fingerprint of a plurality of enrolled fingerprints, a corresponding match score between the fingerprint and the respective enrolled fingerprint, wherein the plurality of match scores are determined based on comparing the representation of the fingerprint to a corresponding representation of the respective enrolled fingerprint, and wherein the determining the plurality of match scores comprises:
determining, based on a number of the plurality of enrolled fingerprints, a clock frequency at which to operate a processor of the one or more processor while determining the plurality of match scores such that determination of the plurality of match scores takes no more than a predefined maximum amount of time; and
operating the processor at the clock frequency while using the processor to determine the plurality of match scores; and
determining, based on the corresponding match score for each respective enrolled fingerprint, whether the fingerprint matches at least one of the plurality of enrolled fingerprints.

### Claim 17 (depends on 16)

The system of claim 16, wherein determining the clock frequency comprises:
determining the clock frequency further based on a number of clock cycles consumed per enrolled fingerprint.

### Claim 18 (depends on 16)

The system of claim 16, wherein the clock frequency is determined such that determination of the plurality of match scores takes an amount of time that is no more than the predefined maximum amount of time and no less than a predefined minimum amount of time.

### Claim 19 (depends on 16)

The system of claim 16, wherein determining the plurality of match scores comprises:
partitioning the plurality of enrolled fingerprints into a plurality of fingerprint subsets;
assigning each respective fingerprint subset of the plurality of fingerprint subsets to a corresponding processor core of a plurality of processor cores of the processor such that determination of the plurality of match scores takes no more than the predefined maximum amount of time; and
determining, for each respective fingerprint subset of the plurality of fingerprint subsets, a corresponding score subset of the plurality of match scores using the corresponding processor core.

### Claim 20

A non-transitory computer-readable medium having stored thereon instructions that, when executed by a computing system, cause the computing system to perform operations comprising:
determining a representation of a fingerprint depicted in an image;
determining a plurality of match scores comprising, for each respective enrolled fingerprint of a plurality of enrolled fingerprints, a corresponding match score between the fingerprint and the respective enrolled fingerprint, wherein the plurality of match scores are determined based on comparing the representation of the fingerprint to a corresponding representation of the respective enrolled fingerprint, and wherein the determining the plurality of match scores comprises:
determining, based on a number of the plurality of enrolled fingerprints, a clock frequency at which to operate a processor while determining the plurality of match scores such that determination of the plurality of match scores takes no more than a predefined maximum amount of time; and
operating the processor at the clock frequency while using the processor to determine the plurality of match scores; and
determining, based on the corresponding match score for each respective enrolled fingerprint, whether the fingerprint matches at least one of the plurality of enrolled fingerprints.
