Fast corner score determination method, corner detection method and system-on-chip for fast corner detection

CN117522908BActive Publication Date: 2026-10-20BESTECHNIC SHANGHAI CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311520112.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-11-14
Publication Date
2026-10-20
Estimated Expiration
2043-11-14

Smart Images

  • Figure CN117522908B_ABST
    Figure CN117522908B_ABST
Patent Text Reader

Abstract

The application relates to a FAST corner point detection corner point score determination method, a corner point detection method and a system on chip. The method comprises the following steps. A candidate corner point is obtained, and a corner point score of the candidate corner point is determined by using a corner point score processing process. The gray difference between each point on the circumference of a circle with the center being the candidate corner point and the candidate corner point is determined. Each point on the circumference is divided into a first number of pairs of adjacent points, the representative gray difference of each pair of adjacent points is determined, the representative gray difference of the first number of pairs of adjacent points is divided into a second number of groups, each group comprises a third number of continuous pairs of adjacent points, the group representative gray difference of each group is determined, and the corner point score of the candidate corner point is determined based on the gray of the candidate corner point and the group representative gray difference of each group. The accuracy can be significantly better than that of the SAD method, and the complexity of the calculation and the complexity of the hardware required thereby can be significantly better than those of the MIN-MAX network.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to image processing methods and image processing systems, and more specifically, to a method for determining corner scores in FAST corner detection, a corner detection method, and a system-on-a-chip with corner detection functionality. Background Technology

[0002] With the increasing demand for image processing in portable devices, various SOC (System-on-Chip) manufacturers offer a wealth of image processing algorithms in their image processing modules, including but not limited to VSLAM, SFM, image stitching, and image alignment. All these algorithms rely on the accurate and efficient extraction of corner points in images. Furthermore, there is still room for improvement in the acceleration and accuracy of corner detection to meet the ever-growing image processing needs.

[0003] Among various corner detection methods, the FAST (Fast-Segmentation Test for Feature Acquisition) corner detection method has attracted attention due to its advantages of fast detection speed and high accuracy. However, the current FAST corner detection method relies on the determination of corner scores, which typically employs either a MIN-MAX network or the SAD (Sum of Absolute Differences) method. While the MIN-MAX network offers high accuracy, its hardware implementation complexity is too high; whereas the SAD method, while having low hardware implementation complexity, suffers from low accuracy. Therefore, there is still room for improvement in corner score determination methods that balance accuracy and hardware implementation complexity. Summary of the Invention

[0004] This application is provided to address the problems existing in the prior art.

[0005] This application aims to provide a corner score determination method, a corner detection method, and an on-chip system for FAST corner detection, which has significantly better accuracy than the SAD method, and the computational complexity and the required hardware complexity are significantly better than the MIN-MAX network.

[0006] According to a first aspect of this application, a method for calculating corner scores in FAST corner detection is provided. The corner score calculation method includes the following steps: obtaining corners initially detected using the FAST corner detection method as candidate corners. For each candidate corner point, the corner point score is determined using the following corner point score processing procedure: The gray level difference between the gray level of each point on the circumference centered on the candidate corner point and the gray level of the candidate corner point is determined; the points on the circumference are divided into a first number of adjacent pairs; for each pair of adjacent points, the representative gray level difference between each adjacent pair is determined by prioritizing the gray level difference between the point with non-zero difference and the candidate corner point, and the gray level difference between the point with smaller gray level in the pair of adjacent points with non-zero difference and the candidate corner point; the representative gray level differences of the first number of adjacent pairs are divided into a second number of groups, where each group includes a third number of consecutive adjacent pairs; the representative gray level difference of the smaller gray level in each pair of adjacent pairs in each group is determined as the group representative gray level difference of each group; and the corner point score of the candidate corner point is determined based on the gray level of the candidate corner point combined with the group representative gray level differences of each group.

