Vertex data processing methods, devices and electronic equipment in high-precision maps

By segmenting and triangulating the concave polygons in the high-precision map, the problems of jagged edges and flickering caused by direct triangulation of vertex data are solved, thus improving the display quality of the high-precision map.

CN116245993BActive Publication Date: 2026-04-21ZHIDAO NETWORK TECH (BEIJING) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ZHIDAO NETWORK TECH (BEIJING) CO LTD
Filing Date
2023-02-14
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

In high-precision maps, directly triangulating vertex data can cause jagged edges and image flickering in the rendered graphics, affecting the display effect.

Method used

First, the concave polygon is segmented to obtain multiple sub-polygons. Then, each sub-polygon is triangulated. Finally, the triangulated data of the sub-polygons are concatenated to generate the triangulated data of the concave polygon for rendering.

Benefits of technology

It improves the edge jaggedness of rendered graphics and the flickering of rendered images, thus enhancing the display effect of high-precision maps.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116245993B_ABST
    Figure CN116245993B_ABST
Patent Text Reader

Abstract

This application relates to a method, apparatus, and electronic device for processing vertex data in a high-precision map. The method includes: obtaining multiple vertex data arranged clockwise on a high-precision map; wherein the multiple vertex data correspond to multiple vertices that can form a concave polygon; segmenting the concave polygon to obtain multiple sub-polygons; triangulating each sub-polygon to obtain triangulated data corresponding to each sub-polygon; and concatenating the triangulated data corresponding to each sub-polygon to obtain the triangulated data corresponding to the concave polygon, which is used for rendering the high-precision map. The solution provided by this application can improve edge jaggedness and flickering of rendered graphics, thereby enhancing the display effect of high-precision maps.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of navigation technology, and in particular to methods, apparatus and electronic devices for processing vertex data in high-precision maps. Background Technology

[0002] High-definition maps offer more detailed and accurate navigation, providing drivers with a more comprehensive and accurate experience. Specifically, they display lane lines and lane dividers, showing road markings that accurately reflect actual road conditions, thus clarifying navigation information for drivers. However, current high-definition map data only contains vertex data. Since map engines require triangulation for rendering high-definition maps, vertex data must be triangulated before road rendering.

[0003] In related technologies, vertex data is directly triangulated, and after obtaining the triangulated data, the map engine completes high-precision map rendering based on the triangulated data. However, for curved roads in real-world scenarios, obtaining vertex data can result in excessively long concave polygons (such as...). Figure 1 As shown), directly triangulating these vertex data will cause out-of-bounds distortion, resulting in jagged edges in the subsequently rendered graphics (such as...). Figure 2 As shown), this affects the display effect of high-precision maps; at the same time, because the direction of vertex wrapping changes after crossing the boundary, it causes flickering in the rendered image (as shown). Figure 2 (As shown), this further affects the display effect of high-precision maps. Summary of the Invention

[0004] To overcome the problems existing in related technologies, this application provides a method, apparatus and electronic device for processing vertex data in high-precision maps, so as to improve the edge jaggedness of rendered graphics and the flickering of rendered images, and improve the display effect of high-precision maps.

[0005] The first aspect of this application provides a method for processing vertex data in a high-precision map, including:

[0006] Obtain multiple vertex data arranged clockwise on a high-precision map; wherein the multiple vertices corresponding to the multiple vertex data can form a concave polygon;

[0007] The concave polygon is segmented to obtain multiple sub-polygons;

[0008] Triangulate each sub-polygon to obtain the triangulated data for each sub-polygon.

[0009] The triangulated data corresponding to each sub-polygon is concatenated to obtain the triangulated data corresponding to the concave polygon. This triangulated data is used for rendering the high-precision map.

[0010] A second aspect of this application provides a vertex data processing apparatus for high-precision maps, comprising:

[0011] The first processing unit is used to obtain vertex data arranged in a clockwise direction on a high-precision map, wherein the vertices corresponding to the vertex data form a concave polygon.

