Image processing method and image processing chip

By dividing the image into blocks and setting up multiplexing areas in the hardware circuit, the problems of hardware circuit area and calculation accuracy are solved, efficient processing of images with different resolutions is achieved, and the real-time and accuracy of the SIFT algorithm are ensured.

CN115511690BActive Publication Date: 2025-10-03AMICRO SEMICONDUCTOR CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202110696747.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-06-23
Publication Date
2025-10-03
Estimated Expiration
2041-06-23

AI Technical Summary

Technical Problem

When implementing the SIFT algorithm in hardware circuits in the prior art, it is difficult to reduce the area of ​​the hardware circuits while ensuring high computational accuracy and adapting to the requirements of large-resolution images.

Method used

The image to be processed is divided into several blocks to be processed along the resolution width direction, and a reuse area is set between adjacent blocks. Gaussian convolution kernel is used for filtering, a Gaussian pyramid image is constructed, and extreme point search is performed in the Gaussian difference pyramid image to achieve stable feature point extraction of the image.

Benefits of technology

While reducing the hardware circuit area, the calculation accuracy of Gaussian convolution filtering and the continuity of extreme point search are guaranteed, which adapts to the image processing requirements of various resolutions and improves the continuity and accuracy of data processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115511690B_ABST
    Figure CN115511690B_ABST
Patent Text Reader

Abstract

The present invention relates to an image processing method and image processing chip. By converting the process of processing a high-resolution image once into the process of processing multiple low-resolution images, there is no limit on the original image resolution and it can adapt to images of various resolutions. In this way, a wide image is divided into multiple blocks of smaller images. During the calculation of the Gaussian convolution of each small image block, the width of each row of image stored in the intermediate calculation process becomes smaller, thereby significantly reducing the hardware circuit area of ​​the image processing chip and ensuring the calculation accuracy of the Gaussian convolution filter. In addition, by setting a multiplexing area, the method ensures the continuous and uninterrupted search of extreme points at different block boundaries, achieving seamless connection between the extreme point searches of adjacent blocks, and ensuring the continuity and accuracy of data processing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of robot vision technology, and in particular to an image processing method and an image processing chip. Background Art

[0002] The SIFT (Scale-Invariant Feature Transform) image scale space generation method was developed based on the theory of multi-scale image space. The SIFT algorithm is a robust image feature detection method that is invariant to scale, rotation, translation, and scaling. It is widely used in video tracking, three-dimensional image modeling, object recognition, and panoramic image stitching. Due to the high computational complexity of the SIFT algorithm, in practical applications, as camera performance improves, image resolution becomes higher and higher, the amount of information contained in each image also increases, and the amount of data that needs to be processed also increases significantly. It becomes relatively difficult to implement image processing using software alone, making it difficult to meet real-time requirements. Therefore, many articles propose utilizing the high-speed parallel computing capabilities of hardware circuits and adopting a high-speed parallel architecture design for the SIFT algorithm to meet real-time requirements.

[0003] The SIFT algorithm requires multiple Gaussian convolutions to build a scale-space Gaussian pyramid. Gaussian convolutions are linearly separable, meaning a two-dimensional Gaussian filter function can be decomposed into the product of two one-dimensional Gaussian filters. This filtering is achieved by cascading row and column Gaussian filters. This facilitates parallel hardware architecture implementation and conserves hardware resources. The SIFT algorithm's scale-space Gaussian pyramid construction requires a balance between computational speed, accuracy, and hardware circuit area during hardware implementation. Because Gaussian convolution of image data uses a cascaded approach, it first performs row-wise Gaussian convolution. The row-wise Gaussian convolution results need to be temporarily stored before performing column-wise Gaussian convolution. While a larger Gaussian convolution kernel length improves computational accuracy, it also requires more image rows to be stored during the intermediate computation, increasing the hardware circuit area. Furthermore, image width resolution is a key factor influencing the hardware circuit area: a larger image width resolution increases the hardware circuit area. To save hardware circuit area, existing technologies typically limit the Gaussian convolution kernel length and image width resolution, significantly impacting the SIFT algorithm's computational accuracy and applicability to large-resolution images. Therefore, achieving both improved computational accuracy and reduced hardware circuit area presents a technical challenge in hardware implementations of the SIFT algorithm's scale-space Gaussian pyramid. Summary of the Invention

