IP Library Granted Patent US 11,062,165
Granted Patent B2
US 11,062,165 · App. 15/835,926 · Granted Jul 13, 2021

Corner detection

Inventors: Cormac Brick (Dublin, IE); Brendan Barry (Dublin, IE); Fergal Connor (Dundalk, IE); David Moloney (Dublin, IE)
Assignee: Movidius 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 11,062,165
App. No.
15/835,926
Granted
Jul 13, 2021
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 (32)

1. An apparatus to detect a corner in an image, the apparatus comprising:

a vector processor to generate a pattern vector including first elements representative of first pixels arranged in a pattern around a candidate pixel;

a hardware compare move unit (CMU) to:

generate a comparison vector including respective elements representative of comparisons between respective ones of the first elements and the candidate pixel; and

when a count of bits of a scalar value representative of the comparison vector satisfies a threshold, generate a replication vector having respective bits corresponding to the scalar value; and

a hardware vector arithmetic unit (VAU) to execute a parallel AND vector operation on the replication vector and one or more corner templates to determine whether there is a match between the replication vector and the one or more corner templates.

2. The apparatus as defined in claim 1 , wherein the first pixels at least partially surround the candidate pixel.

3. The apparatus as defined in claim 2 , wherein the first pixels at least partially surrounding the candidate pixel form a Bresenham circle.

4. The apparatus as defined in claim 1 , wherein the hardware CMU is to generate the scalar value representative of the comparison vector.

5. The apparatus as defined in claim 1 , wherein the scalar value includes at least one of a 16-bit value or a hexadecimal value.

6. The apparatus as defined in claim 1 , wherein respective elements of the replication vector are the scalar value.

7. The apparatus as defined in claim 6 , wherein the hardware VAU is to compare the respective elements of the replication vector to respective scalar values of the one or more corner templates.

8. The apparatus as defined in claim 1 , wherein the threshold is a first threshold, and the hardware CMU is to generate the comparison vector by identifying pixels that satisfy a second threshold.

9. The apparatus as defined in claim 8 , wherein the hardware CMU is to clamp the second threshold between a value of 0 and 255.

10. A computer-readable storage device comprising instructions that, when executed, cause one or more processors to, at least:

generate a pattern vector including first elements representative of first pixels arranged in a pattern around a candidate pixel;

generate a comparison vector including respective elements representative of comparisons between respective ones of the first elements and the candidate pixel;

when a count of bits of a scalar value representative of the comparison vector satisfies a threshold, generate a replication vector having respective bits corresponding to the scalar value; and

execute one or more parallel AND vector operations on the replication vector and one or more corner templates to determine whether there is a match between the replication vector and the one or more corner templates.

11. The computer-readable storage device as defined in claim 10 , wherein the instructions, when executed, further cause the one or more processors to identify that the first pixels at least partially surround the candidate pixel.

12. The computer-readable storage device as defined in claim 11 , wherein the instructions, when executed, further cause the one or more processors to identify that the first pixels at least partially surrounding the candidate pixel form a Bresenham circle.

13. The computer-readable storage device as defined in claim 10 , wherein the instructions, when executed, further cause the one or more processors to generate the scalar value representative of the comparison vector.

14. The computer-readable storage device as defined in claim 10 , wherein the instructions, when executed, further cause the one or more processors to represent the scalar value as at least one of a 16-bit value or a hexadecimal value.

15. The computer-readable storage device as defined in claim 10 , wherein the instructions, when executed, further cause the one or more processors to replicate the scalar value as respective elements of the replication vector.

16. The computer-readable storage device as defined in claim 15 , wherein the instructions, when executed, further cause the one or more processors to compare the respective elements of the replication vector to respective scalar values of the one or more corner templates.

17. The computer-readable storage device as defined in claim 10 , wherein the instructions, when executed, further cause the one or more processors to generate the comparison vector by identifying pixels that satisfy a second threshold.

18. The computer-readable storage device as defined in claim 17 , wherein the instructions, when executed, further cause the one or more processors to clamp the second threshold between a value of 0 and 255.

19. A computer-implemented method to detect a corner in an image, the method comprising:

generating, by executing an instruction with at least one processor, a comparison vector including respective elements representative of comparisons between respective ones of first elements of a pattern vector and a candidate pixel;

when a count of bits of a scalar value representative of the comparison vector satisfies a threshold, generating, by executing an instruction with the at least one processor, a replication vector having respective bits corresponding to the scalar value; and

executing a parallel AND vector operation on the replication vector and one or more corner templates with the at least one processor to determine whether there is a match between the replication vector and the one or more corner templates.

20. The computer-implemented method as defined in claim 19 , wherein the first elements of the pattern vector are representative of first pixels arranged in a pattern that at least partially surround the candidate pixel.

Assignments (2)
MERGER Recorded May 26, 2021
From: LINEAR ALGEBRA TECHNOLOGIES LIMITED
To: MOVIDIUS LIMITED
Reel/Frame 056360/0768 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2017
From: BRICK, CORMAC; BARRY, BRENDAN; CONNOR, FERGAL; MOLONEY, DAVID
To: LINEAR ALGEBRA TECHNOLOGIES LIMITED
Reel/Frame 044340/0092 →
Priority Claims (1)
GB 1309287 · May 23, 2013 · national
Continuity (2)
Continuation 14283603 · May 21, 2014
Related Publication 20180101746A1 · Apr 12, 2018