Target location map element determination method, device and electronic equipment
By splitting polygon map elements into triangular sub-elements and using relative positional relationships to determine the polygon map element where the target is located, the precision problem caused by floating-point calculations is solved, resulting in more accurate calculation results.
Patent Information
- Application Number
- CN202311280726.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-28
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2043-09-28
AI Technical Summary
In autonomous driving technology, the calculation results of targets and map elements are inaccurate due to the loss of precision or rounding errors caused by floating-point calculations.
The polygon map element is split into multiple triangular sub-elements. The polygon map element containing the target is determined by the relative positional relationship between the target and the multiple triangular sub-elements, thus avoiding reliance on specific numerical calculations.
It improves the accuracy of calculation results and avoids the precision loss or rounding errors in floating-point calculations.
Smart Images

Figure CN117115259B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of autonomous driving technology, and in particular to a method, apparatus, and electronic device for determining map elements of a target location. Background Technology
[0002] Autonomous driving technology is a comprehensive technology based on computer vision, machine learning, and sensors, enabling cars to drive autonomously on roads without human driver intervention. The goal of autonomous driving technology is to achieve fully autonomous driving, where cars can operate completely independently on roads, including accelerating, braking, turning, changing lanes, and parking, while also recognizing and responding to various road conditions. The realization of autonomous driving technology involves many key technologies, such as high-precision map creation, sensor data processing, road condition recognition, obstacle detection, and path planning.
[0003] When performing obstacle detection, path planning and other related applications, it is necessary to determine the relative positional relationship between the target and map elements. That is, it is necessary to determine which map element the target is in based on the specific numerical value of the calculation result. When processing numerical calculations that require high precision or a large range, computers use floating-point numbers for calculation. Since computers use a limited number of bits to represent floating-point numbers, precision loss or rounding errors may occur when performing floating-point calculations, resulting in inaccurate calculation results. Summary of the Invention
[0004] This application provides a method, apparatus, and electronic device for determining map elements at a target location, in order to solve the problem of inaccurate calculation of map elements at the target location.
[0005] In a first aspect, embodiments of this application provide a method for determining the location of a target in a map element. The method includes: acquiring multiple polygon map elements; splitting the multiple polygon map elements into multiple triangular sub-elements; the vertices of the triangular sub-elements belonging to the vertices of the polygon map elements in which they reside; and determining the polygon map element in which the target resides based on the relative positional relationship between the target and the multiple triangular sub-elements.
[0006] Secondly, embodiments of this application provide a device for determining the map element where a target is located. The device includes: an acquisition module for acquiring multiple polygon map elements; a splitting module for splitting the multiple polygon map elements to obtain multiple triangular sub-elements; wherein the vertices of the triangular sub-elements belong to the vertices of the polygon map elements in which they are located; and a determination module for determining the polygon map element where the target is located based on the relative positional relationship between the target and the multiple triangular sub-elements.
[0007] Thirdly, embodiments of this application provide an electronic device, including a memory, a processor, and a computer program stored in the memory, wherein the processor implements any of the methods described above when executing the computer program.
[0008] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements any of the methods described above.
[0009] Compared with the prior art, this application has the following advantages:
[0010] This application provides a method, apparatus, and electronic device for determining the location of a target in a map element. First, multiple polygonal map elements are acquired. Second, the multiple polygonal map elements are split into multiple triangular sub-elements. The vertices of the triangular sub-elements belong to the vertices of their respective polygonal map elements. Finally, based on the relative positional relationship between the target and the multiple triangular sub-elements, the polygonal map element containing the target is determined. In this embodiment, the polygonal map element is split into multiple triangular sub-elements, and the polygonal map element containing the target is determined by the relative positional relationship between the target and the multiple triangular sub-elements. Since the relative positional relationship between the target and the multiple triangular sub-elements does not need to be determined based on specific numerical values, the precision loss or rounding error that occurs in floating-point calculations can be avoided, thus improving the accuracy of the calculation results.
[0011] The above description is only an overview of the technical solution of this application. In order to better understand the technical means of this application, it can be implemented according to the contents of the specification. In order to make the above and other objects, features and advantages of this application more obvious and understandable, specific embodiments of this application are given below. Attached Figure Description
[0012] In the accompanying drawings, unless otherwise specified, the same reference numerals throughout the various drawings denote the same or similar parts or elements. These drawings are not necessarily drawn to scale. It should be understood that these drawings depict only some embodiments according to this application and should not be construed as limiting the scope of this application.
[0013] Figure 1 This is a flowchart illustrating a method for determining map elements at a target location according to an embodiment of this application;
[0014] Figure 2 This is a schematic diagram of splitting convex polygon map elements according to an embodiment of this application;
[0015] Figure 3 This is a schematic diagram of splitting concave polygon map elements according to an embodiment of this application;
[0016] Figure 4 This is a structural block diagram of a device for determining map elements of a target location according to an embodiment of this application; and
[0017] Figure 5 This is a block diagram of an electronic device used to implement embodiments of this application. Detailed Implementation
[0018] In the following description, only certain exemplary embodiments are briefly described. As those skilled in the art will recognize, the described embodiments can be modified in various ways without departing from the concept or scope of this application. Therefore, the drawings and description are considered to be exemplary in nature and not restrictive.
[0019] To facilitate understanding of the technical solutions of the embodiments of this application, the relevant technologies of the embodiments of this application are described below. The following relevant technologies are optional solutions and can be combined with the technical solutions of the embodiments of this application in any way, and all of them fall within the protection scope of the embodiments of this application.
[0020] This application provides a method for determining map elements of a target location. This method can be applied to a computing device, which may include a server, a user terminal, etc. Figure 1 The flowchart shown is a method for determining map elements of a target location according to an embodiment of this application, including:
[0021] Step S101: Obtain multiple polygon map elements.
[0022] Step S102: Split multiple polygon map elements to obtain multiple triangle sub-elements; the vertices of the triangle sub-elements belong to the vertices of the polygon map elements they belong to.
[0023] Step S103: Based on the relative positional relationship between the target and multiple triangular sub-elements, determine the polygonal map element where the target is located.
[0024] The polygonal map elements can be obtained from elements in the map data. In this embodiment, the polygon can be a shape with 4 or more sides. Triangular map elements do not need to be split; the positional relationship between the target and the triangular map elements is directly calculated.
[0025] When splitting any polygonal map element, the split is based on the vertices of the polygon. That is, the vertices of the split triangular sub-elements are the vertices of the polygon before the split, and no new vertices are added, thus avoiding the storage resource overhead caused by storing new points.
[0026] The relative positional relationship between the target and the triangle sub-element includes whether the target is inside the triangle sub-element or outside the triangle sub-element. The target being inside the triangle sub-element includes the target being on the boundary of the triangle sub-element.
[0027] The target's position coordinates are known, and the vertex position coordinates of the triangle sub-element are also known. When calculating the relative positional relationship between the target and the triangle sub-element, it is not necessary to determine the relative positional relationship based on specific values. The triangle sub-element where the target is located can be determined. The polygon map element where the triangle sub-element was located before splitting is the polygon map element where the target is located.
[0028] The method for determining the location of a target map element provided in this application embodiment first obtains multiple polygon map elements; second, it splits the multiple polygon map elements into multiple triangular sub-elements; the vertices of the triangular sub-elements belong to the vertices of the polygon map elements they belong to; finally, based on the relative positional relationship between the target and the multiple triangular sub-elements, it determines the polygon map element where the target is located. In this embodiment, the polygon map elements are split into multiple triangular sub-elements, and the polygon map element where the target is located is determined by the relative positional relationship between the target and the multiple triangular sub-elements. Since it is not necessary to determine the relative positional relationship based on specific numerical values when calculating the relative positional relationship between the target and the multiple triangular sub-elements, the precision loss or rounding error that occurs in floating-point calculations can be avoided, thus improving the accuracy of the calculation results.
[0029] In one possible implementation, step S101, obtaining multiple polygon map elements, includes: determining multiple polygon map elements based on multiple points of multiple initial map elements in the map data, wherein the initial map elements include objects in the road environment.
[0030] The initial map elements include objects in the road environment, such as lanes, lane lines, streetlights, flower beds, etc.
[0031] The map data includes attribute information of the initial map elements, specifically shape information, feature information, and index information of edge points. Based on this index information, the position coordinates of the edge points can be retrieved. Specifically, the multiple points of the initial map element include the position coordinates of points on the edges of the initial map element.
[0032] In practical applications, different processing methods are adopted according to the different shapes of the initial map elements, as shown in the following examples:
[0033] In one possible implementation, the initial map element is circular in shape. Based on multiple points of multiple initial map elements in the map data, multiple polygon map elements are determined, including: for any circular initial map element, multiple points on the circumference are determined based on the center and radius of the circular initial map element; the multiple points on the circumference are connected sequentially to obtain polygon map elements, which are used as the polygon map elements corresponding to the circular initial map elements.
[0034] In practical applications, when determining polygonal map elements based on a circular initial map element, multiple points on the circumference can be connected to obtain regular polygonal map elements, which can then be split into multiple triangular sub-elements.
[0035] In one possible implementation, the initial map element is linear in shape. Based on multiple points of multiple initial map elements in the map data, multiple polygon map elements are determined, including: for any linear initial map element, translating the linear initial map element to obtain two points other than the two endpoints of the linear initial map element; sequentially connecting the two endpoints of the initial linear map element and the two points other than the two endpoints of the linear initial map element to obtain a rectangular map element, which serves as the polygon map element corresponding to the initial linear map element.
[0036] In practical applications, for initial linear map elements, such as lane lines, the map data can include multiple points on the lane lines, such as the two endpoints of the lane lines.
[0037] The specific ways to translate the initial linear map element can include: translating vertically, translating horizontally, or translating while keeping the slope of the line containing the initial linear map element constant.
[0038] Connect the two endpoints of the initial linear map element in sequence, and the two points obtained after the translation of the two endpoints, and connect these four points in sequence to obtain the rectangular map element.
[0039] Optionally, the map data may also include the position coordinates of points other than the endpoints of the initial linear map element. When translating the initial linear map element, the rectangular map element can still be obtained based on the position coordinates of the existing points and the position coordinates of the translated points.
[0040] In addition, for initial map elements other than circles and lines, the map data includes the position coordinates of points on multiple edges of the initial map element. By sequentially connecting the position coordinates of these edge points, a polygonal map element is obtained.
[0041] In practical applications, after obtaining the polygon map elements, it is determined whether the polygon is a convex or concave polygon. Specifically, if for any edge of the polygon, all points of the polygon are on the same side of that edge, then the polygon is a convex polygon. If there exists an edge on both sides of the polygon, then the polygon is a concave polygon. Different processing methods are used for polygon map elements of different shapes, as shown in the following examples:
[0042] In one possible implementation, the polygon map element is convex polygon in shape. Step S102 involves splitting multiple polygon map elements to obtain multiple triangular sub-elements, including: for any convex polygon map element, connecting the interval vertices of the convex polygon map element to obtain triangular sub-elements and a first remaining map element; connecting the interval vertices of the first remaining map element to obtain triangular sub-elements and the first remaining map element again; and continuing to split until the shape of the first remaining map element is a triangle, thus obtaining multiple triangular sub-elements.
[0043] Specifically, for any convex polygon map element (hereinafter referred to as a convex polygon), the vertices of the convex polygon are numbered in a clockwise or counterclockwise direction. One vertex is arbitrarily selected, and vertices with a sequence number greater than 2 are connected to it, generating a triangle and a convex polygon. This process of splitting the convex polygon continues until it is composed of triangles. The splitting process ends, and the resulting triangles are associated with the original polygon. No new vertices are generated during the splitting process, thus requiring no storage resource overhead.
[0044] In one example, such as Figure 2 As shown, the convex polygon map element is a pentagon. The vertices are numbered sequentially in a clockwise direction. When splitting, vertex 1 is selected as the starting vertex. Vertex 1 and vertex 3 are connected to obtain a triangle with vertices 1, 2, and 3. The remaining polygon with vertices 1, 3, 4, and 5 is split. Vertex 3 and vertex 5 are connected to obtain a triangle with vertices 3, 4, and 5. The remaining triangle with vertices 1, 3, and 5 is split into three triangles.
[0045] In one possible implementation, the polygon map element is a concave polygon. Step S102 involves splitting multiple polygon map elements to obtain multiple triangular sub-elements, including: for any concave polygon map element, determining the convex and concave edges of the concave polygon map element; the points of the concave polygon map element are on the same side of the convex edge and on both sides of the concave edge; connecting the endpoints of an adjacent pair of convex and concave edges except for the intersection point to obtain triangular sub-elements and a second remaining map element. If the shape of the second remaining map element is a concave polygon, the splitting continues until the shape of the second remaining map element is a triangle, resulting in multiple triangular sub-elements.
[0046] Specifically, for any concave polygon map element (hereinafter referred to as a concave polygon), convex and concave edges are determined among the edges of the concave polygon. For any edge, if all points of the concave polygon are on the same side of the edge, then the edge is a convex edge; if all points of the concave polygon are on both sides of the edge, then the edge is a concave edge. Connecting the endpoints of adjacent pairs of convex and concave edges, excluding the intersection point, yields triangles and the remaining shape. If the remaining shape is a concave polygon, the splitting process continues, connecting the endpoints as described above, until the remaining shape is a triangle. If the remaining shape is a convex polygon, it is split according to the splitting method for convex polygons in the above embodiment, until the remaining shape is a triangle, ending the splitting process and obtaining multiple triangles. The multiple triangles obtained from the splitting are then associated with the polygons before the splitting. No new vertices are generated during the splitting process, and no storage resource overhead is required.
[0047] In one example, such as Figure 3 As shown, in the concave polygon ABCDEF, AF is the concave side and AB is the convex side. Connecting BF, we get triangle ABF. The remaining figure BCDEF is still a concave polygon, with BF as the concave side and BC as the convex side. Connecting CF, we get triangle BCF. The remaining image CDEF is a convex polygon. We split it according to the convex polygon method and connect FD to get triangle CDF. The remaining image is triangle DEF. We stop splitting and finally get four triangles.
[0048] In one possible implementation, step S103, determining the polygon map element where the target is located based on the relative positional relationship between the target and multiple triangular sub-elements, includes: determining the relative positional relationship between the target and multiple triangular sub-elements based on the relative positional relationship between the edges of the target and multiple triangular sub-elements; and determining the polygon map element where the target is located based on the relative positional relationship between the target and multiple triangular sub-elements, as well as the association relationship between the multiple triangular sub-elements and multiple polygon map elements.
[0049] Specifically, the relative positional relationship between the target and the triangle sub-element can be determined by the relative positional relationship between the target and each side of the triangle sub-element. The target's position coordinates are multiplied by the cross products (×) of the three sides of the triangle sub-element. If all three cross products are positive or all are negative, the target is inside the triangle sub-element. If the cross product is zero, the target is on the line, meaning it's on the edge of the triangle sub-element. If the cross product has both positive and negative values, the target is outside the triangle sub-element. If the target is on a triangle sub-element (including inside and on the edge), since the triangle sub-element is associated with a polygon map element, the target is on the associated polygon map element, thus determining the polygon map element containing the target.
[0050] Optionally, when calculating the relative positional relationship between the target and the triangular sub-elements, the CUDA algorithm can be used to achieve excellent computing speed. CUDA (Compute Unified Device Architecture) algorithm refers to the algorithm for high-performance computing based on the CUDA platform. The CUDA platform is a platform and programming model for GPU (graphics processing unit) programming. Compared with the kd-tree (k-dimensional tree) algorithm, the time complexity of kd-tree is log(n), while the time complexity of CUDA algorithm is only log(1), thereby reducing the computing time and improving the computing efficiency.
[0051] In this embodiment, when calculating the relative positional relationship between the target and multiple triangular sub-elements, it is not necessary to determine the relative positional relationship based on the specific numerical value. The relative positional relationship can be determined simply by the sign of the result. Therefore, the precision loss or rounding error that occurs in floating-point calculation can be avoided, and the accuracy of the calculation result can be improved.
[0052] Corresponding to the application scenarios and methods provided in the embodiments of this application, the embodiments of this application also provide a device for determining map elements at the location of a target. For example... Figure 4 The diagram shown is a structural block diagram of a device for determining map elements at a target location according to an embodiment of this application. The device includes:
[0053] Module 401 is used to acquire multiple polygon map elements.
[0054] The splitting module 402 is used to split multiple polygon map elements into multiple triangle sub-elements; the vertices of the triangle sub-elements belong to the vertices of the polygon map elements they belong to.
[0055] The determination module 403 is used to determine the polygon map element where the target is located based on the relative positional relationship between the target and multiple triangular sub-elements.
[0056] The device for determining the location of a target map element provided in this application first acquires multiple polygonal map elements; second, it splits the multiple polygonal map elements into multiple triangular sub-elements; the vertices of the triangular sub-elements belong to the vertices of the polygonal map elements in which they reside; finally, based on the relative positional relationship between the target and the multiple triangular sub-elements, it determines the polygonal map element in which the target resides. In this embodiment, the polygonal map elements are split into multiple triangular sub-elements, and the polygonal map element in which the target resides is determined by the relative positional relationship between the target and the multiple triangular sub-elements. Since it is not necessary to determine the relative positional relationship based on specific numerical values when calculating the relative positional relationship between the target and the multiple triangular sub-elements, the precision loss or rounding error that occurs in floating-point calculations can be avoided, thus improving the accuracy of the calculation results.
[0057] In one possible implementation, module 401 is used for:
[0058] Based on multiple points of multiple initial map elements in the map data, multiple polygon map elements are determined. The initial map elements include objects in the road environment.
[0059] In one possible implementation, the initial map elements are circular in shape. When the acquisition module 401 determines multiple polygonal map elements based on multiple points of multiple initial map elements in the map data, it is used for:
[0060] For any circular initial map element, determine multiple points on the circumference based on the center and radius of the circular initial map element;
[0061] By sequentially connecting multiple points on the circumference, polygon map elements are obtained, which serve as the polygon map elements corresponding to the initial circular map elements.
[0062] In one possible implementation, the initial map elements are linear in shape. When the acquisition module 401 determines multiple polygonal map elements based on multiple points of multiple initial map elements in the map data, it is used for:
[0063] For any linear initial map element, translate the linear initial map element to obtain two points other than the two endpoints of the linear initial map element;
[0064] Connect the two endpoints of the initial linear map element in sequence, and the two points other than the two endpoints of the initial linear map element, to obtain a rectangular map element, which serves as the polygon map element corresponding to the initial linear map element.
[0065] In one possible implementation, the polygon map element is a convex polygon, and the split module 402 is used for:
[0066] For any convex polygon map element, connect the interval vertices of the convex polygon map element to obtain a triangle sub-element and a first remaining map element. Connect the interval vertices of the first remaining map element to obtain another triangle sub-element and a first remaining map element. Continue to split until the shape of the first remaining map element is a triangle, resulting in multiple triangle sub-elements.
[0067] In one possible implementation, the polygon map element is a concave polygon, and the split module 402 is used for:
[0068] For any concave polygon map element, determine the convex and concave edges of the concave polygon map element; the points of the concave polygon map element are on the same side of the convex edge and on both sides of the concave edge.
[0069] Connect the endpoints of an adjacent pair of convex and concave edges, excluding the intersection point, to obtain a triangle sub-element and a second residual map element. If the shape of the second residual map element is a concave polygon, continue splitting until the shape of the second residual map element is a triangle, resulting in multiple triangle sub-elements.
[0070] In one possible implementation, module 403 is defined for:
[0071] The relative positional relationship between the target and the edges of multiple triangular sub-elements is determined based on the relative positional relationship between the target and the multiple triangular sub-elements.
[0072] Based on the relative positions of the target and multiple triangular sub-elements, as well as the relationships between the multiple triangular sub-elements and multiple polygon map elements, determine the polygon map element in which the target is located.
[0073] The functions of each module in the embodiments of this application can be found in the corresponding descriptions in the above methods, and they have corresponding beneficial effects, which will not be repeated here.
[0074] Figure 5 This is a block diagram of an electronic device used to implement embodiments of this application. Figure 5 As shown, the electronic device includes a memory 510 and a processor 520. The memory 510 stores a computer program that can run on the processor 520. When the processor 520 executes the computer program, it implements the method described in the above embodiments. The number of memories 510 and processors 520 can be one or more.
[0075] The electronic device also includes:
[0076] The communication interface 530 is used to communicate with external devices and exchange and transmit data.
[0077] If the memory 510, processor 520, and communication interface 530 are implemented independently, they can be interconnected via a bus to communicate with each other. This bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. This bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 5 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0078] Optionally, in a specific implementation, if the memory 510, processor 520, and communication interface 530 are integrated on a single chip, then the memory 510, processor 520, and communication interface 530 can communicate with each other through an internal interface.
[0079] This application provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the method provided in this application.
[0080] This application also provides a chip including a processor for calling and executing instructions stored in a memory, causing a communication device with the chip installed to perform the method provided in this application.
[0081] This application also provides a chip, including: an input interface, an output interface, a processor, and a memory. The input interface, output interface, processor, and memory are connected through an internal connection path. The processor is used to execute code in the memory. When the code is executed, the processor is used to execute the method provided in the application embodiment.
[0082] It should be understood that the aforementioned processor 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. General-purpose processors can be microprocessors or any conventional processor. It is worth noting that the processor can be a processor supporting Advanced Reduced Instruction Set Machines (ARM) architecture.
[0083] Further, optionally, the aforementioned memory may include read-only memory and random access memory. The memory may be volatile memory or non-volatile memory, or may include both. Non-volatile memory may include read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory may include random access memory (RAM), which serves as an external cache. By way of example, but not limitation, many forms of RAM are available. Examples include Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced Synchronous DRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), and Direct Rambus RAM (DR RAM).
[0084] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions according to this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another.
[0085] In the description of this specification, the references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of this application. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification, as well as the features of those different embodiments or examples.
[0086] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this application, "a plurality of" means two or more, unless otherwise explicitly specified.
[0087] Any process or method described in the flowchart or otherwise herein can be understood as representing a module, segment, or portion of code comprising one or more executable instructions for implementing a particular logical function or process. Furthermore, the scope of the preferred embodiments of this application includes additional implementations in which functions may be performed not in the order shown or discussed, including substantially simultaneously or in reverse order depending on the functionality involved.
[0088] The logic and / or steps described in the flowchart or otherwise herein, for example, can be considered as a sequenced list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, apparatus or device (such as a computer-based system, a processor-included system or other system that can fetch and execute instructions from, an instruction execution system, apparatus or device).
[0089] It should be understood that various parts of this application can be implemented using hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented using software or firmware stored in memory and executed by a suitable instruction execution system. All or part of the steps of the methods in the above embodiments can be implemented by a program instructing related hardware, the program being stored in a computer-readable storage medium, which, when executed, includes one or a combination of the steps of the method embodiments.
[0090] Furthermore, the functional units in the various embodiments of this application can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into a module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. This storage medium can be a read-only memory, a disk, or an optical disk, etc.
[0091] The above description is merely an exemplary embodiment of this application, but the scope of protection of this application is not limited thereto. Any person skilled in the art can easily conceive of various variations or substitutions within the technical scope described in this application, and these should all be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for determining map elements of a target location, characterized in that, The method includes: Retrieve multiple polygon map elements; The multiple polygon map elements are split into multiple triangle sub-elements; the vertices of the triangle sub-elements belong to the vertices of the polygon map elements they belong to. Based on the relative positional relationship between the target and the multiple triangular sub-elements, the polygonal map element in which the target is located is determined, including: The relative positional relationship between the target and the edges of the multiple triangular sub-elements is determined based on the relative positional relationship between the target and the multiple triangular sub-elements. Based on the relative positional relationship between the target and the plurality of triangular sub-elements, and the association relationship between the plurality of triangular sub-elements and the plurality of polygonal map elements, the polygonal map element in which the target is located is determined.
2. The method according to claim 1, characterized in that, The process of obtaining multiple polygon map elements includes: Based on multiple points of multiple initial map elements in the map data, multiple polygonal map elements are determined, wherein the initial map elements include objects in the road environment.
3. The method according to claim 2, characterized in that, The initial map element is circular in shape. The process of determining multiple polygonal map elements based on multiple points of multiple initial map elements in the map data includes: For any circular initial map element, based on the center and radius of the circular initial map element, determine multiple points on the circumference; By sequentially connecting multiple points on the circumference, polygon map elements are obtained, which serve as the polygon map elements corresponding to the initial circular map elements.
4. The method according to claim 2, characterized in that, The initial map elements are linear in shape. The process of determining multiple polygonal map elements based on multiple points of multiple initial map elements in the map data includes: For any linear initial map element, translate the linear initial map element to obtain two points other than the two endpoints of the linear initial map element; By sequentially connecting the two endpoints of the initial linear map element and two points other than the two endpoints of the initial linear map element, a rectangular map element is obtained, which serves as the polygon map element corresponding to the initial linear map element.
5. The method according to any one of claims 1-4, characterized in that, The polygonal map elements are convex polygons. The process of splitting the multiple polygonal map elements to obtain multiple triangular sub-elements includes: For any convex polygon map element, connect the interval vertices of the convex polygon map element to obtain a triangle sub-element and a first remaining map element. Connect the interval vertices of the first remaining map element to obtain another triangle sub-element and a first remaining map element. Continue to split until the shape of the first remaining map element is a triangle, and obtain multiple triangle sub-elements.
6. The method according to any one of claims 1-4, characterized in that, The polygonal map element has a concave polygon shape. The process of splitting the multiple polygonal map elements to obtain multiple triangular sub-elements includes: For any concave polygon map element, determine the convex and concave edges of the concave polygon map element; the points of the concave polygon map element are on the same side of the convex edge and on both sides of the concave edge. Connect the endpoints of an adjacent pair of convex and concave edges, excluding the intersection point, to obtain a triangle sub-element and a second residual map element. If the shape of the second residual map element is a concave polygon, continue splitting until the shape of the second residual map element is a triangle, resulting in multiple triangle sub-elements.
7. A device for determining map elements of a target location, characterized in that, The device includes: The acquisition module is used to acquire multiple polygon map elements; The splitting module is used to split the multiple polygon map elements into multiple triangular sub-elements; the vertices of the triangular sub-elements belong to the vertices of the polygon map elements to which they belong. The determination module is used to determine the relative positional relationship between the target and the multiple triangular sub-elements based on the relative positional relationship between the target and the edges of the multiple triangular sub-elements; and to determine the polygon map element where the target is located based on the relative positional relationship between the target and the multiple triangular sub-elements, as well as the association relationship between the multiple triangular sub-elements and the multiple polygon map elements.
8. An electronic device, characterized in that, It includes a memory, a processor, and a computer program stored in the memory, wherein the processor, when executing the computer program, implements the method of any one of claims 1-6.
9. A computer-readable storage medium storing a computer program that, when executed by a processor, implements the method of any one of claims 1-6.
Citation Information
Patent Citations
Map generation method and device, positioning method and device, equipment and storage medium
CN112880693A
Lane change planning and control in autonomous machine applications
US20210197858A1