IP Library Granted Patent US 9,842,271
Granted Patent B2
US 9,842,271 · App. 14/283,603 · Granted Dec 12, 2017

Corner detection

Inventors: Cormac Brick (Dublin, IE); Brendan Barry (Dublin, IE); Fergal Connor (Dundalk, IE); David Moloney (Dublin, IE)
Assignee: Linear Algebra Technologies Limited
G06K9/4604G06K9/00986
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 9,842,271
App. No.
14/283,603
Granted
Dec 12, 2017
Kind
B2
Abstract

The present application provides a method of corner detection and an image processing system for detecting corners in an image. The preferred implementation is in software using enabling and reusable hardware features in the underlying vector processor architecture. The advantage of this combined software and programmable processor datapath hardware is that the same hardware used for the FAST algorithm can also be readily applied to a variety of other computational tasks, not limited to image processing.

Claims (60)

1. An image processing method for determining whether a candidate pixel within an image is a corner, the method comprising the steps of:

selecting pixels in a pattern around the candidate pixel;

performing a first determination that comprises determining a first number of pixels within the selected pixels which exceed the value of the candidate pixel by a threshold value;

performing a second determination that comprises determining a second number of pixels within the selected pixels which are less than the value of the candidate pixel by the threshold value;

using the first determination or the second determination to construct a vector entry where the bits in the vector entry correspond to the individual determinations for the selected pixels; and

performing a comparison between the vector entry and a series of predefined patterns representative of a corner by performing a bitwise AND operation between the vector entry and each of the individual patterns of the series, wherein a corner is identified by the vector entry matching any of the patterns in the series.

2. The image processing method according to claim 1 , wherein the comparison between the series of patterns and the vector entry is only performed when the first number of pixels or the second number of pixels exceeds a predefined number N.

3. The image processing method according to claim 2 , wherein an election is made between the use of the results from the first determination and the second determination for use in the construction of the vector entry based on whether the first number of pixels or the second number of pixels exceeded the predefined number N.

4. The image processing method according to claim 1 , wherein each pattern in the series represents a different placement of a predefined number of contiguous bits in the pattern.

5. The image processing method according to claim 1 , wherein the number of selected pixels in the pattern around the candidate pixel is 16.

6. The image processing method according to claim 1 , further comprising:

performing a vector score for the candidate corner pixel representing the absolute difference between the candidate pixel and surrounding individual pixels, wherein a mask is used to eliminate surrounding pixels when the difference between the surrounding pixel and the candidate pixel is less than the threshold value.

7. The image processing method according to claim 6 , wherein the vector-score is employed to preferentially select between a close group of candidate corner pixels.

8. The image processing method according to claim 1 , further comprising:

prior to performing the first determination and the second determination, performing a pre-screening process, the pre-screening process comprising:

performing individual comparisons between the candidate pixel and a non-contiguous set of pixels to determine whether each individual pixel is within a threshold value of the candidate pixel, and

performing a count of the number of pixels that are within the threshold value of the candidate pixel;

wherein performing the first determination and the second determination only occurs if the count exceeds a minimum value.

9. The image processing method according to claim 1 , further comprising:

prior to performing the first determination and the second determination, performing comparisons between the candidate pixel and a non-contiguous set of pixels about the candidate pixel, wherein the first determination and the second determination is performed based on the result of the comparison.

10. The image processing method according to claim 1 , further comprising:

reducing the size of a candidate set of pixels in an image for corner detection, by performing a test on each candidate pixel in the candidate set, the test comprising:

performing comparisons between each candidate pixel and a non-contiguous set of pixels about the pixel,

performing a count of the result of the comparisons for each candidate pixel, and

eliminating those candidate pixels from the candidate set having a count less than a threshold to generate a reduced candidate set; and

selectively performing all steps of claim 1 on each candidate pixel in the reduced candidate set.

11. The processor being arranged to operate upon data in vector form, wherein the processor is configured to perform the method of claim 1 .

12. An image processing method for determining whether a candidate pixel within an image is a corner, the method comprising the steps of:

selecting pixels in a pattern around the candidate pixel;

performing individual comparisons between the candidate pixel and a non-contiguous set of pixels to determine whether each individual pixel is within a threshold value of the candidate pixel;