[0012] The second processing unit is used to segment the concave polygon to obtain multiple sub-polygons;

[0013] The third processing unit is used to triangulate each sub-polygon to obtain the triangulated data corresponding to each sub-polygon.

[0014] The fourth processing unit is used to stitch together the triangulated data corresponding to each sub-polygon to obtain the triangulated data corresponding to the concave polygon, and the triangulated data is used for rendering the high-precision map.

[0015] A third aspect of this application provides an electronic device, comprising:

[0016] Processor; and

[0017] The memory stores executable code, which, when executed by the processor, causes the processor to perform the vertex data processing method in the high-precision map as described above.

[0018] A fourth aspect of this application provides a non-transitory machine-readable storage medium having executable code stored thereon, which, when executed by a processor of an electronic device, causes the processor to perform the vertex data processing method in a high-precision map as described above.

[0019] The technical solution provided in this application involves obtaining multiple vertex data arranged clockwise on a high-precision map (the vertices corresponding to the multiple vertex data can form a concave polygon), then first segmenting the concave polygon formed by the vertex data to obtain multiple sub-polygons; then triangulating each sub-polygon to obtain triangulated data corresponding to each sub-polygon; finally, stitching the triangulated data corresponding to each sub-polygon together to obtain the triangulated data corresponding to the concave polygon, which is used for rendering the high-precision map. Compared with the direct triangulation of vertex data in related technologies, the solution provided in this application can improve the edge jaggedness and flickering of the rendered graphics, thereby improving the display effect of the high-precision map.

[0020] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and do not limit this application. Attached Figure Description

[0021] The above and other objects, features and advantages of this application will become more apparent from the more detailed description of exemplary embodiments thereof in conjunction with the accompanying drawings, wherein the same reference numerals generally represent the same components in the exemplary embodiments thereof.

[0022] Figure 1 This is a schematic diagram illustrating the direct triangulation of vertex data in a high-precision map, as shown by related technologies.

[0023] Figure 2 This is a rendering effect of the vertex data in a high-precision map shown in the prior art after being rendered by directly triangulated triangulated data;

[0024] Figure 3 This is a flowchart illustrating a method for processing vertex data in a high-precision map, as shown in an embodiment of this application.

[0025] Figure 4 This is a schematic diagram of the triangulation of vertex data in a high-precision map after processing, as shown in an embodiment of this application;

[0026] Figure 5 This is a rendering effect diagram of the triangulated data after processing the vertex data in the high-precision map shown in the embodiments of this application;

[0027] Figure 6 This is another flowchart illustrating the vertex data processing method in a high-precision map as shown in the embodiments of this application;

[0028] Figure 7 This is a schematic diagram of the structure of a vertex data processing device in a high-precision map as shown in an embodiment of this application;

[0029] Figure 8 This is a schematic diagram of the structure of an electronic device shown in an embodiment of this application. Detailed Implementation

[0030] Preferred embodiments of the present application will now be described in more detail with reference to the accompanying drawings. While preferred embodiments of the present application are shown in the drawings, it should be understood that the present application may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided to make the present application more thorough and complete, and to fully convey the scope of the present application to those skilled in the art.

[0031] The terminology used in this application is for the purpose of describing particular embodiments only and is not intended to be limiting of the application. The singular forms “a,” “the,” and “the” used in this application and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to and includes any or all possible combinations of one or more of the associated listed items.

[0032] It should be understood that although the terms "first," "second," "third," etc., may be used in this application to describe various information, this information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, without departing from the scope of this application, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this application, "multiple" means two or more, unless otherwise explicitly specified.

[0033] This application addresses the issue of excessively long concave polygons (such as those formed when acquiring vertex data for curved roads in real-world scenarios) Figure 1 As shown), directly triangulating these vertex data will cause out-of-bounds distortion, resulting in jagged edges in the subsequently rendered graphics (such as...). Figure 2 As shown), this affects the display effect of high-precision maps; at the same time, because the direction of vertex wrapping changes after crossing the boundary, it causes flickering in the rendered image (as shown). Figure 2 (As shown), this further affects the display effect of high-precision maps.

[0034] To address the aforementioned issues, this application provides a vertex data processing method for high-precision maps, which can improve edge artifacts and flickering in rendered graphics, thereby enhancing the display effect of high-precision maps.

[0035] The technical solutions of the embodiments of this application are described in detail below with reference to the accompanying drawings.

[0036] Figure 3 This is a flowchart illustrating a method for processing vertex data in a high-precision map, as shown in an embodiment of this application. See also... Figure 3 This application provides a method for processing vertex data in a high-precision map, which specifically includes the following:

[0037] In step 31: obtain multiple vertex data arranged clockwise on the high-precision map; wherein the multiple vertices corresponding to the multiple vertex data can form a concave polygon.

[0038] In high-definition maps, for curved roads in real-world scenes, when acquiring vertex data, the vertex data is arranged clockwise on the high-definition map (this can be called directional rotation data, and can be arranged clockwise or counterclockwise). Multiple vertex data points can form concave polygons (e.g., ...). Figure 1 (As shown).

[0039] In step 32: the concave polygon is segmented to obtain multiple sub-polygons.

[0040] In contrast to related technologies that directly triangulate vertex data, this embodiment of the application first segments the concave polygon to obtain multiple sub-polygons (e.g., Figure 4 As shown), the concave polygon can be divided into three sub-polygons (e.g., Figure 4 (As shown), four or more sub-polygons, etc. The specific number of segments can be determined based on the number of vertices contained in the concave polygon and the aspect ratio of the circumscribed rectangle of the concave polygon.

[0041] In step 33: each sub-polygon is triangulated to obtain the triangulated data corresponding to each sub-polygon.

[0042] Triangulation of each sub-polygon can be performed by referring to the direct triangulation method in related technologies, which can yield the triangulated data corresponding to each sub-polygon.

[0043] In a specific embodiment, triangulation is performed on each sub-polygon to obtain triangulated data corresponding to each sub-polygon. This includes: calculating the center point of each sub-polygon to determine the center point corresponding to each sub-polygon; sequentially connecting the center point with each pair of vertices in the corresponding sub-polygon to form triangles, thereby obtaining triangulated data corresponding to each sub-polygon (e.g., ...). Figure 4 (As shown).

[0044] It should be noted that the first implementation method for calculating the center point of a sub-polygon to determine the center point of the corresponding polygon includes: calculating the center point of any sub-polygon to determine the center point of the corresponding sub-polygon, including:

[0045] Obtain the vertex coordinates of all vertices contained in the sub-polygon; calculate the arithmetic mean of all vertex coordinates, and determine the position of the coordinates corresponding to the arithmetic mean as the center point of the sub-polygon.

[0046] It should be noted that the second implementation method for calculating the center point of a sub-polygon to determine the center point of that polygon includes: calculating the center point of any sub-polygon to determine the center point of that sub-polygon, including:

[0047] Obtain the vertex coordinates of all vertices contained in the sub-polygon; after weighting all vertex coordinates according to preset rules, calculate the weighted average of all vertex coordinates, and determine the position of the coordinates corresponding to the weighted average as the center point of the sub-polygon.

[0048] In step 34: the triangulated data corresponding to each sub-polygon is stitched together to obtain the triangulated data corresponding to the concave polygon. This triangulated data is used for rendering the high-precision map.

[0049] In a specific embodiment, the triangulation data corresponding to each sub-polygon needs to be stitched together in the order of the multiple sub-polygons divided by the concave polygon to ensure that the shape of the concave polygon is not misaligned or deformed. Finally, the triangulation data corresponding to the stitched concave polygon is input into the map engine for high-precision map rendering. For the rendering effect, please refer to [link / reference needed]. Figure 5 As shown.

[0050] This application provides a method for processing vertex data in high-precision maps. After obtaining multiple vertex data arranged clockwise on the high-precision map (the vertices corresponding to these multiple vertex data can form a concave polygon), the method first segments the concave polygon to obtain multiple sub-polygons. Then, it triangulates each sub-polygon to obtain triangulated data for each sub-polygon. Finally, it concatenates the triangulated data for each sub-polygon to obtain the triangulated data for the concave polygon, which is used for rendering the high-precision map. Compared to directly triangulating vertex data in related technologies, the solution provided in this application can improve edge artifacts and flickering in rendered graphics, thus enhancing the display effect of high-precision maps.

[0051] Figure 6 This is another flowchart illustrating a method for processing vertex data in a high-precision map, as shown in an embodiment of this application. See also... Figure 6 This application provides a method for processing vertex data in a high-precision map, which specifically includes the following:

[0052] In step 61: obtain multiple vertex data arranged clockwise on the high-precision map; wherein the multiple vertices corresponding to the multiple vertex data can form a concave polygon.

[0053] In high-definition maps, for curved roads in real-world scenes, when acquiring vertex data, the vertex data is arranged clockwise on the high-definition map (this can be called directional rotation data, and can be arranged clockwise or counterclockwise). Multiple vertex data points can form concave polygons (e.g., ...). Figure 1 (As shown).

[0054] In step 62: Determine whether the concave polygon needs to be segmented. If yes, proceed to step 63. If no, directly triangulate the concave polygon.

[0055] In a specific embodiment, it can be quickly determined whether the concave polygon needs to be segmented based on the number of vertices contained in the concave polygon. Specifically, determining whether the concave polygon needs to be segmented includes: determining the number of vertices contained in the concave polygon based on vertex data; when the number of vertices meets a preset condition, determining whether the aspect ratio of the bounding box of the concave polygon's outer rectangle meets a preset condition; if the aspect ratio of the bounding box of the concave polygon's outer rectangle meets the preset condition, then the concave polygon is segmented.

[0056] In a specific embodiment, the criterion for segmenting the concave polygon is the number of vertices corresponding to the vertex data contained in the concave polygon. When the number of vertices meets the preset condition (N≥10), that is, when the number of vertices is greater than or equal to 10, the aspect ratio of the bounding box of the concave polygon's outer rectangle is then judged. When the aspect ratio of the bounding box of the concave polygon's outer rectangle is greater than or equal to 2, the concave polygon is segmented, and step 63 is executed. It should be noted that the above preset condition can be flexibly set according to the actual situation. The purpose is to segment the concave polygon into at least 3 or more sub-polygons, and no specific limitation is made here.

[0057] In step 63: Determine the number of segments based on the aspect ratio of the bounding box.

[0058] In a specific embodiment, when the aspect ratio of the bounding box of the concave polygon meets a preset condition, the number of segments can be determined based on the aspect ratio of the bounding box. For example, if the aspect ratio n = 2.5, the concave polygon needs to be divided into three segments (e.g., ...). Figure 4 As shown), the number of segments is determined to be 3. For example, the concave polygon can be divided into three sub-polygons, four sub-polygons, or more sub-polygons. The specific number of segments can be determined based on the number of vertices contained in the concave polygon and the aspect ratio of the circumscribed rectangle of the concave polygon.

