IP Library Granted Patent US 7,158,677
Granted Patent B2
US 7,158,677 · App. 10/224,043 · Granted Jan 2, 2007

Matching of discrete curves under affine transforms

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 7,158,677
App. No.
10/224,043
Granted
Jan 2, 2007
Kind
B2
Abstract

System and method for determining the presence of an object of interest from a template image in an acquired target image, despite of or using various types of affine transformations of the object of interest in the target image. A template image discrete curve is determined from the template image corresponding to the object of interest, and a template curve canonical transform calculated based on the curve. The canonical transform is applied to the template curve to generate a mapped template curve. The target image is received, a target image discrete curve determined, and a target curve canonical transform computed based on the target curve canonical transform. The target canonical transform is applied to the target curve to generate a mapped target curve. Geometric pattern matching is performed using the mapped template and target image discrete curves to generate pattern matching results, and the pattern matching results are output.

Claims (173)

1. A method for determining the presence of an object of interest in a target image, the method comprising:

acquiring the target image;

determining a target image discrete curve from the target image, wherein the target image discrete curve corresponds to a respective object in the target image;

determining a target curve transform based on the target image discrete curve;

applying the target curve transform to the target image discrete curve to generate a mapped target image discrete curve;

performing geometric pattern matching on the mapped target image discrete curve and a mapped template image discrete curve, wherein the mapped template image discrete curve corresponds to the object of interest; and

generating pattern matching results based on said geometric pattern matching.

2. The method of claim 1 , further comprising:

normalizing the mapped target image discrete curve prior to said performing geometric pattern matching.

3. The method of claim 1 , wherein said determining the target image discrete curve comprises:

determining an initial discrete curve from the target image, wherein the initial discrete curve corresponds to the respective object in the target image;

normalizing the initial discrete curve; and

re-sampling the initial discrete curve to generate the target image discrete curve.

4. The method of claim 3 , wherein said normalizing and re-sampling the initial discrete curve comprises:

computing an affine arc-length based on the initial discrete curve; and

re-sampling the initial discrete curve based on the computed affine arc-length.

5. The method of claim 1 ,

wherein said applying the target curve transform to the target image discrete curve to generate the mapped target image discrete curve comprises:

applying the target curve transform to each point in the target image discrete curve to generate corresponding points in the mapped target image discrete curve.

6. The method of claim 1 , further comprising:

receiving a template image;

determining a template image discrete curve, wherein the template image discrete curve corresponds to the object of interest in the template image;

determining a template curve transform based on the template image discrete curve; and

applying the template curve transform to the template image discrete curve to generate the mapped template image discrete curve.

7. The method of claim 6 , wherein said determining the template image discrete curve comprises:

determining an initial discrete curve from the template image, wherein the initial discrete curve corresponds to the object of interest in the template image;

normalizing the initial discrete curve; and

re-sampling the initial discrete curve to generate the template image discrete curve.

8. The method of claim 7 , wherein said normalizing and said re-sampling the initial discrete curve comprises:

computing an affine arc-length based on the initial discrete curve; and

re-sampling the initial discrete curve based on the computed affine arc-length.

9. The method of claim 6 , wherein said receiving the template image, said determining the template image discrete curve, said determining the template curve transform based on the template image discrete curve, and said applying the template curve transform to the template image discrete curve are performed prior to said acquiring the target image.

10. The method of claim 6 ,

wherein the target image discrete curve is an affine transformed version of the template image discrete curve; and

wherein, after said applying the template curve transform to the template image discrete curve and applying the target curve transform to the target image discrete curve, the resulting mapped target image discrete curve and mapped target image discrete curve differ by one or more of:

a translation; and

a 2D rotation.

11. The method of claim 6 , wherein said template curve transform and said target curve transform respectively operate to transform the template image discrete curve and the target image discrete curve into a form wherein an affine relationship between the target image discrete curve and the template image discrete curve is converted to a Euclidean relationship between the mapped target image discrete curve and the mapped template image discrete curve.

12. The method of claim 6 , wherein said performing geometric pattern matching on the mapped target image discrete curve and a mapped template image discrete curve comprises:

computing a similarity metric for the mapped template image discrete curve and the mapped target image discrete curve; and

comparing the similarity metric for the mapped template image discrete curve and the mapped target image discrete curve to a match value, wherein the similarity metric having a value of approximately the match value indicates a substantial match between the template image discrete curve and the target image discrete curve.

13. The method of claim 12 , further comprising, prior to said computing a similarity metric, performing:

re-sampling the mapped template image discrete curve uniformly; and

re-sampling the mapped target image discrete curve uniformly.

14. The method of claim 12 , further comprising, prior to said computing a similarity metric, iteratively performing one or more times:

applying the template curve transform to the mapped template image discrete curve;

applying the target curve transform to the mapped target image discrete curve;

normalizing the mapped template image discrete curve;

normalizing the mapped target image discrete curve;

re-sampling the mapped normalized template image discrete curve uniformly; and

re-sampling the mapped normalized target image discrete curve uniformly;