[0007] According to a second aspect of this application, a corner detection method is provided. This corner detection method includes the following steps: initially detecting corners as candidate corners using the FAST corner detection method; determining a corner score for each candidate corner using the corner score calculation method of FAST corner detection according to any embodiment of this application; and obtaining and outputting the final detected corners based on the corner scores of each candidate corner using a non-maximum suppression method. The corner score calculation method includes the following steps: obtaining the corners initially detected using the FAST corner detection method as candidate corners. For each candidate corner point, the corner point score is determined using the following corner point score processing procedure: The gray level difference between the gray level of each point on the circumference centered on the candidate corner point and the gray level of the candidate corner point is determined; the points on the circumference are divided into a first number of adjacent pairs; for each pair of adjacent points, the representative gray level difference between each adjacent pair is determined by prioritizing the gray level difference between the point with non-zero difference and the candidate corner point, and the gray level difference between the point with smaller gray level in the pair of adjacent points with non-zero difference and the candidate corner point; the representative gray level differences of the first number of adjacent pairs are divided into a second number of groups, where each group includes a third number of consecutive adjacent pairs; the representative gray level difference of the smaller gray level in each pair of adjacent pairs in each group is determined as the group representative gray level difference of each group; and the corner point score of the candidate corner point is determined based on the gray level of the candidate corner point combined with the group representative gray level differences of each group.

[0008] According to a third aspect of this application, an on-chip system with corner detection functionality is provided. The on-chip system is configured to perform a corner score calculation method for FAST corner detection according to any embodiment of this application, or to perform a corner detection method according to any embodiment of this application.

[0009] The corner score determination method, corner detection method, and on-chip system of FAST corner detection according to the embodiments of this application have the advantages of significantly reducing the min and max comparison process of traversing elements (grayscale difference or grayscale value) within a group compared to the MIN-MAX network. Furthermore, the grayscale difference between the grayscale of adjacent points on the circumference centered on the candidate corner point and the grayscale of the candidate corner point is sparsified, while retaining important texture information. As a result, the computational complexity and the required hardware complexity are significantly better than the MIN-MAX network, and the accuracy is significantly better than the SAD method. Attached Figure Description

[0010] In drawings that are not necessarily drawn to scale, the same reference numerals may describe similar parts in different views. The same reference numerals with or without letter suffixes may indicate different instances of similar parts. The drawings illustrate various embodiments generally by way of example rather than limitation, and are used, together with the description and claims, to explain the disclosed embodiments. Where appropriate, the same reference numerals are used in all drawings to refer to the same or similar parts. Such embodiments are illustrative and not intended to be exhaustive or exclusive embodiments of the apparatus or method.

[0011] Figure 1 This invention illustrates a corner detection method according to an embodiment of the present application.

[0012] Figure 2(a) illustrates a method for calculating corner scores in FAST corner detection according to an embodiment of this application.

[0013] Figure 2(b) shows a schematic diagram of the positions of the circumference and candidate corner points used in FAST corner detection according to an embodiment of this application.

[0014] Figure 3 This paper illustrates a method for calculating corner scores in FAST corner detection according to an embodiment of this application.

[0015] Figure 4 This paper illustrates a method for calculating corner scores in FAST corner detection according to an embodiment of this application.

[0016] Figure 5 The illustration shows a comparison of the corner detection results obtained by the corner score calculation method according to the embodiments of this application and the MIN-MAX network and SAD method, which are also applicable to FAST corner detection processing. Detailed Implementation

[0017] To enable those skilled in the art to better understand the technical solutions of this application, the application will be described in detail below with reference to the accompanying drawings and specific embodiments. The embodiments of this application will be further described in detail below with reference to the accompanying drawings and specific examples, but this is not intended to limit the application. If there is no necessary sequential relationship between the various steps described herein, the order in which they are described as examples should not be considered a limitation. Those skilled in the art should understand that the order can be adjusted, as long as it does not disrupt the logical coherence between them and render the entire process impossible.

[0018] Figure 1 A corner detection method according to an embodiment of this application is shown. Figure 1 As shown, the corner detection method includes the following steps: Inputting an image, the FAST corner detection method is used to initially detect corners as candidate corners (step 101). Specifically, the FAST corner detection method includes, but is not limited to, FAST 9-16, FAST 5-8, and FAST 7-12 detection methods. Specifically, in some embodiments, FAST-AB aims to represent that the detection criterion is that, taking point p as the target point to be detected, if the grayscale value of point p is Ip, and within B pixel positions on the circumference centered at point p, if the pixel values ​​of A consecutive pixel positions are all less than Ip-t or if the pixel values ​​of A consecutive pixel positions are all greater than Ip+t, where t is a preset threshold, then point p can be initially identified as a candidate corner. If the target point p is not a candidate corner, the processing ends, and the process moves to the next target point to be processed. If the target point p is a candidate corner, in step 102, for each candidate corner, the corner score is determined according to the corner score calculation method. The corner score calculation method here can adopt any corner score calculation method according to any embodiment of this application. In step 103, the final detected corner points are obtained and output using a non-maximum suppression method based on the corner score of each candidate corner point. Specifically, using the non-maximum suppression method, only those candidate corner points whose corner scores become local maxima are retained as the final detected nodes and finally output.