[0004] To solve the above problems, the present invention provides an image processing method and an image processing chip, which can ensure high computational precision and accuracy while reducing the hardware circuit area. The specific technical solutions of the present invention are as follows:

[0005] An image processing method comprises the following steps: step 1: based on the resolution of the image to be processed, dividing the image to be processed into a plurality of image blocks to be processed along the width direction of the resolution; step 2: partially overlapping two adjacent image blocks to be processed to form a reuse area; step 3: determining the length of a Gaussian convolution kernel and performing Gaussian convolution filtering on the image blocks to be processed to obtain a Gaussian pyramid image; step 4: based on the Gaussian pyramid image, subtracting the image of the previous layer from the image of the next layer in the Gaussian pyramid image to obtain a Gaussian difference pyramid image; step 5: based on the Gaussian difference pyramid image, performing extreme point search on pixel points of the image blocks to be processed in the image to be processed, with the search range reaching the adjacent reuse area; step 6: obtaining stable feature points in the image to be processed based on the extreme point search results.

[0006] Furthermore, the step 1 specifically includes the following steps: step 11: determine the width and height of the resolution of the image to be processed; step 12: use the height of the resolution of the image to be processed as the height unit and the preset resolution width as the width unit to divide the image to be processed along the width direction of the resolution to form standard blocks to be processed; step 13: determine whether the width of the resolution of the undivided part of the image to be processed is less than the width unit; if not, return to step 12 and continue to divide the standard blocks to be processed; if yes, directly treat the undivided part as a non-standard block to be processed.

[0007] Furthermore, the width of the resolution of the image to be processed in step 11 is 640 pt, and the height of the resolution is 480 pt; the width of the preset resolution in step 12 is 84 pt.

[0008] Furthermore, the step 2 specifically includes the following steps: Step 21: determining the starting column boundary and the ending column boundary of each block to be processed;

[0009] Step 22: The starting column boundary of the current block to be processed is used as the reuse starting column boundary, and the ending column boundary of the previous block to be processed is used as the reuse ending column boundary. The block between the reuse starting column boundary and the reuse ending column boundary is used as the reuse area, and a preset number of columns of pixels are set in the reuse area.

[0010] Furthermore, the preset number of columns in step 22 is 4 columns.

[0011] Furthermore, the step 3 specifically includes the following steps: step 31: determining that the length of the Gaussian convolution kernel is L, then the radius of the Gaussian convolution kernel is R, R=(L-1) / 2; step 32: searching for the current pixel point of the current block to be processed and the pixel points within the radius of the Gaussian convolution kernel centered on the current pixel point, and performing a Gaussian convolution operation on the searched pixel points to obtain the smoothed pixel points; step 33: after smoothing all the pixel points of the current block to be processed, smoothing the pixel points of the next block to be processed is performed until the smoothing of the pixel points of the entire image to be processed is completed to obtain a Gaussian image; step 34: repeating steps 32 and 33 based on different Gaussian functions to obtain multiple Gaussian images to form a group of Gaussian image groups; step 35: repeating steps 32, 33 and 34 based on images to be processed with different resolutions to obtain multiple groups of Gaussian image groups to form a Gaussian pyramid image.

[0012] Furthermore, the Gaussian pyramid image formed in step 35 has a Gaussian image group at the bottom layer with 6 Gaussian images.

[0013] Furthermore, step 5 specifically includes the following steps: step 51: determining an image in the Gaussian difference pyramid image as the current image to be processed; step 52: starting from the Nth pixel point counted backward from the starting column boundary of the current block to be processed in the current image to be processed, and ending the search to the Nth pixel point counted forward from the reuse end column boundary, completing the extreme point search for a row of pixels; step 53: repeating step 52 until the extreme point search for each row of pixels in the current block to be processed is completed; step 54: selecting the next block to be processed as the current block to be processed, and returning to step 52 until the extreme point search for pixels in the current image to be processed is completed.