[0059] In step 64: the concave polygon is divided according to the number of segments to obtain multiple sub-polygons.

[0060] In contrast to related technologies that directly triangulate vertex data, this embodiment of the application first divides the concave polygon according to the number of segments to obtain multiple sub-polygons (e.g., Figure 4 (As shown). For example, if the number of segments determined in step 63 is 3, 4, or other numbers, then the concave polygon will be divided into three sub-polygons (e.g., ...). Figure 4 (as shown), four sub-polygons or other segments of sub-polygons.

[0061] In step 65: Triangulate each sub-polygon to obtain the triangulated data corresponding to each sub-polygon.

[0062] Triangulation of each sub-polygon can be performed by referring to the direct triangulation method in related technologies, which can yield the triangulated data corresponding to each sub-polygon.

[0063] In a specific embodiment, triangulation is performed on each sub-polygon to obtain triangulated data corresponding to each sub-polygon. This includes: calculating the center point of each sub-polygon to determine the center point corresponding to each sub-polygon; sequentially connecting the center point with each pair of vertices in the corresponding sub-polygon to form triangles, thereby obtaining triangulated data corresponding to each sub-polygon (e.g., ...). Figure 4 (As shown).

[0064] It should be noted that the first implementation method for calculating the center point of a sub-polygon to determine the center point of the corresponding polygon includes: calculating the center point of any sub-polygon to determine the center point of the corresponding sub-polygon, including:

[0065] Obtain the vertex coordinates of all vertices contained in the sub-polygon; calculate the arithmetic mean of all vertex coordinates, and determine the position of the coordinates corresponding to the arithmetic mean as the center point of the sub-polygon.

[0066] It should be noted that the second implementation method for calculating the center point of a sub-polygon to determine the center point of that polygon includes: calculating the center point of any sub-polygon to determine the center point of that sub-polygon, including:

[0067] Obtain the vertex coordinates of all vertices contained in the sub-polygon; after weighting all vertex coordinates according to preset rules, calculate the weighted average of all vertex coordinates, and determine the position of the coordinates corresponding to the weighted average as the center point of the sub-polygon.

[0068] In step 66: the triangulated data corresponding to each sub-polygon is stitched together to obtain the triangulated data corresponding to the concave polygon. This triangulated data is used for rendering the high-precision map.

[0069] In a specific embodiment, the triangulation data corresponding to each sub-polygon needs to be stitched together in the order of the multiple sub-polygons divided by the concave polygon to ensure that the shape of the concave polygon is not misaligned or deformed. Finally, the triangulation data corresponding to the stitched concave polygon is input into the map engine for high-precision map rendering. For the rendering effect, please refer to [link / reference needed]. Figure 5 As shown.

[0070] This application provides a method for processing vertex data in a high-precision map. After obtaining multiple vertex data arranged clockwise on the high-precision map (the vertices corresponding to these multiple vertex data can form a concave polygon), the method first determines whether the concave polygon needs to be segmented based on the number of vertices in the concave polygon. If a preset condition is met, segmentation is performed, resulting in multiple sub-polygons. Then, each sub-polygon is triangulated to obtain triangulated data for each sub-polygon. Finally, the triangulated data for each sub-polygon is concatenated to obtain the triangulated data for the concave polygon, which is used for rendering the high-precision map. Compared to related technologies, the solution provided in this application first determines the number of vertices. If the number of vertices meets the preset condition, concave polygon segmentation is performed; otherwise, triangulation of the vertex data can be performed directly. This solution not only improves edge artifacts and image flicker in rendered graphics and enhances the display effect of high-precision maps, but also effectively improves the processing efficiency of vertex data.

[0071] To avoid directional rotation errors that could cause flickering, duplicate points need to be removed. Therefore, before segmenting the concave polygon, the process includes: determining duplicate vertices based on the vertex coordinates of all vertices contained in the concave polygon, and removing the duplicate vertices from the concave polygon.

[0072] The process of determining repeating vertices based on the vertex coordinates corresponding to all vertices contained in the concave polygon includes:

[0073] Get the coordinates of all vertices contained in the concave polygon;

[0074] Compare the coordinates of all vertices in turn, and determine the vertices with the same coordinates as duplicate vertices.

[0075] In this embodiment, duplicate vertices can be determined based on their vertex coordinates (x, y, z) to eliminate duplicate vertices. In other embodiments, the absolute values ​​of the differences between vertex coordinates (x, y, z) can also be used to determine if they are all less than a constant (e.g., 1e). -6 This is used to identify duplicate vertices in order to remove them.

[0076] It should be noted that the culling of duplicate vertices can be set before the segmentation of concave polygons; it can also be set after the segmentation of concave polygons and before the triangulation of multiple sub-polygons. The purpose is to avoid directional rotation errors that could cause flickering, and further improve the edge jaggedness and flickering of the rendered graphics, thereby enhancing the display effect of high-precision maps.

[0077] Corresponding to the aforementioned application function implementation method embodiments, this application also provides a vertex data processing device, electronic device, and corresponding embodiments in a high-precision map.

[0078] Figure 7 This is a schematic diagram of the structure of a vertex data processing device in a high-precision map, as shown in an embodiment of this application. See also... Figure 7 This application provides a vertex data processing device for high-precision maps, comprising: a first processing unit 71, a second processing unit 72, a third processing unit 73, and a fourth processing unit 74, wherein:

[0079] The first processing unit 71 is used to obtain vertex data arranged in a clockwise direction on a high-precision map, and the vertices corresponding to the vertex data form a concave polygon.

[0080] The second processing unit 72 is used to segment the concave polygon to obtain multiple sub-polygons;

[0081] The third processing unit 73 is used to perform triangulation processing on each sub-polygon to obtain the triangulated data corresponding to each sub-polygon.

[0082] The fourth processing unit 74 is used to stitch together the triangulated data corresponding to each sub-polygon to obtain the triangulated data corresponding to the concave polygon, and the triangulated data is used for rendering the high-precision map.

[0083] In a specific embodiment, before the second processing unit 72, there is also a judgment unit, which is used to determine whether the concave polygon needs to be segmented;

[0084] The judgment unit is specifically used for:

[0085] The number of vertices contained in the concave polygon is determined based on the vertex data;

[0086] When the number of vertices meets the preset condition, determine whether the aspect ratio of the bounding box of the concave polygon's outer rectangle meets the preset condition.

[0087] If the aspect ratio of the bounding box of the circumscribed rectangle of the concave polygon meets a preset condition, then the polygon is segmented.

[0088] Furthermore, in a specific embodiment, the second processing unit 72 is specifically used for:

[0089] The number of segments is determined based on the aspect ratio of the bounding box;

[0090] The concave polygon is divided into multiple sub-polygons according to the number of segments.

[0091] In a specific embodiment, the third processing unit 73 is specifically used for:

[0092] Calculate the center point for each sub-polygon to determine the center point corresponding to each sub-polygon;

[0093] The center point is connected to each pair of vertices in the corresponding sub-polygon to form triangles, thus obtaining the triangulated data for each sub-polygon.

[0094] Furthermore, in a specific embodiment, the third processing unit 73 is further configured to:

[0095] Obtain the vertex coordinates corresponding to all vertices contained in the sub-polygon;

[0096] Calculate the arithmetic mean of the coordinates of all vertices, and determine the location of the coordinates corresponding to the arithmetic mean as the center point of the sub-polygon.

[0097] Furthermore, in a specific embodiment, the third processing unit 73 is further configured to:

[0098] Obtain the vertex coordinates corresponding to all vertices contained in the sub-polygon;

[0099] After weighting all vertex coordinates according to preset rules, the weighted average of all vertex coordinates is calculated, and the position of the coordinates corresponding to the weighted average is determined as the center point of the sub-polygon.

[0100] In a specific embodiment, before the second processing unit 72 performs segmentation processing on the concave polygon, the first processing unit 71 is further configured to: determine duplicate vertices based on the vertex coordinates corresponding to all vertices contained in the concave polygon, and remove the duplicate vertices from the concave polygon;

[0101] Specifically, determining repeating vertices based on the vertex coordinates corresponding to all vertices contained in the concave polygon includes:

[0102] Obtain the vertex coordinates corresponding to all vertices contained in the concave polygon;

[0103] By comparing the coordinates of all vertices in turn, vertices with the same coordinates are identified as duplicate vertices.

[0104] This application provides a vertex data processing device for high-precision maps. After obtaining multiple vertex data arranged clockwise on the high-precision map (the vertices corresponding to the multiple vertex data can form a concave polygon), a first processing unit first segments the concave polygon formed by the vertex data to obtain multiple sub-polygons; then a third processing unit triangulates each sub-polygon to obtain triangulated data corresponding to each sub-polygon; finally, a fourth processing unit concatenates the triangulated data corresponding to each sub-polygon to obtain the triangulated data corresponding to the concave polygon. This triangulated data is used for rendering the high-precision map. Compared with the direct triangulation of vertex data in related technologies, the solution provided in this application can improve edge jaggedness and flickering of rendered graphics, thereby improving the display effect of high-precision maps.

[0105] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments related to the method, and will not be elaborated further here.

[0106] Figure 8 This is a schematic diagram of the structure of an electronic device shown in an embodiment of this application.

[0107] See Figure 8 The electronic device 800 includes a memory 810 and a processor 820.

[0108] The processor 820 can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor.

[0109] Memory 810 may include various types of storage units, such as system memory, read-only memory (ROM), and permanent storage devices. ROM may store static data or instructions required by the processor 820 or other modules of the computer. Permanent storage devices may be read-write storage devices. Permanent storage devices may be non-volatile storage devices that retain stored instructions and data even when the computer is powered off. In some embodiments, permanent storage devices use mass storage devices (e.g., magnetic or optical disks, flash memory) as permanent storage devices. In other embodiments, permanent storage devices may be removable storage devices (e.g., floppy disks, optical drives). System memory may be a read-write storage device or a volatile read-write storage device, such as dynamic random access memory. System memory may store some or all of the instructions and data required by the processor during operation. Furthermore, memory 810 may include any combination of computer-readable storage media, including various types of semiconductor memory chips (DRAM, SRAM, SDRAM, flash memory, programmable read-only memory), and disks and / or optical disks may also be used. In some implementations, memory 810 may include a removable storage device that is readable and / or writable, such as a laser disc (CD), a read-only digital versatile optical disc (e.g., DVD-ROM, dual-layer DVD-ROM), a read-only Blu-ray disc, an ultra-high density optical disc, a flash memory card (e.g., SD card, mini SD card, Micro-SD card, etc.), a magnetic floppy disk, etc. Computer-readable storage media do not contain carrier waves or transient electronic signals transmitted wirelessly or via wired connections.

[0110] The memory 810 stores executable code, which, when processed by the processor 820, can cause the processor 820 to execute part or all of the methods described above.

[0111] The solution of this application has been described in detail above with reference to the accompanying drawings. In the above embodiments, the descriptions of each embodiment have different emphases; parts not described in detail in a certain embodiment can be referred to in the relevant descriptions of other embodiments. Those skilled in the art should also understand that the actions and modules involved in the specification are not necessarily essential to this application. Furthermore, it is understood that the steps in the method of this application embodiment can be adjusted, combined, and deleted according to actual needs, and the modules in the device of this application embodiment can be combined, divided, and deleted according to actual needs.

[0112] Furthermore, the method according to this application can also be implemented as a computer program or computer program product, which includes computer program code instructions for performing some or all of the steps in the method described above.

[0113] Alternatively, this application may be implemented as a non-transitory machine-readable storage medium (or computer-readable storage medium, or machine-readable storage medium) storing executable code (or computer program, or computer instruction code) that, when executed by a processor of an electronic device (or electronic device, server, etc.), causes the processor to perform some or all of the steps of the methods described above according to this application.

[0114] Those skilled in the art will also understand that the various exemplary logic blocks, modules, circuits, and algorithm steps described in connection with the present application can be implemented as electronic hardware, computer software, or a combination of both.

[0115] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems and methods according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0116] The various embodiments of this application have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or improvement of the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.