[0019] Figure 2(a) illustrates a corner score calculation method for FAST corner detection according to an embodiment of this application. As shown in Figure 2(a), the corner score calculation method includes the following steps. In step 201, corners initially detected by the FAST corner detection method are obtained as candidate corners. Next, for each candidate corner, the corner score of the candidate corner is determined by the following corner score processing procedure. For ease of description, referring to Figure 2(b), the FAST 9-16 corner detection method will be used as an example for explanation. Here, with the target point p as the center, the gray values ​​of 16 points N1-N16 with a radius of 3 on a 7×7 block are extracted, and the following steps are performed accordingly.

[0020] In step 202, the grayscale difference between each point on the circumference centered on the candidate corner point and the grayscale of the candidate corner point is determined. Specifically, the grayscale difference between 16 points N1-N16 on the circle and p is calculated. For the i-th point Ni, where i is 1 to 16, its grayscale value is INi, and the grayscale value of the center pixel p is Ip, then the grayscale difference is Di, as shown in the following formula (1):

[0021] Di = INi – Ip Formula (1)

[0022] In step 203, each point on the circumference is divided into a first number of adjacent pairs. For each pair of adjacent points, the representative grayscale difference of each pair is determined by prioritizing the grayscale difference between the point with non-zero difference and the candidate corner point, and the grayscale difference between the point with smaller grayscale value in a pair of adjacent points with non-zero difference and the candidate corner point. Specifically, the first number is 8 as an example, but it should be noted that this is only an example and other numbers can be used. For example, the first number can be at least half the number of points on the circumference. For 16 points, the first number is at least 8, so that the first number of adjacent pairs can traverse all points on the circumference without overlapping. Thus, we obtain 8 pairs of grayscale differences between adjacent points, which are the absolute values ​​of the grayscale differences with the candidate corner points, AD. These 8 pairs are: (AD1, AD2), (AD3, AD4), (AD5, AD6), (AD7, AD8), (AD9, AD10), (AD11, AD12), (AD13, AD14), (AD15, AD16). For each pair of data (ADm, ADm+1), ADm represents the grayscale difference between the m-th point on the circumference and the candidate corner point, and ADm+1 represents the grayscale difference between the (m+1)-th point on the circumference and the candidate corner point. From this, we can obtain a new Dy (y is the index of the pair), which is the representative grayscale difference of the y-th pair. If both ADm and ADm+1 are 0, then Dy = 0; if either ADm or ADm+1 is 0, then Dy takes the non-zero AD value; if neither ADm nor ADm+1 is 0, then Dy takes the gray difference between the point with the smaller gray value and the candidate corner point. If the gray value of the m-th point Nm is smaller than the gray value of the (m+1)-th point Nm+1, then ADm is taken.

[0023] In step 204, the representative grayscale differences of the first number of adjacent points are divided into a second number of groups, where each group includes a third number of consecutive adjacent point pairs. The representative grayscale difference of each adjacent point pair in each group with the smaller grayscale difference is determined as the group representative grayscale difference of each group. The second and third numbers can be various, as long as the adjacent point pairs in each group at least partially overlap and the representative grayscale differences of each pair of adjacent points are traversed. Specifically, taking a second number of 8 and a third number of 5 as an example, the representative grayscale differences Dy (y = 1 to 8) of 8 pairs of adjacent points are divided into 8 groups of 5 consecutive values, as shown in Table 1 below:

[0024] Table 1. Grouping methods for the representative gray-level differences Dy between 8 adjacent points

[0025] 1 D1, D2, D3, D4, D5 2 D2, D3, D4, D5, D6 3 D3, D4, D5, D6, D7 4 D4, D5, D6, D7, D8 5 D5, D6, D7, D8, D1 6 D6, D7, D8, D1, D2 7 D7, D8, D1, D2, D3 8 D8,D1,D2,D3,D4