[0014] An image processing chip includes: a partitioning module for dividing an image to be processed into a plurality of image blocks to be processed along the width direction of the resolution according to the resolution size of the image to be processed, with adjacent image blocks partially overlapping to form a reuse area; an operation module for performing Gaussian convolution filtering on the image blocks to be processed according to the length of the Gaussian convolution kernel to obtain a Gaussian pyramid image, and based on the Gaussian pyramid image, subtracting the image layer from the next layer in the Gaussian pyramid image to obtain a Gaussian difference pyramid image; an analysis module for performing extreme point search for pixel points of the image blocks to be processed in the image to be processed according to the Gaussian difference pyramid image, with the search range reaching the adjacent reuse area; and an output module for outputting stable feature points in the image to be processed based on the extreme point search results.

[0015] The present invention has the following advantages: by converting the process of processing a high-resolution image once into the process of processing small-resolution images multiple times, there is no limit on the resolution of the original image, and it can adapt to images of various resolutions. In this way, the image with a large width is divided into multiple blocks of images with small widths. During the calculation process of the Gaussian convolution of each small-width image, the width of each row of images stored in the intermediate calculation process becomes smaller, thereby greatly reducing the hardware circuit area of ​​the image processing chip and ensuring the calculation accuracy of the Gaussian convolution filter. In addition, by setting a multiplexing area, the method ensures the continuous and uninterrupted search of extreme points at different block boundaries, realizes the seamless connection of the extreme point search of adjacent blocks, and ensures the continuity and accuracy of data processing. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 Schematic diagram of the flow of the image processing method according to an embodiment of the present invention.

[0017] Figure 2 This is a schematic diagram of dividing an image to be processed into blocks according to an embodiment of the present invention.

[0018] Figure 3 Schematic diagram of forming a reuse area by overlapping the to-be-processed image blocks according to an embodiment of the present invention Figure 1 .

[0019] Figure 4 Schematic diagram of forming a reuse area by overlapping the to-be-processed image blocks according to an embodiment of the present invention Figure 2 .

[0020] Figure 5 This is a schematic block diagram of the structure of the image processing chip according to an embodiment of the present invention. DETAILED DESCRIPTION

[0021] The technical solutions in the embodiments of the present invention will be described in detail below in conjunction with the accompanying drawings in the embodiments of the present invention. It should be understood that the specific embodiments described below are only intended to explain the present invention and are not intended to limit the present invention. A person of ordinary skill in the art can implement the embodiments without certain specific details. For example, certain circuits can be represented using circuit block diagrams to avoid the embodiments becoming redundant and complicated in unnecessary detailed descriptions. In order to avoid confusing the embodiments, well-known circuits, structures, and technical details may not be shown in detail.

[0022] like Figure 1 The image processing method shown can be executed by the main control chip or dedicated image processing chip in the visual robot. For the sake of convenience, the execution subject of the image processing method will be directly described as a robot in the subsequent embodiments. The method specifically includes the following steps:

[0023] Step 1: First, the robot captures an image through its own camera, and then the robot processes the captured image. The image to be processed is called the image to be processed. Based on the resolution of the image to be processed, the robot divides the image to be processed into several blocks to be processed along the width direction of the resolution. The resolution of the image to be processed is determined by the configuration of the robot's image sensor, which is generally 640*480 pt, 1024*768 pt or 1920*1080 pt, etc. Among them, 640, 1024 and 1920 represent the width value of the image resolution, and 480, 768 and 1080 represent the height value of the image resolution. Figure 2 As shown in the figure, the outermost rectangular frame represents the boundary of the image. The long side of the rectangle (i.e. the horizontal line in the figure) is the width direction of the resolution, and the short side of the rectangle (i.e. the vertical line in the figure) is the height direction of the resolution. Each small rectangular frame marked with numbers such as 1, 2, and 3 represents a divided block to be processed. Figure 2 The image in is divided into n blocks to be processed. The value of n can be set according to the specific image resolution and the size of the blocks to be divided. Generally, a value greater than or equal to 6 is selected.

[0024] Step 2: The robot partially overlaps two adjacent blocks to be processed to form a reuse area. Figure 3 As shown in the figure, the outermost rectangular border is the boundary of the image to be processed. The large black dots in the figure represent pixels, and the continuous small black dots represent omissions. The value of n can be set according to the specific image resolution and the size of the block to be divided. Assume that n=2, and the pixels of the image to be processed are 480*360, then Figure 3 The image to be processed in is divided into three blocks to be processed. The block corresponding to the line segment between the two arrows marked by n-1 is the first block to be processed, the block corresponding to the line segment between the two arrows marked by n is the second block to be processed, and the block corresponding to the line segment between the two arrows marked by n+1 is the third block to be processed. The pixels of each block to be processed are 164*360, that is, each block to be processed includes 164 columns and 360 rows of pixels. Among them, there are 4 pixels overlapping between two adjacent blocks to be processed, forming multiplexing area A and multiplexing area B.

[0025] Step 3: The robot determines the length of the Gaussian convolution kernel based on the system's built-in parameters. When performing Gaussian convolution processing on an image, the longer the Gaussian convolution kernel, the higher the calculation accuracy. However, the more image rows need to be stored during the intermediate calculation process, resulting in a larger area for the hardware circuit. To save hardware circuit area, existing technologies usually limit the length of the Gaussian convolution kernel, which has a significant impact on the calculation accuracy and applicability of the SIFT algorithm to large-resolution images. Because this image processing method uses the image segmentation technology in the aforementioned steps, it can use a larger Gaussian convolution kernel length while ensuring calculation accuracy. The robot then performs Gaussian convolution filtering on the image block to be processed based on the determined Gaussian convolution kernel value to obtain a Gaussian pyramid image. The method for constructing a Gaussian pyramid image has been disclosed in the prior art and will not be described in detail here.

[0026] Step 4: Based on the Gaussian pyramid image, the robot subtracts the previous layer from the next layer in the Gaussian pyramid image to generate a Gaussian difference pyramid image. The Gaussian difference pyramid, also known as the DOG (Difference of Gaussian) pyramid, is constructed on the basis of the Gaussian pyramid. The first layer of the first group of the DOG pyramid is obtained by subtracting the first layer of the first group from the second layer of the first group of the Gaussian pyramid. This process continues, group by group and layer by layer, until all these difference images form the difference pyramid image.

[0027] Step 5: The robot searches for extreme points on the pixel points of the block to be processed in its image to be processed based on the Gaussian difference pyramid image. When searching for extreme points, the robot needs to compare a total of 26 pixel points in the upper and lower layers of the Gaussian difference pyramid and the surrounding adjacent pixels in the same layer to determine the extreme points. When the robot searches for extreme points on the pixel points at the boundary of the block to be processed, it needs to use the pixel points of the adjacent blocks. If there is no reuse area between the adjacent blocks to be processed, and the SRAM memory only stores the pixel points of the current block to be processed, then the pixel points at the boundary of the current block to be processed cannot be searched for extreme points. To solve this problem, the image processing method described in this embodiment adopts an image redundancy segmentation method. By superimposing a number of pixel points between two adjacent blocks to be processed for reuse, when searching for extreme points, the search starting point can start from the pixel point in the middle of the reuse area and end at the pixel point in the middle of the next reuse area. Figure 3As shown, when it is necessary to search for the extreme points of the block n to be processed, start from the third pixel point in the first row of the reuse area A, search from left to right to the second pixel point in the reuse area B, and complete the extreme value search of the first row of pixels of the block n to be processed. In the same way, the extreme value search of the pixels in the second row, the third row to the last row is completed in sequence. When searching for extreme points of the pixels at the leftmost and rightmost boundaries of the image to be processed, the values ​​outside the boundaries can be ignored, which will not have much impact on the processing results. The method of this embodiment can be used to continuously and uninterruptedly search for extreme points at the boundaries of different blocks to be processed, thereby achieving seamless connection of extreme point searches of adjacent blocks to be processed and improving the continuity and accuracy of data processing.

[0028] Step 6: Since the determined extreme points are feature points that exist at different blur levels and different scales, these feature points are exactly the stable features that the SIFT algorithm wants to extract. Therefore, based on the extreme point search results, the stable feature points in the image to be processed can be directly obtained. These stable feature points can accurately reflect the information contained in the image to be processed.

[0029] By converting the single processing of a high-resolution image into multiple processing of smaller-resolution images, this method imposes no restrictions on the original image resolution and can accommodate images of various resolutions. This allows a wide image to be segmented into multiple smaller-width images. During the Gaussian convolution calculation of each smaller-width image, the width of each row of image stored during the intermediate calculations is reduced, significantly reducing the hardware circuit area of ​​the image processing chip while also ensuring the computational accuracy of the Gaussian convolution filter. Furthermore, by setting up multiplexing zones, this method ensures continuous and uninterrupted extreme point searches at different block boundaries, enabling seamless integration of extreme point searches between adjacent blocks and ensuring the continuity and accuracy of data processing.

[0030] In one embodiment, step 1 specifically includes the following steps: First, in step 11, the robot determines the width and height of the resolution of the image to be processed. Then, in step 12, the robot divides the image to be processed along the width direction of the resolution, using the height of the image to be processed as a unit of height and the preset resolution width as a unit of width, to form standard blocks to be processed. Each standard block to be processed has the same resolution width and height. The preset resolution width can be configured based on R&D and design requirements such as chip area and computational accuracy, and can generally be set to any value between 60 pt and 90 pt. Next, in step 13, the robot determines whether the resolution width of the undivided portion of the image to be processed is less than the width unit. If not, indicating that the undivided portion can still be divided into standard blocks to be processed, the robot returns to step 12 and continues dividing the standard blocks to be processed. If yes, indicating that the remaining portion no longer meets the division requirements of a standard block to be processed, the undivided portion is directly treated as a non-standard block to be processed. When the robot performs image processing, standard blocks to be processed and non-standard blocks to be processed are treated the same way. The method described in this embodiment can be applied to images of different sizes and resolutions by dividing the standard blocks to be processed. Moreover, as long as the resolution width and height of the standard blocks to be processed are set reasonably, the image processing rate can be maximized.

[0031] In one embodiment, the resolution width of the image to be processed in step 11 is 640 pt, and the resolution height is 480 pt. The preset resolution width in step 12 is 84 pt. Therefore, the image to be processed can be divided into eight blocks to be processed, with four pixels overlapping between adjacent blocks. This division method produces eight standard blocks to be processed, achieving optimal image processing results.

[0032] As one embodiment, the step 2 specifically includes the following steps: First, in step 21, the robot determines the starting column boundary and the ending column boundary of each block to be processed, such as Figure 4As shown, boundary ai is the starting column boundary of the first tile to be processed, and boundary ck is the ending column boundary of the first tile to be processed; boundary bj is the starting column boundary of the second tile to be processed, and boundary em is the ending column boundary of the second tile to be processed; boundary dl is the starting column boundary of the third tile to be processed, and boundary go is the ending column boundary of the third tile to be processed; boundary fn is the starting column boundary of the fourth tile to be processed, and boundary hp is the ending column boundary of the fourth tile to be processed. Then, the process proceeds to step 22, where the starting column boundary bj of the second tile to be processed is used as the multiplexing start column boundary, and the ending column boundary ck of the first tile to be processed is used as the multiplexing end column boundary, thereby forming the first multiplexing area bckj. Similarly, multiplexing areas deml and fgon are formed. These multiplexing areas are provided with a preset number of columns of pixels. This preset number of columns can be set according to the specific image processing requirements and can generally be set to 4 to 8 columns. The method described in this embodiment can accurately define the scope of the multiplexing area by dividing the multiplexing area in the form of boundaries, thereby ensuring the multiplexing efficiency of the pixels in the multiplexing area.

[0033] As one implementation method, the preset number of columns in step 22 is 4. Based on the search range of the extreme point, the pixels in the reuse area are set to 4 columns, which can achieve maximum reuse efficiency and avoid unnecessary redundancy and waste of computing resources.