wherein, at each successive iteration, the mapped template and target discrete curves from the preceding iteration are used as the mapped template and target image discrete curves.

15. The method of claim 14 , wherein said iteratively performing one or more times comprises iterating until a stopping condition is met.

16. The method of claim 15 , wherein said stopping condition comprises the value of a computed metric matching or exceeding a threshold value.

17. The method of claim 1 , further comprising:

normalizing the mapped template image discrete curve prior to said performing geometric pattern matching.

18. The method of claim 1 , wherein the target image discrete curve, the mapped target image discrete curve, and the mapped template image discrete curve comprise closed curves.

19. The method of claim 1 , wherein the target image discrete curve, the mapped target image discrete curve, and the mapped template image discrete curve comprise open curves.

20. A computer readable medium which stores program instructions for determining the presence of an object of interest in a target image, wherein the program instructions are executable to perform:

acquiring the target image;

determining a target image discrete curve from the target image, wherein the target image discrete curve corresponds to a respective object in the target image;

determining a target curve transform based on the target image discrete curve;

applying the target curve transform to the target image discrete curve to generate a mapped target image discrete curve;

performing geometric pattern matching on the mapped target image discrete curve and a mapped template image discrete curve, wherein the mapped template image discrete curve corresponds to the object of interest; and

generating pattern matching results based on said geometric pattern matching.

21. The computer readable medium of claim 20 , wherein the program instructions are further executable to perform:

normalizing the mapped target image discrete curve prior to said performing geometric pattern matching.

22. The computer readable medium of claim 21 , wherein said normalizing and re-sampling the initial discrete curve comprises:

computing an affine arc-length based on the initial discrete curve; and

re-sampling the initial discrete curve based on the computed affine arc-length.

23. The computer readable medium of claim 20 , wherein said determining the target image discrete curve comprises:

determining an initial discrete curve from the target image, wherein the initial discrete curve corresponds to the respective object in the target image;

normalizing the initial discrete curve; and

re-sampling the initial discrete curve to generate the target image discrete curve.

24. The computer readable medium of claim 20 , wherein the program instructions are further executable to perform:

receiving a template image;

determining a template image discrete curve, wherein the template image discrete curve corresponds to the object of interest in the template image;

determining a template curve transform based on the template image discrete curve; and

applying the template curve transform to the template image discrete curve to generate the mapped template image discrete curve.

25. The computer readable medium of claim 24 , wherein the program instructions are further executable to perform:

normalizing the mapped template image discrete curve prior to said performing geometric pattern matching.

26. The computer readable medium of claim 25 , wherein said determining the template image discrete curve comprises:

determining an initial discrete curve from the template image, wherein the initial discrete curve corresponds to the object of interest in the template image;

normalizing the initial discrete curve; and

re-sampling the initial discrete curve to generate the template image discrete curve.

27. The computer readable medium of claim 26 , wherein said normalizing and said re-sampling the initial discrete curve comprises:

computing an affine arc-length based on the initial discrete curve; and

re-sampling the initial discrete curve based on the computed affine arc-length.

28. The computer readable medium of claim 24 ,

wherein the target image discrete curve is an affine transformed version of the template image discrete curve; and

wherein, after said applying the template curve transform to the template image discrete curve and applying the target curve transform to the target image discrete curve, the resulting mapped target image discrete curve and mapped target image discrete curve differ by one or more of:

a translation; and

a 2D rotation.

29. The computer readable medium of claim 24 , wherein said template curve transform and said target curve transform respectively operate to transform the template image discrete curve and the template image discrete curve into a form wherein an affine relationship between the target image discrete curve and the template image discrete curve is converted to a Euclidean relationship between the mapped target image discrete curve and the mapped template image discrete curve.

30. The computer readable medium of claim 24 , wherein said performing geometric pattern matching on the mapped target image discrete curve and a mapped template image discrete curve comprises:

computing a similarity metric for the mapped template image discrete curve and the mapped target image discrete curve; and

comparing the similarity metric for the mapped template image discrete curve and the mapped target image discrete curve to a match value, wherein the similarity metric having a value of approximately the match value indicates a substantial match between the template image discrete curve and the target image discrete curve.

31. The computer readable medium of claim 30 , wherein, prior to said computing a similarity metric, the program instructions are further executable to perform:

re-sampling the mapped template image discrete curve uniformly; and

re-sampling the mapped target image discrete curve uniformly.

32. The computer readable medium of claim 30 , wherein, prior to said computing a similarity metric, the program instructions are further executable to iteratively perform one or more times:

applying the template curve transform to the mapped template image discrete curve;

applying the target curve transform to the mapped target image discrete curve;

normalizing the mapped template image discrete curve;

normalizing the mapped target image discrete curve;

re-sampling the mapped template image discrete curve uniformly; and

re-sampling the mapped target image discrete curve uniformly;

wherein, at each successive iteration, the mapped template and target discrete curves from the preceding iteration are used as the mapped template and target image discrete curves.

33. The computer readable medium of claim 20 , wherein the target image discrete curve, the mapped target image discrete curve, and the mapped template image discrete curve comprise closed curves.