[0026] Please note that, as shown in Table 1, even if the repetition rate of adjacent groups reaches 80%, which means that only one point is different, for example, the second group only moves one point on the circumference compared to the first group, the number of points (representing the number of grayscale differences) in each group is only 5. This significantly reduces the computational load and required storage space for the subsequent traversal calculation, thereby reducing the requirements for hardware complexity.

[0027] In step 205, the corner score of the candidate corner point is determined based on the grayscale value of the candidate corner point combined with the group representative grayscale differences of each group. Specifically, if the representative grayscale differences Dy of each group in Table 1 are obtained, the representative grayscale differences of each group can be iterated to calculate the group representative grayscale difference of that group. In some embodiments, the group representative grayscale difference is intended to characterize the robust texture features of the group. Specifically, for cases with more bright spots on the circumference, the group representative grayscale difference is intended to characterize the lower limit of the brightness of the bright spots; conversely, for cases with more dark spots on the circumference, the group representative grayscale difference is intended to characterize the upper limit of the brightness of the dark spots. Subsequently, based on the grayscale value of the candidate corner point combined with the group representative grayscale differences of each group, specifically, the influence of the group representative grayscale differences of each group can be superimposed on the grayscale value of the candidate corner point, such as the brightening effect caused by bright spots and the contrast increase effect caused by dark spots, to obtain the corner score of the candidate corner point under the influence.

[0028] Using the corner score calculation method described above, it can be directly applied to the FAST corner detection method. Compared with the MIN-MAX network, it significantly reduces the min and max comparison process of traversing elements (grayscale difference or grayscale value) within the group. Furthermore, it performs sparsification processing on the grayscale difference between the grayscale of adjacent points on the circumference centered on the candidate corner and the grayscale of the candidate corner, while preserving important and robust texture information. As a result, the computational complexity and the required hardware complexity are significantly better than the MIN-MAX network, and its accuracy is significantly better than the SAD method (experimental verification of this effect will be provided below).

[0029] In some embodiments, targeted subdivision and simplification can be performed on points on the circumference centered on the candidate corner point where there are more bright spots (i.e., more points with large gray values) and more dark spots (i.e., more points with small gray values).

[0030] like Figure 3 As shown, the corner score processing process specifically includes the following steps when the number of bright spots among all points on the circumference centered on the candidate corner point is greater than a first threshold.

[0031] In step 301, the difference between the grayscale of each point on the circumference centered at the candidate corner point and the grayscale of the candidate corner point is determined. See the description of step 202 for details, which will not be repeated here.

[0032] At step 302, each point on the circumference is divided into a first number of pairs of adjacent points such that the pairs of adjacent points do not overlap. Reference may be made to Figure 2(b) and the description of step 203 above, the first number of pairs of adjacent points are, for example, (N1, N2), (N3, N4), (N5, N6), (N7, N8), (N9, N10), (N11, N12), (N13, N14), (N15, N16), and correspondingly, the grayscale differences thereof are sequentially (AD1, AD2), (AD3, AD4), (AD5, AD6), (AD7, AD8), (AD9, AD10), (AD11, AD12), (AD13, AD14), (AD15, AD16).

[0033] For the grayscale difference (ADm, ADm+1) of the y-th pair of adjacent points, the representative grayscale difference thereof is determined by the following processing. If the grayscale differences ADm, ADm+1 of the adjacent points are both zero, the representative grayscale difference is set to zero. If only one of the grayscale differences of the adjacent points, for example ADm+1, is non-zero, it is taken as the representative grayscale difference. If the grayscale differences of the adjacent points are both non-zero, the smaller grayscale difference among them is taken as the representative grayscale difference, for example, if ADm < ADm+1, ADm is taken as the representative grayscale difference of the pair of adjacent points.

[0034] At step 303, the representative grayscale differences of the first number of pairs of adjacent points are divided into a second number of groups, where each group includes a third number of consecutive pairs of adjacent points, and the minimum value among the representative grayscale differences of the pairs of adjacent points in each group is determined as the group representative grayscale difference of each group. Reference may be made to the description of step 204 above. The representative grayscale differences of 8 pairs of adjacent points are divided into 8 groups, as shown in Table 1, each group including the representative grayscale differences of 5 consecutive pairs of adjacent points. Among the representative grayscale differences of the pairs of adjacent points in each group, the minimum value is taken as the group representative grayscale difference of each group, which in fact reflects the lower limit of the brightness of the bright spots in each group, that is, the robustified texture feature thereof.