[0034] In one embodiment, step 3 specifically includes the following steps: First, in step 31, the robot determines the length of the Gaussian convolution kernel as L based on built-in system parameters. The radius of the Gaussian convolution kernel can then be calculated as R, where R = (L-1) / 2. Then, the robot proceeds to step 32, searching for the current pixel of the current image block to be processed and the pixels within the radius of the Gaussian convolution kernel centered on the current pixel. The searched pixels are then subjected to a Gaussian convolution operation to obtain smoothed pixels. The specific Gaussian convolution operation can refer to existing methods and will not be described here. Next, in step 33, after smoothing all pixels in the current image block to be processed, the pixels of the next image block to be processed are smoothed, and this process continues until all pixels in the entire image to be processed are smoothed, resulting in a Gaussian image. Next, step 34 is performed, repeating steps 32 and 33 based on different Gaussian functions to obtain multiple Gaussian images, forming a Gaussian image group. The Gaussian function can be pre-configured based on specific product design requirements. Finally, the process proceeds to step 35. Steps 32, 33, and 34 are repeated based on the images to be processed at different resolutions to obtain multiple Gaussian image groups, forming a Gaussian pyramid image. Prior art methods for constructing Gaussian pyramids have been disclosed. The method of this embodiment differs from these methods primarily in steps 32 and 33. The method of this embodiment performs Gaussian processing on each image block to be processed, thus accommodating images of varying resolutions. Other steps common to the prior art will not be detailed here.

[0035] Assuming a Gaussian convolution kernel length of L = 33 points, the kernel radius R = (L-1) / 2 = 16 points. Gaussian convolution filtering is performed on the 84*480 resolution image block to be processed, and a Gaussian pyramid is constructed. By leveraging the linearly separable property of Gaussian convolution, a two-dimensional Gaussian filter function can be decomposed into the product of two one-dimensional Gaussian filter functions. First, a row-wise Gaussian convolution filter is performed. Since the column-wise Gaussian convolution filter requires the row-wise Gaussian convolution filter result, the SRAM needs to store 33 rows of row-wise filter data, requiring 84*33 = 2772 pixels. If the original 640*480 resolution image is not segmented, the required pixel storage would be 640*33 = 21120 pixels, significantly increasing the storage area. To reduce hardware circuit area, existing technologies often sacrifice computational accuracy. The Gaussian convolution kernel length used is relatively small, typically 9. This requires storing 640*9 = 5760 pixels, which still requires a large storage area. Furthermore, the computational accuracy of the Gaussian convolution filter is significantly reduced, significantly reducing the stability of the feature points generated by the SIFT algorithm and failing to meet high-precision application requirements. The method described in this embodiment utilizes partitioning for Gaussian convolution processing, which not only reduces circuit area but also ensures computational accuracy.

[0036] As one implementation manner, the Gaussian pyramid image formed in step 35 has a Gaussian image group at the bottom layer with 6 Gaussian images, which can improve data accuracy and ensure image processing quality.

[0037] In one embodiment, step 5 specifically includes the following steps: First, in step 51, the robot determines an image in the Gaussian difference pyramid image as the current image to be processed. Then, the robot proceeds to step 52, where it searches for extreme points starting from the Nth pixel after the starting column boundary of the current block to be processed in the current image to be processed, and ends the search at the Nth pixel before the end column boundary of the reused column, completing the extreme point search for a row of pixels. The value of N can be set according to design requirements and can generally be set to any value between 2 and 4, inclusive. Then, the robot proceeds to step 53, where it repeats step 52 until the extreme point search for each row of pixels in the current block to be processed is complete. Finally, the robot proceeds to step 54, where it selects the next block to be processed as the current block to be processed, and returns to step 52 to search that block again, until the extreme point search for each pixel in each block to be processed in the current image to be processed is complete.