Claims

1. A method for processing vertex data in a high-precision map, characterized in that, include: Obtain multiple vertex data arranged clockwise on a high-precision map; wherein the multiple vertices corresponding to the multiple vertex data can form a concave polygon; The concave polygon is segmented to obtain multiple sub-polygons; Triangulate each sub-polygon to obtain the triangulated data for each sub-polygon. The triangulated data corresponding to each sub-polygon is concatenated to obtain the triangulated data corresponding to the concave polygon, and the triangulated data is used for rendering the high-precision map. Before segmenting the concave polygon, the process further includes: Determine whether the concave polygon needs to be segmented; The step of determining whether the concave polygon needs to be segmented includes: The number of vertices contained in the concave polygon is determined based on the vertex data; When the number of vertices meets the preset condition, determine whether the aspect ratio of the bounding box of the concave polygon's outer rectangle meets the preset condition. If the aspect ratio of the bounding box of the outer rectangle of the concave polygon meets the preset condition, then the polygon is segmented. The process of segmenting the polygon to obtain multiple sub-polygons includes: The number of segments is determined based on the aspect ratio of the bounding box; The concave polygon is divided into multiple sub-polygons according to the number of segments.

2. The method according to claim 1, characterized in that, Triangulate each sub-polygon individually to obtain the triangulated data for each sub-polygon, including: Calculate the center point for each sub-polygon to determine the center point corresponding to each sub-polygon; The center point is connected to each pair of vertices in the corresponding sub-polygon to form triangles, thus obtaining the triangulated data for each sub-polygon.