34. The computer readable medium of claim 20 , wherein the target image discrete curve, the mapped target image discrete curve, and the mapped template image discrete curve comprise open curves.

35. A system for determining the presence of an object of interest in a target image, the system comprising:

a computer system, comprising:

a processor; and

a memory medium coupled to the processor, wherein the memory medium stores program instructions; and

an input coupled to the memory medium and the processor;

wherein the input is operable to:

receive a target point sequence from a target image; and

wherein the program instructions are executable to:

determine a target sequence transform based on the target point sequence;

apply the target sequence transform to the received target point sequence to generate a mapped target point sequence; and

perform geometric pattern matching using a mapped template point sequence and the mapped target point sequence to generate pattern matching results, wherein the mapped template image point sequence corresponds to the object of interest.

36. The system of claim 35 ,

wherein the input is further operable to:

receive a template point sequence; and

wherein the program instructions are further executable to:

determine a template sequence transform based on the template point sequence; and

apply the template sequence transform to the template point sequence to generate the mapped template point sequence.

37. The system of claim 36 , wherein, after said applying the template sequence transform to the template point sequence, and applying the target sequence transform to the target point sequence, the program instructions are further executable to:

normalize the mapped template point sequence; and

normalize the mapped target point sequence.

38. The system of claim 37 , wherein the program instructions are further executable to iteratively perform the following steps zero or more times:

apply the template sequence transform to the template discrete curve to generate a mapped normalized template image discrete curve;

apply the target sequence transform to the target discrete curve to generate a mapped normalized target discrete curve;

normalize the template discrete curve;

normalize the target discrete curve;

re-sample the mapped template discrete curve uniformly; and

re-sample the mapped normalized target discrete curve uniformly;

wherein, at each successive iteration, the template and target discrete curves from the preceding iteration are used as the template and target discrete curves respectively.

39. The system of claim 36 , wherein, prior to said applying the template sequence transform to the template point sequence, and applying the target sequence transform to the target point sequence, the program instructions are further executable to:

normalize the template point sequence; and

normalize the target point sequence.

40. The system of claim 36 ,

wherein said template point sequence comprises a template discrete curve;

wherein said target point sequence comprises a target discrete curve; and

wherein, prior to said applying the template sequence transform to the template point sequence, and applying the target sequence transform to the target point sequence, the program instructions are further executable to:

re-sample the template discrete curve uniformly; and

re-sample the target discrete curve uniformly.

41. The system of claim 40 , wherein, in said re-sampling the template discrete curve uniformly and said re-sampling the target discrete curve uniformly, the program instructions are further executable to:

compute an affine arc-length based on the template discrete curve;

re-sample the template discrete curve based on the computed affine arc-length;

compute an affine arc-length based on the target discrete curve; and

re-sample the target discrete curve based on the computed affine arc-length.

42. The system of claim 35 , wherein the target image discrete curve, the mapped target image discrete curve, and the mapped template image discrete curve comprise closed curves.

43. The system of claim 35 , wherein the target image discrete curve, the mapped target image discrete curve, and the mapped template image discrete curve comprise open curves.

44. A system for determining the presence of an object of interest in a target image, the system comprising:

means for receiving a template point sequence;

means for determining a template sequence transform based on the template point sequence;

means for applying the template sequence transform to the template point sequence to generate a mapped template point sequence, wherein the mapped template image point sequence corresponds to the object of interest;

means for receiving a target point sequence;

means for determining a target sequence transform based on the template point sequence;

means for applying the target sequence transform to the target point sequence to generate a mapped target point sequence; and

means for performing geometric pattern matching using the mapped template point sequence and the mapped target point sequence; and

means for generating pattern matching results based on said geometric pattern matching.

45. A method for matching discrete curves, comprising:

determining a template transform based on a template image;

determining one or more target transforms based respectively on one or more target images;

performing geometric pattern matching on the one or more target images using the template transform and the one or more target transforms to generate pattern matching results; and

outputting the pattern matching results.

46. The method of claim 45 , wherein said performing geometric pattern matching comprises:

applying the template transform to a template image discrete curve from the template image to generate a mapped template image discrete curve;

applying the respective target transform to each of the one or more target image discrete curves to generate a corresponding one or more mapped target image discrete curves;

computing a similarity metric for the mapped template image discrete curve and each of the one or more mapped target image discrete curves; and

comparing the similarity metric for the mapped template image discrete curve and each of the one or more mapped target image discrete curves to a match value, wherein each respective similarity metric having a value of approximately the match value indicates a substantial match between the template image discrete curve and the respective target image discrete curve.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION
Reel/Frame 065231/0466 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001) Recorded Oct 13, 2023
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
Reel/Frame 065653/0463 →
SECURITY INTEREST Recorded Jun 18, 2021
From: NATIONAL INSTRUMENTS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057280/0028 →
SECURITY INTEREST Recorded Jun 14, 2020
From: NATIONAL INSTRUMENTS CORPORATION; PHASE MATRIX, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052935/0001 →