performing a count of the number of pixels that are within the threshold value of the candidate pixel; and

if the count exceeds a minimum value:

performing a first determination that comprises determining a first number of pixels within the selected pixels which exceed the value of the candidate pixel by a threshold value,

performing a second determination that comprises determining a second number of pixels within the selected pixels which are less than the value of the candidate pixel by the threshold value,

using the first determination or the second determination to construct a vector entry where the bits in the vector entry correspond to the individual determinations for the selected pixels, and

performing a comparison between the vector entry and a series of predefined patterns representative of a corner, wherein a corner is identified by the vector entry matching any of the patterns in the series.

13. The image processing method according to claim 12 , wherein the comparison between the series of patterns and the vector entry is only performed when the first number of pixels or the second number of pixels exceeds a predefined number N.

14. The image processing method according to claim 13 , wherein an election is made between the use of the results from the first determination and the second determination for use in the construction of the vector entry based on whether the first number of pixels or the second number of pixels exceeded the predefined number N.

15. The image processing method according to claim 12 , wherein each pattern in the series represents a different placement of a predefined number of contiguous bits in the pattern.

16. The image processing method according to claim 12 , wherein the number of selected pixels in the pattern around the candidate pixel is 16.

17. The image processing method according to claim 12 , further comprising:

performing a vector score for the candidate corner pixel representing the absolute difference between the candidate pixel and surrounding individual pixels, wherein a mask is used to eliminate surrounding pixels when the difference between the surrounding pixel and the candidate pixel is less than the threshold value.

18. The image processing method according to claim 17 , wherein the vector-score is employed to preferentially select between a close group of candidate corner pixels.

19. An image processing method for determining whether at least one pixel of a candidate set within an image is a corner, the method comprising the steps of:

performing comparisons between each candidate pixel of the candidate set and a non-contiguous set of pixels about the pixel;

performing a count of the result of the comparisons for each candidate pixel;

eliminating those candidate pixels from the candidate set having a count less than a threshold to generate a reduced candidate set;

selecting pixels in a pattern around a candidate pixel of the reduced candidate set;

performing a first determination that comprises determining a first number of pixels within the selected pixels which exceed the value of the candidate pixel by a threshold value;

performing a second determination that comprises determining a second number of pixels within the selected pixels which are less than the value of the candidate pixel by the threshold value;

using the first determination or the second determination to construct a vector entry where the bits in the vector entry correspond to the individual determinations for the selected pixels; and

performing a comparison between the vector entry and a series of predefined patterns representative of a corner, wherein a corner is identified by the vector entry matching any of the patterns in the series.

20. An image processing method for determining whether a candidate pixel within an image is a corner, the method comprising the steps of:

selecting pixels in a pattern around the candidate pixel;

performing a first determination that comprises determining a first number of pixels within the selected pixels which exceed the value of the candidate pixel by a threshold value;

performing a second determination that comprises determining a second number of pixels within the selected pixels which are less than the value of the candidate pixel by the threshold value;

using the first determination or the second determination to construct a vector entry where the bits in the vector entry correspond to the individual determinations for the selected pixels; and

performing a comparison between the vector entry and a series of predefined patterns representative of a corner, wherein a corner is identified by the vector entry matching any of the patterns in the series,

wherein the comparison between the series of patterns and the vector entry is only performed when the first number of pixels or the second number of pixels exceeds a predefined number N,

wherein an election is made between the use of the results from the first determination and the second determination for use in the construction of the vector entry based on whether the first number of pixels or the second number of pixels exceeded the predefined number N.

Assignments (2)
MERGER Recorded Oct 26, 2022
From: LINEAR ALGEBRA TECHNOLOGIES LIMITED
To: MOVIDIUS LIMITED
Reel/Frame 061546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2014
From: BRICK, CORMAC; BARRY, BRENDAN; CONNOR, FERGAL; MOLONEY, DAVID
To: LINEAR ALGEBRA TECHNOLOGIES LIMITED
Reel/Frame 032941/0331 →
Priority Claims (1)
GB 1309287.9 · May 23, 2013 · national
Continuity (1)
Related Publication 20140348431A1 · Nov 27, 2014