3. The method according to claim 2, characterized in that, Calculate the center point for any sub-polygon to determine the center point corresponding to the sub-polygon, including: Obtain the vertex coordinates corresponding to all vertices contained in the sub-polygon; Calculate the arithmetic mean of the coordinates of all vertices, and determine the location of the coordinates corresponding to the arithmetic mean as the center point of the sub-polygon.

4. The method according to claim 2, characterized in that, Calculate the center point for any sub-polygon to determine the center point corresponding to the sub-polygon, including: Obtain the vertex coordinates corresponding to all vertices contained in the sub-polygon; After weighting all vertex coordinates according to preset rules, the weighted average of all vertex coordinates is calculated, and the position of the coordinates corresponding to the weighted average is determined as the center point of the sub-polygon.

5. The method according to claim 1, characterized in that, Before segmenting the concave polygon, the method further includes: determining duplicate vertices based on the vertex coordinates corresponding to all vertices contained in the concave polygon, and removing the duplicate vertices from the concave polygon; The process of determining repeating vertices based on the vertex coordinates corresponding to all vertices contained in the concave polygon includes: Obtain the vertex coordinates corresponding to all vertices contained in the concave polygon; The coordinates of all vertices are compared sequentially, and vertices with the same coordinates are identified as duplicate vertices.

