IP Library Granted Patent US 10,679,092
Granted Patent B2
US 10,679,092 · App. 15/643,308 · Granted Jun 9, 2020

Fast curve matching for tattoo recognition and identification

Inventors: Darrell Hougen (Littleton, CO); Peter Zhen-Ping Lo (Mission Viejo, CA)
Assignee: MorphoTrak, LLC
G06K9/4638G06K9/00885G06K9/6202G06K9/6211G06K9/6215
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,679,092
App. No.
15/643,308
Granted
Jun 9, 2020
Kind
B2
Abstract

Some implementations of the systems and techniques described include a tattoo recognition system that is capable of improving the accuracy and efficiency associated with matching edge curves extracted from tattoo images, which are typically performed during a tattoo matching operation. The system can perform a matching operation in two stages—a feature extraction stage and a matching stage. In the first stage, the system extracts one or more edge curves from the tattoo image. In the second stage, the system performs matching using a two-step comparison that compares features of the extracted edge curves.

Claims (83)

1. A method performed by one or more computers, the method comprising:

obtaining data indicating an edge curve extracted from a tattoo image;

generating a sequence of multiple polygonal representations for the edge curve, wherein each polygonal representation included in the sequence of multiple polygonal representations (i) reflects a geometric approximation of the edge curve, and (ii) has an identifier that identifies a position of a polygonal representation within the sequence of multiple polygonal representations, and (iii) has a greater number of vertices than a next sequential polygonal representation within the sequence of multiple polygonal representations;

identifying connected line segment sets that include each of the multiple polygonal representations;

generating, for each of the identified connected line segment sets, a feature vector of features characterizing a portion of particular the edge curve that corresponds to a particular line segment set included in the multiple polygonal representations; and

storing the one or more feature vectors for use in a tattoo matching operation.

2. The method of claim 1 , wherein generating the sequence of multiple polygonal representations for the edge curve comprises:

identifying two or more vertices along a pathway corresponding to a geometric approximation of the edge curve; and

generating line segment sets between successive vertices identified along the pathway.

3. The method of claim 1 , wherein generating the sequence of multiple polygonal representations for the edge curve comprises:

obtaining a first polygonal representation generated for the edge curve, the first polygonal representation comprising two or more identified vertices along a pathway corresponding to a geometric approximation of the edge curve;

selecting a vertex, from among the two or more identified vertices of the first polygonal representation, to remove from the first polygonal representation; and

generating a second polygonal representation for the edge curve based on removing the selected vertex from among the two or more identified vertices of the first polygonal representation.

4. The method of claim 3 , wherein selecting the vertex to remove from the first polygonal representation comprises:

computing a distance for each line segment set defined by two successive vertices along the pathway corresponding to the geometric approximation of the edge curve; and

selecting the vertex to remove from the first polygonal representation based at least on the computed distances for each line segment set defined by two successive vertices along the pathway corresponding to the geometric approximation of the edge curve.

5. The method of claim 4 , further comprising:

computing, for each of the two or more identified vertices of the first polygonal representation, an error metric associated with removing a vertex from the first polygonal representation;

determining a vertex from among the two or more identified vertices that has a lowest-value error metric; and

wherein the vertex that is selected to be removed from the first polygonal representation is the vertex that is determined to have the lowest-value error metric.

6. The method of claim 3 , further comprising:

determining a number of vertices included a polygonal representation that is the first polygonal representation within the sequence of multiple polygonal representations;

for each polygonal representation included within the sequence of multiple polygonal representations:

identifying, for each of the vertices included in a polygonal representation, an x-coordinate and a y-coordinate of a vertex within the tattoo image, and

determining a number of vertices included in the polygonal representation;

storing the number of vertices included the polygonal representation that is the first polygonal representation within the sequence of multiple polygonal representations, and

storing, for each polygonal representation included within the sequence of multiple polygonal representations, (i) the x-coordinate and y-coordinate identified for each of the vertices included in the polygonal representations, and (ii) the determined number of vertices included in the polygonal representation.

7. A system comprising:

one or more computers; and

one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

obtaining data indicating an edge curve extracted from a tattoo image;

generating a sequence of multiple polygonal representations for the edge curve, wherein each polygonal representation included in the sequence of multiple polygonal representations (i) reflects a geometric approximation of the edge curve, and (ii) has an identifier that identifies a position of a polygonal representation within the sequence of multiple polygonal representations, and (iii) has a greater number of vertices than a next sequential polygonal representation within the sequence of multiple polygonal representations;

identifying connected line segment sets that include each of the multiple polygonal representations;

generating, for each of the identified connected line segment sets, a feature vector of features characterizing a portion of the edge curve that corresponds to a particular line segment set included in the multiple polygonal representations; and

storing the one or more feature vectors for use in a tattoo matching operation.

8. The system of claim 7 , wherein generating the sequence of multiple polygonal representations for the edge curve comprises:

identifying two or more vertices along a pathway corresponding to a geometric approximation of the edge curve; and

generating line segment sets between successive vertices identified along the pathway.

9. The system of claim 7 , wherein generating the sequence of multiple polygonal representations for the edge curve comprises:

obtaining a first polygonal representation generated for the edge curve, the first polygonal representation comprising two or more identified vertices along a pathway corresponding to a geometric approximation of the edge curve;

selecting a vertex, from among the two or more identified vertices of the first polygonal representation, to remove from the first polygonal representation; and

generating a second polygonal representation for the edge curve based on removing the selected vertex from among the two or more identified vertices of the first polygonal representation.

10. The system of claim 9 , wherein selecting the vertex to remove from the first polygonal representation comprises:

computing a distance for each line segment set defined by two successive vertices along the pathway corresponding to the geometric approximation of the edge curve; and

selecting the vertex to remove from the first polygonal representation based at least on the computed distances for each line segment set defined by two successive vertices along the pathway corresponding to the geometric approximation of the edge curve.

11. The system of claim 10 , wherein the operations further comprise:

computing, for each of the two or more identified vertices of the first polygonal representation, an error metric associated with removing a vertex from the first polygonal representation;

determining a vertex from among the two or more identified vertices that has a lowest-value error metric; and

wherein the vertex that is selected to be removed from the first polygonal representation is the vertex that is determined to have the lowest-value error metric.

12. A non-transitory computer-readable storage device encoded with computer program instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:

obtaining data indicating an edge curve extracted from a tattoo image;

generating a sequence of multiple polygonal representations for the edge curve, wherein each polygonal representation included in the sequence of multiple polygonal representations (i) reflects a geometric approximation of the edge curve, and (ii) has an identifier that identifies a position of a polygonal representation within the sequence of multiple polygonal representations, and (iii) has a greater number of vertices than a next sequential polygonal representation within the sequence of multiple polygonal representations;

identifying connected line segment sets that include each of the multiple polygonal representations;

generating, for each of the identified connected line segment sets, a feature vector of features characterizing a portion of the edge curve that corresponds to a particular line segment set included in the multiple polygonal representations; and

storing the one or more feature vectors for use in a tattoo matching operation.

13. The non-transitory computer-readable storage device of claim 12 , wherein generating the sequence of multiple polygonal representations for the edge curve comprises:

identifying two or more vertices along a pathway corresponding to a geometric approximation of the edge curve; and

generating line segment sets between successive vertices identified along the pathway.

14. The non-transitory computer-readable storage device of claim 12 , wherein generating the sequence of multiple polygonal representations for the edge curve comprises:

obtaining a first polygonal representation generated for the edge curve, the first polygonal representation comprising two or more identified vertices along a pathway corresponding to a geometric approximation of the edge curve;

selecting a vertex, from among the two or more identified vertices of the first polygonal representation, to remove from the first polygonal representation; and

generating a second polygonal representation for the edge curve based on removing the selected vertex from among the two or more identified vertices of the first polygonal representation.

15. The non-transitory computer-readable storage device of claim 14 , wherein selecting the vertex to remove from the first polygonal representation comprises:

computing a distance for each line segment set defined by two successive vertices along the pathway corresponding to the geometric approximation of the edge curve; and

selecting the vertex to remove from the first polygonal representation based at least on the computed distances for each line segment set defined by two successive vertices along the pathway corresponding to the geometric approximation of the edge curve.

16. The non-transitory computer-readable storage device of claim 15 , wherein the operations further comprise:

computing, for each of the two or more identified vertices of the first polygonal representation, an error metric associated with removing a vertex from the first polygonal representation;

determining a vertex from among the two or more identified vertices that has a lowest-value error metric; and

wherein the vertex that is selected to be removed from the first polygonal representation is the vertex that is determined to have the lowest-value error metric.

17. A method comprising:

obtaining data indicating an edge curve extracted from a tattoo image;

obtaining a first polygonal representation generated for the edge curve, the first polygonal representation comprising two or more identified vertices along a pathway corresponding to a geometric approximation of the edge curve;

selecting a vertex, from among the two or more identified vertices of the first polygonal representation, to remove from the first polygonal representation;

generating a second polygonal representation for the edge curve based on removing the selected vertex from among the two or more identified vertices of the first polygonal representation;

identifying connected line segment sets that include each of the first polygonal representation and the second polygonal representation;

generating, for each of the identified connected line segment sets, a feature vector of features characterizing a portion of the edge curve that corresponds to a particular line segment set included in the connected line segment sets; and

storing the one or more feature vectors for use in a tattoo matching operation.

18. The method of claim 17 , wherein generating the second polygonal representation for the edge curve comprises:

identifying two or more vertices along a pathway corresponding to a geometric approximation of the edge curve; and

generating line segment sets between successive vertices identified along the pathway.

19. The method of claim 17 , wherein selecting the vertex to remove from the first polygonal representation comprises:

computing a distance for each line segment set defined by two successive vertices along the pathway corresponding to the geometric approximation of the edge curve; and

selecting the vertex to remove from the first polygonal representation based at least on the computed distances for each line segment set defined by two successive vertices along the pathway corresponding to the geometric approximation of the edge curve.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Mar 28, 2024
From: MORPHOTRAK, LLC; IDEMIA IDENTITY & SECURITY USA LLC
To: IDEMIA IDENTITY & SECURITY USA LLC
Reel/Frame 066928/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2017
From: HOUGEN, DARRELL; LO, PETER ZHEN-PING
To: MORPHOTRAK, LLC
Reel/Frame 044119/0023 →
Continuity (1)
Related Publication 20190012561A1 · Jan 10, 2019