[0035] At step 304, the corner score of the candidate corner is determined based on the sum of the grayscale of the candidate corner and the maximum value among the group representative grayscale differences of each group. By summing, the influence of the group representative grayscale differences of each group is introduced into the corner score, such as the influence of increasing the corner score due to brightening caused by bright spots.

[0036] In some embodiments, determining the difference between the grayscale of each point on the circumference centered at the candidate corner and the grayscale of the candidate corner further comprises: setting the grayscale difference to zero if the grayscale difference does not reach a second threshold. By assigning zero to the grayscale differences that do not reach the second threshold, the grayscale differences are sparsified while retaining important texture features, which further reduces the computational complexity, thereby also lowering the requirements for hardware and storage space.

[0037] like Figure 4 As shown, the corner score processing process specifically includes the following steps: if the number of dark points among all points on the circumference centered on the candidate corner point is greater than the third threshold, the following processing can be performed.

[0038] In step 401, the difference between the grayscale of each point on the circumference centered on the candidate corner point and the grayscale of the candidate corner point is determined. See the description of step 202 for details, which will not be repeated here.

[0039] In step 402, the points on the circumference are divided into a first number of adjacent pairs such that the pairs of adjacent points do not overlap. Referring to Figure 2(b) and the description of step 203 above, the first number of adjacent pairs are, for example, (N1, N2), (N3, N4), (N5, N6), (N7, N8), (N9, N10), (N11, N12), (N13, N14), (N15, N16), and correspondingly, their grayscale differences are (AD1, AD2), (AD3, AD4), (AD5, AD6), (AD7, AD8), (AD9, AD10), (AD11, AD12), (AD13, AD14), (AD15, AD16).

[0040] For the grayscale difference (ADm, ADm+1) of the y-th pair of adjacent points, the representative grayscale difference for each pair of adjacent points is determined as follows: If both the grayscale differences ADm and ADm+1 of the adjacent points are zero, the representative grayscale difference is set to zero. If only one of the adjacent points has a non-zero grayscale difference, such as ADm+1, then that point is used as the representative grayscale difference. If all the grayscale differences of the adjacent points are non-zero, then the larger grayscale difference is used as the representative grayscale difference; for example, if ADm > ADm+1, then ADm is taken as the representative grayscale difference for that pair of adjacent points.

[0041] In step 403, the representative grayscale differences of the first number of adjacent points are divided into a second number of groups, where each group includes a third number of consecutive adjacent point pairs. The maximum value of the representative grayscale differences among the adjacent point pairs in each group is determined as the group representative grayscale difference of each group. See the explanation of step 204 above. The representative grayscale differences of 8 pairs of adjacent points are divided into 8 groups, as shown in Table 1. Each group includes the representative grayscale differences of 5 consecutive adjacent point pairs. The maximum value of the representative grayscale differences among the adjacent point pairs in each group is taken as the group representative grayscale difference of each group. This actually reflects the upper limit of the brightness of the dark points in each group, that is, its robust texture characteristics.

[0042] In step 404, the corner score of the candidate corner point is determined based on the difference between the gray level of the candidate corner point and the minimum difference among the gray levels of the group representatives of each group. By calculating the difference, the influence of the gray level differences of the group representatives of each group is introduced into the corner score, such as the increase in contrast caused by dark spots.

[0043] In some embodiments, determining the difference between the grayscale of each point on the circumference centered on the candidate corner point and the grayscale of the candidate corner point further includes setting the grayscale difference to zero if it does not reach a fourth threshold. By assigning zero to grayscale differences that do not reach the fourth threshold, the grayscale differences are sparsified while preserving important texture features, further reducing computational complexity and thus reducing hardware and storage requirements.

[0044] As illustrated above, in the third number of consecutive adjacent point pairs in each group, at least some of the adjacent point pairs in the adjacent groups overlap. This redundancy allows for the perception of the continuity of texture along the circumference. In some embodiments, in the third number of consecutive adjacent point pairs in each group, only one adjacent point pair differs from the others. This allows for fine traversal using single adjacent point pairs as step sizes during the traversal of each point, while keeping the computational complexity within an acceptable range.

[0045] Figure 5 The illustration shows a comparison of corner detection results obtained by applying the corner score calculation method according to embodiments of this application to FAST corner detection processing with the MIN-MAX network and SAD method. Figure 5 As shown, the corner point score calculation methods of this application and the MIN-MAX network, SAD, and the proposed method are used respectively. The corner points detected by the MIN-MAX network are taken as the true values. The position difference (dx, dy) is obtained by subtracting the true value position x from the position of the corresponding corner point obtained by the SAD and proposed methods. Then, the absolute position deviation d = |dx| + |dy| is taken, and the corner point offset curve is plotted as shown below. Figure 5 In the diagram, the horizontal axis 'd' represents the positional deviation between the detected corner position (calculated in pixels) and the ground truth corner position, while the vertical axis F(d) represents the cumulative probability distribution corresponding to various positional deviations 'd'. According to the cumulative probability distribution, in the final detected corners of SAD and MIN-MAX networks, the number of completely overlapping corners (i.e., when positional deviation 'd' = 0) accounts for approximately 60%, while in the final detected corners of the method in this application and the MIN-MAX network, the number of completely overlapping corners accounts for approximately 78%, and the overall corner offset is significantly smaller than that of SAD. Clearly, the corner score calculation method in this application not only has significantly lower computational complexity and therefore lower hardware complexity than the MIN-MAX network, but its accuracy is also significantly better than the SAD method, reaching nearly 80% of the accuracy of the significantly more complex MIN-MAX network.

[0046] In some embodiments, a system-on-a-chip (SoC) with corner detection functionality is provided, characterized in that the SoC is configured to execute a corner score calculation method for FAST corner detection according to any embodiment of this application, or to execute a corner detection method according to any embodiment of this application. Note that although the description uses an SoC as an example, these methods can be implemented using a FAST corner accelerator designed within the SoC, but these methods can be executed by any processor, and the data generated during execution, or the data that needs to be called, can be stored in memory.

[0047] In some embodiments of this application, the processor may be a processing device that includes one or more general-purpose processing devices, such as a microprocessor, a central processing unit (CPU), a graphics processing unit (GPU), etc. More specifically, the processor may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, a processor that runs other instruction sets, or a processor that runs a combination of instruction sets. The processor may also be one or more special-purpose processing devices, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), system-on-a-chip (SoCs), etc. As those skilled in the art will understand, in some embodiments, the processor may be a special-purpose processor rather than a general-purpose processor. The processor may include one or more known processing devices, such as microprocessors from the Pentium™, Core™, Xeon™, or Itanium™ series manufactured by Intel Corporation, or Turion™, Athlon™, Sempron™, Opteron™, FX™, etc., manufactured by AMD Corporation. TM Phenom TM Any of the series of microprocessors or various processors manufactured by Sun Microsystems. The processor may also include a graphics processing unit, such as those manufactured by Nvidia. The processor may be a series of GPUs, such as the GMA and Iris™ series manufactured by Intel™ or the Radeon™ series manufactured by AMD. The processor may also include accelerated processing units, such as the desktop A-4 (6,8) series manufactured by AMD or the Xeon Phi™ series manufactured by Intel. Additionally, the terms "processor" or "graphics processor" may include more than one processor, for example, a multi-core design or multiple processors, each of which has a multi-core design. A processor can execute a sequence of computer program instructions stored in memory (not shown) to perform the various operations, processes, and methods disclosed herein.

[0048] This application describes various operations or functions that can be implemented as software code or instructions, or defined as software code or instructions. Such content can be directly executable source code or differential code (“incremental” or “patch” code) (“object” or “executable” form). The software code or instructions can be stored in a computer-readable storage medium and, when executed, can cause a machine to perform the described functions or operations, and include any mechanism for storing information in a machine-accessible form, such as recordable or non-recordable media (e.g., read-only memory (ROM), random access memory (RAM), disk storage media, optical storage media, flash memory devices, etc.).

