Efficient SIMD Implementation of 3x3 Non Maxima Suppression of sparse 2D image feature points
First Claim
1. A computer implemented method of transforming a list of feature points of an image into a list of maxima suppressed feature points of the image, comprising the steps of:
- receiving an original list of feature points including x and y coordinates and a reliability score of the feature point determination for each feature point, the feature points sorted of the original list in image raster scan order;
initializing a working buffer having a number of entries equal to a width of the image, each entry capable of storing a combined y coordinate and reliability score of a feature point of the original list;
scanning the original list in a forward direction from a first feature point to a final feature point, for each feature point includingcomparing a combined y coordinate and reliability score of a current feature point with a combined y coordinate and reliability score of an entry of the working buffer having a location corresponding to an x coordinate one less than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential left neighbor of the current feature point,comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one less than the x coordinate of the current feature point thereby determining whether to suppress said current feature point dependent upon results of said comparison for a potential top left neighbor of the current feature point,comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate equal to the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential top neighbor of the current feature point,comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one more than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential top right neighbor of the current feature point, andstoring the combined y coordinate and reliability score of the current feature point in an entry within the working buffer corresponding to the x coordinate of the current feature point;
re-initializing the working buffer;
scanning the original list in a backward direction from a final feature point to a first feature point, for each feature point includingcomparing a combined y coordinate and reliability score of a current feature point with a combined y coordinate and reliability score of an entry of the working buffer having a location corresponding to an x coordinate one more than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential right neighbor of the current feature point,comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one more than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential bottom right neighbor of the current feature point,comparing a combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate equal to the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential bottom neighbor of the current feature point,comparing a combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one less than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential bottom left neighbor of the current feature point, andstoring the combined y coordinate and reliability score of the current feature point in an entry within the working buffer corresponding to the x coordinate of the current feature point; and
forming a list of maxima suppressed feature points of the image by including feature points from the original list not determined to be suppressed by any said comparison steps.
1 Assignment
0 Petitions
Accused Products
Abstract
This invention transforms a list of feature points in raster scan order into a list of maxima suppressed feature points. A working buffer has two more entries than the width of the original image. Each entry is assigned to an x coordinate of the original image. Each entry stores a combined y coordinate and reliability score for each feature point in the original list. This process involves a forward scan and a backward scan. For each original feature point its x coordinate defines the location within the working buffer where neighbor feature points would be stored if they exist. The working buffer initial data and the y coordinates assure a non suppress comparison result if the potential neighbors are not actual neighbors. For actual neighbor data, the y coordinates match and the comparison result depends solely upon the relative reliability scores.
-
Citations
14 Claims
-
1. A computer implemented method of transforming a list of feature points of an image into a list of maxima suppressed feature points of the image, comprising the steps of:
-
receiving an original list of feature points including x and y coordinates and a reliability score of the feature point determination for each feature point, the feature points sorted of the original list in image raster scan order; initializing a working buffer having a number of entries equal to a width of the image, each entry capable of storing a combined y coordinate and reliability score of a feature point of the original list; scanning the original list in a forward direction from a first feature point to a final feature point, for each feature point including comparing a combined y coordinate and reliability score of a current feature point with a combined y coordinate and reliability score of an entry of the working buffer having a location corresponding to an x coordinate one less than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential left neighbor of the current feature point, comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one less than the x coordinate of the current feature point thereby determining whether to suppress said current feature point dependent upon results of said comparison for a potential top left neighbor of the current feature point, comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate equal to the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential top neighbor of the current feature point, comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one more than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential top right neighbor of the current feature point, and storing the combined y coordinate and reliability score of the current feature point in an entry within the working buffer corresponding to the x coordinate of the current feature point; re-initializing the working buffer; scanning the original list in a backward direction from a final feature point to a first feature point, for each feature point including comparing a combined y coordinate and reliability score of a current feature point with a combined y coordinate and reliability score of an entry of the working buffer having a location corresponding to an x coordinate one more than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential right neighbor of the current feature point, comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one more than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential bottom right neighbor of the current feature point, comparing a combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate equal to the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential bottom neighbor of the current feature point, comparing a combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one less than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential bottom left neighbor of the current feature point, and storing the combined y coordinate and reliability score of the current feature point in an entry within the working buffer corresponding to the x coordinate of the current feature point; and forming a list of maxima suppressed feature points of the image by including feature points from the original list not determined to be suppressed by any said comparison steps. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A tangible, non-transitory and non-volatile data storage media storing instructions controlling a general purpose computer to transform a list of feature points of an image into a list of maxima suppressed feature points of the image, said controlling including:
-
receiving an original list of feature points including x and y coordinates and a reliability score of the feature point determination for each feature point, the feature points sorted of the original list in image raster scan order; initializing a working buffer having a number of entries equal to a width of the image, each entry capable of storing a combined y coordinate and reliability score of a feature point of the original list; scanning the original list in a forward direction from a first feature point to a final feature point, for each feature point including comparing a combined y coordinate and reliability score of a current feature point with a combined y coordinate and reliability score of an entry of the working buffer having a location corresponding to an x coordinate one less than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential left neighbor of the current feature point, comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one less than the x coordinate of the current feature point thereby determining whether to suppress said current feature point dependent upon results of said comparison for a potential top left neighbor of the current feature point, comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate equal to the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential top neighbor of the current feature point, comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one more than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential top right neighbor of the current feature point, and storing the combined y coordinate and reliability score of the current feature point in an entry within the working buffer corresponding to the x coordinate of the current feature point; re-initializing the working buffer; scanning the original list in a backward direction from a final feature point to a first feature point, for each feature point including comparing a combined y coordinate and reliability score of a current feature point with a combined y coordinate and reliability score of an entry of the working buffer having a location corresponding to an x coordinate one more than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential right neighbor of the current feature point, comparing said combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one more than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential bottom right neighbor of the current feature point, comparing a combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate equal to the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential bottom neighbor of the current feature point, comparing a combined y coordinate and reliability score of the current feature point with a combined y coordinate incremented by 1 and reliability score of an entry of a working buffer having a location corresponding to an x coordinate one less than the x coordinate of the current feature point thereby determining whether to suppress the current feature point dependent upon results of said comparison for a potential bottom left neighbor of the current feature point, and storing the combined y coordinate and reliability score of the current feature point in an entry within the working buffer corresponding to the x coordinate of the current feature point; and forming a list of maxima suppressed feature points of the image by including feature points from the original list not determined to be suppressed by any said comparison steps. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification