A method and apparatus for ordering calibration points for distortion correction

By adopting a sorting method based on the relative neighborhood topology of calibration points, the problem of insufficient accuracy in calibration point sorting in HUD systems is solved, and accurate sorting is achieved in scenarios with large distortion.

CN123035285APending Publication Date: 2026-11-03NANJING CHIEF TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611112181.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-07-24
Publication Date
2026-11-03

AI Technical Summary

Technical Problem

The accuracy of the calibration point sorting scheme in existing HUD systems is poor, especially when the image distortion is large, sorting errors are prone to occur.

Method used

A sorting method based on the relative neighborhood topology of calibration points is adopted. By determining a preset number of other calibration points near each calibration point and sorting them according to these reference points, the row and column affiliation of each calibration point is locked, avoiding reliance on globally set fixed thresholds.

Benefits of technology

It improves the accuracy of calibration point sorting, avoids sorting errors in scenarios with large distortions, and enhances the reliability of calibration point sorting.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN123035285A_ABST
    Figure CN123035285A_ABST
Patent Text Reader

Abstract

The application discloses a calibration point ordering method and device for distortion correction, and relates to the technical field of HUD calibration. For each calibration point in a dot matrix, a preset number of other calibration points adjacent to the calibration point are determined; reference calibration points in the other calibration points located in the corresponding partition of each preset direction of the calibration point are determined; wherein the each preset direction refers to the direction of four coordinate axes in an image coordinate system; the each calibration point is ordered according to the reference calibration points of the each calibration point in the corresponding partition of the each preset direction, so that each row of calibration points and each column of calibration points in the dot matrix are determined. The application locks the row and column attribution of each point through local neighborhood direction matching, avoids the problem of ordering error caused by the coordinate offset of the calibration point in a large distortion scene, and improves the accuracy of calibration point ordering.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of HUD calibration technology, and in particular to a method and apparatus for sorting calibration points for distortion correction. Background Technology

[0002] In head-up display (HUD) systems, the displayed image typically needs to pass through multiple optical paths, including the display panel, projection optics system, and windshield, inevitably resulting in geometric distortion. Existing distortion correction technologies are mainly divided into hardware distortion correction and software distortion correction. Hardware methods suffer from problems such as complex optical system structures, high costs, and difficulty in flexibly adapting to different vehicle models or windshield shapes. Therefore, software is typically used to pre-distort the image.

[0003] Existing software distortion correction methods, when analyzing the acquired virtual image of a standard calibration pattern using algorithms, can identify the positions of calibration points. However, the resulting coordinate set is out of order and cannot be mapped to the coordinates of the standard point matrix. Therefore, it is necessary to sort the calibration points. Related techniques typically involve first sorting all calibration points by their y-values, then grouping points with y-differences less than a preset threshold into a single row, and finally sorting each row by its x-value. Alternatively, all calibration points can be sorted by their x-values, then grouping points with x-differences less than a preset threshold into a single column, and finally sorting each column by its y-value. However, when the virtual image distortion is significant, these methods may result in some calibration points from the next row being sorted into the previous row, leading to sorting errors. Therefore, the accuracy of these calibration point sorting schemes is relatively poor. Summary of the Invention

[0004] This application provides a calibration point sorting method and apparatus for distortion correction, which solves the problem of poor accuracy of calibration point sorting schemes in related technologies.

[0005] In a first aspect, this application provides a method for ranking calibration points for distortion correction, the method comprising: For each calibration point in the dot matrix diagram, determine a predetermined number of other calibration points adjacent to the calibration point; from the other calibration points, determine the reference calibration points in the partitions corresponding to each predetermined direction; Based on the reference calibration points in the partitions corresponding to each preset direction, the calibration points are sorted to determine the calibration points in each row and column of the dot matrix.

[0006] The above technical solution has the following advantages or beneficial effects: In related technologies, a common calibration point sorting scheme relies on the coordinate difference of calibration points and a globally set fixed threshold. When the virtual image distortion is significant, this scheme may missort some calibration points from the next row into the previous row, leading to sorting errors. This application addresses this problem by proposing a calibration point sorting scheme based on the relative neighborhood topology of calibration points. This scheme uses topological constraints to lock the row and column assignment of each calibration point and performs global calibration point sorting based on this assignment. This avoids the sorting errors caused by the globally set fixed threshold scheme in related technologies and improves the accuracy of calibration point sorting. Specifically, when determining the row and column affiliation of each calibration point, this application first identifies a predetermined number of other calibration points adjacent to each calibration point in the dot matrix diagram. Then, from these other calibration points, reference calibration points are identified in the partitions corresponding to each predetermined direction. These reference calibration points are the calibration points that are immediately adjacent to the current calibration point in the topological relationship, and they belong to the same row or column as the adjacent reference calibration point. Finally, based on the reference calibration points in the partitions corresponding to each calibration point in each predetermined direction, the calibration points are sorted. This application locks the row and column affiliation of each point through local neighborhood direction matching, fundamentally avoiding the sorting errors caused by calibration point coordinate offsets in scenarios with large distortions, thus improving the accuracy of calibration point sorting.

[0007] Secondly, this application provides a calibration point sorting device for distortion correction, the device comprising: The determination module is used to determine a preset number of other calibration points adjacent to each calibration point in the dot matrix diagram; and to determine reference calibration points in the partitions corresponding to each preset direction from the other calibration points. The sorting module is used to sort the calibration points according to the reference calibration points in the partitions corresponding to the preset directions, and to determine the row calibration points and column calibration points in the dot matrix.

[0008] Thirdly, this application provides a head-up display, the head-up display comprising: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the method.

[0009] Fourthly, this application provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the method described herein.

[0010] Fifthly, this application provides a computer program product comprising an executable program that is executed by a processor to implement the method described. Attached Figure Description

[0011] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0012] Figure 1 This is a schematic diagram of the dot matrix provided in this application; Figure 2 A schematic diagram illustrating the process of the first calibration point sorting method for distortion correction provided in this application; Figure 3 A schematic diagram illustrating the second method of calibration point sorting for distortion correction provided in this application; Figure 4 A schematic diagram showing the locations of a predetermined number of other calibration points adjacent to the calibration point, as determined in this application; Figure 5 A schematic diagram illustrating the process of the third type of calibration point sorting for distortion correction provided in this application; Figure 6 A schematic diagram illustrating the determination of reference calibration points based on angle range provided in this application; Figure 7 A schematic diagram of the first scheme for sorting the calibration points provided in this application; Figure 8 A schematic diagram of the second scheme for sorting the calibration points provided in this application; Figure 9 A schematic diagram of the calibration point sorting results provided in this application; Figure 10 A schematic diagram of the calibration point sorting device for distortion correction provided in this application; Figure 11 A schematic diagram of the head-up display provided in this application. Detailed Implementation

[0013] To make the objectives and implementation methods of this application clearer, the exemplary implementation methods of this application will be clearly and completely described below with reference to the accompanying drawings of the exemplary embodiments of this application. Obviously, the exemplary embodiments described are only some embodiments of this application, and not all embodiments.

[0014] It should be noted that the brief descriptions of terms in this application are only for the convenience of understanding the embodiments described below, and are not intended to limit the embodiments of this application. Unless otherwise stated, these terms should be understood in their ordinary and common meaning.

[0015] The terms "first," "second," "third," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar or related objects or entities, and do not necessarily imply a specific order or sequence, unless otherwise specified. It should be understood that such terms are interchangeable where appropriate.

[0016] The terms “comprising” and “having”, and any variations thereof, are intended to cover but not exclude inclusion, for example, a product or device that includes a range of components is not necessarily limited to all of the components that are clearly listed, but may include other components that are not clearly listed or that are inherent to such product or device.

[0017] The term "module" refers to any known or subsequently developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and / or software code that is capable of performing the functions associated with that element.

[0018] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

[0019] For ease of explanation, the above description has been provided in conjunction with specific embodiments. However, the above exemplary discussion is not intended to be exhaustive or to limit the embodiments to the specific forms disclosed above. Various modifications and variations can be obtained based on the above teachings. The selection and description of the above embodiments are for the purpose of better explaining the principles and practical applications, thereby enabling those skilled in the art to better utilize the described embodiments and various different variations of embodiments suitable for specific use considerations.

[0020] Figure 1 This is a schematic diagram of the dot matrix provided in this application. Figure 1 The bright spots in the image are the calibration points, such as... Figure 1 As mentioned above, due to image distortion, each calibration point is offset in both the horizontal and vertical directions. In a bitmap image, the coordinate information of each calibration point is known. Related techniques first sort all calibration points by their y-values, then group points with y-differences less than a preset threshold into a single row, and then sort each row by its x-value. Alternatively, all calibration points can be sorted by their x-values ​​first, then group points with x-differences less than a preset threshold into a single column, and then sort each column by its y-value. For bitmap images with significant distortion, these techniques may incorrectly sort some calibration points from the next row into the previous row, leading to sorting errors.

[0021] To address the aforementioned technical issues, this application proposes a calibration point sorting scheme based on the relative neighborhood topological relationship of calibration points. Figure 2 A schematic diagram of the first calibration point sorting process for distortion correction provided in this application includes the following steps: S101: For each calibration point in the dot matrix diagram, determine a preset number of other calibration points adjacent to the calibration point; from the other calibration points, determine the reference calibration points in the partitions corresponding to each preset direction; Wherein, each preset direction refers to the positive and negative directions of the horizontal and vertical coordinate axes in the image coordinate system; S102: Based on the reference calibration points in the partitions corresponding to each preset direction, sort the calibration points to determine the row calibration points and column calibration points in the dot matrix diagram.

[0022] The calibration point sorting method for distortion correction provided in this application is applied to a heads-up display (HUD). The HUD acquires a dot matrix image, and the coordinate information of each calibration point in the dot matrix image is known. The HUD can obtain the coordinate information of each calibration point. For each calibration point in the dot matrix image, based on the coordinate information of each calibration point, a preset number of other calibration points adjacent to that calibration point can be determined. The preset number is, for example, a positive integer such as 8, 9, or 10. This application provides two schemes for determining the preset number of other calibration points adjacent to each calibration point in the dot matrix image.

[0023] Option 1: For each calibration point in the dot matrix diagram, determining a predetermined number of other calibration points adjacent to the calibration point includes: For each calibration point in the dot matrix diagram, based on the coordinate information of each calibration point, a preset number of other calibration points adjacent to the calibration point are determined according to the nearest neighbor principle.

[0024] The nearest neighbor principle refers to calculating the distance between calibration points based on coordinates in the image coordinate system, and selecting a preset number of other calibration points that are closest to the current calibration point as its neighbors.

[0025] In Scheme 1, for each calibration point in the dot matrix, based on the coordinate information of each calibration point, the distances of each calibration point to all other calibration points are first determined. Optionally, all determined distances are sorted in ascending order, then a preset number of distances are selected in reverse order, and the calibration points corresponding to the selected preset number of distances are used as a preset number of other calibration points adjacent to that calibration point. Alternatively, all determined distances are sorted in descending order, then a preset number of distances are selected in reverse order, and the calibration points corresponding to the selected preset number of distances are used as a preset number of other calibration points adjacent to that calibration point.

[0026] Figure 3 A schematic diagram of the second calibration point sorting process for distortion correction provided in this application includes the following steps: S201: For each calibration point in the dot matrix diagram, based on the coordinate information of each calibration point, determine a preset number of other calibration points that are adjacent to the calibration point according to the nearest neighbor principle; from the other calibration points, determine the reference calibration points in the partitions corresponding to each preset direction. Wherein, each preset direction refers to the positive and negative directions of the horizontal and vertical coordinate axes in the image coordinate system; S202: Based on the reference calibration points in the partitions corresponding to each preset direction, sort the calibration points to determine the row calibration points and column calibration points in the dot matrix diagram.

[0027] While Scheme 1 can determine a predetermined number of neighboring calibration points for each calibration point in the dot matrix diagram, its algorithm is computationally intensive and inefficient. To improve the computational efficiency of determining the predetermined number of neighboring calibration points, Scheme 2 can be adopted.

[0028] Option 2: For each calibration point in the dot matrix diagram, determining a predetermined number of other calibration points adjacent to the calibration point includes: For each calibration point in the dot matrix diagram, a KD tree is constructed based on the coordinate information of each calibration point; based on the KD tree, a predetermined number of other calibration points adjacent to the calibration point are determined.

[0029] The following describes the process of constructing a KD tree based on the coordinate information of each calibration point, and the process of determining a preset number of other calibration points adjacent to the calibration point based on the KD tree.

[0030] A KD-tree is a tree-like storage structure that recursively divides k-dimensional spatial data into two subtrees. All points in a dot matrix are two-dimensional spatial data (each point can be represented as (x, y), where x is the horizontal coordinate and y is the vertical coordinate). Therefore, a two-dimensional KD-tree is constructed. By continuously dividing the space, the points are distributed to different subtrees, reducing the computational load of subsequent queries.

[0031] Each KD-tree node needs to store three types of information: the spatial partitioning dimension of the current node (x-axis / dimension 0 in a two-dimensional scenario, or y-axis / dimension 1); the coordinates (x, y) of the current partitioning point; and pointers to the left and right subtrees (the subtree pointers of leaf nodes are null).

[0032] Common partitioning rules are as follows: the partitioning dimension can be selected using either the round-robin method or the maximum variance method. Round-robin method: partition the root node (depth 0) along the x-axis, partition the node at depth 1 along the y-axis, partition the node at depth 2 along the x-axis, and so on in a loop. Maximum variance method: calculate the variance of all current points in the x and y dimensions, and select the dimension with the larger variance for partitioning (a larger variance indicates a more dispersed data distribution, resulting in a more balanced tree after partitioning).

[0033] Split point selection: After sorting all points in the current dimension, select the median as the split point to ensure that the number of nodes in the left and right subtrees is approximately equal, maintaining tree balance and maximizing query efficiency. If multiple points have the same split dimension value, simply ensure the number of nodes in the left and right subtrees is balanced during splitting; this will not affect the final result.

[0034] The following examples will illustrate this.

[0035] Taking a point matrix containing 7 points as an example, the point set is: P = {(2,3), (5,4), (9,6), (4,7),(8,1), (7,2), (6,3)}, constructed using a round-robin method: Constructing the root node: With the current depth at 0, select the partitioning dimension x. Sort all points by their x-coordinates in ascending order: x ∈ {2, 4, 5, 6, 7, 8, 9}, a total of 7 points. The median is the 4th point, x=6, corresponding to point (6,3). Therefore, the root node stores: partitioning dimension x, point coordinates (6,3). After partitioning, the space is divided into two parts: Left subspace: all points x < 6 → Pleft = {(2,3), (5,4), (4,7)}; Right subspace: all points x > 6 → Pright = {(9,6), (8,1), (7,2)}.

[0036] Recursively construct left and right subtrees: with a current depth of 1, select the splitting dimension y and process the two subspaces respectively: Processing the left subspace Pleft: Sort the points by y → y ∈ {3, 4, 7}, the median is y=4, corresponding to the point (5, 4), which becomes the left child of the root node. After partitioning, it is divided into: Left subspace: y < 4 → {(2, 3)}, only 1 point remains, which becomes the left leaf node of (5, 4), and the recursion terminates. Right subspace: y > 4 → {(4, 7)}, only 1 point remains, which becomes the right leaf node of (5, 4), and the recursion terminates.

[0037] Processing the right subspace P_right: Sort the points by y → y ∈ {1, 2, 6}, the median is y=2, corresponding to point (7,2), which becomes the right child of the root node. After partitioning, it is divided into: Left subspace: y < 2 → {(8,1)}, which becomes the left leaf node of (7,2), and the recursion terminates. Right subspace: y > 2 → {(9,6)}, which becomes the right leaf node of (7,2), and the recursion terminates.

[0038] All recursions terminate, resulting in a complete two-dimensional KD tree. The overall time complexity of the construction is O(nlogn), where n is the total number of points in the raster graph.

[0039] The process of finding the nearest 8 points of the calibration point based on the KD tree is as follows (k=8 nearest neighbor search).

[0040] The core logic of KD-tree k-nearest neighbor search is to first locate the leaf nodes downwards, and then backtrack upwards to perform a pruning search. This is more efficient than brute-force enumeration of all points to calculate the distance. In a two-dimensional point matrix scenario, it can guarantee an accurate nearest neighbor result. The specific steps are as follows: Suppose we want to find the 8 points closest to the calibration point Q in the dot matrix. First, we complete the initialization: create a max-heap (max-heap property: the top element of the heap is always the point with the largest distance in the current heap, which facilitates the quick elimination of the farthest point and maintains the heap size at a fixed 8). The elements stored in the heap are (distance from Q, point coordinates).

[0041] Start the search from the root node of the KD tree.

[0042] Recursively locate leaf nodes downwards. Starting from the root node, search downwards according to the following rules until a leaf node is reached: Compare the values ​​of the target point Q and the current node in the split dimension of the current node: If the split dimension value of Q is less than the split dimension value of the current node → enter the left subtree of the current node, and record the right subtree of the current node as an unvisited branch; If the split dimension value of Q is greater than or equal to the split dimension value of the current node → enter the right subtree of the current node, and record the left subtree of the current node as an unvisited branch. Repeat this step until a leaf node is reached, and add the leaf node to the max heap: If the current heap size is less than 8, insert it directly into the heap; if the heap size is already 8, and the distance to the leaf node is less than the distance to the top of the heap, pop the top of the heap and insert the leaf node.

[0043] Starting from the leaf node, backtrack upwards and perform the following operations on each current parent node: Update the candidate nearest neighbor set: Calculate the distance between the current node and Q, and update the max-heap according to the same rules: if the heap is not full, insert directly; if the heap is full, replace the top of the heap only if the distance between the current node and the top of the heap is less than the distance between the current node and the top of the heap.

[0044] Pruning criteria: Should unvisited branches be searched? Calculate the perpendicular distance d from the target point Q to the current node's split line and compare it with the distance D from the top of the current max-heap (which is the farthest distance among the current 8 candidate points): If d < D: This means that in the unvisited branches on the other side of the split line, there exists a point closer to the current farthest candidate point. Therefore, we need to enter this unvisited branch, repeat the steps of the downward search process, and add the found point to the candidate update heap. If d ≥ D: This means that the distance from all points in the unvisited branch to Q is greater than or equal to D, and it is impossible for them to become closer points. We can directly prune this branch without searching. Continue backtracking upwards until we reach the root node, and all possible branches have been processed.

[0045] After backtracking is complete, the 8 points stored in the max heap are the 8 points closest to the calibration point Q, and the search ends.

[0046] Raster graphs are two-dimensional low-dimensional data. The average time complexity of KD-tree search is O(k + logn) (k=8, n is the total number of points), which is better than the O(n) of brute-force search. The advantage becomes more obvious as the number of points increases. In two-dimensional scenarios, KD-trees can guarantee finding the exact 8 nearest points, which is suitable for the application requirements of raster graphs. Pruning is the core of the high efficiency of KD-trees. Most branches that do not meet the conditions will be skipped directly without calculating the distance, reducing unnecessary computation.

[0047] Additionally, it should be noted that determining the positions of a predetermined number of other calibration points adjacent to each calibration point in the dot matrix diagram is related to the position of the calibration point itself. For example, if the calibration point is located in the upper left corner of the dot matrix diagram, the predetermined number of other calibration points adjacent to it will be located to the right, lower, and lower right of the calibration point. As another example, if the calibration point is located on the left edge of the dot matrix diagram, the predetermined number of other calibration points adjacent to it will be located to the right, lower, lower right, upper, and upper right of the calibration point. Furthermore, if the calibration point is not an edge point in the dot matrix diagram, the predetermined number of other calibration points adjacent to it will be located around the calibration point. Figure 4 This application provides a schematic diagram showing the locations of a predetermined number of other calibration points adjacent to the calibration point. It should be noted that, for simplicity, Figure 4 The diagram shown is undistorted; in reality, it is the same as... Figure 1 The corresponding location map shows the distortion. Additionally, Figure 4 This diagram only shows the positions of the calibration point in the upper left corner of the dot matrix, the calibration point on the left edge, and the calibration point on the non-edge side, along with a predetermined number of other calibration points nearby. The positions of the other calibration points nearby at other locations will not be described further.

[0048] Figure 5 The schematic diagram of the third type of calibration point sorting for distortion correction provided in this application includes the following steps: S301: For each calibration point in the dot matrix diagram, construct a KD tree based on the coordinate information of each calibration point; determine a preset number of other calibration points adjacent to the calibration point based on the KD tree; and determine reference calibration points in the partitions corresponding to each preset direction from the other calibration points. Wherein, each preset direction refers to the positive and negative directions of the horizontal and vertical coordinate axes in the image coordinate system; S302: Based on the reference calibration points in the partitions corresponding to each preset direction, sort the calibration points to determine the row calibration points and column calibration points in the dot matrix diagram.

[0049] In this application, for each calibration point in the bitmap, after determining a predetermined number of other calibration points adjacent to that calibration point, reference calibration points are determined from these other calibration points for each predetermined direction within their respective partitions. Each predetermined direction refers to the positive and negative directions of the horizontal and vertical coordinate axes in the image coordinate system. For ease of understanding, each predetermined direction can be considered as the four directions (up, down, left, right) corresponding to the coordinate axes in the image coordinate system within the bitmap plane. It should be noted that for each calibration point in the bitmap, reference calibration points are determined from the other calibration points adjacent to that calibration point within their respective partitions for each predetermined direction. Each predetermined direction is related to the position of the calibration point. For example, if the calibration point is the top left corner of the dot matrix image, the preset direction is right and bottom; if the calibration point is the left edge of the dot matrix image, the preset direction is right, bottom, and top; if the calibration point is a non-edge point in the dot matrix image, the preset direction is left, right, bottom, and top; if the calibration point is the bottom left corner of the dot matrix image, the preset direction is right and top; if the calibration point is the top right corner of the dot matrix image, the preset direction is left and bottom; if the calibration point is the right edge of the dot matrix image, the preset direction is left, bottom, and top; if the calibration point is the bottom right corner of the dot matrix image, the preset direction is left and top.

[0050] In this application, after determining a predetermined number of other calibration points adjacent to each calibration point in the dot matrix diagram, reference calibration points are determined from the other calibration points within the partitions corresponding to each predetermined direction. Optionally, for each predetermined direction, a sector partition, rectangular partition, polygonal partition, or custom partition corresponding to that predetermined direction is determined. Then, other calibration points contained within the partition are used as reference calibration points. Further optionally, for each predetermined direction, an angle range corresponding to that predetermined direction is determined. The angle ranges corresponding to different predetermined directions can be the same or different, and the angle range can be a predetermined angle value, such as 30°, 40°, etc. Figure 6 This is a schematic diagram illustrating the determination of reference calibration points based on angle range, as provided in this application. Figure 6 As shown, taking the right direction as the preset direction as an example, the angle with the horizontal axis as the center of the angle is the angle range corresponding to the right direction. For a calibration point, other calibration points included in the angle range corresponding to the right direction are the reference calibration points corresponding to that calibration point.

[0051] It should be noted that the concept of "including other calibration points within the angle range" can mean either that other calibration points are completely within the angle range, or that a preset proportional area of ​​other calibration points is within the angle range. The preset proportional area could be, for example, 80% or 85% of the area of ​​the calibration point. Furthermore, if a reference calibration point cannot be determined based on the current preset angle range, the angle range can be adjusted appropriately, for example, by increasing the angle range according to a preset angle step, to redetermine the reference calibration points for each calibration point in each preset direction.

[0052] When determining the reference calibration point of the calibration point in a preset direction, other calibration points included within the angle range corresponding to the preset direction are used as reference calibration points. In one case, when determining the reference calibration point of the calibration point in the preset direction, it is possible that the angle range corresponding to the preset direction contains multiple other calibration points. Based on the above considerations, in this application, determining the reference calibration point in the partition corresponding to each preset direction from the other calibration points includes: For each preset direction, a corresponding angle range is determined based on the preset direction. If the angle range contains at least two other calibration points, the other calibration point closest to the calibration point within the angle range is determined as a reference calibration point located in the preset direction of the calibration point, based on the coordinate information of the calibration point and the coordinate information of the at least two other calibration points.

[0053] In this application, for the currently processed calibration point, for each preset direction, firstly, the corresponding angle range is determined according to the preset direction, and the number of other calibration points contained within the angle range is determined. If the number is one, then the other calibration point is directly determined as the reference calibration point; if the number is at least two, then the distances between the currently processed calibration point and the at least two other calibration points are determined according to the coordinate information of the currently processed calibration point and the coordinate information of the at least two other calibration points. Then, the other calibration point closest to the calibration point is determined as the reference calibration point located in the preset direction of the calibration point.

[0054] In this application, for each calibration point in the dot matrix diagram, a predetermined number of other calibration points adjacent to the calibration point are determined; reference calibration points located in each predetermined direction of the calibration point are also determined among the other calibration points. Thus, for each calibration point in the dot matrix diagram, reference calibration points in each predetermined direction of that calibration point are determined. Then, based on the reference calibration points in each predetermined direction for each calibration point, the calibration points are sorted to determine the calibration points in each row and column of the dot matrix diagram. This application provides two technical solutions for sorting the calibration points. The first solution obtains the calibration points for each row first, and then obtains the calibration points for each column; the second solution obtains the calibration points for each column first, and then obtains the calibration points for each row.

[0055] Figure 7 This is a schematic diagram of the first scheme for sorting calibration points provided in this application. Based on the reference calibration points in the partitions corresponding to each preset direction, the calibration points are sorted to determine the row and column calibration points in the dot matrix diagram, including: S401: Obtain the sorting status of each calibration point, wherein the sorting status includes a sorted state and an unsorted state; S402: Select the calibration point to be processed from the calibration points in the unsorted state, and find the reference calibration point of the calibration point to be processed in the horizontal axis direction of the image coordinate system; take the reference calibration point as the calibration point to be processed, and continue to find the reference calibration point in the horizontal axis direction until all the reference calibration points in the horizontal axis direction are found; determine the calibration point to be processed and all the found reference calibration points as the calibration points in the same row of the dot matrix image; S403: Sort the determined calibration points of each row according to the vertical coordinate to obtain the calibration points of each column.

[0056] During the initial sorting, all calibration points are set to an unsorted state. Then, calibration points to be processed are selected from the unsorted calibration points. Optionally, calibration points to be processed are randomly selected from the unsorted calibration points. Alternatively, the unsorted calibration points can be sorted according to a set rule, and calibration points to be processed are selected in sequence, one at a time. The set rule could be, for example, sorting the calibration points according to the magnitude of their horizontal coordinates or their vertical coordinates.

[0057] After selecting the calibration point to be processed, search for reference calibration points along the horizontal axis of the image coordinate system. The horizontal axis refers to the left and right directions. Search for reference calibration points to the left and right respectively, and then use all found reference calibration points as the calibration point to be processed. Continue searching for reference calibration points along the horizontal axis, that is, continue searching to the left and right respectively. Continue until all reference calibration points in the horizontal axis have been found, meaning there are no reference calibration points to the left or right. At this point, it is considered that all reference calibration points in the horizontal axis have been found. Then, the calibration point to be processed and all found reference calibration points are designated as calibration points in the same row of the bitmap.

[0058] After determining the calibration point for this row, a new calibration point to be processed is selected, and the above steps are repeated until the calibration points for all rows are determined. To avoid selecting already sorted calibration points, after determining the calibration point to be processed and all found reference calibration points as calibration points of the same row in the dot matrix, the method further includes: determining the sorting state of the calibration point to be processed and all found reference calibration points as sorted. This ensures that when a new calibration point is selected, a calibration point is chosen from unsorted rows, thus determining the calibration point for each row. When all calibration points are in a sorted state, the calibration points for all rows have been sorted.

[0059] After determining the calibration points for all rows, the calibration point with the smallest x-coordinate in each row is the first calibration point of that row, and the first calibration points of all rows belong to the first column. Similarly, the calibration point with the second smallest x-coordinate in each row is the second calibration point of that row, and the second calibration points of all rows belong to the second column. Each row contains the same number of calibration points, thus identifying which calibration points belong to the same column. Furthermore, to accurately determine the vertical relationship of the calibration points in each column—in other words, to accurately determine the vertical position of the calibration points in each row—the calibration points in each row are sorted according to their y-coordinates to obtain the calibration points for each column. For example, for the calibration points in the first column, sorting them according to their y-coordinates determines the vertical position of the calibration points in that column: the calibration point with the smallest y-coordinate is the calibration point in the first row of the first column, and the calibration point with the largest y-coordinate is the calibration point in the last row of the first column. This allows us to determine the vertical positional relationship of the calibration points in each column, that is, to determine the row and column indices of each calibration point. Ideally, since the calibration points for each row have already been determined, when determining the vertical positional relationship of the calibration points in each row, we can arbitrarily choose calibration points belonging to the same column and determine the vertical positional relationship of the calibration points in that column based on their y-coordinates. Because calibration points in the same row have the same row index, and calibration points in the same column have the same column index, once the calibration points in each row and the vertical positional relationship of any column's calibration points are determined, the row and column indices of each calibration point can be determined. In other words, by understanding the magnitude relationships of the x-coordinates and y-coordinates of each calibration point, we can determine the calibration points in each row and column of the dot matrix diagram.

[0060] In one optional implementation, a candidate point set containing each calibration point is created, and a calibration point to be processed is selected from the candidate point set; a reference calibration point for the calibration point to be processed is found along the horizontal axis of the image coordinate system; then, the reference calibration point is used as the calibration point to be processed, and the search for a reference calibration point continues until no reference calibration point exists; the above-mentioned calibration point to be processed and each of the found reference calibration points are determined as calibration points in the same row of the dot matrix image; the above-mentioned calibration points in the same row are deleted from the candidate point set, and a calibration point to be processed is selected from the candidate point set; the above steps are repeated until the calibration points of each row of the dot matrix image are determined; the determined calibration points of each row are sorted according to the vertical coordinate to obtain the calibration points of each column.

[0061] Figure 8 This is a schematic diagram of a second scheme for sorting calibration points provided in this application. Based on the reference calibration points in the partitions corresponding to each preset direction, the calibration points are sorted to determine the row and column calibration points in the dot matrix diagram, including: S501: Obtain the sorting status of each calibration point, wherein the sorting status includes a sorted state and an unsorted state; S502: Select the calibration point to be processed from the calibration points in the unsorted state, and find the reference calibration point of the calibration point to be processed in the vertical axis direction of the image coordinate system; take the reference calibration point as the calibration point to be processed, and continue to find the reference calibration point in the vertical axis direction until all the reference calibration points in the vertical axis direction are found; determine the calibration point to be processed and all the found reference calibration points as the calibration points in the same column of the dot matrix image; S503: Sort the determined calibration points of each column according to their horizontal coordinates to obtain the calibration points of each row.

[0062] In the second approach, similar to the first, during the initial sorting, all calibration points are set to an unsorted state. Then, a calibration point to be processed is selected from these unsorted points. After selection, reference calibration points are searched along the vertical axis of the image coordinate system. The vertical axis refers to the upward and downward directions. Reference calibration points are searched both upwards and downwards, and these are all used as the calibration point to be processed. This process continues along the vertical axis, searching both upwards and downwards, until all reference calibration points in the vertical direction are found (i.e., no reference calibration points exist above or below). At this point, it is considered that all reference calibration points in the vertical axis have been found. The calibration point to be processed and all the found reference calibration points are then designated as calibration points in the same column of the dot matrix image.

[0063] After determining the calibration points for this column, the calibration points to be processed are reselected, and the above steps are repeated until the calibration points for all columns are determined. To avoid selecting already sorted calibration points, after determining the calibration points to be processed and all found reference calibration points as calibration points in the same column of the dot matrix, the method further includes: determining the sorting state of the calibration points to be processed and all found reference calibration points as sorted. This ensures that when reselecting calibration points to be processed, calibration points are selected from unsorted columns, thus determining the calibration points for each column. When all calibration points are in a sorted state, the calibration points for all columns have been sorted.

[0064] After determining the calibration points for all columns, the calibration point with the smallest y-coordinate in each column is the first calibration point of that column, and the first calibration points of all columns belong to the first row. Similarly, the calibration point with the second smallest y-coordinate in each column is the second calibration point of that column, and the second calibration points of all columns belong to the second row. Each column contains the same number of calibration points, thus identifying which calibration points belong to the same row. Furthermore, to accurately determine the horizontal relationship of the calibration points in each row—in other words, to accurately determine the left-right position of the calibration points in each column—the calibration points in each column are sorted according to their x-coordinates to obtain the calibration points for each row. For example, for the calibration points in the first row, sorting them by x-coordinate determines the horizontal left-right position of the calibration points in this row: the calibration point with the smallest x-coordinate is the calibration point in the first column of the first row, and the calibration point with the largest x-coordinate is the calibration point in the last column of the first row. This allows us to determine the horizontal positional relationship of the calibration points in each row, that is, to determine the row and column indices of each calibration point. Ideally, since the calibration points for each column have already been determined, when determining the horizontal positional relationship of the calibration points in each column, we can arbitrarily select calibration points belonging to the same row and determine the left-right positional relationship of the calibration points in that row based on their x-coordinates. Because calibration points in the same column have the same column index, and calibration points in the same row have the same row index, after determining the calibration points in each column and the left-right positional relationship of any row's calibration points, we can determine the row and column indices of each calibration point. In other words, by understanding the magnitude relationships of the x-coordinates and y-coordinates of each calibration point, we can determine the row and column calibration points in the dot matrix diagram.

[0065] In one optional implementation, a candidate point set containing various calibration points is created, and a calibration point to be processed is selected from the candidate point set; a reference calibration point for the calibration point to be processed is found along the vertical axis of the image coordinate system; then, the reference calibration point is used as the calibration point to be processed, and the search for a reference calibration point continues until no reference calibration point exists; the above-mentioned calibration point to be processed and each of the found reference calibration points are determined as calibration points in the same column of the dot matrix; the above-mentioned calibration points in the same column are deleted from the candidate point set, and a calibration point to be processed is selected from the candidate point set; the above steps are repeated until the calibration points in each column of the dot matrix are determined; the determined calibration points in each column are sorted according to the horizontal coordinate to obtain the calibration points in each row.

[0066] When sorting calibration points, related technologies typically employ a method of first sorting all calibration points by y-value, then grouping points with y-differences less than a preset threshold into a row, and finally sorting each row by x-value. Alternatively, they may first sort all calibration points by x-value, then group points with x-differences less than a preset threshold into a column, and finally sort each column by y-value. However, when the virtual image exhibits significant distortion, these methods fail to achieve accurate sorting. In such cases, related technologies often require reducing the number of rows or columns in the dot matrix and adjusting the preset difference until correct sorting is achieved. However, this adjustment necessitates multiple tests, and different vehicle models and production lines may require different parameter sets, lacking flexibility. Furthermore, generally, the smaller the spacing between calibration dot matrix points, the more accurately the resulting mapping reflects the actual distortion.

[0067] To address the aforementioned technical issues, this application proposes a calibration point sorting method for distortion correction. First, for each calibration point in the dot matrix, the eight nearest other calibration points are found. Optionally, all calibration points in the dot matrix can be constructed as a KD-tree, which allows for quick searching of the n nearest calibration points.

[0068] For each calibration point, iterate through the eight nearest other calibration points. A preset angle threshold bias can be used. When another calibration point falls within the ±bias angle of the positive direction (up, down, left, right) of the calibration point, it can be considered to be located in the positive direction of the calibration point, and this other calibration point is a reference calibration point. Filter out calibration points that are not in the positive direction. If there are multiple calibration points in a direction, retain the nearest calibration point. At this point, for each calibration point O, the reference calibration points in the up, down, left, and right directions are denoted as Ot, Ob, Ol, and Or. The middle calibration point has reference calibration points in all four directions, the edge calibration point has reference calibration points in three directions, and the corner calibration point has reference calibration points in two directions.

[0069] Create a candidate point set, initially consisting of all calibration points. Randomly select one calibration point and search for its left neighbor, then its left neighbor, and so on, until no left neighbors remain. Then search the right side until no right neighbors remain. Record all found calibration points as a row. (This method uses rows as an example; alternatively, you could search for adjacent neighbors and record them as a column.) Remove all calibration points from the candidate point set in the above row and repeat the above steps until the candidate point set is empty. Sort the first calibration point of each row by its y-coordinate. Alternatively, if you get columns, sort the first point of each column by its x-coordinate. Add each row / column point to a container in sequence to complete the sorting. Figure 9 This is a schematic diagram of the calibration point sorting results provided in this application, as shown below. Figure 9 As shown, this application can accurately determine the calibration points of each row and each column in the dot matrix diagram.

[0070] Figure 10 This is a schematic diagram of the calibration point sorting device for distortion correction provided in this application. The device includes: The determining module 21 is used to determine a preset number of other calibration points adjacent to each calibration point in the dot matrix diagram; and to determine reference calibration points in the partitions corresponding to each preset direction from the other calibration points. Wherein, each preset direction refers to the positive and negative directions of the horizontal and vertical coordinate axes in the image coordinate system; The sorting module 22 is used to sort the calibration points according to the reference calibration points in the partitions corresponding to the preset directions, and to determine the row calibration points and column calibration points in the dot matrix diagram.

[0071] The determination module 21 is specifically used to determine, for each calibration point in the dot matrix diagram, a preset number of other calibration points that are adjacent to the calibration point according to the nearest neighbor principle, based on the coordinate information of each calibration point.

[0072] The determination module 21 is specifically used to construct a KD tree for each calibration point in the dot matrix diagram based on the coordinate information of each calibration point; and to determine a preset number of other calibration points that are adjacent to the calibration point based on the KD tree.

[0073] The determining module 21 is specifically used to determine the corresponding angle range for each preset direction. If the angle range contains at least two other calibration points, the other calibration point closest to the calibration point within the angle range is determined as the reference calibration point located in the preset direction of the calibration point, based on the coordinate information of the calibration point and the coordinate information of the at least two other calibration points.

[0074] The sorting module 22 is specifically used to obtain the sorting status of each calibration point, wherein the sorting status includes a sorted state and an unsorted state; select a calibration point to be processed from each calibration point in the unsorted state, and find a reference calibration point for the calibration point to be processed in the horizontal axis direction of the image coordinate system; use the reference calibration point as the calibration point to be processed, and continue to find a reference calibration point in the horizontal axis direction until all reference calibration points in the horizontal axis direction are found; determine the calibration point to be processed and all the found reference calibration points as the calibration points in the same row of the dot matrix; sort the determined calibration points in each row according to the vertical coordinate to obtain the calibration points in each column.

[0075] The sorting module 22 is specifically used to obtain the sorting status of each calibration point, wherein the sorting status includes a sorted state and an unsorted state; select a calibration point to be processed from each calibration point in the unsorted state, and find a reference calibration point for the calibration point to be processed in the vertical axis direction of the image coordinate system; use the reference calibration point as the calibration point to be processed, and continue to find reference calibration points in the vertical axis direction until all reference calibration points in the vertical axis direction are found; determine the calibration point to be processed and all the found reference calibration points as the calibration points in the same column of the dot matrix; sort the determined calibration points in each column according to the horizontal coordinate to obtain the calibration points in each row.

[0076] The sorting module 22 is also used to determine the sorting status of the calibration point to be processed and all the reference calibration points found as a sorted status.

[0077] Figure 11 This is a schematic diagram of the structure of a head-up display (HUD) provided in this application. The HUD 10 is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, head-up displays, blade head-up displays, mainframe computers, and other suitable computers. The HUD can also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices (such as helmets, glasses, watches, etc.), and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present application described and / or claimed herein.

[0078] like Figure 11 As shown, the head-up display 10 includes at least one processor 11 and a memory, such as a read-only memory (ROM) 12 or a random access memory (RAM) 13, communicatively connected to the at least one processor 11. The memory stores computer programs executable by the at least one processor. The processor 11 can perform various appropriate actions and processes based on the computer program stored in the ROM 12 or loaded into the RAM 13 from storage unit 18. The RAM 13 can also store various programs and data required for the operation of the head-up display 10. The processor 11, ROM 12, and RAM 13 are interconnected via a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.

[0079] Multiple components in the head-up display 10 are connected to the I / O interface 15, including: an input unit 16, such as a keyboard, mouse, etc.; an output unit 17, such as various types of displays, speakers, etc.; a storage unit 18, such as a disk, optical disk, etc.; and a communication unit 19, such as a network card, modem, wireless transceiver, etc. The communication unit 19 allows the head-up display 10 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.

[0080] Processor 11 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. Processor 11 performs the various methods and processes described above, such as image processing methods.

[0081] In some embodiments, the image processing method may be implemented as a computer program tangibly contained in a computer-readable storage medium, such as a storage unit. In some embodiments, part or all of the computer program may be loaded and / or installed on a heterogeneous hardware accelerator via ROM and / or a communication unit. When the computer program is loaded into RAM and executed by a processor, one or more steps of the image processing method described above may be performed. Alternatively, in other embodiments, the processor may be configured to perform the image processing method by any other suitable means (e.g., by means of firmware).

[0082] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.

[0083] Computer programs used to implement the methods of this application may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, such that when executed by the processor, the computer programs cause the functions / operations specified in the flowcharts and / or block diagrams to be performed. The computer programs may be executed entirely on a machine, partially on a machine, or as a standalone software package, partially on a machine and partially on a remote machine, or entirely on a remote machine or server.

[0084] In the context of this application, a computer-readable storage medium can be a tangible medium that may contain or store a computer program for use by or in conjunction with an instruction execution system, apparatus, or device. A computer-readable storage medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. Alternatively, a computer-readable storage medium can be a machine-readable signal medium. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0085] To provide interaction with a user terminal, the systems and techniques described herein can be implemented on a heterogeneous hardware accelerator, which includes: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user terminal; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user terminal provides input to the heterogeneous hardware accelerator. Other types of devices can also be used to provide interaction with the user terminal; for example, the feedback provided to the user terminal can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or haptic feedback); and input from the user terminal can be received in any form (including sound input, voice input, or haptic input).

[0086] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as data servers), or middleware components (e.g., application servers), or frontend components (e.g., client computers with graphical user interfaces or web browsers through which client computers can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., communication networks). Examples of communication networks include local area networks (LANs), wide area networks (WANs), blockchain networks, and the Internet.

[0087] A computing system can include clients and servers. Clients and servers are generally located far apart and typically interact through communication networks. The client-server relationship is created by computer programs running on the respective computers and having a client-server relationship with each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a hosting product within the cloud computing service system to address the shortcomings of traditional physical hosts and VPS services, such as high management difficulty and weak business scalability.

[0088] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this application can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution of this application can be achieved, and this is not limited herein.

[0089] This application also provides a computer-readable storage medium storing a computer program executable by an electronic device, which, when run on the electronic device, causes the electronic device to perform any of the above method steps.

[0090] This application provides a computer program product, which includes an executable program that, when executed by a processor, implements the method described herein.

[0091] Although preferred embodiments of this application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of this application.

[0092] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.

Claims

1. A method for sorting calibration points for distortion correction, characterized in that, The method includes: For each calibration point in the dot matrix diagram, determine a predetermined number of other calibration points adjacent to the calibration point; from the other calibration points, determine the reference calibration points in the partitions corresponding to each predetermined direction; Based on the reference calibration points in the partitions corresponding to each preset direction, the calibration points are sorted to determine the calibration points in each row and column of the dot matrix.

2. The method as described in claim 1, characterized in that, For each calibration point in the dot matrix diagram, determining a predetermined number of other calibration points adjacent to the calibration point includes: For each calibration point in the dot matrix diagram, based on the coordinate information of each calibration point, a preset number of other calibration points adjacent to the calibration point are determined according to the nearest neighbor principle.

3. The method as described in claim 1, characterized in that, For each calibration point in the dot matrix diagram, determining a predetermined number of other calibration points adjacent to the calibration point includes: For each calibration point in the dot matrix diagram, a KD tree is constructed based on the coordinate information of each calibration point; based on the KD tree, a predetermined number of other calibration points adjacent to the calibration point are determined.

4. The method as described in claim 1, characterized in that, The step of determining the reference calibration points in the partitions corresponding to each preset direction from the other calibration points includes: For each preset direction, a corresponding angle range is determined based on the preset direction. If the angle range contains at least two other calibration points, the other calibration point closest to the calibration point within the angle range is determined as a reference calibration point located in the preset direction of the calibration point, based on the coordinate information of the calibration point and the coordinate information of the at least two other calibration points.

5. The method as described in claim 1, characterized in that, Based on the reference calibration points in the corresponding partitions of each preset direction, the calibration points are sorted to determine the row and column calibration points in the dot matrix diagram, including: Obtain the sorting status of each calibration point, wherein the sorting status includes sorted status and unsorted status; Select a calibration point to be processed from all the calibration points in the unsorted state, and find a reference calibration point for the calibration point to be processed in the horizontal axis direction of the image coordinate system; use the reference calibration point as the calibration point to be processed, and continue to find a reference calibration point in the horizontal axis direction until all reference calibration points in the horizontal axis direction are found; determine the calibration point to be processed and all the found reference calibration points as the calibration points in the same row of the dot matrix image; The calibration points of each row are sorted according to their vertical coordinates to obtain the calibration points of each column.

6. The method as described in claim 5, characterized in that, Based on the reference calibration points in the corresponding partitions of each preset direction, the calibration points are sorted to determine the row and column calibration points in the dot matrix diagram, including: Obtain the sorting status of each calibration point, wherein the sorting status includes sorted status and unsorted status; Select a calibration point to be processed from the unsorted calibration points, and find a reference calibration point for the calibration point to be processed along the vertical axis of the image coordinate system; use the reference calibration point as the calibration point to be processed, and continue to find a reference calibration point along the vertical axis until all reference calibration points along the vertical axis are found; determine the calibration point to be processed and all the found reference calibration points as calibration points in the same column of the dot matrix image; The calibration points of each column are sorted according to their horizontal coordinates to obtain the calibration points of each row.

7. The method as described in claim 6, characterized in that, After determining the calibration point to be processed and all found reference calibration points as calibration points in the same row of the dot matrix diagram, or after determining the calibration point to be processed and all found reference calibration points as calibration points in the same column of the dot matrix diagram, the method further includes: The sorting status of the calibration point to be processed and all the found reference calibration points is determined as the sorted state.

8. A calibration point sorting device for distortion correction, characterized in that, The device includes: The determination module is used to determine a preset number of other calibration points adjacent to each calibration point in the dot matrix diagram; and to determine reference calibration points in the partitions corresponding to each preset direction from the other calibration points. The sorting module is used to sort the calibration points according to the reference calibration points in the partitions corresponding to the preset directions, and to determine the row calibration points and column calibration points in the dot matrix.

9. A heads-up display, characterized in that, The head-up display includes: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the method described in any one of claims 1 to 7.

11. A computer program product, characterized in that, The computer program product includes an executable program that is executed by a processor to implement the method of any one of claims 1 to 7.