[0049] The exemplary methods described in this application can be implemented at least in part by a machine or computer. In some embodiments, a computer-readable storage medium stores computer program instructions that, when executed by a processor, cause the processor to perform the corner score calculation method or corner detection method described in various embodiments of this application. Implementations of such methods may include software code, such as microcode, assembly language code, high-level language code, etc. Various software programming techniques can be used to create various programs or program modules. For example, program portions or program modules can be designed using or with the aid of Java, Python, C, C++, assembly language, or any known programming language. One or more of such software portions or modules can be integrated into a computer system and / or a computer-readable medium. Such software code may include computer-readable instructions for performing various methods. This software code can form part of a computer program product or computer program module. Furthermore, in the examples, the software code may be tangibly stored on one or more volatile, non-transitory, or non-volatile tangible computer-readable media, for example, during execution or at other times. Examples of such tangible computer-readable media may include, but are not limited to, hard disks, removable disks, removable optical discs (such as optical discs and digital video discs), cassette tapes, memory cards or memory sticks, random access memory (RAM), read-only memory (ROM), etc.

[0050] In implementation, each step of the above method can be completed by integrated logic circuits in the processor's hardware or by instructions in software. The steps of the method disclosed in the embodiments of this application can be directly implemented by a hardware processor, or by a combination of hardware and software modules in the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method. To avoid repetition, detailed descriptions are omitted here.

[0051] In the various embodiments of this application, the order of the steps does not imply the order of execution. The execution order of each step should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0052] Those skilled in the art will recognize that the various steps described in conjunction with the embodiments disclosed herein can be implemented as illustrative logical blocks (ILBs) that can be implemented in electronic hardware or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application. Each illustrative logical block can be configured to perform individual steps, partial operations within individual steps, or operations of multiple steps; this is not limited thereto, as long as the logical order between the steps is not affected.

[0053] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive), etc.

[0054] The above description is intended to be illustrative and not restrictive. For example, the above examples (or one or more of them) can be used in combination with each other. Other embodiments may be used by those skilled in the art upon reading the above description. Furthermore, in the above detailed description, various features may be grouped together to simplify the application. This should not be construed as an intention that a disclosed feature not claimed is necessary for any claim. Rather, the subject matter of the invention may be less than all the features of a particular disclosed embodiment. Thus, the following claims are incorporated herein by reference as examples or embodiments, wherein each claim is an independent, separate embodiment, and these embodiments are contemplated to be combined with each other in various combinations or arrangements. The scope of the invention should be determined by reference to the appended claims and the full scope of their equivalents.

Claims

1. A method for determining the corner score in FAST corner detection, characterized in that, The method for determining corner fractions includes the following steps: The corner points initially detected using the FAST corner detection method are used as candidate corner points; For each candidate corner point, the corner score is determined using the following corner score processing procedure: Determine the difference in gray level between each point on the circumference centered at the candidate corner point and the gray level of the candidate corner point; Each point on the circumference is divided into a first number of adjacent pairs. For each pair of adjacent points, the representative grayscale difference of each pair is determined by prioritizing the grayscale difference between the point with non-zero difference and the candidate corner point, and the grayscale difference between the point with smaller grayscale difference in the pair of adjacent points with non-zero difference and the candidate corner point. Specifically, if the number of bright spots among the points on the circumference centered on the candidate corner point is greater than a first threshold, and the grayscale differences of the adjacent points are all non-zero, then the smaller grayscale difference is taken as the representative grayscale difference. If the number of dark spots among the points on the circumference centered on the candidate corner point is greater than a third threshold, and the grayscale differences of the adjacent points are all non-zero, then the larger grayscale difference is taken as the representative grayscale difference. The representative grayscale differences of a first number of adjacent points are divided into a second number of groups, each group including a third number of consecutive adjacent point pairs. The smaller grayscale difference among the representative grayscale differences of each adjacent point pair in each group is determined as the group representative grayscale difference of each group. Specifically, if the number of bright spots among all points on the circumference centered on the candidate corner point is greater than a first threshold, the minimum value among the representative grayscale differences of each adjacent point pair in each group is determined as the group representative grayscale difference of each group. If the number of dark spots among all points on the circumference centered on the candidate corner point is greater than a third threshold, the maximum value among the representative grayscale differences of each adjacent point pair in each group is determined as the group representative grayscale difference of each group. The corner score of the candidate corner point is determined based on the gray level of the candidate corner point and the gray level difference of the group representatives of each group. Specifically, if the number of bright spots among all points on the circumference centered on the candidate corner point is greater than a first threshold, the corner score of the candidate corner point is determined based on the sum of the maximum values ​​of the gray level differences between the candidate corner point and the group representatives of each group. If the number of dark spots among all points on the circumference centered on the candidate corner point is greater than a third threshold, the corner score of the candidate corner point is determined based on the difference between the gray level of the candidate corner point and the minimum value of the gray level differences between the group representatives of each group.

2. The method for determining corner fractions according to claim 1, characterized in that, The corner score processing process specifically includes, when the number of bright spots among all points on a circle centered on the candidate corner point is greater than a first threshold: Determine the difference between the grayscale of each point on the circumference centered at the candidate corner point and the grayscale of the candidate corner point; The points on the circumference are divided into a first number of adjacent pairs such that the pairs of adjacent points do not overlap. For each pair of adjacent points, the representative gray level difference is determined by the following process: if the gray level difference of the adjacent points is zero, the representative gray level difference is set to zero; if the gray level difference of only one of the adjacent points is non-zero, it is taken as the representative gray level difference; if the gray level difference of the adjacent points is non-zero, the smaller gray level difference is taken as the representative gray level difference. Divide the representative gray-level differences of the first number of adjacent points into a second number of groups, where each group includes a third number of consecutive adjacent point pairs. Determine the minimum value of the representative gray-level differences of each adjacent point pair in each group as the group representative gray-level difference of each group. as well as The corner score of a candidate corner point is determined by the sum of the maximum difference between the gray level of the candidate corner point and the gray level of the group representative of each group.

3. The method for determining corner fractions according to claim 2, characterized in that, The difference between the grayscale of each point on the circumference centered on the candidate corner point and the grayscale of the candidate corner point further includes: if the grayscale difference does not reach the second threshold, it is set to zero.

4. The method for determining corner fractions according to claim 1, characterized in that, The corner score processing process specifically includes, when the number of dark points among all points on a circle centered on the candidate corner point is greater than a third threshold: Determine the difference between the grayscale of each point on the circumference centered at the candidate corner point and the grayscale of the candidate corner point; Each point on the circumference is divided into a first number of adjacent pairs such that the pairs of adjacent points do not overlap. For each pair of adjacent points, the representative gray level difference of each pair of adjacent points is determined by the following process: if the gray level difference of the adjacent points is zero, the representative gray level difference is set to zero; if the gray level difference of only one of the adjacent points is non-zero, it is taken as the representative gray level difference; if the gray level difference of the adjacent points is non-zero, the larger gray level difference is taken as the representative gray level difference. The representative gray-level difference of the first number of adjacent points is divided into a second number of groups, where each group includes a third number of consecutive adjacent point pairs. The maximum value of the representative gray-level difference of each adjacent point pair in each group is determined as the group representative gray-level difference of each group. as well as The corner score of a candidate corner point is determined based on the difference between its gray level and the minimum difference between the gray levels of the group representatives of each group.

5. The method for determining corner fractions according to claim 4, characterized in that, The difference between the grayscale of each point on the circumference centered on the candidate corner point and the grayscale of the candidate corner point further includes: if the grayscale difference does not reach the fourth threshold, it is set to zero.

6. The method for determining corner fractions according to any one of claims 1-5, characterized in that, In the third number of consecutive adjacent pairs in each group, at least some of the adjacent pairs in the adjacent groups overlap.

7. The method for determining corner fractions according to claim 6, characterized in that, In the third number of consecutive adjacent pairs in each group, only one adjacent pair in each adjacent group is different.

8. The method for determining corner fractions according to any one of claims 1-5, characterized in that, The FAST corner detection method includes the FAST16-9 corner detection method, wherein the radius of the circumference is 3 and there are 16 points on the circumference, the first number is 8, the second number is 8, and the third number is 5.

9. A corner detection method, characterized in that, Includes the following steps: The FAST corner detection method was used to initially detect corner points as candidate corner points; For each candidate corner point, the corner point score of the candidate corner point is determined by the corner point score determination method of FAST corner point detection according to any one of claims 1-8; The final detected corner points are obtained and output using the non-maximum suppression method based on the corner point scores of each candidate corner point.

10. A system-on-a-chip with corner detection function, characterized in that, The on-chip system is configured to perform the corner score determination method for FAST corner detection according to any one of claims 1-8, or to perform the corner detection method according to claim 9.

Citation Information

Patent Citations

  • Gray scale image processor

    CA1216933A

  • Rapid processing method for extracting X-shaped angular point from gray level image

    CN101783017A