6. A vertex data processing device for a high-precision map, characterized in that, include: The first processing unit is used to obtain vertex data arranged in a clockwise direction on a high-precision map, wherein the vertices corresponding to the vertex data form a concave polygon. A determination unit is used to determine whether the concave polygon needs to be segmented. The judgment unit is specifically used for: The number of vertices contained in the concave polygon is determined based on the vertex data; When the number of vertices meets the preset condition, determine whether the aspect ratio of the bounding box of the concave polygon's outer rectangle meets the preset condition. If the aspect ratio of the bounding box of the outer rectangle of the concave polygon meets the preset condition, then the polygon is segmented. The second processing unit is used to segment the concave polygon to obtain multiple sub-polygons; Specifically, it is used to determine the number of segments based on the aspect ratio of the bounding box; and to divide the concave polygon into multiple sub-polygons according to the number of segments. The third processing unit is used to triangulate each sub-polygon to obtain the triangulated data corresponding to each sub-polygon. The fourth processing unit is used to stitch together the triangulated data corresponding to each sub-polygon to obtain the triangulated data corresponding to the concave polygon, and the triangulated data is used for rendering the high-precision map.

7. An electronic device, characterized in that, include: processor; as well as A memory storing executable code, which, when executed by the processor, causes the processor to perform the vertex data processing method in a high-precision map as described in any one of claims 1-5.

8. A non-transitory machine-readable storage medium having executable code stored thereon, which, when executed by a processor of an electronic device, causes the processor to perform a vertex data processing method in a high-precision map as described in any one of claims 1-5.

Citation Information

Patent Citations

  • Polygon rendering method and device based on triangulation and storage medium

    CN112837416A