[0038] by Figure 3 For example, assume that the image is an image in a Gaussian difference pyramid image, and the robot performs an extreme point search on this image. When searching for the extreme points of block n to be processed, the robot starts searching from the third pixel in the first row of reuse area A (counting from left to right) and ends at the second pixel in reuse area B (counting from left to right), completing the extreme point search for one row of pixels. Similarly, the robot starts searching from the third pixel in the second row of reuse area A (counting from left to right) and ends at the second pixel in reuse area B (counting from left to right), completing the extreme point search for another row of pixels. This process continues in this manner until the robot completes the extreme point search for the current block n to be processed. Similarly, once the robot completes the extreme point search for all blocks to be processed, it has completed extreme point processing for one image in the Gaussian difference pyramid image. It should be noted that, for the first and last blocks to be processed, since there is no reuse area at the outermost boundaries, when searching for extreme points, the data outside the boundaries can be directly ignored, which will not have a significant impact on the search results.

[0039] In the method of this embodiment, the SIFT algorithm adopts the image redundancy segmentation method when searching for extreme points. The characteristic of this method is that there are 4 overlapping pixels between every two adjacent blocks to be processed. In this way, the extreme point search is guaranteed to be continuous and uninterrupted at the boundaries of different blocks, and the seamless connection of the extreme point search of adjacent blocks is achieved, thereby improving the accuracy of the search data.

[0040] like Figure 5 The image processing chip shown includes a partitioning module, a calculation module, an analysis module, and an output module, which are connected in sequence. The partitioning module is configured to divide the image to be processed into a number of blocks along the width of the resolution, based on the resolution of the image to be processed. Adjacent blocks are partially overlapped to form a reuse area. The calculation module is configured to perform Gaussian convolution filtering on the blocks to be processed based on the length of the Gaussian convolution kernel to obtain a Gaussian pyramid image. Based on the Gaussian pyramid image, the Gaussian difference pyramid image is obtained by subtracting the previous image from the next layer of the Gaussian pyramid image. The analysis module is configured to search for extreme points within the pixels of the blocks to be processed in the image to be processed based on the Gaussian difference pyramid image, with the search range extending to the adjacent reuse area. The output module is configured to output stable feature points in the image to be processed based on the extreme point search results. The chip described in this embodiment employs an image redundancy segmentation method, utilizing the partitioning module to partition a high-resolution image into multiple smaller-resolution images. This cleverly transforms the process of processing a high-resolution image once into the process of processing smaller-resolution images multiple times. This chip has no restrictions on the original image resolution and can accommodate images of various resolutions. When building the scale-space Gaussian pyramid, it processes the image based on standardized small-block images, independent of the original image size and resolution, supporting a wider resolution and matching range. During the Gaussian convolution filtering of the standardized small-block images, the width of each row of image stored during the intermediate calculations is very small, significantly reducing the hardware circuit area and facilitating the use of larger Gaussian convolution kernel lengths to improve SIFT algorithm accuracy. The image redundancy segmentation method used in building the scale-space Gaussian pyramid is highly valuable for hardware-based circuit implementations that ensure high real-time performance and high precision for the SIFT algorithm.

[0041] Those skilled in the art will appreciate that all or part of the steps in the above-described method embodiments can be accomplished by instructing the relevant hardware through a program. The program, stored in a storage medium, includes instructions for causing a microcontroller, chip, or processor to execute all or part of the steps in the method embodiments of the present invention. These storage media may include various media capable of storing program code, such as a USB flash drive, a mobile hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0042] It should also be noted that the various specific technical features described in the above specific embodiments can be combined in any appropriate manner without contradiction. To avoid unnecessary repetition, the embodiments of the present invention will not further describe various possible combinations.

Claims

1. An image processing method, characterized in that: The steps include: Step 1: Based on the resolution of the image to be processed, the image to be processed is divided into a number of blocks to be processed along the width direction of the resolution; Step 2: Two adjacent blocks to be processed are partially overlapped to form a reuse area; Step 3: Determine the length of the Gaussian convolution kernel and perform Gaussian convolution filtering on the image block to be processed to obtain a Gaussian pyramid image; Step 4: Based on the Gaussian pyramid image, subtract the previous layer image from the next layer image in the Gaussian pyramid image to obtain a Gaussian difference pyramid image; Step 5: Based on the Gaussian difference pyramid image, perform extreme point search on the pixel points of the to-be-processed block in the to-be-processed image, and the search range reaches the adjacent reuse area; Step 6: Obtain stable feature points in the image to be processed based on the extreme point search results; Wherein, the step 5 specifically includes the following steps: Step 51: determining an image in the Gaussian difference pyramid image as a current image to be processed; Step 52: Starting from the Nth pixel point counting backward from the starting column boundary of the current block to be processed in the current image to be processed, searching to the Nth pixel point counting forward from the reuse end column boundary, completing the extreme point search for a row of pixels; Step 53: Repeat step 52 until the extreme point search of each row of pixel points in the current block to be processed is completed; Step 54: Select the next image block to be processed as the current image block to be processed, and return to step 52 until the extreme point search of the pixel points in the current image to be processed is completed.

2. The method according to claim 1, characterized in that The step 1 specifically includes the following steps: Step 11: Determine the width and height of the resolution of the image to be processed; Step 12: using the height of the resolution of the image to be processed as a height unit and the preset resolution width as a width unit, dividing the image to be processed along the width direction of the resolution to form standard image blocks to be processed; Step 13: Determine whether the width of the resolution of the undivided portion of the image to be processed is less than the width unit. If not, return to step 12 and continue dividing the standard image blocks to be processed. If yes, directly treat the undivided portion as a non-standard image block to be processed.

3. The method according to claim 2, wherein: The image to be processed in step 11 has a resolution of 640 pt in width and 480 pt in height; The preset resolution width described in step 12 is 84 pt.

4. The method according to claim 1, wherein The step 2 specifically includes the following steps: Step 21: Determine the starting column boundary and the ending column boundary of each tile to be processed; Step 22: The starting column boundary of the current block to be processed is used as the reuse starting column boundary, and the ending column boundary of the previous block to be processed is used as the reuse ending column boundary. The block between the reuse starting column boundary and the reuse ending column boundary is used as the reuse area, and a preset number of columns of pixels are set in the reuse area.

5. The method according to claim 4, characterized in that: The preset number of columns in step 22 is 4 columns.

6. The method according to claim 1, characterized in that The step 3 specifically includes the following steps: Step 31: Determine the length of the Gaussian convolution kernel as L, then the radius of the Gaussian convolution kernel is R, R = (L-1) / 2; Step 32: Search for the current pixel of the current image block to be processed and the pixels within the radius of the Gaussian convolution kernel centered on the current pixel, and perform Gaussian convolution operation on the searched pixel to obtain the smoothed pixel. Step 33: After smoothing all the pixels of the current block to be processed, smoothing is performed on the pixels of the next block to be processed until the smoothing of the pixels of the entire image to be processed is completed to obtain a Gaussian image; Step 34: Repeat steps 32 and 33 based on different Gaussian functions to obtain multiple Gaussian images to form a set of Gaussian images; Step 35: Based on the images to be processed with different resolutions, repeat steps 32, 33, and 34 to obtain multiple groups of Gaussian image groups to form a Gaussian pyramid image.

7. The method according to claim 6, characterized in that: The Gaussian pyramid image formed in step 35 has a Gaussian image group at the bottom layer with 6 Gaussian images.

8. An image processing chip, configured to execute the image processing method according to any one of claims 1 to 7, characterized in that: include: A partitioning module is used to divide the image to be processed into a number of blocks to be processed along the width direction of the resolution according to the resolution of the image to be processed, and the adjacent blocks to be processed are partially overlapped to form a multiplexing area; an operation module, configured to perform Gaussian convolution filtering on the image block to be processed according to the length of the Gaussian convolution kernel to obtain a Gaussian pyramid image, and based on the Gaussian pyramid image, subtract the previous layer image from the next layer image in the Gaussian pyramid image to obtain a Gaussian difference pyramid image; An analysis module is used to search for extreme points of pixels of a block to be processed in an image to be processed according to a Gaussian difference pyramid image, with the search range reaching adjacent reuse areas; The output module is used to output the stable feature points in the image to be processed according to the extreme point search result.